Acceso MCP
Responsabilidad
MCP (Model Context Protocol) es el protocolo estándar para conectar herramientas/fuentes de datos externas. Hermes actúa tanto como client MCP, consumiendo herramientas expuestas por servidores MCP externos (puenteadas a ToolRegistry vía mcp_tool), como como server MCP (mcp_serve.py), exponiendo sus propias herramientas a otros clientes agent. Esta capa permite a Hermes integrar capacidades de terceros de forma ilimitada.
Archivos clave
tools/mcp_tool.py— puente client MCP: registra en ToolRegistry las herramientas del server MCP externomcp_serve.py— Hermes como server MCP expone sus propias herramientas (raíz del repo)registry.register:365-436— las herramientas puenteadas por MCP terminan en la misma ruta de registroregister_plugin_override_policy:316-365— controla la admisión de namespace de herramientas MCP/plugindirectorio optional-mcps/— implementaciones opcionales de servidores MCP
Flujo de datos
- En el arranque (o en carga caliente durante la ejecución) se lee la configuración MCP;
mcp_toolse conecta al server MCP externo. - Obtiene el listado de herramientas expuestas por el server y registra cada una vía
registry.register:365como unToolEntry(con aislamiento de namespace, para no chocar con las herramientas internas). - La admisión de namespace la controla
register_plugin_override_policy:316. - El bucle principal recoge el schema, despacha el
tool_cally devuelve el resultado igual que con las herramientas internas. - Sentido inverso: Hermes puede, vía
mcp_serve.py, exponer sus propias herramientas a otros clientes MCP, para que las invoquen editores u otros agentes.
Resumen
MCP es el «bus de capacidades externas» de Hermes. mcp_tool hace que las herramientas externas entren al pool unificado de forma transparente; mcp_serve.py permite a su vez que Hermes sea invocado desde fuera. Al pasar todo por ToolRegistry, el bucle principal no necesita distinguir si una herramienta es interna o viene de MCP.