Skip to content

Intégration MCP

源码版本v2026.7.20

Responsabilité

MCP (Model Context Protocol) est un protocole standard pour connecter des outils et sources de données externes. Hermes agit à la fois comme client MCP en consommant les outils exposés par des serveurs MCP externes (pontés dans le ToolRegistry via mcp_tool), et comme serveur MCP (mcp_serve.py) en exposant ses propres outils à d'autres clients agents. Cette couche permet à Hermes d'accueillir indéfiniment des capacités tierces.

Fichiers clés

Flux de données

  1. Au démarrage (ou en chargement à chaud à l'exécution), lecture de la config MCP, mcp_tool se connecte aux serveurs MCP externes.
  2. Récupère la liste des outils exposés par le serveur, et enregistre chacun via registry.register:365 comme ToolEntry (isolation par espace de noms, pour éviter les collisions avec les outils intégrés).
  3. L'admission des espaces de noms est contrôlée par register_plugin_override_policy:316.
  4. La boucle principale collecte les schémas, distribue les tool_calls et réinjecte les résultats comme pour les outils intégrés.
  5. Sens inverse : Hermes peut exposer ses propres outils à d'autres clients MCP via mcp_serve.py, pour les éditeurs ou autres agents.

Résumé

MCP est le « bus d'extension de capacités » d'Hermes. mcp_tool fait entrer les outils externes dans le pool d'outils unifié sans couture ; mcp_serve.py permet à Hermes lui-même d'être appelé de l'extérieur. Tout passe par le ToolRegistry, donc la boucle principale n'a pas à se soucier de savoir si un outil vient de l'intégré ou de MCP.

Site d'apprentissage communautaire non officiel. Basé sur le code source de NousResearch/hermes-agent (licence MIT).