
Backtest360 MCP server
Which servers in the official MCP registry are Backtest360's own, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-24
- Registry namecom.backtest360/backtest360verified in the MCP registry
The registry name sits under backtest360.com. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-24
- Tools20
- Server calls itselfbacktest360
- Server version0.2.4
- Protocol version2025-06-18
On 2026-10-24 the server answered initialize and tools/list without a sign-in. First answer in 546 ms.
- Whether its tools do the product's job has not been judged yet.
- Checked on 1 of the 7 days it takes to judge reliability.
Once connected
- Parameters are untyped or undescribed in 17 of 20 tools: check arguments before calling.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP scoreafter a weeka score needs 7 daily checks: 1 so far
- Use52 PyPI downloads a week
- Answeredmeasuring1 of the 7 daily checks it takes to print a share
- Median first answer532 ms
- Space in an agent's context≈ 5,901 tokensthe definitions of all its tools (20), which an agent carries on every turn
- Tool definitionsC · 69 of 100
- Typed results18 of 20 toolsdeclared outputSchema: results come typed, read once
- Parameters without a description: in 17 of 20
- Not saying whether it only reads or can destroy: 20 of 20
Worth a look
None of the five warning signs in these definitions.
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (30%), doing the product's job (25%), definitions (20%), context (10%) and use (15%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"backtest360": {
"type": "http",
"url": "https://mcp.backtest360.com/mcp"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http backtest360 https://mcp.backtest360.com/mcpclaude.ai, ChatGPT and other clients: add https://mcp.backtest360.com/mcp as a custom connector in the settings.
Also shipped through: pypi
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Cookies
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.