Sentarion MCP

Orquestación multiagente gobernada para agentes de codificación de IA: puerta de políticas, cadena de auditoría a prueba de manipulaciones, incluye el Claude Code Seatbelt.

Servidor MCP alojado

npx add-mcp 'https://arkhive.dondatabrain.com/sentarion/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

sentarion-mcp — Dale a tus agentes de IA reglas, memoria y recibos.

Instalación: pip install sentarion-mcp · Comando: sentarion · Apache-2.0 · Endpoint alojado

Sentarion es la capa de control MCP de código abierto para trabajo multiagente gobernado. Gobierna, registra y coordina el trabajo de los agentes en Claude Code, Codex, Cursor, modelos locales y cualquier cliente compatible con MCP.

Compone tres servidores MCP de código abierto en un sustrato gobernado — se conecta a ellos como cliente MCP, no los reimplementa:

  • Algernon — planificación/despacho en abanico hacia trabajadores paralelos económicos con tu clave (o un Ollama local gratuito, autodetectado desde 0.2.2)
  • ArkHive — cadena de auditoría/memoria alojada y a prueba de manipulaciones
  • una cámara de pactos local (Humane Intelligence, o el paquete incluido arkhive-mcp cuando Humane no está instalado)

El primer minuto

Todo lo siguiente se ejecutó, no se escribió, contra un pip install sentarion-mcp limpio (2026-09-10).

you      > sentarion_birth(name="ember", covenant=["truth over comfort"])
sentarion> born_on: ["humane", "arkhive"]        # your local chain AND the hosted one; act as actor="ember"
you      > remember(actor="ember", action="decided: ship the 27-tool surface", data={"why": "87 was the tax"})
sentarion> humane:  immutably recorded · arkhive: immutably recorded
you      > verify()
sentarion> humane:  INTACT — context provably unbroken
           arkhive: INTACT — context provably unbroken

Ahora haz de villano. Abre ~/.sentarion/local_chamber.db y cambia una palabra de ese registro a mano (update blocks set action = replace(action, 'ship', 'cancel') where idx = 0). Luego:

you      > verify()
sentarion> humane:  TAMPERED — 1 broken links

Y la puerta, sin nada configurado:

you      > govern(action="delete the production database")
sentarion> block — Veto: irreversible -> refuse          (inferred_flags: ["irreversible"])
you      > govern(action="email all 4,000 customers a discount code")
sentarion> block — Veto: external_send -> refuse
you      > govern(action="write a summary file")
sentarion> approve

Esa es toda la idea. Tu IA escribe lo que hizo, lo lee de nuevo en la siguiente sesión, y una reescritura silenciosa falla la verificación. Cada registro está encadenado por hash al anterior; la copia alojada es un segundo testigo. govern lee los riesgos obvios del texto de la acción (delete / drop / force-push, enviar a todos, pagar, desplegar a producción), los bloquea por defecto y falla en modo cerrado cuando ninguna cámara responde; orchestrate_and_record le pregunta primero, distribuye el trabajo a trabajadores económicos y coloca el recibo en la misma cadena.

Instalación

pip install sentarion-mcp

Luego, desde cualquier cliente MCP, ejecuta sentarion_doctor. Comprueba git, Algernon, la cámara local, ArkHive alojado, el proveedor de flota, Ollama y tu clave de API, informa ready: true cuando una ejecución funcionará, y lista una solución por cada pieza faltante. Nunca imprime un secreto.

El cinturón de seguridad — hooks, no esperanza

Una herramienta MCP solo ayuda cuando el modelo decide llamarla. sentarion seatbelt conecta los hooks de Claude Code (y Cursor, beta) que se ejecutan en cada llamada de herramienta, recuerde el modelo o no, usando el mismo vocabulario de puerta y la misma cadena local que el servidor:

