EmidLabs Backtest is a remote MCP server that gives an AI agent 9 tools, among them get_backtest_batch_results, get_backtest_result, get_backtest_trades. It answers at https://mcp.backtest.emidlabs.com/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 11 September 2026; the last check, on 22 October 2026, succeeded.
Run crypto trading strategy backtests through EmidLabs's Backtesting API.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
get_backtest_batch_results | Fetches every asset's outcome from a submit_backtest_batch call, paginated. By default (waitForCompletion: true) polls internally until every item in the batch is done — a cheap check, not one that pages through everything — so one call ret Inputs: batchId, page, pageSize, waitForCompletion, pollTimeoutMs, backtestApiKey |
get_backtest_result | 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 poll from the caller's side. Only aggregate metrics are returned here, no trade-b Inputs: id, backtestApiKey, waitForCompletion, pollTimeoutMs, backtestBaseUrl |
get_backtest_trades | Fetches the closed-trade list for a completed backtest, paginated and sortable — the trade-by-trade detail get_backtest_result deliberately omits. Only closed trades ever appear; a position still open when the backtest's date range ends isn Inputs: id, page, pageSize, sortBy, sortDirection, backtestApiKey |
get_confirmation_source | Fetches a submitted confirmation source by id. By default (waitForCompletion: true) polls internally until it finishes, so one call returns one final answer. No trade-outcome fields here at all (no PnlR/WinRate/...) — a confirmation source Inputs: id, backtestApiKey, waitForCompletion, pollTimeoutMs, backtestBaseUrl |
get_confirmation_source_signals | Fetches a completed confirmation source's raw signal timeline, paginated — the actual data a backtest's confirmationSources requirement is checked against. Can easily run into the thousands for a frequent condition over a long range (every Inputs: id, page, pageSize, backtestApiKey, backtestBaseUrl |
list_available_assets | Lists every asset pair with real historical data, each with its supported timeframes and the date range actually available. Optional to call — submit_backtest already returns a clear error (with the real available range) when an asset or da Inputs: backtestApiKey, backtestBaseUrl |
submit_backtest | 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 it finishes. Testing the same strategy against many assets? Use submit_backtest |
submit_backtest_batch | 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 of round trips. Returns immediately with a batchId (pass it to get_backtest_bat Inputs: assetPairs, initialDate, finalDate, strategySnapshotJson, confirmationSources, backtestApiKey |
submit_confirmation_source | 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 evaluates the same DSL as submit_backtest, but never simulates a position: no tr Inputs: assetPair, initialDate, finalDate, strategySnapshotJson, backtestApiKey, backtestBaseUrl |
Every block below points at https://mcp.backtest.emidlabs.com/mcp. Pick your client and copy.
claude mcp add --transport http emidlabs-backtest https://mcp.backtest.emidlabs.com/mcp
{
"mcpServers": {
"emidlabs-backtest": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.backtest.emidlabs.com/mcp"]
}
}
}{
"mcpServers": {
"emidlabs-backtest": {
"url": "https://mcp.backtest.emidlabs.com/mcp"
}
}
}{
"servers": {
"emidlabs-backtest": {
"type": "http",
"url": "https://mcp.backtest.emidlabs.com/mcp"
}
}
}{
"context_servers": {
"emidlabs-backtest": {
"url": "https://mcp.backtest.emidlabs.com/mcp"
}
}
}{
"mcpServers": {
"emidlabs-backtest": {
"serverUrl": "https://mcp.backtest.emidlabs.com/mcp"
}
}
}{
"mcpServers": {
"emidlabs-backtest": {
"url": "https://mcp.backtest.emidlabs.com/mcp"
}
}
}name: EmidLabs Backtest
version: 0.0.1
schema: v1
mcpServers:
- name: EmidLabs Backtest
type: streamable-http
url: https://mcp.backtest.emidlabs.com/mcp{
"mcpServers": {
"emidlabs-backtest": {
"httpUrl": "https://mcp.backtest.emidlabs.com/mcp"
}
}
}{
"mcpServers": {
"emidlabs-backtest": {
"type": "http",
"url": "https://mcp.backtest.emidlabs.com/mcp"
}
}
}{
"mcpServers": {
"emidlabs-backtest": {
"url": "https://mcp.backtest.emidlabs.com/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fmcp.backtest.emidlabs.com%2Fmcp&type=streamable_http&id=emidlabs-backtest&name=EmidLabs%20Backtest
It answered our last check on 22 October 2026 in 690 ms. Over 6 checks since 11 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
9, as returned by the server's own tools/list on 14 September 2026: get_backtest_batch_results, get_backtest_result, get_backtest_trades, get_confirmation_source, get_confirmation_source_signals, list_available_assets, submit_backtest, submit_backtest_batch, and 1 more.
It answered our last check on 22 October 2026 in 690 ms. Over 6 checks since 11 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://mcp.backtest.emidlabs.com/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: io.github.emidlabs. Endpoint host: mcp.backtest.emidlabs.com. ARD identifier: urn:air:io.github.emidlabs:mcp:backtest-mcp.
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.