Saltar al contenido principal

Hermes Agent con Frihet

El trabajo: operar tu ERP desde Hermes Agent, el agente de código abierto de Nous Research, con una barrera de confirmación humana antes de las acciones que no se pueden deshacer.

El plugin de Frihet está en el catálogo de plugins de Hermes. No duplica herramientas: las operaciones de datos pasan por el servidor MCP de Frihet (@frihet/mcp-server en local, o el endpoint remoto https://mcp.frihet.io/mcp). El plugin añade tres cosas:

  1. El comando /frihet con tres acciones: status, setup y doctor.
  2. Un filtro pre_tool_call que detecta las escrituras de Frihet que no se pueden deshacer y pide tu confirmación antes de ejecutarlas.
  3. Una skill que enseña a Hermes cómo trabajar con Frihet: leer antes de escribir, crear en borrador y reutilizar la Idempotency-Key al reintentar.

1. Instala el plugin​

hermes plugins search frihet
hermes plugins install frihet --enable

Hermes instala los plugins desactivados por defecto: --enable los activa en el mismo paso. Si ya lo instalaste sin esa opción, ejecuta hermes plugins enable frihet. Después reinicia Hermes o empieza un chat nuevo (/reset) para que cargue el plugin. El código es público: github.com/Frihet-io/hermes-frihet.

2. Conecta el servidor MCP​

Genera una API key en app.frihet.io → Integraciones → pestaña API Keys (empieza por fri_) y añade el servidor en ~/.hermes/config.yaml.

Endpoint remoto con OAuth (inicio de sesión en el navegador):

mcp_servers:
frihet:
url: https://mcp.frihet.io/mcp
auth: oauth
oauth:
flow: browser
trust: untrusted

Endpoint remoto con API key (cabecera Authorization):

mcp_servers:
frihet:
url: https://mcp.frihet.io/mcp
headers:
Authorization: "Bearer ${FRIHET_API_KEY}"
trust: untrusted

Guarda FRIHET_API_KEY en ~/.hermes/.env. En un servidor remoto, auth solo admite el texto oauth (no un bloque anidado) y env solo vale para servidores locales: la clave va en headers. Si la conexión se queda en «Connecting…», Hermes no está enviando credenciales.

El bloque debe llamarse frihet: con otro nombre, el filtro de confirmación no se activa.

Servidor local con el paquete npm @frihet/mcp-server:

mcp_servers:
frihet:
command: npx
args: ["-y", "@frihet/mcp-server"]
env:
FRIHET_API_KEY: "${FRIHET_API_KEY}"

Para iniciar sesión con OAuth usa hermes mcp login frihet. /frihet setup no acepta claves, para que no queden en la transcripción del chat. Más detalles del servidor en la página del servidor MCP.

3. Comprueba la conexión​

En cualquier chat de Hermes:

/frihet status # estado local, sin red
/frihet setup # guía de autenticación; no acepta credenciales
/frihet doctor # prueba en vivo del servidor MCP

Después pregúntale algo real:

Muéstrame mis facturas vencidas de los últimos 30 días

Confirmación antes de escrituras irreversibles​

El filtro pre_tool_call revisa cada llamada a las operaciones de Frihet:

  • Las lecturas pasan sin preguntar.
  • Crear facturas, presupuestos, clientes, gastos o productos, y las operaciones irreversibles (enviar, marcar como pagada, registrar en VeriFactu, borrar, crear un cobro) piden tu aprobación antes de ejecutarse. Algunas consultas que contactan con servicios externos también la piden.
  • Si el plugin no reconoce una operación, también pide confirmación.

Sin una persona que apruebe, esas operaciones no se ejecutan.

Con trust: untrusted en el bloque del servidor, como en los ejemplos, Hermes pide además aprobación para toda operación que no esté marcada como solo lectura. Las lecturas siguen sin preguntar.

Solución de problemas​

/frihet doctor informa de cuatro estados por separado:

EstadoQué significaSi falla
endpoint_reachableEl servidor responde.Revisa tu conexión y que el endpoint remoto sea accesible desde tu red.
mcp_configured_in_hermesExiste el bloque mcp_servers.frihet en ~/.hermes/config.yaml.Añade el bloque del paso 2, con el nombre frihet.
authenticatedEl servidor aceptó tu credencial. Una respuesta anónima cuenta como alcanzable, no como autenticada.Ejecuta hermes mcp login frihet, o comprueba la cabecera Authorization si usas API key.
tools_availableLa respuesta de inicialización es válida.Vuelve a ejecutar /frihet doctor y revisa el endpoint.

/frihet doctor envía una inicialización MCP sin credenciales a mcp.frihet.io y hace una lectura de facturas a través del cliente MCP de Hermes cuando concedes el permiso plugins.entries.frihet.mcp_allowlist. No contacta con ningún otro servicio.

Siguiente​