业务算法 MCP 构想

业务算法 MCP 构想

将私募基金组合算法(风险平价、多因子、优化器等)封装为远程 MCP 服务,供 Hermes Agent 按需调用。


架构示意

┌─────────────────┐    JSON-RPC over HTTP/SSE     ┌──────────────────────────┐
│  Hermes Agent   │ ──── tools/list ───────────→  │  MCP Server (远程服务器)  │
│  (MCP Client)   │ ←─── tool schemas ──────────  │  ┌────────────────────┐ │
│                 │ ──── tools/call(params) ──→   │  │ 组合算法引擎         │ │
│                 │ ←─── 计算结果(json) ────────   │  │ · 风险平价           │ │
│                 │                               │  │ · 多因子归因         │ │
│                 │                               │  │ · 组合优化器         │ │
│                 │                               │  │ · 风险预算          │ │
│                 │                               │  └────────────────────┘ │
└─────────────────┘                               └──────────────────────────┘

标准 MCP 交互确认

此场景是完全标准的 MCP 远程 HTTP 交互

步骤MCP 协议对应标准性
远程服务器部署含组合算法的服务MCP Server:实现 tools/list + tools/call 端点✅ 标准
提供 MCP 地址和 token keyHTTP Transport:url + headers.Authorization✅ 标准
在 Hermes config.yaml 中配置连接mcp_servers.<name>.url + headers✅ 标准
Agent 对话中调用mcp_<server>_<tool>(params) → 内部 tools/call✅ 标准
拿到计算结果Server 返回 JSON-RPC 响应,注入 agent 上下文✅ 标准

当前已运行的 TuShare MCP 就是完全相同的模式:

mcp_servers:
  tushare:
    url: https://api.tushare.pro/mcp/?token=xxx
    timeout: 120

配置方式

mcp_servers:
  组合算法:
    url: https://你的服务器.com/mcp
    headers:
      Authorization: Bearer <你的token>
    timeout: 180        # 算法计算可能较慢

两个关键设计点

1. Tool Schema 要写充分

MCP 协议不负责语义——它只管传参数和结果,不解释参数是什么含义。服务端在 tools/list 返回的 tool schema 中需要写清楚:

  • 每个参数的含义、取值范围、默认值
  • 返回结果的结构和字段说明
  • 示例调用

Schema 越丰富,Agent 越不需要外部文档就能正确调用。

2. Skill 辅助文档

对于业务场景复杂的算法(何时调用、结果怎么解读、常见参数组合),建议搭配一个 Skill 文件,在需要时加载到 prompt:

  • 告诉 Agent 什么场景应该调用哪个算法
  • 结果中出现边界值(如收敛失败)怎么处理
  • 调用的最佳实践和常见陷阱

两者关系:MCP 提供通路,Skill 提供导航