---
title: "Hermes Agent con Frihet"
description: "Usa Frihet desde Hermes Agent, el agente de código abierto de Nous Research. Instala el plugin del catálogo, conecta el servidor MCP y confirma las escrituras irreversibles con tu aprobación."
canonical_url: "https://docs.frihet.io/agentes/hermes"
language: "es"
---

# Hermes Agent con Frihet

**El trabajo:** operar tu ERP desde [Hermes Agent](https://hermes-agent.nousresearch.com/), el agente de código abierto de [Nous Research](https://nousresearch.com/), 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](/desarrolladores/mcp-server) (`@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

```bash
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](https://github.com/Frihet-io/hermes-frihet).

## 2. Conecta el servidor MCP

Genera una API key en [app.frihet.io](https://app.frihet.io/?utm_source=frihet_io&utm_medium=docs&utm_campaign=docs_cta) → **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):

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

**Endpoint remoto con API key** (cabecera `Authorization`):

```yaml
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`:

```yaml
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](/desarrolladores/mcp-server).

## 3. Comprueba la conexión

En cualquier chat de Hermes:

```text
/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:

```text
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:

| Estado | Qué significa | Si falla |
| --- | --- | --- |
| `endpoint_reachable` | El servidor responde. | Revisa tu conexión y que el endpoint remoto sea accesible desde tu red. |
| `mcp_configured_in_hermes` | Existe el bloque `mcp_servers.frihet` en `~/.hermes/config.yaml`. | Añade el bloque del paso 2, con el nombre `frihet`. |
| `authenticated` | El 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_available` | La 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

- [Conecta Frihet a Claude, Cursor o ChatGPT](./conectar-tu-agente)
- [Servidor MCP de Frihet](/desarrolladores/mcp-server)
- [Integraciones y ecosistema](/integraciones)
