coinrithm avatar

CoinRithm Agent Trading

coinrithm/coinrithm-agent-trading

Connects Claude or any MCP client to CoinRithm's paper trading engine with support for crypto spot, leveraged futures (up to 20x), and prediction markets, all running against a virtual 50,000 mUSD balance. The server exposes read and trade scopes you control at the API key level, so you can start read-only with portfolio and quote endpoints, then graduate to live paper trading when ready. Built-in idempotency keys prevent double execution on retries, delta polling keeps positions in sync, and the optional agent ledger records every decision with metadata for reproducible backtesting. Deploy the hosted endpoint at mcp.coinrithm.com with just a Bearer token, or run the stdio server locally via npx.

GitHub stars
4
tools
49
auth
Secret needed
transport
STDIO, HTTP
env vars
2
last updated
Oct 16, 2026

Install

From registry metadata
$ npx add-mcp https://mcp.coinrithm.com/mcp --name mcp-trading --header 'Authorization: Bearer ${API_TOKEN}'

Run in your terminal. add-mcp asks which agents to add it to, then asks for each value it needs. Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http mcp-trading https://mcp.coinrithm.com/mcp --header 'Authorization: YOUR_AUTHORIZATION'

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 49 tools

Verified live against the running server on Nov 6, 2026.

whoamiCheck 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...1 params

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...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
get_portfolioGet 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 mUS...3 params

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 mUS...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
fiatstring
Display fiat code (default USD). Equity stays USD-denominated.
localestring
Locale (default en).
get_walletGet 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;...2 params

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;...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
coinIdstring
Coin UCID (e.g. "1" = BTC) to also return that asset.
list_open_ordersList 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_ex...4 params

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_ex...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
coinIdstring
Coin UCID filter. Omit to list ALL open orders.
limitinteger
Max rows (1-200, default 100).
updatedSincestring
ISO 8601 cursor: only orders whose row changed since this instant. Pass the previous response's asOf back here.
get_positionsList 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 bac...3 params

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 bac...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
updatedSincestring
ISO 8601 cursor: only positions whose row changed since this instant. Pass the previous response's asOf back here.
venue*string
Which venue's positions to list.one of futures · pm
resolve_symbolResolve 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...2 params

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...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
q*string
Symbol, slug, or name (e.g. BTC, bitcoin, Ethereum).
get_equity_curveWallet 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,...3 params

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,...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
daysinteger
Look-back window in days (1-365, default 30).
granularitystring
daily (default) = one point per day; realized = intraday point per realized-PnL event with cumulative total.one of daily · realized
get_my_tradesUnified 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 a...4 params

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 a...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
limitinteger
Max rows (1-100, default 25).
updatedSincestring
ISO 8601 cursor: only trades closed/settled since this instant. Pass the previous response's asOf back here.
venuestring
Filter by venue (default all).one of all · spot · futures · pm
get_market_contextCompact 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 + probabi...2 params

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 + probabi...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
coinId*string
Coin UCID (e.g. "1" = BTC). Use resolve_symbol to find it.
get_candlesOHLCV 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. Can...4 params

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. Can...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
coinId*string
Coin UCID (e.g. "1" = BTC). Use resolve_symbol to find it.
fiatstring
Quote currency for o/h/l/c (default USD).
rangestring
Lookback + resolution (default 1D = 288 five-minute candles).one of 1H · 1D · 1W · 1M · 3M
get_newsRecent 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. ageM...5 params

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. ageM...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
coins*string
Comma-separated symbols or slugs, e.g. "BTC,ETH" (max 25).
hoursinteger
Look-back window in hours, 1-168 (default 48).
limitinteger
Stories to return, 1-25 (default 8).
minImportanceinteger
Only stories at or above this importance (default 0).
discover_pm_marketsFind 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: de...6 params

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: de...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
limitinteger
Max rows (1-50, default 20).
offsetinteger
Pagination offset (default 0).
qstring
Optional search text (title, outcome, topic, or related coin).
sortstring
Prediction-market sort (default best).one of best · volume24h_desc · priceChange24h_desc · priceChange24h_asc · endDate_desc · trending
sourcestring
Source filter (default all = Kalshi + Polymarket).one of all · kalshi · polymarket
get_performanceThe 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...1 params

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...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
get_agent_ledgerList 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 tradi...10 params

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 tradi...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
decisionIdstring
Optional decision id filter.
eventTypestring
Optional event type filter.
fromstring
Optional ISO start timestamp.
limitinteger
Rows to return (1-100, default 25).
offsetinteger
Pagination offset (default 0).
runIdstring
Optional run id filter.
statusstring
Optional ledgerStatus filter.
tostring
Optional ISO end timestamp.
venuestring
Optional venue filter.
export_agent_ledgerExport 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...8 params

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...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
decisionIdstring
Optional decision id filter.
eventTypestring
Optional event type filter.
fromstring
Optional ISO start timestamp.
runIdstring
Optional run id filter.
statusstring
Optional ledgerStatus filter.
tostring
Optional ISO end timestamp.
venuestring
Optional venue filter.
export_run_evidenceExport 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 m...2 params

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 m...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
runId*string
Required run id to export.
get_arena_leaderboardThe 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 weighte...3 params

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 weighte...

