Skip to content

MCP 接入

源码版本v2026.7.20

职责

MCP(Model Context Protocol)是连接外部工具/数据源的通用协议。Hermes 既作为 MCP client 消费外部 MCP server 暴露的工具(经 mcp_tool 桥接进 ToolRegistry),也可作为 MCP server(mcp_serve.py)把自身工具暴露给其他 agent 客户端。这层让 Hermes 能无限接入第三方能力。

关键文件

数据流

  1. 启动期(或运行期热加载)读 MCP 配置,mcp_tool 连接外部 MCP server。
  2. 拉取 server 暴露的工具清单,逐个经 registry.register:365 注册为 ToolEntry(命名空间隔离,避免与内置工具冲突)。
  3. 命名空间准入由 register_plugin_override_policy:316 控制。
  4. 主循环像对待内置工具一样收集 schema、分发 tool_call、回填结果。
  5. 反向:Hermes 可经 mcp_serve.py 把自身工具暴露给其他 MCP client,供编辑器/其他 agent 调用。

小结

MCP 是 Hermes 的「能力外接总线」。mcp_tool 让外部工具无缝进入统一工具池,mcp_serve.py 让 Hermes 自己也能被外部调用。统一走 ToolRegistry,所以主循环无需关心工具来自内置还是 MCP。

非官方社区学习站,内容以 MIT 许可的 NousResearch/hermes-agent 源码为依据。