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-mcpincluí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
| Hook | O que o cinto de segurança faz |
|---|---|
| PreToolUse | compara 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. |
| PostToolUse | registra 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. |
| SessionStart | o resumo do projeto: arquivos editados, comandos executados, o que falhou, decisões registradas com remember, e como a última sessão terminou. |
| Stop | com 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
| ferramenta | o 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 / verify | memó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
- examples/README.md — índice
- examples/claude_code/ — registre no Claude Code e percorra seis prompts
- examples/codex/ — o mesmo a partir do CLI Codex
- examples/cursor/ — registre no Cursor
- examples/ollama/ — rode a frota em um Ollama local gratuitamente
- examples/multi_agent/ —
dispatch_example.py(ondas de dependência com fluxo de dados{{id}}) e o loop Claude-plans / Codex-builds - examples/worktree/ —
worktree_example.py(criar / listar / remover através do servidor)
Grátis vs v2
| grátis, Apache-2.0, para sempre | Sentarion v2 (pago) |
|---|---|
| servidor MCP local, compatibilidade padrão com clientes MCP | jobs 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 / verificar | manifestos 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ção | inferê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 / remover | worktree diff / patch / commit, leases de repositório, snapshots de verdade do repositório |
| frota local Ollama; estimativas de custo aproximadas | orçamentos e tetos rígidos, tentativas, cache, ledger de custo avançado |
| uso de usuário único, eventos de auditoria básicos | revisã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_birthcarrega a identidade em ambas as cadeias e retornaactor(seu nome de nascimento, que resolve em cada cadeia). Antes, o nascimento caía apenas na câmara local, então o primeirorememberhospedado 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". governinfere 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 comflags=["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
initializeagora 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_recordretorna um blocoruncomrun_ide tempo, umsummaryde tarefas/sucesso/falha, e um resultadomemorypor cadeia (recorded,not_configured, ouerror: <type>) em vez de engolir falhas de escrita. sentarion_procontextual.topicopcional (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_textnão foi importado). - Unificação de versão.
pyproject.toml,sentarion_mcp.__version__eserver.jsonagora 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_KEYobsoleto no seu shell podia silenciosamente sobrescrever sua configuração Ollama (401). AgoraSENTARION_FLEET_PROVIDER=anthropic|openai|ollamavence, senão uma chave definida, senão um Ollama local. - Câmara local sempre existe. Sem Humane instalado, o pacote
arkhive-mcpincluí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
covenantcomo string; tentamos novamente com um). recall_and_replannã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