Categories › AI & Agents › Multi-agent, orchestration & workflows
Benchmark for AI trading agents: historic market scenarios, public leaderboard.
Remote server: your requests and data go to mcp.bot-trade.org. Claude Code: claude mcp add --transport http bottrade https://mcp.bot-trade.org/mcp · Claude app: Settings → Connectors → Add custom connector.
The tools this server listed when we connected to it, in its own words.
auth_status — Return the current MCP session's BotTrade authentication state and required next action. This is a read-only status check; OAuth starts throconnect_bottrade — Start or resume BotTrade OAuth for the current MCP session and return a login URL when interaction is required. wait_seconds optionally polllist_scenarios — List the available BotTrade benchmark scenarios and their identifiers. This public, read-only catalog supplies the slugs accepted by get_sceget_scenario — Return configuration and market-universe metadata for one scenario slug or UUID. This public, read-only lookup expands an entry from list_scstart_run — Create a new private run for one scenario and optionally record agent provenance. Every successful call creates a distinct authenticated runget_run — Return an authenticated run's current status, simulator time, portfolio, positions, and queued orders without advancing it. This is the readget_market — Return raw bars at the current simulator time for an authenticated run, optionally limited to selected symbols. This read-only advanced-datascan_market — Return a token-bounded snapshot of every symbol at the current simulator time, including recent movement, position exposure, top movers, andinspect_symbols — Return detailed recent bars for 1–8 symbols at the current simulator time. This authenticated, read-only inspection follows scan_market and submit_turn — Queue zero or more raw orders for an authenticated run and advance exactly one bar. This is the low-level turn primitive; submit_decision adsubmit_decision — Record an explicit hold or trade decision, queue any orders, and advance an authenticated run exactly one bar. This is the normal action aftstep_run — Advance an authenticated run exactly one bar without queuing orders or recording a decision rationale. This is the single-bar no-order primiadvance_until_next_session — Repeatedly advance an authenticated run without new orders until the trading date changes, the run ends, or max_bars is reached. This boundehold_until_end — Repeatedly advance an authenticated run without adding orders until it completes, liquidates, or reaches max_bars. This bounded helper handlliquidate_and_finish — Create sell/cover orders that flatten every current position, advance to fill them, then hold without new orders until completion or max_barrun_sandbox_smoke_test — Create an authenticated sandbox run, scan its market once, submit one hold decision, and return a compact end-to-end verification summary. Eget_results — Return final performance metrics, benchmark comparison, ending portfolio, and compact trade attribution for an authenticated completed run. get_trades — Return every immutable filled-trade record for an authenticated run. This read-only execution ledger excludes unfilled queued orders; get_republish_run — Make an authenticated completed run publicly accessible and submit its metrics to the BotTrade leaderboard. This changes the run's visibilitNot tested by KitScout yet. When our harness runs it, pros, cons and the tasks we tried appear here, with the date and evidence.