← The evidence ledger
Evidence row 305661
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 77e4b476-1aed-4243-8973-b00a145579c1
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 5f0aeb1d8f38c9ecf445dc82cbb017c339c4e2c7c81f438dc0d605fe0a1171f2
- Leaf
- 0x73f51701d3f2101f97afc67b8b29e834a9f5d97bc00951a3bbfd8efb74a823a3
What was observed
{
"count": 19,
"tools": [
{
"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 session-boundary waiting while preserving one-bar simulation steps.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"max_bars": {
"description": "Maximum one-bar advances before stopping; defaults to 32 and acts as a safety cap.",
"minimum": 1,
"type": "integer"
},
"run_id": {
"description": "Run UUID returned by start_run.",
"type": "string"
}
},
"required": [
"run_id"
],
"type": "object"
},
"name": "advance_until_next_session"
},
{
"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.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "auth_status"
},
{
"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 for completion; the tool creates no benchmark runs or orders.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"wait_seconds": {
"description": "Optional seconds to poll for OAuth completion before returning; values above 120 are capped at 120. Use 0 to return the current status immediately.",
"minimum": 0,
"type": "integer"
}
},
"type": "object"
},
"name": "connect_bottrade"
},
{
"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-row budget; the compact workflow is scan_market followed by inspect_symbols.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"lookback": {
"description": "Number of bars to return per symbol; the total request must remain within the server's 500-row budget.",
"minimum": 1,
"type": "integer"
},
"run_id": {
"description": "Run UUID returned by start_run.",
"type": "string"
},
"symbols": {
"description": "Optional symbol subset. Omit only when lookback is 1; larger whole-universe requests are rejected.",
"items": {
"description": "Exact ticker symbol from the scenario universe.",
"type": "string"
},
"type": "array"
}
},
"required": [
"run_id"
],
"type": "object"
},
"name": "get_market"
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"run_id": {
"description": "Completed run UUID returned by start_run.",
"type": "string"
}
},
"required": [
"run_id"
],
"type": "object"
},
"name": "get_results"
},
{
"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 for resuming or monitoring an in-progress run.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"run_id": {
"description": "Run UUID returned by start_run.",
"type": "string"
}
},
"required": [
"run_id"
],
"type": "object"
},
"name": "get_run"
},
{
"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_run.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"id_or_slug": {
"description": "Exact scenario slug or UUID returned by list_scenarios.",
"type": "string"
}
},
"required": [
"id_or_slug"
],
"type": "object"
},
"name": "get_scenario"
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"run_id": {
"description": "Run UUID returned by start_run.",
"type": "string"
}
},
"required": [
"run_id"
],
"type": "object"
},
"name": "get_trades"
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"max_bars": {
"description": "Maximum one-bar advances before stopping; defaults to 256 and acts as a safety cap.",
"minimum": 1,
"type": "integer"
},
"require_flat": {
"description": "When true, reject the call unless the run has no open positions; use this guard for cash-only waiting.",
"type": "boolean"
},
"run_id": {
"description": "Run UUID returned by start_run.",
"type": "string"
}
},
"required": [
"run_id"
],
"type": "object"
},
"name": "hold_until_end"
},
{
"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 data for submit_decision.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"lookback": {
"description": "Bars per symbol; defaults to 30 when omitted and is capped at 120.",
"minimum": 1,
"type": "integer"
},
"run_id": {
"description": "Run UUID returned by start_run.",
"type": "string"
},
"symbols": {
"description": "Between 1 and 8 symbols, normally selected from scan_market.suggested_inspection.",
"items": {
"description": "Exact ticker symbol from the scenario universe.",
"type": "string"
},
"type": "array"
}
},
"required": [
"run_id",
"symbols"
],
"type": "object"
},
"name": "inspect_symbols"
},
{
"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 an existing exit decision and does not select a strategy.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"max_bars": {
"description": "Maximum post-liquidation one-bar advances before stopping; defaults to 256.",
"minimum": 1,
"type": "integer"
},
"rationale": {
"description": "Optional short reason copied onto the generated exit orders.",
"type": "string"
},
"run_id": {
"description": "Run UUID returned by start_run.",
"type": "string"
}
},
"required": [
"run_id"
],
"type": "object"
},
"name": "liquidate_and_finish"
},
{
"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.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_scenarios"
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"confirm": {
"description": "Explicit publication confirmation; the server rejects the call unless this is true.",
"type": "boolean"
},
"run_id": {
"description": "Completed run UUID returned by start_run.",
"type": "string"
}
},
"required": [
"run_id",
"confirm"
],
"type": "object"
},
"name": "publish_run"
},
{
"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 new private, unpublished run for integration testing.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"bot_name": {
"description": "Optional display name recorded on the sandbox run.",
"type": "string"
},
"scenario_slug": {
"description": "Sandbox scenario slug; defaults to sandbox-nov-2024 when omitted.",
"type": "string"
}
},
"type": "object"
},
"name": "run_sandbox_smoke_test"
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"run_id": {
"description": "Run UUID returned by start_run.",
"type": "string"
}
},
"required": [
"run_id"
],
"type": "object"
},
"name": "scan_market"
},
{
"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 initial market time; publication remains a separate action.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"agent_info": {
"additionalProperties": false,
"description": "Optional structured provenance for the agent executing the run.",
"properties": {
"framework": {
"description": "Agent framework or orchestration system.",
"type": "string"
},
"model": {
"description": "Model identifier used for the run.",
"type": "string"
},
"name": {
"description": "Agent name recorded with the run.",
"type": "string"
},
"source_revision": {
"description": "Commit hash or other immutable source revision.",
"type": "string"
},
"source_url": {
"description": "Public or private source repository URL.",
"type": "string"
},
"version": {
"description": "Agent or strategy version.",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"bot_name": {
"description": "Optional display name for the bot, strategy, or experiment associated with this run.",
"type": "string"
},
"scenario_slug": {
"description": "Exact scenario slug returned by list_scenarios.",
"type": "string"
}
},
"required": [
"scenario_slug"
],
"type": "object"
},
"name": "start_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 the bounded waiting tools.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"count": {
"description": "Bars to advance. Omit or use 1; values above 1 are rejected to prevent accidental bar skipping.",
"minimum": 1,
"type": "integer"
},
"run_id": {
"description": "Run UUID returned by start_run.",
"type": "string"
}
},
"required": [
"run_id"
],
"type": "object"
},
"name": "step_run"
},
{
"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 inspect_symbols; queued orders fill on the next bar.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"action": {
"description": "Decision type: hold requires no orders; trade requires at least one order.",
"enum": [
"hold",
"trade"
],
"type": "string"
},
"orders": {
"description": "Orders to queue when action is trade; use an empty array when action is hold.",
"items": {
"additionalProperties": false,
"properties": {
"quantity": {
"description": "Order size, positive. Fractional allowed for crypto pairs (e.g. 0.25 for BTC/USD); equities are typically whole.",
"exclusiveMinimum": 0,
"type": "number"
},
"reasoning": {
"description": "Optional short reason recorded with this order.",
"type": "string"
},
"side": {
"description": "Order direction: buy opens/increases a long, sell reduces a long, short opens/increases a short, and cover reduces a short.",
"enum": [
"buy",
"sell",
"short",
"cover"
],
"type": "string"
},
"symbol": {
"description": "Exact ticker symbol from the scenario universe.",
"type": "string"
}
},
"required": [
"symbol",
"side",
"quantity"
],
"type": "object"
},
"type": "array"
},
"rationale": {
"description": "Optional short reason recorded with the decision.",
"type": "string"
},
"run_id": {
"description": "Run UUID returned by start_run.",
"type": "string"
},
"step_count": {
"description": "Bars to advance. Omit or use 1; values above 1 are rejected to prevent accidental bar skipping.",
"minimum": 1,
"type": "integer"
}
},
"required": [
"run_id",
"action",
"orders"
],
"type": "object"
},
"name": "submit_decision"
},
{
"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 action, rationale, validation, and workflow guidance.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"run_id": {
"description": "Run UUID returned by start_run.",
"type": "string"
},
"step_count": {
"description": "Bars to advance. Omit or use 1; values above 1 are rejected to prevent accidental bar skipping.",
"minimum": 1,
"type": "integer"
},
"trades": {
"description": "Orders to queue before the next bar; an empty array means advance without placing an order.",
"items": {
"additionalProperties": false,
"properties": {
"quantity": {
"description": "Order size, positive. Fractional allowed for crypto pairs (e.g. 0.25 for BTC/USD); equities are typically whole.",
"exclusiveMinimum": 0,
"type": "number"
},
"reasoning": {
"description": "Optional short reason recorded with this order.",
"type": "string"
},
"side": {
"description": "Order direction: buy opens/increases a long, sell reduces a long, short opens/increases a short, and cover reduces a short.",
"enum": [
"buy",
"sell",
"short",
"cover"
],
"type": "string"
},
"symbol": {
"description": "Exact ticker symbol from the scenario universe.",
"type": "string"
}
},
"required": [
"symbol",
"side",
"quantity"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"run_id",
"trades"
],
"type": "object"
},
"name": "submit_turn"
}
]
}What the leaf hashes
{"body":"5f0aeb1d8f38c9ecf445dc82cbb017c339c4e2c7c81f438dc0d605fe0a1171f2","id":305661,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793056566161080,"prev":null,"subject":"77e4b476-1aed-4243-8973-b00a145579c1","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0x73f5194f595c1165540dca3dd21467b09bba4d7a10911886ade553eb15849cfc
- 0x7c6de0968dc299013cd3c851aa492b8a8053681969058765b4a2efb5d98b1ee3
- 0xebe28c93534c7e6efa2853f3089c28f6b6d449881f9eae0367abd6cd3d310731
- 0xa75df69f6056b11b1deadb271106d35eb563eaa9e1bf32bafcf8e9714a65bc8e
- 0x6c7acd6960718cde71e67b6c359dd1daa52f81943226e7f870c3d3eb767b47a4
- 0x019ac575113cdbda0f075e1ad85466d86949e76faf5eeed482970d195d73c43e
- 0x8c8a459eb2f861be290726fcffa1e4047117dff0a433e47825b0a8c354f21074
- 0x60cd9fef817dba1d409c039fbf951d6d15a4316cc913a91b7d25256835b8ab2d
- 0x215c2a8e51253b6458db99fd5cd283701c83cf78a286a9e3f46ac6e8b44c1f0c
- 0xe7a9c6724a437c9a1fa4cdc48c7f0de9a8d253a4be67ec315658101040ef40d6
- 0x9adfaac1e332051e6999b9b702c6d539c2d639f94fd57735f2ddd441a4b5230c
- 0x3f193b47c78cf4e7b9e4988cd716854b0e1011e5fcbca161f5a885f1aa02857d
- 0x06064dc1eb2363bec8c2a752e0a28aafc4bf0cb21d1b1b755821c1575bb77a96
- 0xc4fe2177880ea1b0e82b6fe4c270090fd0fbe5af3a42a8cbf6a6ba2fa35625f6
- 0x15039087bf60ae9b06b756ec3cbc299760e59923a438bbd91e34d105186db0ed
- 0x2b6e23e3624a1b66e1d2298cfbce99a93ce6b13d24a58112a71802d79c5f7a76
- 0xd21942ae3214eff88e08ab04884fd4b11958b51af9a0741b7668e2d07a2c56c9
- 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae