Exposes the Backtest360 engine API as tools for AI agents to build, run, and compare trading strategies.
Do not connect
A critical issue was found. Do not connect this server as-is.
Scanned 1 month ago Due for re-check
A server can change after it's graded. Re-run the automated scan to refresh this report.
This grade is deterministic and reproducible: the same server surface always yields the same grade under a given algorithm version. It is a real automated assessment computed by the MCPGrade engine from what the probe actually observed — not a fabricated or opinion score. It is not a manual human pentest, so it can miss context-specific risks.
Every signal below was measured directly by the automated probe. The grade is derived only from evidence like this — nothing is assumed.
The backtest360 MCP server exposes 20 tools, focused primarily on database capabilities. Its published description reads: "Exposes the Backtest360 engine API as tools for AI agents to build, run, and compare trading strategies". It communicates over Streamable HTTP using the 2025-06-18 protocol revision, and does not require authorization to connect. MCPGrade currently rates backtest360 F — a critical issue was found and the server should not be connected as-is. Its most notable findings include "Cross-tool shadowing" and "Cross-tool shadowing". This report is a deterministic, reproducible automated assessment: the same observed surface always yields the same grade under a given algorithm version, and it is refreshed as new scans arrive and free to read — but it is not a substitute for a manual human security review. Always re-check backtest360's advertised tools, transport security, and authorization posture before connecting an autonomous agent or sharing sensitive context with it.
Add backtest360 to an MCP client using the endpoint below. Review the grade and findings above before granting an autonomous agent access.
MCP endpoint
https://mcp.backtest360.com/mcpStreamable HTTP transport. This is the MCP endpoint, not a website — paste it into your MCP client server list rather than a browser.
Captured passively during the read-only scan. Click any value to find servers that match it.
The tools this server advertises via tools/list — names, purposes, and the parameters each accepts, exactly as enumerated read-only.
The 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 call
Engine 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.
Fetch one engine reference catalog. Catalogs (cheap, cacheable per session): - 'operators' — comparison operators for condition expressions - 'execution-modes' — entry/exit anchors and fill algorithms
List 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, c
Sorted worst-first. Each finding shows its severity, what it means, its OWASP MCP Top-10 mapping, and a recommended fix — the check id links to the exact methodology row that produced it.
tool: get_me
A tool description tries to alter the model’s use of another tool.
y can do instead of discovering limits through failed calls. RetuRecommendationDescriptions must describe only their own tool.
tool: list_templates
A tool description tries to alter the model’s use of another tool.
same shape validate_strategy and run_backtest accept) plus parameterRecommendationDescriptions must describe only their own tool.
tool: get_strategy_schema
A tool description tries to alter the model’s use of another tool.
nd; the validate_strategy tool checks against the same rules.RecommendationDescriptions must describe only their own tool.
tool: validate_strategy
A tool description tries to alter the model’s use of another tool.
ition_tree (see get_strategy_schema for the exact shape). injected_indiRecommendationDescriptions must describe only their own tool.
tool: run_backtest
A tool description tries to alter the model’s use of another tool.
get_catalog('execution-modes'/'stop-types'/'sizing-methods'RecommendationDescriptions must describe only their own tool.
tool: get_latest_signal
A tool description tries to alter the model’s use of another tool.
questions; use run_backtest for performance.RecommendationDescriptions must describe only their own tool.
tool: compare_backtests
A tool description tries to alter the model’s use of another tool.
stead of returning partial results — narrow the request (fewer strRecommendationDescriptions must describe only their own tool.
tool: export_backtest
A tool description tries to alter the model’s use of another tool.
(same shape as run_backtest). strategies: Same shape as compareRecommendationDescriptions must describe only their own tool.
tool: compute_stats
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
metric set the API key's plan allows. See get_catalog('secRecommendationRemove side-channel parameters; constrain tool inputs.
tool: compute_stats
A tool description tries to alter the model’s use of another tool.
See get_catalog('sections') for every metric's id and descriptiRecommendationDescriptions must describe only their own tool.
tool: list_tickers
A tool description tries to alter the model’s use of another tool.
rrow it, or use search_tickers to resolve a specific asset by name.RecommendationDescriptions must describe only their own tool.
tool: get_ticker_info
A tool description tries to alter the model’s use of another tool.
nge use get_data_range.RecommendationDescriptions must describe only their own tool.
tool: get_price_history
A tool description tries to alter the model’s use of another tool.
— call get_data_range first to size a request.RecommendationDescriptions must describe only their own tool.
tool: list_macro_series
A tool description tries to alter the model’s use of another tool.
ch with get_macro_series, each with its stable ``id`` (the valueRecommendationDescriptions must describe only their own tool.
tool: get_macro_series
A tool description tries to alter the model’s use of another tool.
an ``id`` from list_macro_series (e.g. treasury_10y, cpi, unemployment_rRecommendationDescriptions must describe only their own tool.
tool: (server instructions)
A tool description tries to alter the model’s use of another tool.
commended flow: engine_info once; get_catalog / list_indicators to ground eRecommendationDescriptions must describe only their own tool.
The server accepts tool enumeration (and likely invocation) with no authentication.
RecommendationRequire OAuth 2.1 authorization for any server exposing non-public tools.
tool: get_me
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "get_me"RecommendationScope tools to the minimum needed.
tool: list_indicators
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "list_indicators"RecommendationScope tools to the minimum needed.
tool: list_templates
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "list_templates"RecommendationScope tools to the minimum needed.
tool: export_backtest
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "export_backtest"RecommendationScope tools to the minimum needed.
tool: compute_stats
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "compute_stats"RecommendationScope tools to the minimum needed.
tool: list_macro_series
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "list_macro_series"RecommendationScope tools to the minimum needed.
tool: run_backtest
An unusually long description is a common injection-padding tactic.
description length 2764 charsRecommendationKeep descriptions concise.
Vantaj uptime monitoring via MCP — manage monitors, heartbeats, incidents, and status pages.
Unified gateway to Algeria's TKAWEN ecosystem: commerce, certification, and AI tools.
Provides access to the Cohereon Doctrine AI safety framework with governance components, tiered access, and agent onboarding.
Agentic rails for complex workflows with receipts, fees, and MCP tool access.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
List 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 — ``{"templ
JSON 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 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, ind
Run 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 —
Evaluate 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
Run 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
Export 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
Compute 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 th
Search 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 filte
List 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,
Available 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 t
Identity 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
Latest 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 ba
OHLCV 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 d
List 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_ser
Observations 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 ext