Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
MCP server exposing the Backtest360 engine API as tools for AI agents.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
BACKTEST360_API_KEY, X-API-Key标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"backtest360": {
"command": "uvx",
"args": [
"backtest360-mcp"
],
"env": {
"BACKTEST360_API_KEY": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add --transport http backtest360 https://mcp.backtest360.com/mcp --header 'X-API-Key: your-value'claude mcp add backtest360 --env BACKTEST360_API_KEY=your-value -- uvx backtest360-mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"backtest360": {
"url": "https://mcp.backtest360.com/mcp",
"headers": {
"X-API-Key": "your-value"
}
}
}
}粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"backtest360": {
"command": "uvx",
"args": [
"backtest360-mcp"
],
"env": {
"BACKTEST360_API_KEY": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"backtest360": {
"type": "http",
"url": "https://mcp.backtest360.com/mcp",
"headers": {
"X-API-Key": "your-value"
}
}
}
}粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"backtest360": {
"type": "stdio",
"command": "uvx",
"args": [
"backtest360-mcp"
],
"env": {
"BACKTEST360_API_KEY": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。
你的选择通过 Cookie 保存在这台设备上,无需账户。
X-API-Key 机密 必填 HTTP header这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过域名 backtest360.com 验证(注册中心会核实域名所有权)
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
尚未检查;我们会轮流检查各个端点
尚未检查;我们会轮流检查各个端点
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:BACKTEST360_API_KEY, X-API-Key
两种方式都可以:安装在你的电脑上,或者连接云端版本。
GitHub 仓库最后更新于–,最新版本(0.5.0)于3个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Spec Driven Development, Remote Desktop Commander, AI Deprecations
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
AI model shutdown dates, replacements, change feed and webhook alerts for 8 providers.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
MCP server exposing the Backtest360 engine API as tools for AI agents.
Connect any MCP-capable AI client and drive real backtests conversationally: discover indicators, build and validate strategies, run backtests, and read the results — all against the deterministic Backtest360 engine. The server contains no AI and computes no numbers of its own; it is a thin, faithful adapter over the engine HTTP API. Your engine API key and its plan govern everything (permissions, rate limits, data access).
Two transports: a hosted HTTP endpoint at https://mcp.backtest360.com/mcp (send your key as an X-API-Key header) and local stdio (self-host — see below).
pip install backtest360-mcp # or, from a clone: pip install -e .
Requires Python 3.10+ and a Backtest360 API key. Get one free, instantly at backtest360.com/api-access — submit your email and a key (format b360_…) is issued on the spot and emailed to you; no approval needed. Authentication is API-key only. The free tier runs backtests on data you upload; fetching historical price data from the engine server-side is a paid capability.
Everything is environment-driven:
| Variable | Required | Default | Purpose |
|---|---|---|---|
BACKTEST360_API_KEY | yes | — | Engine API key, sent as X-API-Key |
BACKTEST360_ENGINE_URL | no | https://api.backtest360.com | Engine base URL |
BACKTEST360_MCP_TIMEOUT | no | 300 | Per-request timeout (seconds) |
BACKTEST360_MCP_MAX_OUTPUT_BYTES | no | 100000 | Hard cap on a single tool result |
Point your MCP client at the hosted endpoint over HTTP and send your key as an X-API-Key header:
{
"mcpServers": { "backtest360": { "type": "streamable-http", "url": "https://mcp.backtest360.com/mcp", "headers": { "X-API-Key": "b360_..." } } } }
Run the server yourself and let your client launch it over stdio (the common mcpServers shape):
{
"mcpServers": { "backtest360": { "command": "backtest360-mcp", "env": { "BACKTEST360_API_KEY": "b360_..." } } } }
Prefer not to put the key in a config file? Point command at a small wrapper script that exports the key from your secrets manager and then runs backtest360-mcp. A minimal example config is in examples/mcp.json.
| Tool | What it does |
|---|---|
engine_info | Engine version, API contract, health |
get_me | What the configured key can do: permission scopes, limits, current usage, capability flags |
get_catalog | Reference catalogs: operators, execution modes, stop types, sizing methods, bar frequencies, metric sections |
list_indicators | Indicator discovery; per-indicator parameter schemas |
list_templates | Predesigned strategy templates — discover compactly, fetch one in full, ready to validate and run |
get_strategy_schema | JSON Schema for strategy documents |
validate_strategy | Validate a strategy without running it — returns structured, locatable errors |
run_backtest | Run a historical backtest |
get_latest_signal | Evaluate the most recent bar only (no P&L) |
compare_backtests | Run several strategies on the same data, side by side |
compute_stats | Compute the metric set from an externally produced returns series |
search_tickers / list_tickers | Asset discovery for server-side data fetch |
get_data_range | Available history and bar-count estimate for a symbol |
get_ticker_info | Symbol identity and data coverage in a single call |
get_quote | Latest available price for a symbol (paid plan) |
get_price_history | OHLCV price history over a date range (paid plan; long histories downsampled to fit) |
list_macro_series / get_macro_series | Macroeconomic data: list the series catalog, then fetch one series' observations |
The cheap static catalogs are also published as MCP resources (backtest360://catalog/{name}, backtest360://schema/strategy) for clients that support resource attachment.
Two workflow prompts scaffold the common multi-tool flows for a connected AI: each names which tools to call, in what order, and what to look at in the results. They carry no interpretation and compute nothing — the connected AI does the reasoning.
| Prompt | Arguments | What it scaffolds |
|---|---|---|
robustness_review | symbol, strategy (optional) | Review a backtested strategy for robustness: validate → run → compare against buy-and-hold → weigh the evidence base (sample size, significance/robustness statistics, warnings) → caveated summary |
build_and_validate | idea | Turn a plain-language idea into a validated strategy: survey the catalogs → fetch the schema → construct → validate-and-fix loop → dry-run |
A full backtest result is megabytes; an agent's context is not. run_backtest and compare_backtests take response_detail:
summary (default) — headline metrics, warnings, counts, equity endpointsstats — every metric the plan allowsfull — plus series (downsampled, endpoints preserved) and trades (paginated)run_backtest also takes max_series_points (default 500, must be >= 2) to override the series downsampling cap — set it higher for full-resolution series on a long run, or leave it unset for today's default.
include=["trades", "equity_curve", "monthly_returns", "yearly_returns", "signal_diagnostics"] adds specific blocks at any detail level. signal_diagnostics reports which per-bar entry/exit conditions fired, as a capped list of fire dates per condition (not the raw per-bar boolean arrays, which downsampling would corrupt) — or {"available": false, ...} when the run has no condition tree to evaluate (e.g. precomputed signals). Results exceeding the output cap are reduced further and explicitly marked truncated_by_mcp — never silently cut. Shaping only ever selects and thins what the engine returned; no value is computed or altered.
Designed for agents:
{"valid": false, "errors": [...]} with machine codes and document locations; engine rejections arrive as {"accepted": false, "error": ...} with a hint.Retry-After value; engine-busy says retry with backoff; a compute timeout says do not retry and reduce scope instead; permission problems name the missing capability. Engine request ids are included for support.pip install -e ".[dev]"
pytest # unit suite vs a mock engine — no network
Questions or feedback? hello@backtest360.com — we read everything. backtest360-mcp is in active development, so help shape it.
Bug reports and feature requests: open an issue on GitHub.
MIT — see LICENSE.