Parameters* required
pageinteger
Page number (1-100, default 1).
pageSizeinteger
Rows per page (1-50, default 12).
windowstring
Ranking window (default all = all-time). 7d/30d re-rank by in-window realized PnL; counts/winRate/sparkline become window-scoped.one of 7d · 30d · all
get_arena_agentOne 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 mUS...1 params

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 mUS...

Parameters* required
handle*string
Arena handle from the leaderboard (e.g. a42-momentum-scout).
futures_quoteRead-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...5 params

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...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
coinId*string
Coin UCID.
leverage*number
1-20x.
marginMusd*number
Isolated margin in mUSD (>= 10).
side*string
Futures direction: long benefits if price rises; short benefits if price falls.one of long · short
pm_quoteRead-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...8 params

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...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
bankrollMusdnumber
Optional bankroll in mUSD for the advisory suggested stake.
forecastProbabilitynumber
Optional own probability that the selected side wins (0-100 exclusive) for advisory edge sizing.
outcomeExternalMarketId*string
Case-sensitive outcome / market id.
sidestring
Which side of the binary outcome to back. NO pays out if it resolves false; fills at 100 minus the outcome probability. Omitted = yes.one of yes · no
slug*string
Event slug.
source*string
Source slug (e.g. kalshi, polymarket).
stakeMusd*number
mUSD to stake (> 0).
spot_quoteRead-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 in...4 params

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 in...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
coinId*string
Coin UCID (e.g. '1' = BTC).
quantity*number
Amount of the base coin (> 0).
side*string
Spot side: buy increases the coin balance; sell reduces it.one of buy · sell
place_spot_orderPlace 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...8 params

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...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
coinId*string
Coin UCID (e.g. "1" = BTC).
idempotencyKey*string
Unique per intent; reuse replays the original result.
limitPricenumber
USD/coin — required for limit & stop.
orderType*string
Order execution type: market, limit, or stop.one of market · limit · stop
quantity*number
Base-coin amount (> 0).
side*string
Spot side: buy spends USDT; sell spends the base coin.one of buy · sell
stopPricenumber
USD trigger — required for stop.
cancel_spot_orderCancel 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.alreadyClose...2 params

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.alreadyClose...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
orderId*integer
Your paper spot order id from list_open_orders.
open_futures_positionOpen (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 se...8 params

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 se...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
coinId*string
Coin UCID to open futures for. Use resolve_symbol first.
idempotencyKey*string
Unique per intent; reuse replays the original result.
leverage*number
Leverage multiplier (1-20x).
marginMusd*number
Isolated margin in mUSD (>= 10).
side*string
Futures direction: long benefits if price rises; short benefits if price falls.one of long · short
stopLossPricenumber
Optional resting stop-loss set atomically at open (USD trigger; fired by the per-minute worker).
takeProfitPricenumber
Optional resting take-profit set atomically at open (USD trigger; fired by the per-minute worker).
set_futures_sl_tpSet 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...4 params

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...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
positionId*integer
Open futures position id.
stopLossPricevalue
Positive number sets; null clears; omit = unchanged.
takeProfitPricevalue
Positive number sets; null clears; omit = unchanged.
close_futures_positionClose 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 cos...4 params

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 cos...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
fractionnumber
(0,1] portion to close; omit/1 = full close.
idempotencyKey*string
Unique per close intent; reuse replays the original result.
positionId*integer
Open futures position id to close or reduce.
open_pm_positionOpen 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 (omitte...10 params

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 (omitte...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
forecastProbabilitynumber
OPTIONAL. Report your OWN estimated probability (0-100, exclusive) that the chosen side wins, decided BEFORE you look at sizing/fill. It is stored SEPARATELY from the market price you pay and feeds...
idempotencyKey*string
Unique per PM-open intent; reuse replays the original result.
outcomeExternalMarketId*string
Case-sensitive outcome or market id returned by discovery.
provenanceobject
Optional self-reported provenance (WHAT RAN). No trust: the server stamps policy versions + providerVerified itself. Any block (even {}) makes the artifact schemaVersion 2.
sidestring
Which side of the binary outcome to back. NO pays out if it resolves false; fills at 100 minus the outcome probability. Omitted = yes.one of yes · no
slug*string
Prediction-market event slug.
source*string
Prediction-market source slug, e.g. kalshi or polymarket.
stakeMusd*number
mUSD stake (>= 10).
thesisstring
Optional one-line thesis for this decision (max 280 characters).
report_pm_opportunitySave 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, fore...12 params

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, fore...

Parameters* required
agentTraceobject
Optional private trace metadata stored in the caller's ledger.
cohortobject
Opportunity-cohort breadth (frozen into the artifact).
decisionIdstring
Non-empty id for this decision, unique within your API key. Reuse for retries. Falls back to agentTrace.decisionId; omitting both creates a new record on each call.
forecastProbabilitynumber
Your OWN forecast probability (1-99). REQUIRED for forecast_only; optional for other kinds. Never echo the market price.
kind*string
abstained = evaluated but did not bet; forecast_only = formed your own probability without trading (forecastProbability required); quote_expired = a validated open the server rejected at act time.one of abstained · forecast_only · quote_expired
marketProbabilitynumber
The market price (0-100) you observed at the time.
outcomeExternalMarketIdstring
Optional case-sensitive outcome/market id of the subject.
provenanceobject
Optional self-reported provenance (WHAT RAN). No trust: the server stamps policy versions + providerVerified itself. Any block (even {}) makes the artifact schemaVersion 2.
reasonCodestring
Short structured reason (e.g. 'no_edge', 'stale_data').
runIdstring
Your own run id for grouping.
slugstring
Optional subject event slug.
sourcestring
Optional subject market source slug (e.g. kalshi).
pm_data_overviewFree 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)...1 params

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)...

Parameters* required
fiatstring
Fiat currency code for monetary figures (default usd).
pm_data_sourcesFree 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 co...1 params

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 co...

Parameters* required
fiatstring
Fiat currency code for monetary figures (default usd).
pm_data_sources_healthFree 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 i...

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 i...

No parameters. Call it with no arguments.

pm_data_eventsFree 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. Retur...7 params

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. Retur...

Parameters* required
fiatstring
Fiat currency code for monetary figures (default usd).
limitinteger
Max rows (1-50, default 20).
offsetinteger
Pagination offset (default 0).
qstring
Optional search text.
sortstring
Optional sort key.
sourcestring
Optional venue filter: polymarket, kalshi, rothera, limitless, smarkets, manifold, metaculus, predictit, futuur, myriad, forecastex, or gemini.
statusstring
Status filter: open (default), closed, or all. Without it the API's newest-first list starts with long-closed markets.
pm_data_eventFree 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...4 params

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...

Parameters* required
detailstring
Response detail: bounded summary (default) or untouched full record.one of summary · full
fiatstring
Fiat currency code for monetary figures (default usd).
slug*string
Event slug on that venue.
source*string
Venue slug: polymarket, kalshi, rothera, limitless, smarkets, manifold, metaculus, predictit, futuur, myriad, forecastex, or gemini.
pm_data_whalesFree 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....1 params

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....

Parameters* required
limitinteger
Max rows (1-50, default 10).
pm_data_whale_walletsFree 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 pro...3 params

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 pro...

Parameters* required
limitinteger
Max wallets (1-50, default 10).
sourcestring
Restrict results to one wallet-address venue.one of polymarket · limitless · myriad
windowstring
Observed aggregation window (default 7d).one of 7d · 30d
pm_data_whale_walletFree 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; opti...2 params

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; opti...

Parameters* required
source*string
Supported wallet-address venue.one of polymarket · limitless · myriad
wallet*string
Full walletAddress from pm_data_whales or pm_data_event, or address from pm_data_whale_wallets. The shortened wallet display is not an address.
pm_data_disagreementsFree 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 carrie...9 params

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 carrie...

Parameters* required
fiatstring
Fiat currency code for monetary figures (default usd).
limitinteger
Max clusters (1-25, default 3).
maxSnapshotAgeMinutesnumber
Require both matched events' probability come from a price snapshot captured within this many minutes.
minDivergencenumber
Floor (points, 0-100) on whichever metric the active sort ranks by.
offsetinteger
Pagination offset (default 0).
requirePricedboolean
Default true: drops any pair where a side is an unpriced/untraded placeholder or fails a quote-dead liveness check. Set false only for research/debug.
sortstring
Ranking: confidence_desc (default) = strongest match first; divergence_desc = total cross-outcome gap; max_outcome_delta_desc = single largest shared-outcome gap (avoids multi-leg basket noise).one of confidence_desc · divergence_desc · max_outcome_delta_desc
sourceKindstring
Pass 'market' to restrict both sides of every pair to real-money market venues (excludes forecast/play-money venues like Metaculus/Manifold).one of market
statusstring
Pass 'open' to require BOTH matched events be currently open.one of open
pm_data_calibrationFree 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...

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...

No parameters. Call it with no arguments.

pm_data_canonicalFree 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) fo...3 params

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) fo...

