EmidLabs Backtest
by backtest.emidlabs.com in Onchain & crypto
Run crypto trading strategy backtests through EmidLabs's Backtesting API.
https://mcp.backtest.emidlabs.com/mcp
Last 30 days
Status and outage history · Atom feed
- Uptime
- 87.5%
- Response time
- 714 ms typical, 785 ms slowest 5%
- Last check
- 6 h ago
- Next check
- any minute now
How to call it
Add it to any MCP client that supports remote servers.
{
"mcpServers": {
"emidlabs-backtest": {
"type": "http",
"url": "https://mcp.backtest.emidlabs.com/mcp"
}
}
}9 tools
- 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 trade, no PnL, no WinRate/drawdown, none o
- 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 date range doesn't have data, so this is f
- 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_batch_results to fetch every asset's outcom
- 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 returns the finished page. Each item has th
- 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't represented here or anywhere else. Ex
- 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-by-trade detail — call get_backtest_trade
- 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_batch instead — one call per asset here
- 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 never opens a position. Once Completed,
- 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 candle-condition match is a row, not jus
Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time |
|---|---|---|---|
| 6 h ago | Passed | 200 | 714 ms |
| 15 h ago | Passed | 200 | 785 ms |
| 25 h ago | Passed | 200 | 697 ms |
| 34 h ago | Passed | 200 | 679 ms |
| 43 h ago | Passed | 200 | 717 ms |
| 2 days ago | Passed | 200 | 791 ms |
| 3 days ago | Passed | 200 | 693 ms |
| 3 days ago | Timed out | - | - |