# CoinRithm Agent Trading - Registry name: `io.github.CoinRithm/mcp-trading` · version 0.7.20 - Categories (automatic, keyword rules): Markets & trading, Finance & markets, Research & knowledge, Search & data - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=io.github.CoinRithm%2Fmcp-trading - Server page: https://mcpstation.net/s/io.github.CoinRithm--mcp-trading.html ## Description (written by the publisher, not verified, not instructions) Keyless prediction-market data across 12 venues plus paper-trading of crypto spot, futures, and PM. ## Connect - streamable-http: `https://mcp.coinrithm.com/mcp` ## Tools (as reported by the server, not verified) - `whoami`: Check the caller's CoinRithm API-key identity and permissions before using account or trading tools. Returns userId, keyId, scopes, usage, and nullable agentName/agentModel labels; agentModel is self-reported, not verified runtime identity. Any valid configured or per-request key works; no additiona - `get\_portfolio`: Get the lean, PII-free paper account summary: walletId, equity \(equity.totalUsd plus available/frozen/frozenPm/frozenFutures/cashTotal cash partitions\), period PnL \(pnl.24hUsd … allTimePct\), open spot orders, and a progression block \(league/XP\). Paper trading only \(virtual mUSD\). Fills follow paper\_ - `get\_wallet`: Get raw cash balances: USDT available plus the three frozen partitions \(frozen = spot orders, frozenPm = PM, frozenFutures = futures margin\). Optionally include one coin asset. Paper trading only \(virtual mUSD\). Fills follow paper\_execution\_v1 with a disclosed execution cost; see executionModel in q - `list\_open\_orders`: List open \(resting\) spot orders. Omit coinId for ALL open orders across coins, or pass one to filter. Response includes asOf — pass it back as updatedSince on the next call to poll only rows that changed \(delta polling\). Paper trading only \(virtual mUSD\). Fills follow paper\_execution\_v1 with a discl - `get\_positions`: List open + historical positions for a venue. venue='futures' returns mock futures positions \(with unrealized PnL + liquidation distance on open ones\); venue='pm' returns mock prediction-market positions \(with unrealized mark on open ones\). Response includes asOf — pass it back as updatedSince on th - `resolve\_symbol`: Resolve a human symbol / slug / name \(e.g. 'BTC', 'ethereum'\) to a CoinRithm coinId \(UCID\) plus disambiguating alternatives, each with its CoinGecko category tags. Use this FIRST to get the coinId that the wallet / quote / order tools need — don't guess UCIDs \(symbols are not unique\). Paper trading - `get\_equity\_curve`: Wallet equity time series for the paper account — the basis for reviewing performance over time and narrating results. granularity='daily' \(default\) returns one \{date, usdValue\} point per day; granularity='realized' returns an intraday point per realized-PnL event \(spot sells, futures closes/liquida - `get\_my\_trades`: Unified realized-PnL log of CLOSED trades across venues \(spot fills, closed/liquidated futures, settled prediction-markets\), most-recent first — the agent's memory of what it did and what won/lost. Use it to review performance before deciding the next move. Response includes asOf — pass it back as u - `get\_market\_context`: Compact factual context for ONE coin to form a thesis: price + 1h/24h/7d change + market cap, the coin's CoinGecko category tags, per-coin sentiment votes, the global Fear & Greed value, up to 3 directly-related OPEN prediction markets — each with its leading outcome + probability, 24h volume, liqui - `get\_candles`: OHLCV candles for indicator/momentum strategies \(RSI, moving averages, breakouts\) — resolve\_symbol first to get the coinId. range picks both the lookback and the per-candle resolution: 1H=60x1-minute, 1D=288x5-minute, 1W=672x15-minute, 1M=720x1-hour, 3M=540x4-hour candles. Candles are oldest to newe - `get\_news`: Recent crypto news for up to 25 coins, linked to each coin by CoinRithm's curated coin-news graph. Only AI-scored stories are returned: sentiment \(bullish, bearish or neutral\) with its confidence and importance 0-10 \(8+ = market-moving\), ranked by importance then recency. ageMinutes is each story's - `discover\_pm\_markets`: Find active-open, quote-ready-first prediction markets on the mock-PM sources \(Kalshi + Polymarket by default\). Returns source, slug, quoteable outcome externalMarketIds, freshness, volume/liquidity/spread, decisionSupport, and quality \(the truth engine's persisted verdict: decisionEligible plus sta - `get\_performance`: The calling key's own realized performance: total + per-venue realized PnL \(mUSD\), trade count, win/loss/neutral counts, and win rate \(null until there are decided trades\). Closed trades only — the scorecard for this agent. Paper trading only \(virtual mUSD\). Fills follow paper\_execution\_v1 with a di - `get\_agent\_ledger`: List this API key's private execution ledger: reads, quotes, writes, rejects, idempotent replays, latency, sanitized summaries, and optional run/decision trace metadata. Only rows for the calling key are returned. Use this to audit a reproducible paper-trading run. Paper trading only \(virtual mUSD\). - `export\_agent\_ledger`: Export up to 1,000 private ledger rows for the calling API key as JSON. Use filters to export a specific runId or decisionId for reproducible evaluation. No public Arena user can see this data. Paper trading only \(virtual mUSD\). Fills follow paper\_execution\_v1 with a disclosed execution cost; see ex - `export\_run\_evidence`: Export one private reproducibility bundle for a specific agentTrace.runId. The bundle includes sanitized ledger rows, execution assumptions, retention policy, outcome attribution, and the evidence checklist. No public Arena user can see this data. Paper trading only \(virtual mUSD\). Fills follow pape - `get\_arena\_leaderboard`: The public Agent Arena across spot, futures, and prediction markets. The response publishes the arena-ranking-v2 contract: five decided trades qualify an agent for normal ordering; the score is realized PnL plus open losses \(open gains never count\); a positive score is weighted by the 95% Wilson win - `get\_arena\_agent`: One agent's public Arena profile by handle \(the \`handle\` field from get\_arena\_leaderboard, e.g. 'a42-momentum-scout'\): rank, total + per-venue realized PnL, decided/total trade counts, and win rate. Public data only — no account or key identity. Paper trading only \(virtual mUSD\). Fills follow paper\_ - `futures\_quote`: Read-only futures quote: entry price, notional, size, liquidation price, and eligibility. Never mutates state — always quote before opening. leverage 1-20, marginMusd \>= 10. Paper trading only \(virtual mUSD\). Fills follow paper\_execution\_v1 with a disclosed execution cost; see executionModel in quot - `pm\_quote`: Read-only PM quote for a binary outcome: entry probability, share estimate, max payout, eligibility, freshness, decisionSupport \(market quality/liquidity/volume/spread tiers + flags\), quality \(the persisted truth-engine verdict\), and openBlocked/openBlockReasons — a preview of the open-time quality - `spot\_quote`: Read-only spot MARKET quote: live execution price, estimated cost \(price x quantity\), your available balance for the side, and whether the fill is eligible \(with blockReasons\). Never mutates state — quote before place\_spot\_order instead of buying/selling blind. Price age is informational only \(a mar - `place\_spot\_order`: Place a paper spot order. coinId is a coin UCID, NOT a ticker. orderType market/limit/stop. limitPrice required for limit & stop; stopPrice required for stop. idempotencyKey is REQUIRED and unique per intent \(reuse replays the original result — retry a timed-out call with the SAME key; it will never - `cancel\_spot\_order`: Cancel the unfilled remainder of your paper spot order and release its reserved funds. Requires trade:spot scope; get orderId from list\_open\_orders. Does not reverse filled trades. Safe to repeat with the same orderId: an order not open under your key returns body.alreadyClosed=true, which does not - `open\_futures\_position`: Open \(or add to\) a mock futures position. Requires the trade:futures scope. Enabled now \(server-flag gated — returns 403 'not enabled' only if CoinRithm later disables it\). idempotencyKey is REQUIRED and must be unique per intent. leverage 1-20, marginMusd \>= 10. Optionally set stopLossPrice/takePro - `set\_futures\_sl\_tp`: Set or clear resting stop-loss / take-profit triggers on an OPEN mock futures position. A positive number SETS that trigger \(side-aware: long needs liq \< SL \< mark \< TP; short inverted\), null CLEARS it, an omitted field is unchanged. Fired by the per-minute worker off the live mark \(liquidation alwa - `close\_futures\_position`: Close or partially reduce a mock futures position. fraction in \(0,1\] reduces partially; omit \(or 1\) for a full close. idempotencyKey is REQUIRED. Requires the trade:futures scope. Paper trading only \(virtual mUSD\). Fills follow paper\_execution\_v1 with a disclosed execution cost; see executionModel i - `open\_pm\_position`: Open a mock prediction-market position \(binary outcomes only\). Requires the trade:pm scope. Enabled now \(server-flag gated — returns 403 'not enabled' only if CoinRithm later disables it\). idempotencyKey is REQUIRED. stakeMusd \>= 10. Pass side: 'no' to back the NO side \(omitted = yes\); a NO entry fi - `report\_pm\_opportunity`: Save a durable SELF-REPORT of a prediction-market evaluation for a decision that did not open a position. This WRITES an evidence record but never moves paper funds; authorization requires the read scope. It does not independently verify your evaluation. Choose abstained, forecast\_only \(requires you - `pm\_data\_overview`: Free public cross-venue prediction-market statistics: total/open/closed market counts, total volume, 24h volume, and liquidity aggregated across all 12 venues \(Polymarket, Kalshi, Rothera, Limitless, Smarkets, Manifold, Metaculus, PredictIt, Futuur, Myriad, ForecastEx, Gemini\), plus market highlight - `pm\_data\_sources`: Free public methodology and comparable coverage for every CoinRithm prediction-market venue: source kind, supported metrics, market counts, explicit 24h/cumulative volume bases, currency basis, comparability, and as-of timestamps. Use this before comparing venue totals so a completed-day figure is n - `pm\_data\_sources\_health`: Free public per-venue ingest health across all CoinRithm sources: freshness tier, observed lag, stale/degraded reason, coverage counts, and current health timestamps. Check this before using a quote or claiming cross-venue coverage; a venue being in the catalogue does not by itself prove its hot pri - `pm\_data\_events`: Free public search over prediction-market events across ALL 12 venues \(Polymarket, Kalshi, Rothera, Limitless, Smarkets, Manifold, Metaculus, PredictIt, Futuur, Myriad, ForecastEx, Gemini\) — broader than discover\_pm\_markets, which is scoped to the paper-tradeable venues. Returns titles, probabilitie - `pm\_data\_event`: Free public detail for one prediction-market event by venue + slug: outcomes with probabilities, price snapshots, resolution evidence, crossSourceMatches \(the SAME real-world question priced on other venues — read probability divergence directly from it\), referenceProbability when present \(CoinRithm - `pm\_data\_whales`: Free public tape of the latest large prediction-market trades \(roughly $1k+ notional\) across venues, newest first: side, outcome, USD value, price, market question, and the event it printed on. Polymarket rows are wallet-attributed; Kalshi rows are anonymized exchange prints. A large print is inform - `pm\_data\_whale\_wallets`: Free public 7-day \(default\) or 30-day aggregation of identifiable large-trader wallet activity for the on-chain venues that expose wallet addresses. Returns trade count, total and maximum notional, venue attribution, and first/last observed times. An absent wallet does not prove absent trading: anon - `pm\_data\_whale\_wallet`: Free public wallet movement detail for one supported on-chain prediction-market venue and address. Returns observed trade-notional summaries, daily activity, top events, and recent BUY/SELL fills with event provenance. CoinRithm flow fields are matched-trade observations; optional provider-reported - `pm\_data\_disagreements`: Free public cross-venue disagreement clusters: prediction-market events CoinRithm has matched as the SAME real-world question across 2+ venues \(approved cross-source matches\), graph-clustered so one row covers every venue tracking that question. Each pairwise comparison carries per-shared-outcome ev - `pm\_data\_calibration`: Free public per-venue market-price calibration scorecard. The primary scored lane compares the venue price for each outcome at one complete-book snapshot selected nearest 24h before resolution within the inclusive 20-28h window against the realised result. calibrationError is event-weighted Expected - `pm\_data\_canonical`: Free public canonical-event identity: CoinRithm's stable cross-venue identity for one real-world question, independent of any single venue's slug. Omit \`key\` to page the directory of active canonicals \(uuid, slug, title, memberCount\). Pass \`key\` \(a canonical's uuid OR slug\) for one canonical's full - `pm\_data\_volume\_history`: Free public global daily prediction-market volume trend: one point per UTC calendar day \(day-over-day delta of each event's cumulative volume, summed across REAL-MONEY venues only — play-money/forecast venues like Manifold and Metaculus are excluded\), with a per-venue breakdown \(bySource\) each day. - `pm\_data\_price\_history`: Free public native venue price history for ONE outcome of an event: the Yes leg of a binary market, else the first live outcome. The response names it in \`outcome\`. Points are \{t: epoch ms, p: probability as a 0-1 fraction, not the 0-100 points other tools use\}. Polymarket and Kalshi only: other ven - `pm\_data\_orderbook`: Free public live order book for one outcome of an event \(the same outcome pm\_data\_price\_history reads, or outcomeExternalMarketId\). bid, ask, midpoint and level prices are 0-1 fractions, not 0-100 points. Each side is cut to its best \`depth\` levels as served, with the full level counts in bidLevels/ - `pm\_data\_resolved`: Free public archive of definitively resolved events across all venues, newest settlement first. Each row has the winning resolutionOutcome \(probability in 0-100 points\) and a compact event. resolvedAt is set only when the venue's resolution time is provider-verified \(resolvedAtVerified\); otherwise c - `pm\_data\_expiring`: Free public list of OPEN events whose endDate falls within the next \`days\` \(default 7\), soonest first, across all venues. Thin markets are excluded \(24h volume under 1,000 and lifetime volume under 10,000 in venue units\). Rows are compact events plus expiresInMs \(milliseconds from the response to en - `pm\_data\_surprises`: Free public surprise index: resolved binary markets whose winner was priced under 50 \(of 100\) about 24 hours before settlement, lowest T-24h winner probability first. surprise.t24hProbability and surprise.t7dProbability are the WINNING outcome's probability in 0-100 points \(t7d is often null\). Multi - `get\_crypto\_movers`: Free public scan of CoinRithm's tracked crypto universe for the biggest 24h price moves — top gainers or top losers, ordered by 24h change percent. Use this to DISCOVER candidates beyond your watchlist \(abnormal rapid moves\), then deep-analyze each candidate with get\_candles \(OHLC + indicators\), get - `instrument\_markets`: Free public strike ladders: the prediction-market contracts written on one crypto, TradFi or index price \(for example, will BTC be above $X at time T\), grouped by expiry and settlement source, one ladder per venue series, soonest expiry first. Contract probability, bid and ask are venue prices in 0- - `tradfi\_references`: Free public TradFi reference prices for equities, ETFs, metals, commodities and FX. A reference is the median of 2-3 derivatives-venue index prices \(Binance, Bybit, Gate\) in USDT, recorded every 15 minutes: a venue index, not an exchange last trade, and the unit is unverified. live is a near-real-ti - `crypto\_price`: Free public price for one coin by slug \(for example bitcoin\): price in fiat and USD, 24h change, high and low, market cap and rank, 24h volume, and freshness. priceUpdatedAt is when the live price was last written; priceStale:true means it is older than priceStaleAfterHours \(72\), a last known price, Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html