Parameters* required
cursorinteger
List mode only: pagination cursor — pass the previous response's pagination.nextCursor.
keystring
UUID or slug of one canonical event. Omit to list active canonicals.
limitinteger
List mode only: max rows (1-200, default 50).
pm_data_volume_historyFree 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 breakdow...

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 breakdow...

No parameters. Call it with no arguments.

pm_data_price_historyFree 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...4 params

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...

Parameters* required
intervalstring
Lookback range (default 1w).one of 1h · 6h · 1d · 1w · 1m · max
maxPointsinteger
Points to return, 2-1000 (default 200).
slug*string
Event slug on that venue.
source*string
Venue slug, as in pm_data_events rows.one of polymarket · kalshi · rothera · limitless · smarkets · manifold
pm_data_orderbookFree 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 lev...4 params

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 lev...

Parameters* required
depthinteger
Levels per side, 1-50 (default 10).
outcomeExternalMarketIdstring
Venue market id of another outcome on the event (from pm_data_event).
slug*string
Event slug on that venue.
source*string
Venue slug, as in pm_data_events rows.one of polymarket · kalshi · rothera · limitless · smarkets · manifold
pm_data_resolvedFree 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 (resolvedA...7 params

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 (resolvedA...

Parameters* required
fiatstring
Fiat currency code for monetary figures (default USD).
limitinteger
Rows, 1-100 (default 10); up to 200 when year is set.
minVolumenumber
Lifetime-volume floor (default 0, no floor).
monthinteger
Calendar month 1-12; needs year.
offsetinteger
Pagination offset (default 0).
sourcestring
Venue slug, as in pm_data_events rows.one of polymarket · kalshi · rothera · limitless · smarkets · manifold
yearinteger
Calendar year slice. Required when month is set.
pm_data_expiringFree 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...5 params

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...

Parameters* required
daysinteger
Lookahead window in days, 1-30 (default 7).
fiatstring
Fiat currency code for monetary figures (default USD).
limitinteger
Rows, 1-100 (default 10).
offsetinteger
Pagination offset (default 0).
sourcestring
Venue slug, as in pm_data_events rows.one of polymarket · kalshi · rothera · limitless · smarkets · manifold
pm_data_surprisesFree 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 (t7...5 params

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 (t7...

Parameters* required
fiatstring
Fiat currency code for monetary figures (default USD).
limitinteger
Rows, 1-100 (default 10).
offsetinteger
Pagination offset (default 0).
sourcestring
Venue slug, as in pm_data_events rows.one of polymarket · kalshi · rothera · limitless · smarkets · manifold
windowstring
Resolved within this window (default all).one of 7d · 30d · 90d · all
get_crypto_moversFree 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 (...2 params

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 (...

Parameters* required
directionstring
Scan direction (default gainers).one of gainers · losers
limitinteger
Rows to return, 1-100 (default 20).
instrument_marketsFree 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...6 params

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...

Parameters* required
detailstring
summary (default) or the untouched record with venue outcome ids.one of summary · full
horizonstring
Expiry window (default all).one of hour · day · week · month · year · all
id*string
Coin slug such as bitcoin (the slug of a get_crypto_movers row, not its numeric coinId), or a ticker such as AAPL or SPX.
includeShortTermboolean
true adds up to 20 short-term up/down markets.
limitinteger
Ladders to return, 1-200 (default 10).
type*string
coin (id = coin slug), tradfi (catalog ticker), index (SPX, NDX), macro (none yet).one of coin · tradfi · index · macro
tradfi_referencesFree 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....6 params

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....

Parameters* required
assetClassstring
List only: one asset class.one of equity · etf · metal · commodity · fx
limitinteger
List only: rows, 1-250 (default 25).
maxPointsinteger
Detail only: history points, 2-1000 (default 100).
offsetinteger
List only: pagination offset (default 0).
tickerstring
Catalog ticker such as AAPL or XAU. Omit to list.
windowstring
Detail only: history window (default 24h).one of 24h · 7d
crypto_priceFree 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 (7...4 params

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 (7...

Parameters* required
candlesstring
Add bars over this range: 1H (1-minute bars), 1D, 1W, 1M, 3M or 1Y (daily).one of 1H · 1D · 1W · 1M · 3M · 1Y
fiatstring
Currency code such as EUR or JPY (default USD).
maxPointsinteger
With candles: bars to return, 2-400 (default 24).
slug*string
Coin slug such as bitcoin or tether-usdt (the slug of a get_crypto_movers row).

Sponsors

Configuration

COINRITHM_API_KEYsecret

Optional personal CoinRithm API key (crk_live_…) from Settings -> API Keys. Without it the server runs keyless data tools only; add a key (start read-only) to paper-trade.

COINRITHM_API_URL

CoinRithm API base URL. Defaults to https://api.coinrithm.com.

Readme

CoinRithm Agent Trading

npm version license CI MCP Registry Glama LightNow MCP capabilities

Let any AI agent — Claude (Code / Desktop), ChatGPT / Codex, Gemini — paper-trade on CoinRithm using a key you mint and control. Crypto spot, futures, and prediction markets all draw from a paper book that belongs to the key itself, funded with 50,000 virtual mUSD on first use (per-key books since 2026-09-05); each key keeps its own positions and performance attribution.


View the full README on GitHub

Details

Repository
github.com/coinrithm/coinrithm-agent-trading
Website
coinrithm.com/agentic-trading
Categories
AI & LLM Tools, Data & Analytics, Finance & Commerce
Package
@coinrithm/mcp-trading
Transport
STDIO, HTTP
Auth
Required
Registry
MCP registry, active
Tools verified
Nov 6, 2026

Related AI & LLM Tools MCP servers

View all
1levelsofself avatarNervous Systemlevelsofself/mcp-nervous-systemGovernance for LLM agents: 7 enforced rules + read-only reference tools. Safe in any MCP client.4stars
2varun29ankus avatarMif Toolsvarun29ankus/mif-specConvert, validate, and inspect AI agent memories across formats0stars
3jigyasudham avatarVetojigyasudham/veto93 agentic MCP tools + 49 specialist agents for every major AI CLI. Self-learning, no API keys.4stars
4jmcentire avatarsignet-evaljmcentire/signet-evalDeterministic policy enforcement and MCP management for AI agent tool calls.4stars
5joinwell52-ai avatarFcopjoinwell52-ai/fcopFCoP Core adapter with 25 canonical tools and 6 read-only resources for durable agent work.4stars
6penfieldlabs avatarPenfield Memorypenfieldlabs/penfield-mcpPersistent memory and knowledge graphs for AI agents. Hybrid search, context checkpoints, and more.4stars