AlphaForge MCP 服务器(alpha-forge-mcp)是一个 Model Context Protocol(MCP)服务器,通过 stdio 将 AlphaForge 的 alpha-forge 命令行工具暴露给 AI 编程代理,包括 Claude Code、Cursor、Codex 以及任何支持 MCP 的客户端。
用途 该服务器让 AI 代理通过 MCP 驱动完整的量化策略工作流:用 JSON 编写策略、使用 Optuna TPE 进行优化、通过 walk-forward 进行验证、导出为 TradingView Pine v6。它本身是一个轻量开源封装:通过 --json 调用商业闭源的 alpha-forge 二进制并返回解析后的结果。MCP 服务器本身不包含核心逻辑,实际运行需要 alpha-forge 及有效许可证。
主要能力
- 工具集:save_strategy 接收策略定义 JSON 正文(字符串,而非文件路径,对代理更友好),写入临时文件后再执行 strategy save。fetch_data 仅暴露 period,因为 CLI 没有 --start / --end。forge_status 为只读,在二进制缺失时也不会失败,返回 binary_found: false,便于客户端先排查前置条件。
- run_optimize 默认保存结果(save=true),其 saved_path 可传给 apply_optimization,后者应用优化参数并保存 <strategy_id>_optimized(以 --yes 非交互运行)。get_indicator 仅返回指标元数据(description、parameters、output),CLI 没有针对符号的计算命令,因此不会在价格数据上计算指标。journal/explore 读取以只读方式暴露;写入类及 ml/pairs 命令尚未暴露。
- run_optimize / run_walk_forward 的 metric 参数是受限枚举(sharpe_ratio(默认)、sortino_ratio、calmar_ratio、total_return_pct、cagr_pct、profit_factor、win_rate_pct、expectancy_pct、omega_ratio),便于客户端选择有效优化目标而无需猜测。该枚举有意窄于 alpha-forge CLI 的 --metric(后者接受更广集合),仅保留适合作为优化目标的“越大越好”指标。trials 默认 200(优化器默认值)。每个工具的描述都说明其前置条件(如 run_backtest 需要先 fetch_data;apply_optimization 需要 run_optimize(save=true) 的结果)及后续步骤。
- 每个参数都带有 inputSchema 描述,并在有帮助时提供示例与约束:symbol 展示交易所记法(AAPL、^VIX、CL=F、USDJPY=X、BTC-USD),start / end 声明 YYYY-MM-DD 模式(format: date),trials / windows / simulations 带有 minimum: 1,save_strategy(json_body) / apply_optimization(result_file) 明确“JSON 正文,不是路径”与“路径,不是内联 JSON”。格式错误的参数会在 MCP 边界被 schema 校验拒绝。
- 纯文本(非 --json)CLI 封装返回结构化字段而非仅散文:apply_optimization 增加 applied_strategy_id(<strategy_id>_optimized,可直接传给 generate_pinescript),save_strategy 返回注册的 strategy_id,fetch_data 返回抓取行数 rows(原始输出文本始终保留)。
服务器指令与长任务 服务器会声明 instructions(在 MCP initialize 响应中呈现),描述端到端工作流——forge_status → fetch_data → run_backtest → run_optimize → run_walk_forward → apply_optimization → generate_pinescript——让代理知道该调用哪些工具以及顺序。 run/fetch/save/apply 工具为长任务(run_backtest 最长 300 秒,run_optimize / run_walk_forward 最长 600 秒,其他受默认超时限制——在各工具描述中说明)。它们通过 MCP 进度通知向支持的客户端报告进度(start → complete 括号;底层 alpha-forge 子进程不暴露中间进度),并将阻塞调用移出事件循环以保持服务器响应。超时由 alpha-forge 强制执行;到期时工具返回超时错误码,可安全重试。 所有工具都带有 MCP 工具注解(只读工具带 readOnlyHint——list / get 查询、generate_pinescript、forge_status、list_journals、get_journal、exploration_status 和 get_indicator;运行/写入工具带 openWorldHint——run_backtest / run_optimize / run_walk_forward / run_monte_carlo,以及 fetch_data(抓取外部市场数据)、save_strategy 和 apply_optimization(写入数据库)),并返回结构化输出——structuredContent 与对象 outputSchema——以及文本结果。
错误处理 每个工具都返回统一的错误信封作为其(始终成功的)结果,而不是抛出异常,便于代理机械地根据失败类别分支,而无需解析自由文本: 成功:{"ok": true, "data": { ...alpha-forge JSON... }, "error": null} 失败:{"ok": false, "data": null, "error": {"code": "<category>", "message": "<summary>", "detail": "<raw context>"}} error.code 是机器可读的失败类别——例如 forge_not_found(二进制缺失 → 引导设置)、authentication_required(运行 alpha-forge system auth login)、freemium_blocked(仅限高级功能 → 停止)、strategy_not_found、timeout(可安全重试)、bad_output、execution_failed。error.message 是一行摘要;error.detail 携带原始上下文(forge stderr 或去装饰的 freemium 面板正文,包括升级 URL),没有则为 null。outputSchema 反映此 ok / data / error 结构。
资源与提示 只读数据也作为 MCP 资源暴露,因此 Claude Code 等客户端可以通过 @ 提及引用它们而无需显式工具调用。它们委托给与只读工具相同的 alpha-forge 命令,并返回 application/json。这些资源镜像只读工具 list_journals / get_journal / exploration_status / get_indicator。没有 forge://indicators 集合资源,因为 CLI 的指标列表尚未被封装为工具/客户端方法(仅 get_indicator)。 可复用工作流作为 MCP 提示暴露(在 Claude Code 中呈现为 /mcp__alpha-forge__<name> 斜杠命令)。 Streamable HTTP 传输、RBAC、速率限制和审计日志计划在后续版本中提供。
使用方式 前置条件:alpha-forge 二进制必须已安装并在 PATH 中(或设置 ALPHA_FORGE_BIN)。必须已认证:运行一次 alpha-forge system auth login。Python 3.11+(仅在不使用 uvx 时需要)。 推荐方式是通过 uvx——无需手动安装;IDE 会按需启动。 或显式安装。 最简单的方式是使用 claude mcp add 命令(用户作用域——在每个项目中可用)。 或者,将服务器添加到仓库根目录的项目作用域 .mcp.json(签入并与团队共享)。 注意:Claude Code 不读取 ~/.claude/mcp.json。用户作用域服务器存储在 ~/.claude.json(由 claude mcp add 管理);项目作用域服务器位于项目根目录的 .mcp.json。 在客户端的 MCP 服务器配置中使用相同的命令/参数。 如果 alpha-forge 安装在非标准位置,通过 env 传入。
故障排除 forge_not_found——确保 alpha-forge(或旧版 forge)在 PATH 中,或设置 ALPHA_FORGE_BIN=/path/to/alpha-forge。 authentication_required——运行 alpha-forge system auth login。MCP 服务器不存储凭据;它依赖 alpha-forge 自身的认证。 Forge 二进制发现顺序:ALPHA_FORGE_BIN → PATH(forge、alpha-forge)→ 操作系统默认安装路径。
许可证 Apache License 2.0。