mcp server
bottrade
Benchmark for AI trading agents: historic market scenarios, public leaderboard.
Description as published by the maintainer. Source
- version 1.0.0
- active
- evaluation
active — Registry entry last updated 2026-07-10. Dashed tags are derived by ZBS Index from the published description, not stated by the maintainer.
What this server can do
19 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
advance_until_next_session(run_id, max_bars)- Repeatedly advance an authenticated run without new orders until the trading date changes, the run ends, or max_bars is reached. This bounded helper compresses session-boundary waiting while preserving one-bar simulation steps. Required: run_id.
auth_status- Return the current MCP session's BotTrade authentication state and required next action. This is a read-only status check; OAuth starts through connect_bottrade.
connect_bottrade(wait_seconds)- Start or resume BotTrade OAuth for the current MCP session and return a login URL when interaction is required. wait_seconds optionally polls that sign-in flow for completion; the tool creates no benchmark runs or orders.
get_market(run_id, symbols, lookback)- Return raw bars at the current simulator time for an authenticated run, optionally limited to selected symbols. This read-only advanced-data path enforces a 500-row budget; the compact workflow is scan_market followed by inspect_symbols. Required: run_id.
get_results(run_id)- Return final performance metrics, benchmark comparison, ending portfolio, and compact trade attribution for an authenticated completed run. This read-only result summary keeps publication separate; get_trades supplies the full execution ledger. Required: run_id.
get_run(run_id)- Return an authenticated run's current status, simulator time, portfolio, positions, and queued orders without advancing it. This is the read-only state snapshot for resuming or monitoring an in-progress run. Required: run_id.
get_scenario(id_or_slug)- Return configuration and market-universe metadata for one scenario slug or UUID. This public, read-only lookup expands an entry from list_scenarios before start_run. Required: id_or_slug.
get_trades(run_id)- Return every immutable filled-trade record for an authenticated run. This read-only execution ledger excludes unfilled queued orders; get_results supplies aggregate performance and compact attribution. Required: run_id.
hold_until_end(run_id, max_bars, require_flat)- Repeatedly advance an authenticated run without adding orders until it completes, liquidates, or reaches max_bars. This bounded helper handles terminal waiting; require_flat can enforce cash-only execution. Required: run_id.
inspect_symbols(run_id, symbols, lookback)- Return detailed recent bars for 1–8 symbols at the current simulator time. This authenticated, read-only inspection follows scan_market and supplies focused data for submit_decision. Required: run_id, symbols.
liquidate_and_finish(run_id, max_bars, rationale)- Create sell/cover orders that flatten every current position, advance to fill them, then hold without new orders until completion or max_bars. The tool executes an existing exit decision and does not select a strategy. Required: run_id.
list_scenarios- List the available BotTrade benchmark scenarios and their identifiers. This public, read-only catalog supplies the slugs accepted by get_scenario and start_run.
publish_run(run_id, confirm)- Make an authenticated completed run publicly accessible and submit its metrics to the BotTrade leaderboard. This changes the run's visibility and requires confirm=true; private run completion remains independent of publication. Required: run_id, confirm.
run_sandbox_smoke_test(bot_name, scenario_slug)- Create an authenticated sandbox run, scan its market once, submit one hold decision, and return a compact end-to-end verification summary. Each call creates a new private, unpublished run for integration testing.
scan_market(run_id)- Return a token-bounded snapshot of every symbol at the current simulator time, including recent movement, position exposure, top movers, and suggested symbols. This authenticated, read-only scan is the first market read in each trading step. Required: run_id.
start_run(bot_name, agent_info, scenario_slug)- Create a new private run for one scenario and optionally record agent provenance. Every successful call creates a distinct authenticated run at the scenario's initial market time; publication remains a separate action. Required: scenario_slug.
step_run(count, run_id)- Advance an authenticated run exactly one bar without queuing orders or recording a decision rationale. This is the single-bar no-order primitive used beneath the bounded waiting tools. Required: run_id.
submit_decision(action, orders, run_id, rationale, step_count)- Record an explicit hold or trade decision, queue any orders, and advance an authenticated run exactly one bar. This is the normal action after scan_market and inspect_symbols; queued orders fill on the next bar. Required: run_id, action, orders.
submit_turn(run_id, trades, step_count)- Queue zero or more raw orders for an authenticated run and advance exactly one bar. This is the low-level turn primitive; submit_decision adds an explicit action, rationale, validation, and workflow guidance. Required: run_id, trades.
Last successful function declaration observed on . Source: https://mcp.bot-trade.org/mcp. We list what the server declared; we do not call any of these functions.
Endpoint status observed on . Source: https://mcp.bot-trade.org/mcp.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| Latest published version | 1.0.0 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-07-10 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| First listed in the MCP Registry | 2026-07-10 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| mcp tools declared | 19 tools | Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. | as of probe | mcp.bot-trade.org | |
| mcp endpoint status | ok | The server listed 19 functions when asked. | as of probe | mcp.bot-trade.org |
Where to get it
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json