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 原始碼為依據。