Sentarion MCP

Orquestração multiagente governada para agentes de codificação de IA — portão de políticas, cadeia de auditoria à prova de adulteração, inclui o Claude Code Seatbelt.

Servidor MCP hospedado

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

Instala no Claude Code, Codex, Cursor e outros

Documentação

sentarion-mcp — Dê regras, memória e recibos aos seus agentes de IA.

Instalação: pip install sentarion-mcp · Comando: sentarion · Apache-2.0 · Endpoint hospedado

Sentarion é a camada de controle MCP de código aberto para trabalho multiagente governado. Ele governa, registra e coordena o trabalho dos agentes em Claude Code, Codex, Cursor, modelos locais e qualquer cliente compatível com MCP.

Ele compõe três servidores MCP de código aberto em um substrato governado — conecta-se a eles como cliente MCP, não os reimplementa:

  • Algernon — planejamento/despacho fan-out para workers paralelos baratos na sua chave (ou um Ollama local gratuito, detectado automaticamente desde 0.2.2)
  • ArkHive — cadeia de auditoria/memória hospedada e à prova de adulteração
  • uma câmara de pacto local (Humane Intelligence, ou o pacote arkhive-mcp incluído quando Humane não está instalado)

O primeiro minuto

Tudo abaixo foi executado, não escrito, contra um pip install sentarion-mcp limpo (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

Agora faça o vilão. Abra o ~/.sentarion/local_chamber.db e altere uma palavra desse registro manualmente (update blocks set action = replace(action, 'ship', 'cancel') where idx = 0). Então:

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

E o portão, sem 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

Essa é toda a ideia. Seu agente de IA escreve o que fez, lê de volta na próxima sessão, e uma reescrita silenciosa falha na verificação. Cada registro é encadeado por hash ao anterior; a cópia hospedada é uma segunda testemunha. govern lê os riscos óbvios do texto da ação (delete / drop / force-push, enviar para todos, pagar, deploy para produção), bloqueia-os por padrão e falha fechado quando nenhuma câmara responde; orchestrate_and_record pergunta a ele primeiro, distribui o trabalho para workers baratos e coloca o recibo na mesma cadeia.

Instalação

pip install sentarion-mcp

Então, de qualquer cliente MCP, execute sentarion_doctor. Ele verifica git, Algernon, a câmara local, ArkHive hospedado, o provedor de frota, Ollama e sua chave de API, reporta ready: true quando uma execução funcionará e lista uma correção para cada peça ausente. Nunca imprime um segredo.

O cinto de segurança — hooks, não esperança

Uma ferramenta MCP só ajuda quando o modelo decide chamá-la. sentarion seatbelt conecta os hooks do Claude Code (e Cursor, beta) que rodam em cada chamada de ferramenta, quer o modelo lembre ou não, usando o mesmo vocabulário de portão e a mesma cadeia local que o 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
HookO que o cinto de segurança faz
PreToolUsecompara o comando / caminho do arquivo / conteúdo escrito contra ~/.sentarion/seatbelt/policies/*.json → deny / ask / allow, com um motivo. Uma negação é aplicada em todos os modos de permissão e registrada na cadeia.
PostToolUseregistra cada edição e comando na cadeia local ArkHive (para que recall e verify vejam) e anota quando um comando de teste/build/execução é executado.
SessionStarto resumo do projeto: arquivos editados, comandos executados, o que falhou, decisões registradas com remember, e como a última sessão terminou.
Stopcom edições de código e sem teste/build/execução desde a última edição, envia o agente de volta uma vez; uma política de fiação também pode listar rotas de frontend sem backend.

Qual cadeia. Com arkhive-mcp >= 2 instalado ao lado do cinto de segurança (a linha Sentarion v2), os hooks escrevem no mesmo arquivo e espaço que o servidor v2 usa (~/.arkhive/v2/chain.db, espaço sentarion), marcados com seatbelt, assinados pela mesma chave: o recall / verify do servidor os veem e o resumo lê de volta o que o próprio modelo rememberou (o servidor v2 assina cada registro como seu assento de runtime e recusa qualquer outro ator, então o resumo diz ao modelo para passar a tag, não um ator). Com arkhive-mcp 0.x os hooks usam ~/.sentarion/local_chamber.db. ARKHIVE_DB substitui qualquer um; sentarion seatbelt doctor reporta chain.mode (v2 / legacy). O histórico deixado na câmara 0.x ainda é lido no resumo após uma mudança; nada é migrado ou reescrito.

As políticas são JSON simples (decision, tools, match, paths, content_match, reason; veja seatbelt.POLICY_SCHEMA). A linha de base pergunta antes dos verbos irreversíveis. A versão empacotada com cinco políticas, três habilidades e instaladores de um clique é o Claude Code Seatbelt Kit.

Início rápido

Claude Code (examples/claude_code/)

claude mcp add sentarion -- sentarion

ou em .mcp.json:

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

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

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

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

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

As chaves do provedor vêm do seu ambiente: defina ANTHROPIC_API_KEY (ou OPENAI_API_KEY), ou deixe ambos de fora e a frota roda no seu Ollama local se um estiver em execução (examples/ollama/). Então diga: "Use sentarion: execute sentarion_doctor, nasça como Scout, então orquestre_e_registre um plano para X com k=3."

Ferramentas

ferramentao que faz
sentarion_doctor(timeout_s)verificação de saúde somente leitura de cada dependência, com uma correção simples por verificação com falha; nunca imprime segredos
sentarion_quickstart(topic)exemplos canônicos e executáveis de chamadas para cada capacidade
sentarion_birth(name, covenant)ganhe um soul_id antes de agir (Lei 5: nascido, não configurado)
remember / recall / verifymemória de cadeia dupla: câmara local + ArkHive hospedado, mesclados do mais novo ao mais antigo, ambos comprováveis
govern(action, flags, rules)portão "posso?" de duas câmaras, zero-LLM, falha fechada
orchestrate_and_record(goal, k)portão → plano+despacho Algernon → registrado automaticamente em ambas as cadeias; retorna um run_id, um resumo de tarefas/sucesso/falha e o resultado de memória por cadeia
dispatch_with_dependencies(tasks_json)portão → ondas por depends_on; dependentes recebem resultados {{id}} (fluxo de dados, novo em 0.2.2)
recall_and_replan(query, k)plano com histórico pré-carregado (somente plano, sem despacho)
cost_estimate(k, in_price, out_price)custo aproximado pré-despacho
worktree(action, repo_path, ...)sandbox de worktree git governado: criar / listar / remover
sentarion_pro(topic, email)o que o upgrade pago v2 adiciona à capacidade que você está usando; com um email, solicita uma chave de teste

Governança — real, conectada, falha fechada

Dois governadores, uma regra de decisão: um veto renderizado bloqueia; uma câmara que falha em responder nunca fabrica um veto; se nenhuma câmara renderizar um veredito, a ação é bloqueada. Toda ferramenta que executa trabalho ou altera estado (orchestrate_and_record, dispatch_with_dependencies, worktree create/remove) passa pelo portão primeiro.

Exemplos

Grátis vs v2

grátis, Apache-2.0, para sempreSentarion v2 (pago)
servidor MCP local, compatibilidade padrão com clientes MCPjobs duráveis e execução em segundo plano
orquestração Algernon e despacho de dependências com fluxo de dados {{id}}motor de workflow com portões de fase, aplicação de papéis e contratos de tarefa estruturados
integração ArkHive e câmara local; lembrar / recordar / verificarmanifestos de execução assinados e evidência de verificação vinculada a SHA
nascimento / identidade; governança de falha fechada de duas câmaras; os flags de risco óbvios inferidos do texto da açãoinferência mais profunda (PII, credenciais, dinheiro, escopo em massa), um veredito REVIEW que um humano pode transformar em sim, políticas versionadas armazenadas, uma câmara remota
worktree criar / listar / removerworktree diff / patch / commit, leases de repositório, snapshots de verdade do repositório
frota local Ollama; estimativas de custo aproximadasorçamentos e tetos rígidos, tentativas, cache, ledger de custo avançado
uso de usuário único, eventos de auditoria básicosrevisão de código adversarial, workflow GitHub/CI, tenancy de equipe, histórico hospedado, portões de deploy

Junte-se ao acesso antecipado v2

Chave de teste + preços: https://inboxaxe.com/mcp — ou, de qualquer cliente com Sentarion carregado, chame sentarion_pro(email="you@company.com") e uma chave v2 de 14 dias é solicitada para esse endereço. Nada é enviado a menos que você forneça um email.

Changelog

0.4.0

  • sentarion seatbelt: hooks Claude Code / Cursor (portão PreToolUse, memória PostToolUse, resumo SessionStart, portão Stop), arquivos de política JSON com uma linha de base embutida, CLI install/uninstall/doctor/check/recall/policies, 37 testes. Nada na superfície MCP mudou.

0.3.1

  • sentarion_birth carrega a identidade em ambas as cadeias e retorna actor (seu nome de nascimento, que resolve em cada cadeia). Antes, o nascimento caía apenas na câmara local, então o primeiro remember hospedado de um estranho era recusado como "não é uma alma nascida".
  • Uma câmara que não pode responder (por exemplo, um arquivo de cadeia escrito pelo ArkHive 2.x) agora é um {error, fix} legível na resposta de nascimento em vez de um crash de "erros não tratados em um TaskGroup".
  • govern infere os flags de risco óbvios do texto da ação (irreversível, envio_externo, financeiro — os mesmos nomes que v2 usa) e os recusa por padrão, em ambas as câmaras. Antes, govern("delete the production database") era aprovado, e também a mesma chamada com flags=["irreversible"], porque nenhuma regra padrão nomeava esses gatilhos.
  • README começa com o primeiro minuto, medido.

0.3.0

  • Instruções do servidor. A resposta MCP initialize agora carrega orientação de uso (nascimento primeiro, governe antes de agir, nunca invente resultados, fluxo de dados {{id}}, grátis vs pago).
  • sentarion_doctor. Verificação de saúde somente leitura de git, Algernon, câmara local, ArkHive hospedado, provedor de frota, Ollama e chave de API, com uma correção por verificação com falha; nunca imprime segredos.
  • sentarion_quickstart. Seis chamadas de exemplo canônicas e executáveis, uma por capacidade.
  • Resumo de execução. orchestrate_and_record retorna um bloco run com run_id e tempo, um summary de tarefas/sucesso/falha, e um resultado memory por cadeia (recorded, not_configured, ou error: <type>) em vez de engolir falhas de escrita.
  • sentarion_pro contextual. topic opcional (worktree, dispatch, govern, memory, review, jobs) retorna o que v2 adiciona à capacidade que você está usando; os caminhos sem argumento e com email não mudaram.
  • examples/. Exemplos Claude Code, Codex, Cursor, Ollama, despacho multiagente e worktree, além do workflow Claude-plans / Codex-builds.
  • Testes + CI. tests/ com pytest; um job GitHub Actions os executa em Python 3.10 e 3.12 e falha em drift de versão.
  • Correção de fallback de nascimento. O fallback de nascimento ArkHive não levanta mais NameError (tool_text não foi importado).
  • Unificação de versão. pyproject.toml, sentarion_mcp.__version__ e server.json agora concordam; wheels construídos não são mais rastreados.

0.2.2 — o que mudou (encontrado por dogfooding)

  • Configuração de frota explícita. 0.2.1 passava todo o ambiente ambiente para Algernon, então um OPENAI_API_KEY obsoleto no seu shell podia silenciosamente sobrescrever sua configuração Ollama (401). Agora SENTARION_FLEET_PROVIDER=anthropic|openai|ollama vence, senão uma chave definida, senão um Ollama local.
  • Câmara local sempre existe. Sem Humane instalado, o pacote arkhive-mcp incluído é a câmara local (cadeia própria em ~/.sentarion/local_chamber.db). "humane_not_configured" desapareceu.
  • Dependências carregam dados. {{t1}} em um prompt dependente é substituído pelo resultado da tarefa t1.
  • Nascimento hospedado funciona (o servidor 0.x hospedado tipava covenant como string; tentamos novamente com um).
  • recall_and_replan não envia mais um argumento que o recall hospedado nunca aceitou.
  • Removida a dependência não utilizada mcp-agent; URLs de projeto adicionadas.

Apoie este projeto

Sentarion, Algernon e ArkHive são gratuitos, de código aberto e construídos em nosso próprio hardware. Doe: https://dondatabrain.com · Suíte empresarial: https://inboxaxe.com