{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_dyvwf66peqru","handle":"bottrade","url":"https://wellknown.network/agents/bottrade","links":{"self":"https://wellknown.network/agents/bottrade/record.json","html":"https://wellknown.network/agents/bottrade","markdown":"https://wellknown.network/agents/bottrade/record.md","api":"https://wellknown.network/api/v1/agents/bottrade","status":"https://wellknown.network/api/v1/agents/bottrade/status","claim":"https://wellknown.network/agents/bottrade/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/bottrade/claim.json","badge":"https://wellknown.network/agents/bottrade/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:mcp.bot-trade.org:server:bottrade","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"bottrade","summary":"Benchmark for AI trading agents: historic market scenarios, public leaderboard.","description":"Benchmark for AI trading agents: historic market scenarios, public leaderboard.","publisher":{"name":"org.bot-trade","url":null},"homepage":"https://bot-trade.org","repository":"https://github.com/jyron/tradershub","version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.bot-trade.org/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-07-10T21:04:54.497952Z","publishedAt":"2026-07-10T21:04:54.497952Z","registryName":"org.bot-trade/bottrade"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":1,"provenance":"derived"},{"slug":"finance.markets","name":"Markets & Trading","confidence":1,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":1,"provenance":"derived"},{"slug":"ai.evaluation","name":"Evaluation & Benchmarks","confidence":0.964,"provenance":"derived"},{"slug":"dev.terminal","name":"Terminal & Shell","confidence":0.525,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"},{"slug":"code.execution","name":"Code Execution","confidence":0.51,"provenance":"derived"}],"categories":["ai","code","commerce","content","dev","finance","security"]},"observed":{"status":"live","statusReason":"Responded 49m ago.","lastOkAt":"2026-09-08T14:24:16.996Z","lastProbedAt":"2026-09-08T14:24:16.996Z","statusComputedAt":"2026-09-08T14:32:39.021Z","reliability30d":{"probes":3,"successRate":1,"p50Ms":158},"latestObservations":[{"at":"2026-09-08T14:24:16.996Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":456,"error":null,"detail":{"tools":[{"name":"auth_status","description":"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"},{"name":"connect_bottrade","description":"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 "},{"name":"list_scenarios","description":"List the available BotTrade benchmark scenarios and their identifiers. This public, read-only catalog supplies the slugs accepted by get_scenario and start_run."},{"name":"get_scenario","description":"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"},{"name":"start_run","description":"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 i"},{"name":"get_run","description":"Return an authenticated run's current status, simulator time, portfolio, positions, and queued orders without advancing it. This is the read-only state snapshot"},{"name":"get_market","description":"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"},{"name":"scan_market","description":"Return a token-bounded snapshot of every symbol at the current simulator time, including recent movement, position exposure, top movers, and suggested symbols. "},{"name":"inspect_symbols","description":"Return detailed recent bars for 1–8 symbols at the current simulator time. This authenticated, read-only inspection follows scan_market and supplies focused dat"},{"name":"submit_turn","description":"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 actio"},{"name":"submit_decision","description":"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 i"},{"name":"step_run","description":"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 th"},{"name":"advance_until_next_session","description":"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 "},{"name":"hold_until_end","description":"Repeatedly advance an authenticated run without adding orders until it completes, liquidates, or reaches max_bars. This bounded helper handles terminal waiting;"},{"name":"liquidate_and_finish","description":"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"},{"name":"run_sandbox_smoke_test","description":"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 n"},{"name":"get_results","description":"Return final performance metrics, benchmark comparison, ending portfolio, and compact trade attribution for an authenticated completed run. This read-only resul"},{"name":"get_trades","description":"Return every immutable filled-trade record for an authenticated run. This read-only execution ledger excludes unfilled queued orders; get_results supplies aggre"},{"name":"publish_run","description":"Make an authenticated completed run publicly accessible and submit its metrics to the BotTrade leaderboard. This changes the run's visibility and requires confi"}],"toolCount":19,"serverName":"bottrade-mcp","capabilities":["prompts","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-08T07:24:01.067Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":158,"error":null,"detail":{"tools":[{"name":"auth_status","description":"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"},{"name":"connect_bottrade","description":"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 "},{"name":"list_scenarios","description":"List the available BotTrade benchmark scenarios and their identifiers. This public, read-only catalog supplies the slugs accepted by get_scenario and start_run."},{"name":"get_scenario","description":"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"},{"name":"start_run","description":"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 i"},{"name":"get_run","description":"Return an authenticated run's current status, simulator time, portfolio, positions, and queued orders without advancing it. This is the read-only state snapshot"},{"name":"get_market","description":"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"},{"name":"scan_market","description":"Return a token-bounded snapshot of every symbol at the current simulator time, including recent movement, position exposure, top movers, and suggested symbols. "},{"name":"inspect_symbols","description":"Return detailed recent bars for 1–8 symbols at the current simulator time. This authenticated, read-only inspection follows scan_market and supplies focused dat"},{"name":"submit_turn","description":"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 actio"},{"name":"submit_decision","description":"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 i"},{"name":"step_run","description":"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 th"},{"name":"advance_until_next_session","description":"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 "},{"name":"hold_until_end","description":"Repeatedly advance an authenticated run without adding orders until it completes, liquidates, or reaches max_bars. This bounded helper handles terminal waiting;"},{"name":"liquidate_and_finish","description":"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"},{"name":"run_sandbox_smoke_test","description":"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 n"},{"name":"get_results","description":"Return final performance metrics, benchmark comparison, ending portfolio, and compact trade attribution for an authenticated completed run. This read-only resul"},{"name":"get_trades","description":"Return every immutable filled-trade record for an authenticated run. This read-only execution ledger excludes unfilled queued orders; get_results supplies aggre"},{"name":"publish_run","description":"Make an authenticated completed run publicly accessible and submit its metrics to the BotTrade leaderboard. This changes the run's visibility and requires confi"}],"toolCount":19,"serverName":"bottrade-mcp","capabilities":["prompts","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-08T00:20:44.523Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":149,"error":null,"detail":{"tools":[{"name":"auth_status","description":"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"},{"name":"connect_bottrade","description":"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 "},{"name":"list_scenarios","description":"List the available BotTrade benchmark scenarios and their identifiers. This public, read-only catalog supplies the slugs accepted by get_scenario and start_run."},{"name":"get_scenario","description":"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"},{"name":"start_run","description":"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 i"},{"name":"get_run","description":"Return an authenticated run's current status, simulator time, portfolio, positions, and queued orders without advancing it. This is the read-only state snapshot"},{"name":"get_market","description":"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"},{"name":"scan_market","description":"Return a token-bounded snapshot of every symbol at the current simulator time, including recent movement, position exposure, top movers, and suggested symbols. "},{"name":"inspect_symbols","description":"Return detailed recent bars for 1–8 symbols at the current simulator time. This authenticated, read-only inspection follows scan_market and supplies focused dat"},{"name":"submit_turn","description":"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 actio"},{"name":"submit_decision","description":"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 i"},{"name":"step_run","description":"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 th"},{"name":"advance_until_next_session","description":"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 "},{"name":"hold_until_end","description":"Repeatedly advance an authenticated run without adding orders until it completes, liquidates, or reaches max_bars. This bounded helper handles terminal waiting;"},{"name":"liquidate_and_finish","description":"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"},{"name":"run_sandbox_smoke_test","description":"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 n"},{"name":"get_results","description":"Return final performance metrics, benchmark comparison, ending portfolio, and compact trade attribution for an authenticated completed run. This read-only resul"},{"name":"get_trades","description":"Return every immutable filled-trade record for an authenticated run. This read-only execution ledger excludes unfilled queued orders; get_results supplies aggre"},{"name":"publish_run","description":"Make an authenticated completed run publicly accessible and submit its metrics to the BotTrade leaderboard. This changes the run's visibility and requires confi"}],"toolCount":19,"serverName":"bottrade-mcp","capabilities":["prompts","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-07T17:21:32.547Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":180,"error":null,"detail":{"tools":[{"name":"auth_status","description":"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"},{"name":"connect_bottrade","description":"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 "},{"name":"list_scenarios","description":"List the available BotTrade benchmark scenarios and their identifiers. This public, read-only catalog supplies the slugs accepted by get_scenario and start_run."},{"name":"get_scenario","description":"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"},{"name":"start_run","description":"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 i"},{"name":"get_run","description":"Return an authenticated run's current status, simulator time, portfolio, positions, and queued orders without advancing it. This is the read-only state snapshot"},{"name":"get_market","description":"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"},{"name":"scan_market","description":"Return a token-bounded snapshot of every symbol at the current simulator time, including recent movement, position exposure, top movers, and suggested symbols. "},{"name":"inspect_symbols","description":"Return detailed recent bars for 1–8 symbols at the current simulator time. This authenticated, read-only inspection follows scan_market and supplies focused dat"},{"name":"submit_turn","description":"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 actio"},{"name":"submit_decision","description":"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 i"},{"name":"step_run","description":"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 th"},{"name":"advance_until_next_session","description":"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 "},{"name":"hold_until_end","description":"Repeatedly advance an authenticated run without adding orders until it completes, liquidates, or reaches max_bars. This bounded helper handles terminal waiting;"},{"name":"liquidate_and_finish","description":"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"},{"name":"run_sandbox_smoke_test","description":"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 n"},{"name":"get_results","description":"Return final performance metrics, benchmark comparison, ending portfolio, and compact trade attribution for an authenticated completed run. This read-only resul"},{"name":"get_trades","description":"Return every immutable filled-trade record for an authenticated run. This read-only execution ledger excludes unfilled queued orders; get_results supplies aggre"},{"name":"publish_run","description":"Make an authenticated completed run publicly accessible and submit its metrics to the BotTrade leaderboard. This changes the run's visibility and requires confi"}],"toolCount":19,"serverName":"bottrade-mcp","capabilities":["prompts","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-07T09:29:42.267Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":155,"error":null,"detail":{"tools":[{"name":"auth_status","description":"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"},{"name":"connect_bottrade","description":"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 "},{"name":"list_scenarios","description":"List the available BotTrade benchmark scenarios and their identifiers. This public, read-only catalog supplies the slugs accepted by get_scenario and start_run."},{"name":"get_scenario","description":"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"},{"name":"start_run","description":"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 i"},{"name":"get_run","description":"Return an authenticated run's current status, simulator time, portfolio, positions, and queued orders without advancing it. This is the read-only state snapshot"},{"name":"get_market","description":"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"},{"name":"scan_market","description":"Return a token-bounded snapshot of every symbol at the current simulator time, including recent movement, position exposure, top movers, and suggested symbols. "},{"name":"inspect_symbols","description":"Return detailed recent bars for 1–8 symbols at the current simulator time. This authenticated, read-only inspection follows scan_market and supplies focused dat"},{"name":"submit_turn","description":"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 actio"},{"name":"submit_decision","description":"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 i"},{"name":"step_run","description":"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 th"},{"name":"advance_until_next_session","description":"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 "},{"name":"hold_until_end","description":"Repeatedly advance an authenticated run without adding orders until it completes, liquidates, or reaches max_bars. This bounded helper handles terminal waiting;"},{"name":"liquidate_and_finish","description":"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"},{"name":"run_sandbox_smoke_test","description":"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 n"},{"name":"get_results","description":"Return final performance metrics, benchmark comparison, ending portfolio, and compact trade attribution for an authenticated completed run. This read-only resul"},{"name":"get_trades","description":"Return every immutable filled-trade record for an authenticated run. This read-only execution ledger excludes unfilled queued orders; get_results supplies aggre"},{"name":"publish_run","description":"Make an authenticated completed run publicly accessible and submit its metrics to the BotTrade leaderboard. This changes the run's visibility and requires confi"}],"toolCount":19,"serverName":"bottrade-mcp","capabilities":["prompts","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"auth_status","description":"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"},{"name":"connect_bottrade","description":"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 "},{"name":"list_scenarios","description":"List the available BotTrade benchmark scenarios and their identifiers. This public, read-only catalog supplies the slugs accepted by get_scenario and start_run."},{"name":"get_scenario","description":"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"},{"name":"start_run","description":"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 i"},{"name":"get_run","description":"Return an authenticated run's current status, simulator time, portfolio, positions, and queued orders without advancing it. This is the read-only state snapshot"},{"name":"get_market","description":"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"},{"name":"scan_market","description":"Return a token-bounded snapshot of every symbol at the current simulator time, including recent movement, position exposure, top movers, and suggested symbols. "},{"name":"inspect_symbols","description":"Return detailed recent bars for 1–8 symbols at the current simulator time. This authenticated, read-only inspection follows scan_market and supplies focused dat"},{"name":"submit_turn","description":"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 actio"},{"name":"submit_decision","description":"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 i"},{"name":"step_run","description":"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 th"},{"name":"advance_until_next_session","description":"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 "},{"name":"hold_until_end","description":"Repeatedly advance an authenticated run without adding orders until it completes, liquidates, or reaches max_bars. This bounded helper handles terminal waiting;"},{"name":"liquidate_and_finish","description":"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"},{"name":"run_sandbox_smoke_test","description":"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 n"},{"name":"get_results","description":"Return final performance metrics, benchmark comparison, ending portfolio, and compact trade attribution for an authenticated completed run. This read-only resul"},{"name":"get_trades","description":"Return every immutable filled-trade record for an authenticated run. This read-only execution ledger excludes unfilled queued orders; get_results supplies aggre"},{"name":"publish_run","description":"Make an authenticated completed run publicly accessible and submit its metrics to the BotTrade leaderboard. This changes the run's visibility and requires confi"}],"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"org.bot-trade/bottrade","url":"https://registry.modelcontextprotocol.io/v0/servers/org.bot-trade%2Fbottrade","firstSeenAt":"2026-09-07T08:20:10.574Z","fetchedAt":"2026-09-07T08:20:10.574Z","normalizedAt":"2026-09-07T08:20:10.574Z"}]},"firstSeenAt":"2026-09-07T08:20:10.574Z","updatedAt":"2026-09-08T14:32:52.386Z"}