{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_bmtt35mp4j22","handle":"emidlabs-backtest","url":"https://wellknown.network/agents/emidlabs-backtest","links":{"self":"https://wellknown.network/agents/emidlabs-backtest/record.json","html":"https://wellknown.network/agents/emidlabs-backtest","markdown":"https://wellknown.network/agents/emidlabs-backtest/record.md","api":"https://wellknown.network/api/v1/agents/emidlabs-backtest","status":"https://wellknown.network/api/v1/agents/emidlabs-backtest/status","claim":"https://wellknown.network/agents/emidlabs-backtest/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/emidlabs-backtest/claim.json","badge":"https://wellknown.network/agents/emidlabs-backtest/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:mcp.backtest.emidlabs.com:server:emidlabs-backtest","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"EmidLabs Backtest","summary":"Run crypto trading strategy backtests through EmidLabs's Backtesting API.","description":"Run crypto trading strategy backtests through EmidLabs's Backtesting API.","publisher":{"name":"emidlabs","url":null},"homepage":"https://emidlabs.com","repository":"https://github.com/emidlabs/emidlabs-backtest-mcp","version":"0.1.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.backtest.emidlabs.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-07-27T14:49:09.566733Z","publishedAt":"2026-07-27T14:49:09.566733Z","registryName":"io.github.emidlabs/backtest-mcp"},"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":"finance.markets","name":"Markets & Trading","confidence":0.791,"provenance":"derived"}],"categories":["finance"]},"observed":{"status":"unknown","statusReason":"Not checked yet.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[{"at":"2026-09-07T04:27:30.498Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":214,"error":null,"detail":{"tools":[{"name":"submit_confirmation_source","description":"Runs a strategy against historical data purely to produce a signal timeline used to confirm OTHER backtests — not a backtest itself. Walks the same candles and "},{"name":"list_available_assets","description":"Lists every asset pair with real historical data, each with its supported timeframes and the date range actually available. Optional to call — submit_backtest a"},{"name":"submit_backtest_batch","description":"Submits ONE strategy against MANY asset pairs in a single call — the same backtest you'd get from calling submit_backtest once per asset, without needing dozens"},{"name":"get_backtest_batch_results","description":"Fetches every asset's outcome from a submit_backtest_batch call, paginated. By default (waitForCompletion: true) polls internally until every item in the batch "},{"name":"get_backtest_trades","description":"Fetches the closed-trade list for a completed backtest, paginated and sortable — the trade-by-trade detail get_backtest_result deliberately omits. Only closed t"},{"name":"get_backtest_result","description":"Fetches a submitted backtest by id. By default (waitForCompletion: true) polls internally until it finishes, so one call returns one final answer — no need to p"},{"name":"submit_backtest","description":"Submits a strategy for backtesting against historical OHLCV data. Returns immediately with an id and status — call get_backtest_result to fetch the outcome once"},{"name":"get_confirmation_source","description":"Fetches a submitted confirmation source by id. By default (waitForCompletion: true) polls internally until it finishes, so one call returns one final answer. No"},{"name":"get_confirmation_source_signals","description":"Fetches a completed confirmation source's raw signal timeline, paginated — the actual data a backtest's confirmationSources requirement is checked against. Can "}],"toolCount":9,"serverName":"emidlabs-backtest-mcp","capabilities":["logging","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-06T21:26:30.248Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":332,"error":null,"detail":{"tools":[{"name":"submit_confirmation_source","description":"Runs a strategy against historical data purely to produce a signal timeline used to confirm OTHER backtests — not a backtest itself. Walks the same candles and "},{"name":"list_available_assets","description":"Lists every asset pair with real historical data, each with its supported timeframes and the date range actually available. Optional to call — submit_backtest a"},{"name":"submit_backtest_batch","description":"Submits ONE strategy against MANY asset pairs in a single call — the same backtest you'd get from calling submit_backtest once per asset, without needing dozens"},{"name":"get_backtest_batch_results","description":"Fetches every asset's outcome from a submit_backtest_batch call, paginated. By default (waitForCompletion: true) polls internally until every item in the batch "},{"name":"get_backtest_trades","description":"Fetches the closed-trade list for a completed backtest, paginated and sortable — the trade-by-trade detail get_backtest_result deliberately omits. Only closed t"},{"name":"get_backtest_result","description":"Fetches a submitted backtest by id. By default (waitForCompletion: true) polls internally until it finishes, so one call returns one final answer — no need to p"},{"name":"submit_backtest","description":"Submits a strategy for backtesting against historical OHLCV data. Returns immediately with an id and status — call get_backtest_result to fetch the outcome once"},{"name":"get_confirmation_source","description":"Fetches a submitted confirmation source by id. By default (waitForCompletion: true) polls internally until it finishes, so one call returns one final answer. No"},{"name":"get_confirmation_source_signals","description":"Fetches a completed confirmation source's raw signal timeline, paginated — the actual data a backtest's confirmationSources requirement is checked against. Can "}],"toolCount":9,"serverName":"emidlabs-backtest-mcp","capabilities":["logging","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-06T14:22:46.168Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":208,"error":null,"detail":{"tools":[{"name":"submit_confirmation_source","description":"Runs a strategy against historical data purely to produce a signal timeline used to confirm OTHER backtests — not a backtest itself. Walks the same candles and "},{"name":"list_available_assets","description":"Lists every asset pair with real historical data, each with its supported timeframes and the date range actually available. Optional to call — submit_backtest a"},{"name":"submit_backtest_batch","description":"Submits ONE strategy against MANY asset pairs in a single call — the same backtest you'd get from calling submit_backtest once per asset, without needing dozens"},{"name":"get_backtest_batch_results","description":"Fetches every asset's outcome from a submit_backtest_batch call, paginated. By default (waitForCompletion: true) polls internally until every item in the batch "},{"name":"get_backtest_trades","description":"Fetches the closed-trade list for a completed backtest, paginated and sortable — the trade-by-trade detail get_backtest_result deliberately omits. Only closed t"},{"name":"get_backtest_result","description":"Fetches a submitted backtest by id. By default (waitForCompletion: true) polls internally until it finishes, so one call returns one final answer — no need to p"},{"name":"submit_backtest","description":"Submits a strategy for backtesting against historical OHLCV data. Returns immediately with an id and status — call get_backtest_result to fetch the outcome once"},{"name":"get_confirmation_source","description":"Fetches a submitted confirmation source by id. By default (waitForCompletion: true) polls internally until it finishes, so one call returns one final answer. No"},{"name":"get_confirmation_source_signals","description":"Fetches a completed confirmation source's raw signal timeline, paginated — the actual data a backtest's confirmationSources requirement is checked against. Can "}],"toolCount":9,"serverName":"emidlabs-backtest-mcp","capabilities":["logging","resources","tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"submit_confirmation_source","description":"Runs a strategy against historical data purely to produce a signal timeline used to confirm OTHER backtests — not a backtest itself. Walks the same candles and "},{"name":"list_available_assets","description":"Lists every asset pair with real historical data, each with its supported timeframes and the date range actually available. Optional to call — submit_backtest a"},{"name":"submit_backtest_batch","description":"Submits ONE strategy against MANY asset pairs in a single call — the same backtest you'd get from calling submit_backtest once per asset, without needing dozens"},{"name":"get_backtest_batch_results","description":"Fetches every asset's outcome from a submit_backtest_batch call, paginated. By default (waitForCompletion: true) polls internally until every item in the batch "},{"name":"get_backtest_trades","description":"Fetches the closed-trade list for a completed backtest, paginated and sortable — the trade-by-trade detail get_backtest_result deliberately omits. Only closed t"},{"name":"get_backtest_result","description":"Fetches a submitted backtest by id. By default (waitForCompletion: true) polls internally until it finishes, so one call returns one final answer — no need to p"},{"name":"submit_backtest","description":"Submits a strategy for backtesting against historical OHLCV data. Returns immediately with an id and status — call get_backtest_result to fetch the outcome once"},{"name":"get_confirmation_source","description":"Fetches a submitted confirmation source by id. By default (waitForCompletion: true) polls internally until it finishes, so one call returns one final answer. No"},{"name":"get_confirmation_source_signals","description":"Fetches a completed confirmation source's raw signal timeline, paginated — the actual data a backtest's confirmationSources requirement is checked against. Can "}],"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.emidlabs/backtest-mcp","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.emidlabs%2Fbacktest-mcp","firstSeenAt":"2026-09-06T14:17:53.963Z","fetchedAt":"2026-09-06T14:17:53.963Z","normalizedAt":"2026-09-06T14:17:53.963Z"}]},"firstSeenAt":"2026-09-06T14:17:53.963Z","updatedAt":"2026-09-06T14:18:00.054Z"}