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 ソースに基づく。