Backtest360
MCP server exposing the Backtest360 engine API as tools for AI agents.
Connect it
Settings → Connectors → Add custom connector
URL: https://mcp.backtest360.com/mcpSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://mcp.backtest360.com/mcp{
"mcpServers": {
"backtest360": {
"url": "https://mcp.backtest360.com/mcp",
"headers": {
"X-API-Key": "<YOUR_X_API_KEY>"
}
}
}
}claude mcp add --transport http backtest360 https://mcp.backtest360.com/mcp --header "X-API-Key: <value>"{
"servers": {
"backtest360": {
"type": "http",
"url": "https://mcp.backtest360.com/mcp",
"headers": {
"X-API-Key": "<YOUR_X_API_KEY>"
}
}
}
}{
"mcpServers": {
"backtest360": {
"command": "uvx",
"args": [
"backtest360-mcp"
],
"env": {
"BACKTEST360_API_KEY": "<value>"
}
}
}
}claude mcp add backtest360 -- uvx backtest360-mcp20 tools, verified live
get_meThe configured API key's permissions, limits, and current usage. Cheap. Call early in a session â before planning work â to learn what this key can do instead of discovering limits through failed calls. Returns: ``scopes``: the permission scopes the key carries. ``limits``: requests per minute and per day, max concurrent requests, and the
engine_infoEngine version, API contract number, and health. Free (not quota-counted). Call once at the start of a session to confirm the engine is reachable and which contract it serves.
get_catalogFetch one engine reference catalog. Catalogs (cheap, cacheable per session): - 'operators' â comparison operators for condition expressions - 'execution-modes' â entry/exit anchors and fill algorithms, with the validity matrix by market type - 'stop-types' â stop-loss types, re-entry modes, and their parameters - 'sizing-methods' â positio
list_indicatorsList indicators, or fetch one indicator's full schema. Cheap, cacheable per session. With no arguments: a compact catalog â ``{"indicators": [...], "count": N}`` â where each entry carries id, name, category, kind, and value_dtype (no description, to keep the discovery scan small). Use it to discover what exists. Pass name='rsi' (id or name, ca
list_templatesList predesigned strategy templates, or fetch one in full. Cheap, cacheable per session. The engine returns the templates available to the calling key. With no arguments: a compact catalog â ``{"templates": [...], "count": N}`` â where each entry carries id, origin, name, and description. Use it to discover what exists. Pass name='sma-cross' (i
get_strategy_schemaJSON Schema for the strategy document (condition_tree + indicators). Fetch this before composing a strategy by hand; the validate_strategy tool checks against the same rules.
validate_strategyValidate a strategy document without running a backtest. A cheap quota separate from backtest runs, so validate freely and ALWAYS before run_backtest. Args: strategy: The strategy document â name, indicators[], and condition_tree (see get_strategy_schema for the exact shape). injected_indicators: Names of custom time-series column
run_backtestRun a historical backtest against the engine. Quota-counted and compute-bound. Validate the strategy first (validate_strategy is far cheaper). On a 504 compute timeout, do NOT retry the same request â reduce the date range, use a coarser frequency, or simplify the strategy. On 429/503, wait for the advertised Retry-After before retrying. Args:
get_latest_signalEvaluate the strategy on the most recent bar only â no P&L, no stats. Returns the latest signal (-1/0/1), which condition slots fired, and the bar timestamp. Use for "what would this strategy do right now" questions; use run_backtest for performance.
compare_backtestsRun several strategies on the same data and compare side by side. One quota-counted call, but compute scales with the number of strategies. If the wall-clock compute budget is exceeded, the call fails with a tool error (504) instead of returning partial results â narrow the request (fewer strategies, shorter date range, coarser frequency) and retry.
export_backtestExport a multi-strategy comparison as an Excel workbook. Quota-counted; needs a key whose plan includes full-metrics export (a 403 means the configured key's plan does not â do not retry). Returns the workbook base64-encoded â decode and write it to a ``.xlsx`` file. Args: data_source: Shared data source (same shape as run_backtest).
compute_statsCompute the engine's performance metrics from a returns series. Use when the returns came from somewhere other than run_backtest (an external system, a portfolio) â backtest results already include these statistics. Args: returns: Per-bar log returns as {"dates": [...], "values": [...]} parallel arrays (ISO-8601 dates). tr
search_tickersSearch available assets by ticker or name (relevance-ranked). Use to resolve a user's asset mention ("bitcoin", "S&P") to the exact ticker before requesting a server-side data fetch. asset_class filters to 'stocks', 'crypto', 'forex', or 'indices'.
list_tickersList available tickers, optionally filtered by asset class. The full universe is very large, so the MCP server caps the returned list and marks it ``truncated_by_mcp`` â pass asset_class to narrow it, or use search_tickers to resolve a specific asset by name.
get_data_rangeAvailable date range and estimated bar count for a symbol/frequency. Available on paid plans. Call before a server-side fetch so the requested start/end stay inside what the provider can deliver and the bar count stays inside the key's per-run limit.
get_ticker_infoIdentity and data coverage for one symbol, in a single call. Metadata only â no market data, so no paid plan is needed. Returns the asset's identity (name, asset class, exchange, currency, and whether it is still active) together with a coverage summary for the given frequency: the available date range and an estimated bar count. Use it to confirm a symbo
get_quoteLatest available price for a symbol. Requires a paid plan (managed market data). Returns the most recent *available* bar for the given frequency â the end-of-day close for daily, the last completed bar otherwise â as open/high/low/close/volume plus an ``as_of`` timestamp for that bar. This is a last-known price, not a live tick; read ``as_of`` to judge
get_price_historyOHLCV price history for a symbol over a date range. Requires a paid plan (managed market data). ``start`` is required (``YYYY-MM-DD``); ``end`` defaults to today. Returns a summary (symbol, resolved date range, total bar count, price range, gap flags), market-hours detection, and the OHLCV arrays. A long history is downsampled by the MCP server to a bounded
list_macro_seriesList the available macroeconomic series (the catalog). Free â no special plan. Returns the set of macro series you can fetch with get_macro_series, each with its stable ``id`` (the value get_macro_series takes), title, category, native reporting frequency, and units, plus the list of categories. Optionally filter to one ``category`` (e.g. rates, yield_cur
get_macro_seriesObservations for one macroeconomic series over an optional date range. Free â no special plan. ``series`` is an ``id`` from list_macro_series (e.g. treasury_10y, cpi, unemployment_rate); arbitrary external ids are not accepted. ``start``/``end`` are ``YYYY-MM-DD``, inclusive, both optional (full history when omitted). Returns the value series at its nativ
Alternatives in Developer Tools
Compare →MUMuxOfficialA
The official MCP Server for the Mux API
SMSentry MCPOfficialA
MCP server for Sentry - error monitoring, issue tracking, and debugging for AI assistants
Compiler ExplorerA
Compile code with thousands of compilers, inspect the assembly, and share godbolt.org links
MIMiroOfficialA
Official Miro MCP server - Supports context to code and creating diagrams, docs, and data tables.
Context7A
Up-to-date code docs for any prompt
AAAirbyte AgentsOfficialA
Let AI agents query data and act across all your business apps via MCP.