MCP-Anbindung
源码版本v2026.7.20
Verantwortung
MCP (Model Context Protocol) ist ein universelles Protokoll, um externe Werkzeuge/Datenquellen anzubinden. Hermes tritt sowohl als MCP-Client auf und konsumiert Werkzeuge externer MCP-Server (über mcp_tool in die ToolRegistry überbrückt), als auch als MCP-Server (mcp_serve.py), der die eigenen Werkzeuge anderen Agent-Clients zur Verfügung stellt. Diese Schicht ermöglicht es Hermes, Drittfähigkeiten ohne Aufwand aufzunehmen.
Schlüsseldateien
tools/mcp_tool.py— MCP-Client-Brücke: registriert Werkzeuge externer MCP-Server in der ToolRegistrymcp_serve.py— Hermes als MCP-Server, der eigene Werkzeuge freigibt (Repo-Wurzel)registry.register:365-436— über MCP überbrückte Werkzeuge laufen über denselben Registrierungspfadregister_plugin_override_policy:316-365— steuert die Namespace-Zulassung für MCP-/Plugin-Werkzeugeoptional-mcps/-Verzeichnis— optionale MCP-Server-Implementierungen
Datenfluss
- Beim Start (oder zur Laufzeit per Hot-Reload) wird die MCP-Konfiguration gelesen;
mcp_toolverbindet sich mit dem externen MCP-Server. - Die vom Server freigegebene Werkzeugliste wird abgerufen und jedes Werkzeug einzeln über
registry.register:365alsToolEntryregistriert (Namespace-Isolation, um Konflikte mit eingebauten Werkzeugen zu vermeiden). - Die Namespace-Zulassung wird von
register_plugin_override_policy:316gesteuert. - Die Hauptschleife sammelt Schemata, dispatched
tool_callund füllt Ergebnisse zurück wie bei eingebauten Werkzeugen. - Reverse: Hermes kann über
mcp_serve.pydie eigenen Werkzeuge für andere MCP-Clients freigeben, damit Editoren/andere Agenten sie aufrufen.
Zusammenfassung
MCP ist der «Fähigkeits-Bus» von Hermes. mcp_tool lässt externe Werkzeuge nahtlos in den einheitlichen Werkzeugpool einfließen; mcp_serve.py macht Hermes selbst von außen aufrufbar. Weil alles über die ToolRegistry läuft, muss die Hauptschleife nicht wissen, ob ein Werkzeug eingebaut ist oder von MCP stammt.