sentarion seatbelt install --client claude        # hooks + the sentarion MCP server + baseline policy
sentarion seatbelt check --command "rm -rf build"  # → ask (baseline) — what would the gate say?
sentarion seatbelt doctor                          # what is wired, the policies, and a live self-test
sentarion seatbelt recall                          # the project brief the next session will open with
HookQué hace el cinturón de seguridad
PreToolUsecompara el comando / la ruta del archivo / el contenido escrito contra ~/.sentarion/seatbelt/policies/*.json → deny / ask / allow, con una razón. Una denegación se aplica en todos los modos de permiso y se registra en la cadena.
PostToolUseregistra cada edición y comando en la cadena local de ArkHive (para que recall y verify lo vean) y anota cuándo se ejecuta un comando de test/build/run.
SessionStartel resumen del proyecto: archivos editados, comandos ejecutados, qué falló, decisiones registradas con remember, y cómo terminó la última sesión.
Stopcon ediciones de código y sin test/build/run desde la última edición, envía al agente de vuelta una vez; una política de cableado también puede listar rutas de frontend sin backend.

Qué cadena. Con arkhive-mcp >= 2 instalado junto al cinturón de seguridad (la línea Sentarion v2), los hooks escriben en el mismo archivo y espacio que usa el servidor v2 (~/.arkhive/v2/chain.db, espacio sentarion), etiquetado seatbelt, firmado por la misma clave: los recall / verify del servidor los ven y el resumen lee de vuelta lo que el propio modelo remember (el servidor v2 firma cada registro como su asiento de ejecución y rechaza cualquier otro actor, así que el resumen le dice al modelo que pase la etiqueta, no un actor). Con arkhive-mcp 0.x los hooks usan ~/.sentarion/local_chamber.db. ARKHIVE_DB anula cualquiera de los dos; sentarion seatbelt doctor informa chain.mode (v2 / legacy). El historial dejado en la cámara 0.x todavía se lee en el resumen después de una migración; nada se migra ni se reescribe.

Las políticas son JSON plano (decision, tools, match, paths, content_match, reason; ver seatbelt.POLICY_SCHEMA). La línea base pregunta antes de los verbos irreversibles. La versión empaquetada con cinco políticas, tres habilidades e instaladores de un clic es el Claude Code Seatbelt Kit.

Inicio rápido

Claude Code (examples/claude_code/)

claude mcp add sentarion -- sentarion

o en .mcp.json:

{ "mcpServers": { "sentarion": { "command": "sentarion", "args": [] } } }

Codex (examples/codex/) — en ~/.codex/config.toml:

[mcp_servers.sentarion]
command = "sentarion"
args = []

Cursor (examples/cursor/) — en .cursor/mcp.json:

{ "mcpServers": { "sentarion": { "command": "sentarion", "args": [] } } }

Las claves del proveedor vienen de tu entorno: configura ANTHROPIC_API_KEY (o OPENAI_API_KEY), o déjalas fuera y la flota se ejecutará en tu Ollama local si uno está en funcionamiento (examples/ollama/). Luego di: "Usa sentarion: ejecuta sentarion_doctor, nace como Scout, luego orquesta_y_registra un plan para X con k=3."

Herramientas

herramientaqué hace
sentarion_doctor(timeout_s)comprobación de salud de solo lectura de cada dependencia, con una solución clara por cada comprobación fallida; nunca imprime secretos
sentarion_quickstart(topic)ejemplos de llamadas canónicos y ejecutables para cada capacidad
sentarion_birth(name, covenant)gana un soul_id antes de actuar (Ley 5: nacido, no configurado)
remember / recall / verifymemoria de doble cadena: cámara local + ArkHive alojado, fusionado del más nuevo al más antiguo, ambos demostrables
govern(action, flags, rules)puerta de dos cámaras, cero LLM, fail-closed "¿puedo?"
orchestrate_and_record(goal, k)puerta → plan+despacho de Algernon → registrado automáticamente en ambas cadenas; devuelve un run_id, un resumen de tareas/exitosas/fallidas y el resultado de memoria por cadena
dispatch_with_dependencies(tasks_json)puerta → oleadas por depends_on; los dependientes reciben resultados {{id}} (flujo de datos, nuevo en 0.2.2)
recall_and_replan(query, k)plan con historial previo (solo plan, sin despacho)
cost_estimate(k, in_price, out_price)costo aproximado previo al despacho
worktree(action, repo_path, ...)sandbox de worktree git gobernado: crear / listar / eliminar
sentarion_pro(topic, email)lo que la actualización de pago v2 añade a la capacidad que estás usando; con un correo electrónico, solicita una clave de prueba

Gobernanza — real, conectada, fail-closed

Dos gobernadores, una regla de decisión: un veto emitido bloquea; una cámara que falla al responder nunca fabrica un veto; si ninguna cámara emite un veredicto, la acción se bloquea. Cada herramienta que ejecuta trabajo o muta estado (orchestrate_and_record, dispatch_with_dependencies, worktree create/remove) pasa la puerta primero.

Ejemplos

Gratis vs v2

gratis, Apache-2.0, para siempreSentarion v2 (de pago)
servidor MCP local, compatibilidad estándar con clientes MCPtrabajos duraderos y ejecución en segundo plano
orquestación de Algernon y despacho de dependencias con flujo de datos {{id}}motor de flujo de trabajo con compuertas de fase, aplicación de roles y contratos de tareas estructurados
integración de ArkHive y la cámara local; recordar / recuperar / verificarmanifiestos de ejecución firmados y evidencia de verificación vinculada a SHA
nacimiento / identidad; gobernanza fail-closed de dos cámaras; los indicadores de riesgo obvios inferidos del texto de la accióninferencia más profunda (PII, credenciales, dinero, alcance masivo), un veredicto REVIEW que un humano puede convertir en un sí, políticas versionadas almacenadas, una cámara remota
worktree crear / listar / eliminarworktree diff / patch / commit, arrendamientos de repositorio, instantáneas de verdad del repositorio
flota local de Ollama; estimaciones de costo aproximadaspresupuestos y techos duros, reintentos, caché, libro mayor de costos avanzado
uso de un solo usuario, eventos de auditoría básicosrevisión de código adversarial, flujo de trabajo GitHub/CI, tenencia de equipo, historial alojado, compuertas de despliegue

Únete al acceso anticipado de v2

Clave de prueba + precios: https://inboxaxe.com/mcp — o, desde cualquier cliente que tenga Sentarion cargado, llama a sentarion_pro(email="you@company.com") y se solicita una clave v2 de 14 días para esa dirección. No se envía nada a menos que proporciones un correo electrónico.

Registro de cambios

0.4.0

  • sentarion seatbelt: hooks de Claude Code / Cursor (puerta PreToolUse, memoria PostToolUse, resumen SessionStart, puerta Stop), archivos de política JSON con una línea base integrada, CLI de install/uninstall/doctor/check/recall/policies, 37 pruebas. Nada en la superficie MCP cambió.

0.3.1

  • sentarion_birth lleva la identidad en ambas cadenas y devuelve actor (tu nombre de nacimiento, que se resuelve en cada cadena). Antes, el nacimiento aterrizaba solo en la cámara local, así que el primer remember alojado de un extraño era rechazado como "alma no nacida".
  • Una cámara que no puede responder (por ejemplo, un archivo de cadena escrito por ArkHive 2.x) ahora es un {error, fix} legible en la respuesta de nacimiento en lugar de un fallo de "errores no manejados en un TaskGroup".
  • govern infiere los indicadores de riesgo obvios del texto de la acción (irreversible, external_send, financial — los mismos nombres que usa v2) y los rechaza por defecto, en ambas cámaras. Antes, govern("delete the production database") era aprobado, y también lo era la misma llamada con flags=["irreversible"], porque ninguna regla predeterminada nombraba esos disparadores.
  • El README comienza con el primer minuto, medido.

0.3.0

  • Instrucciones del servidor. La respuesta MCP initialize ahora lleva orientación de uso (nacer primero, gobernar antes de actuar, nunca inventar resultados, flujo de datos {{id}}, gratis vs de pago).
  • sentarion_doctor. Comprobación de salud de solo lectura de git, Algernon, la cámara local, ArkHive alojado, proveedor de flota, Ollama y clave de API, con una solución por cada comprobación fallida; nunca imprime secretos.
  • sentarion_quickstart. Seis llamadas de ejemplo canónicas y ejecutables, una por capacidad.
  • Resumen de ejecución. orchestrate_and_record devuelve un bloque run con run_id y tiempos, un summary de tareas/exitosas/fallidas, y un resultado memory por cadena (recorded, not_configured, o error: <type>) en lugar de tragarse los fallos de escritura.
  • sentarion_pro contextual. topic opcional (worktree, dispatch, govern, memory, review, jobs) devuelve lo que v2 añade a la capacidad que estás usando; las rutas sin argumentos y con correo electrónico no cambian.
  • examples/. Ejemplos de Claude Code, Codex, Cursor, Ollama, despacho multiagente y worktree, más el flujo de trabajo Claude-plans / Codex-builds.
  • Pruebas + CI. tests/ con pytest; un trabajo de GitHub Actions los ejecuta en Python 3.10 y 3.12 y falla en desviación de versiones.
  • Corrección del fallo de nacimiento. El respaldo de nacimiento de ArkHive ya no lanza NameError (tool_text no estaba importado).
  • Unificación de versiones. pyproject.toml, sentarion_mcp.__version__ y server.json ahora coinciden; las ruedas construidas ya no se rastrean.

0.2.2 — qué cambió (encontrado por dogfooding)

  • La configuración de flota es explícita. 0.2.1 pasaba todo el entorno ambiental a Algernon, así que un OPENAI_API_KEY obsoleto en tu shell podía anular silenciosamente tu configuración de Ollama (401). Ahora SENTARION_FLEET_PROVIDER=anthropic|openai|ollama gana, si no una clave configurada, si no un Ollama local.
  • La cámara local siempre existe. Sin Humane instalado, el paquete incluido arkhive-mcp es la cámara local (cadena propia en ~/.sentarion/local_chamber.db). "humane_not_configured" ha desaparecido.
  • Las dependencias llevan datos. {{t1}} en una indicación dependiente se reemplaza con el resultado de la tarea t1.
  • El nacimiento alojado funciona (el servidor 0.x alojado escribía covenant como una cadena; reintentamos con una).
  • recall_and_replan ya no envía un argumento que el recall alojado nunca aceptó.
  • Se eliminó la dependencia no utilizada mcp-agent; se añadieron URLs del proyecto.

Apoya este proyecto

Sentarion, Algernon y ArkHive son gratuitos, de código abierto y construidos en nuestro propio hardware. Dona: https://dondatabrain.com · Suite empresarial: https://inboxaxe.com