Bottrade is a remote MCP server that gives an AI agent 19 tools, among them advance_until_next_session, auth_status, connect_bottrade. It answers at https://mcp.bot-trade.org/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 12 September 2026; the last check, on 24 October 2026, succeeded.
Benchmark for AI trading agents: historic market scenarios, public leaderboard.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
advance_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 bounded helper compresses session-boundary waiting while preserving one-bar simulation steps. Inputs: max_bars, 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 | 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. Inputs: wait_seconds |
get_market | 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. Inputs: lookback, run_id, symbols |
get_results | 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 led Inputs: run_id |
get_run | 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. Inputs: run_id |
get_scenario | 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. Inputs: id_or_slug |
get_trades | 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. Inputs: run_id |
hold_until_end | 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. Inputs: max_bars, require_flat, run_id |
inspect_symbols | 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. Inputs: lookback, run_id, symbols |
liquidate_and_finish | 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. Inputs: max_bars, rationale, 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 | 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. Inputs: confirm, run_id |
run_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. Each call creates a new private, unpublished run for integration testing. Inputs: bot_name, scenario_slug |
scan_market | 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 Inputs: run_id |
start_run | 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. Inputs: agent_info, bot_name, scenario_slug |
step_run | 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. Inputs: count, run_id |
submit_decision | 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. Inputs: action, orders, rationale, run_id, step_count |
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 adds an explicit action, rationale, validation, and workflow guidance. Inputs: run_id, step_count, trades |
Every block below points at https://mcp.bot-trade.org/mcp. Pick your client and copy.
claude mcp add --transport http bottrade https://mcp.bot-trade.org/mcp
{
"mcpServers": {
"bottrade": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.bot-trade.org/mcp"]
}
}
}{
"mcpServers": {
"bottrade": {
"url": "https://mcp.bot-trade.org/mcp"
}
}
}{
"servers": {
"bottrade": {
"type": "http",
"url": "https://mcp.bot-trade.org/mcp"
}
}
}{
"context_servers": {
"bottrade": {
"url": "https://mcp.bot-trade.org/mcp"
}
}
}{
"mcpServers": {
"bottrade": {
"serverUrl": "https://mcp.bot-trade.org/mcp"
}
}
}{
"mcpServers": {
"bottrade": {
"url": "https://mcp.bot-trade.org/mcp"
}
}
}name: Bottrade
version: 0.0.1
schema: v1
mcpServers:
- name: Bottrade
type: streamable-http
url: https://mcp.bot-trade.org/mcp{
"mcpServers": {
"bottrade": {
"httpUrl": "https://mcp.bot-trade.org/mcp"
}
}
}{
"mcpServers": {
"bottrade": {
"type": "http",
"url": "https://mcp.bot-trade.org/mcp"
}
}
}{
"mcpServers": {
"bottrade": {
"url": "https://mcp.bot-trade.org/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fmcp.bot-trade.org%2Fmcp&type=streamable_http&id=bottrade&name=Bottrade
It answered our last check on 24 October 2026 in 614 ms. Over 6 checks since 12 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by bot-trade.org and served from mcp.bot-trade.org, the vendor's own domain: https://mcp.bot-trade.org/mcp.
19, as returned by the server's own tools/list on 23 September 2026: advance_until_next_session, auth_status, connect_bottrade, get_market, get_results, get_run, get_scenario, get_trades, and 11 more.
It answered our last check on 24 October 2026 in 614 ms. Over 6 checks since 12 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://mcp.bot-trade.org/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: org.bot-trade. Endpoint host: mcp.bot-trade.org. ARD identifier: urn:air:org.bot-trade:mcp:bottrade.
First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.