Brain MCP
Hermes Brain
Orquestación multi-agente para Hermes Agent
Despliega agentes Hermes en paralelo. Dales un cerebro compartido. Lanza en un solo comando.Respaldado por SQLite, coordinado por Python, cero tokens gastados en coordinación.
Instalación · Inicio rápido · Cómo funciona · CLI · Herramientas · Banco de memoria · Desarrollo
Instalación
Opción 1 — bootstrap desde el código fuente (recomendado para Hermes)
curl -fsSL https://raw.githubusercontent.com/DevvGwardo/brain-mcp/main/install.sh | bashEl instalador:
Compila el servidor MCP de Node.js (
brain-mcp)Instala el paquete de orquestación de Python (
hermes-brain)Registra el cerebro como un servidor MCP en Hermes
Opción 2 — instalación manual
git clone https://github.com/DevvGwardo/brain-mcp.git
cd brain-mcp
npm install
npm run build
pip install -e .
hermes mcp add brain --command node --args "$PWD/dist/index.js"Nota: el paquete npm aún no está publicado, por lo que la ruta de instalación del repositorio es la ruta soportada por ahora.
Verificación:
hermes mcp list | grep brain
hermes mcp test brain
hermes-brain --helpRequisitos previos: Python 3.10+, Node.js 18+, Hermes Agent
¿Compartiendo con amigos? El cerebro de cada persona es su propia base de datos SQLite aislada; no se necesita configuración de red. La misma línea de comando funciona en cualquier lugar.
Usuarios de Docker: Despliega agentes con layout: "headless" ya que los paneles de tmux no pueden renderizarse en un contenedor sin cabeza:
brain_wake({ task: "...", layout: "headless" })Inicio rápido
Un comando para orquestar una flota de agentes Hermes:
hermes-brain "Build a REST API with auth, users, and posts" \
--agents api-routes auth-layer db-models testsLo que sucede:
El conductor de Python despliega 4 agentes Hermes en segundo plano (
hermes -q)Cada agente reclama sus archivos, publica contratos, escribe código y envía latidos (heartbeats)
El conductor ejecuta una puerta de integración — compila el proyecto, redirige los errores a los agentes responsables mediante DM
Los agentes se autocorrigen. La puerta reintenta hasta que esté limpio.
Resumen impreso: agentes, contratos, memorias, métricas, listo.
Más formas de ejecutarlo:
# Auto-named agents
hermes-brain "Add error handling to the whole codebase"
# Mix models per task
hermes-brain "Build a game" --agents engine ui store --model claude-sonnet-4-5
# Cheap model for boilerplate
hermes-brain "Generate 10 test files" --model claude-haiku-4-5
# JSON pipeline with multiple phases
hermes-brain --config pipeline.jsonO desde dentro de Hermes (interactivo):
hermes> Use register, then wake to spawn 3 agents
that each refactor a different module.Cómo funciona
graph TB
subgraph "Python Conductor"
CLI["hermes-brain CLI"]
ORCH["Orchestrator<br/><small>spawn · wait · gate · retry</small>"]
end
subgraph "Hermes Agents"
direction LR
H1["Agent 1<br/><small>hermes -q</small>"]
H2["Agent 2<br/><small>hermes -q</small>"]
H3["Agent 3<br/><small>hermes -q</small>"]
end
CLI --> ORCH
ORCH -->|spawn| H1
ORCH -->|spawn| H2
ORCH -->|spawn| H3
subgraph "Brain (shared SQLite)"
DB[("brain.db")]
PULSE["Heartbeats"]
MX["Mutex Locks"]
KV["Shared State"]
CON["Contracts"]
MEM["Memory"]
PLAN["Task DAG"]
end
ORCH <--> DB
H1 <--> DB
H2 <--> DB
H3 <--> DB
subgraph "Integration Gate"
GATE["tsc · mypy · cargo · go vet"]
ROUTE["DM errors → agents"]
end
ORCH --> GATE
GATE --> ROUTE
ROUTE -.->|DM| H1
ROUTE -.->|DM| H2
style CLI fill:#9333EA,stroke:#7C3AED,color:#fff
style ORCH fill:#9333EA,stroke:#7C3AED,color:#fff
style H1 fill:#3B82F6,stroke:#2563EB,color:#fff
style H2 fill:#10B981,stroke:#059669,color:#fff
style H3 fill:#F59E0B,stroke:#D97706,color:#000
style DB fill:#1E293B,stroke:#334155,color:#fff
style GATE fill:#EF4444,stroke:#DC2626,color:#fffArquitectura
Este diagrama muestra la arquitectura interna de brain-mcp y cómo interactúan sus componentes:
graph TB
subgraph "External Clients"
HERMES["Hermes CLI"]
CLAUDE["Claude Code"]
ANY["Any MCP Client"]
end
subgraph "brain-mcp (Node.js)"
SERVER["src/index.ts<br/>MCP Request Router"]
CONDUCTOR["brain-conductor<br/>Zero-token Orchestration CLI"]
GATE["src/gate.ts<br/>Integration Gate"]
end
subgraph "pi-agent-core Runtime"
PI_CORE["src/pi-core-agent.ts<br/>In-process Agent Runner"]
PI_CORE_TOOLS["src/pi-core-tools.ts<br/>14 Brain Tools as AgentTools"]
PI_AGENT["pi-agent-core Agent<br/>model + tools + events"]
end
subgraph "BrainDB (SQLite)"
DB[("brain.db<br/>sessions, state, messages,<br/>claims, contracts, memory")]
end
HERMES & CLAUDE & ANY --> SERVER
SERVER <--> DB
SERVER --> CONDUCTOR
CONDUCTOR --> PI_CORE
PI_CORE --> PI_CORE_TOOLS
PI_CORE --> PI_AGENT
PI_CORE_TOOLS --> DB
PI_AGENT -->|beforeToolCall<br/>pulse| DB
CONDUCTOR --> GATE
GATE -->|DM errors| CONDUCTOR
style HERMES fill:#FF6B6B,stroke:#DC2626,color:#fff
style CLAUDE fill:#3B82F6,stroke:#2563EB,color:#fff
style ANY fill:#7C3AED,stroke:#6D28D9,color:#fff
style SERVER fill:#1E293B,stroke:#334155,color:#fff
style CONDUCTOR fill:#9333EA,stroke:#7C3AED,color:#fff
style GATE fill:#EF4444,stroke:#DC2626,color:#fff
style PI_CORE fill:#10B981,stroke:#059669,color:#fff
style PI_CORE_TOOLS fill:#059669,stroke:#047857,color:#fff
style PI_AGENT fill:#06B6D4,stroke:#0891B2,color:#fff
style DB fill:#1E293B,stroke:#334155,color:#fffpi-agent-core es el tiempo de ejecución del agente LLM — maneja el bucle de interacción del modelo, la ejecución de herramientas y la suscripción a eventos. brain-mcp proporciona la capa de coordinación (estado, mensajería, latidos, bloqueos, contratos) como herramientas que llaman los agentes pi. El conductor une todo con fases, puertas y diseño de tmux.
Coordinación de cero tokens. El conductor es Python puro — los tokens de LLM solo se gastan en el trabajo real. Los latidos, reclamos, contratos, puertas y reintentos se ejecutan localmente.
Sin servidor que gestionar. Cada agente abre su propia conexión stdio al cerebro. El modo WAL de SQLite maneja el acceso concurrente de forma segura.
Mismo cerebro, cualquier CLI. Hermes, Claude Code, MiniMax — todos los clientes acceden a la misma base de datos SQLite. Una flota mixta de agentes Hermes + Claude puede coordinarse en la misma tarea.
La CLI hermes-brain
hermes-brain <task> [options]Flag | Predeterminado | Qué hace |
|
| Nombres de agentes a desplegar en paralelo |
|
| Modelo pasado a cada agente |
| desactivado | Saltar la puerta de integración |
|
| Intentos máximos de reintento de puerta |
|
| Tiempo de espera por agente |
| Cargar una tubería multifase | |
|
| Base de datos del cerebro personalizada |
Archivo de configuración de tubería
{
"task": "Build a todo app",
"model": "claude-sonnet-4-5",
"gate": true,
"max_gate_retries": 3,
"phases": [
{
"name": "foundation",
"parallel": true,
"agents": [
{ "name": "types", "files": ["src/types/"], "task": "Define all TS types" },
{ "name": "db", "files": ["src/db/"], "task": "Set up Prisma schema" }
]
},
{
"name": "feature",
"parallel": true,
"agents": [
{ "name": "api", "files": ["src/api/"], "task": "REST endpoints" },
{ "name": "ui", "files": ["src/ui/"], "task": "React components" }
]
},
{
"name": "quality",
"parallel": true,
"agents": [
{ "name": "tests", "task": "Write unit + integration tests" }
]
}
]
}Las fases se ejecutan secuencialmente. Los agentes dentro de una fase se ejecutan en paralelo. La puerta de integración se ejecuta entre fases.
Herramientas del cerebro
Más de 35 herramientas en 12 categorías. Todas disponibles para Hermes, Claude Code y cualquier agente compatible con MCP.
Identidad y salud
Herramienta | Qué hace |
| Nombrar esta sesión |
| Listar sesiones activas |
| Mostrar información de sesión + sala |
| Latido con estado + progreso (devuelve DMs pendientes) |
| Salud en vivo de todos los agentes (estado, antigüedad del latido, reclamos) |
Mensajería
Herramienta | Qué hace |
| Publicar en un canal |
| Leer de un canal |
| Mensaje directo a otro agente |
| Leer tus DMs |
Estado compartido y memoria
Herramienta | Qué hace |
| Almacén efímero clave-valor |
| Listar / eliminar claves |
| Almacenar conocimiento persistente (sobrevive a |
| Buscar memorias de sesiones anteriores |
| Eliminar memorias obsoletas |
Bloqueo de archivos
Herramienta | Qué hace |
| Bloquear un archivo/recurso (mutex basado en TTL) |
| Desbloquear |
| Listar bloqueos activos |
Contratos (previene errores de integración)
Herramienta | Qué hace |
| Publicar lo que tu módulo proporciona / espera |
| Leer contratos de otros agentes antes de programar |
| Validar todos los contratos — detecta desajustes de parámetros, funciones faltantes |
Puerta de integración
Herramienta | Qué hace |
| Ejecutar compilación + verificación de contrato, enviar errores por DM a los agentes responsables |
| Ejecutar puerta en bucle, esperar correcciones, reintentar hasta que esté limpio |
Planificación de tareas (DAG)
Herramienta | Qué hace |
| Crear un DAG de tareas con dependencias |
| Obtener tareas cuyas dependencias están satisfechas |
| Marcar tarea como hecha/fallida (promueve automáticamente a los dependientes) |
| Progreso general |
| Convertir un objetivo en lenguaje natural en fases, agentes, alcances de archivos y configuración del conductor |
| Persistir el flujo de trabajo compilado en el estado del cerebro + un DAG de tareas, opcionalmente escribir JSON del conductor |
Orquestación
Herramienta | Qué hace |
| Desplegar un nuevo agente (hermes, claude o headless) |
| Desplegar múltiples agentes en una llamada |
| Reemplazar un agente fallido con contexto de recuperación |
| Tasas de éxito, duración, conteo de errores por agente |
Libro mayor de contexto (evita perder el rastro)
Herramienta | Qué hace |
| Registrar acción/descubrimiento/decisión/error |
| Leer el libro mayor |
| Vista condensada para recuperación de contexto |
| Guardar estado de trabajo completo |
| Recuperar después de la compresión de contexto |
Protocolo de latido y contrato
Cada agente desplegado sigue dos protocolos que el orquestador hace cumplir:
Latido (Heartbeat) — los agentes llaman a brain_pulse cada 2-3 llamadas de herramientas con su estado y una breve nota de progreso. El conductor usa esto para:
Mostrar el estado en vivo en la terminal (
● trabajando — editando src/api/routes.ts)Detectar agentes estancados (sin pulso en 60s →
obsoleto)Entregar DMs pendientes como valores de retorno del pulso (sin viaje de ida y vuelta adicional)
Contratos — antes de que los agentes escriban código, llaman a brain_contract_get para ver qué exportan otros agentes. Después de escribir, publican su propio contrato con brain_contract_set. Antes de marcar como hecho, brain_contract_check valida toda la flota — detecta:
Desajustes en la firma de funciones (se esperaban 2 argumentos, se obtuvieron 3)
Exportaciones faltantes (el agente A importa
getUserpero el agente B nunca lo exportó)Deriva de tipos (se esperaba
User, se obtuvo{name, email})
Esta es la clave para igualar la calidad de integración de un solo agente con una flota paralela.
Puerta de integración
sequenceDiagram
participant O as Orchestrator
participant C as Compiler
participant DB as Brain DB
participant A as Agent
O->>C: Run tsc / mypy / cargo / go vet
C-->>O: Errors with file:line:message
O->>DB: Query: who claimed this file?
DB-->>O: Agent X owned src/api/routes.ts
O->>A: DM: "Fix these errors in your files"
Note over A: Agent reads DM on next pulse
Note over A: Fixes code, pulses done
O->>C: Re-run compiler
C-->>O: Clean
O->>DB: Record metricsLa puerta detecta automáticamente el lenguaje del proyecto y ejecuta el verificador apropiado:
Lenguaje | Verificador |
TypeScript |
|
Python |
|
Rust |
|
Go |
|
Los errores se analizan, se comparan con el agente que reclamó el archivo fallido y se redirigen como un DM. Los agentes recogen sus errores en el siguiente pulso y se autocorrigen. El bucle reintenta hasta --retries veces antes de rendirse.
Flotas mixtas
La base de datos del cerebro se comparte entre todos los clientes MCP. Un solo proyecto puede tener:
graph LR
subgraph "Fleet"
direction TB
HA["Hermes Agent<br/><small>fast local inference</small>"]
CC["Claude Code<br/><small>deep reasoning</small>"]
MM["MiniMax<br/><small>cheap boilerplate</small>"]
end
subgraph "Brain"
DB[("brain.db")]
end
HA <--> DB
CC <--> DB
MM <--> DB
style HA fill:#F59E0B,stroke:#D97706,color:#000
style CC fill:#9333EA,stroke:#7C3AED,color:#fff
style MM fill:#3B82F6,stroke:#2563EB,color:#fff
style DB fill:#1E293B,stroke:#334155,color:#fffEnruta por tipo de tarea. Usa Hermes para trabajo rutinario, Claude para decisiones arquitectónicas, modelos más baratos para código repetitivo — todo coordinándose a través del mismo cerebro, compartiendo contratos, puertas y memoria.
Desde Claude Code:
brain_wake({ task: "...", cli: "hermes", layout: "headless" })
brain_wake({ task: "...", cli: "claude", layout: "horizontal" })Avanzado
Todo lo siguiente cubre la profundidad técnica completa.
Rendimiento
Ejecuta los benchmarks tú mismo:
node benchmark.mjs # SQLite direct layer (1000 iterations)
node benchmark-mcp.mjs # MCP tool layer (30 iterations per tool)Capa directa de SQLite (2026-04-06, M4 Pro, modo WAL)
Operación | prom | p50 | p95 | p99 | rendimiento |
session_register | 0.021ms | 0.011ms | 0.027ms | 0.039ms | ~47K/s |
message_post (1 msg) | 0.014ms | 0.011ms | 0.019ms | 0.031ms | ~70K/s |
message_read (50 msgs) | 0.042ms | 0.042ms | 0.045ms | 0.066ms | ~24K/s |
state_get | 0.002ms | 0.002ms | 0.002ms | 0.003ms | ~570K/s |
claim_query (all) | 0.001ms | 0.001ms | 0.002ms | 0.002ms | ~670K/s |
heartbeat_pulse (update) | 0.002ms | 0.002ms | 0.002ms | 0.003ms | ~464K/s |
session_query (by id) | 0.002ms | 0.002ms | 0.002ms | 0.003ms | ~455K/s |
SQLite directo: cada operación de coordinación central es de sub-milisegundos. El almacén KV (state_get) mantiene ~570K lecturas/s. La coordinación de alta frecuencia (latidos, reclamos, estado) se mantiene muy por debajo de 1ms.
Capa de herramientas MCP (2026-04-06, stdio JSON-RPC, 30 llamadas cada una)
Herramienta | prom | p50 | p95 | mín | máx |
brain_status | 12.2ms | 12.0ms | 15.6ms | 8.8ms | 21.2ms |
brain_sessions | 1.9ms | 1.7ms | 3.6ms | 0.9ms | 4.7ms |
brain_keys | 1.6ms | 1.6ms | 2.6ms | 0.8ms | 4.5ms |
brain_claims | 2.0ms | 1.8ms | 3.4ms | 1.2ms | 4.9ms |
brain_metrics | 2.0ms | 1.9ms | 4.0ms | 1.1ms | 4.4ms |
Las llamadas a herramientas MCP incluyen encuadre JSON-RPC, IPC stdio, despacho de herramientas TypeScript y consulta SQLite. La mayoría de las herramientas responden en 1-2ms una vez que el servidor está caliente. brain_status es más lento (12ms) porque agrega datos
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DevvGwardo/brain-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server