Skip to main content
Glama

sentarion-mcp — Give your AI agents rules, memory, and receipts.

Install: pip install sentarion-mcp · Command: sentarion · Apache-2.0 · Hosted endpoint

Sentarion is the open-source MCP control layer for governed multi-agent work. It governs, records, and coordinates agent work across Claude Code, Codex, Cursor, local models, and any MCP-compatible client.

It composes three open-source MCP servers into one governed substrate — it connects to them as an MCP client, it does not reimplement them:

  • Algernon — fan-out planning/dispatch to cheap parallel workers on your key (or a free local Ollama, auto-detected since 0.2.2)

  • ArkHive — hosted, tamper-evident audit/memory chain

  • a local covenant chamber (Humane Intelligence, or the bundled arkhive-mcp package when Humane is not installed)

The first minute

Everything below was run, not written, against a clean pip install sentarion-mcp (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

Now play the villain. Open ~/.sentarion/local_chamber.db and change one word of that record by hand (update blocks set action = replace(action, 'ship', 'cancel') where idx = 0). Then:

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

And the gate, with nothing configured:

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

That is the whole idea. Your AI writes down what it did, reads it back next session, and a silent rewrite fails verification. Every record is hash-chained to the one before it; the hosted copy is a second witness. govern reads the obvious risks off the action text (delete / drop / force-push, send to everyone, pay, deploy to production), blocks them by default and fails closed when no chamber answers; orchestrate_and_record asks it first, fans work out to cheap workers and puts the receipt on the same chain.

Related MCP server: Astatide Conductor

Install

pip install sentarion-mcp

Then, from any MCP client, run sentarion_doctor. It checks git, Algernon, the local chamber, hosted ArkHive, the fleet provider, Ollama and your API key, reports ready: true when a run will work, and lists one fix per missing piece. It never prints a secret.

The seatbelt — hooks, not hope

An MCP tool only helps when the model decides to call it. sentarion seatbelt wires Claude Code (and Cursor, beta) hooks that run on every tool call whether the model remembers or not, using the same gate vocabulary and the same local chain as the server:

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

What the seatbelt does

PreToolUse

matches the command / file path / written content against ~/.sentarion/seatbelt/policies/*.json → deny / ask / allow, with a reason. A deny is enforced in every permission mode and recorded on the chain.

PostToolUse

records every edit and command on the local ArkHive chain (so recall and verify see it) and notes when a test/build/run command executes.

SessionStart

the project brief: files edited, commands run, what failed, decisions recorded with remember, and how the last session ended.

Stop

with code edits and no test/build/run since the last edit, sends the agent back once; a wiring policy can also list frontend routes with no backend.

Which chain. With arkhive-mcp >= 2 installed next to the seatbelt (the Sentarion v2 line), the hooks write to the same file and space the v2 server uses (~/.arkhive/v2/chain.db, space sentarion), tagged seatbelt, signed by the same key: the server's recall / verify see them and the brief reads back what the model itself remembered (the v2 server signs every record as its runtime seat and refuses any other actor, so the brief tells the model to pass the tag, not an actor). With arkhive-mcp 0.x the hooks use ~/.sentarion/local_chamber.db. ARKHIVE_DB overrides either; sentarion seatbelt doctor reports chain.mode (v2 / legacy). History left in the 0.x chamber is still read into the brief after a move; nothing is migrated or rewritten.

Policies are plain JSON (decision, tools, match, paths, content_match, reason; see seatbelt.POLICY_SCHEMA). The baseline asks before the irreversible verbs. The packaged version with five policies, three skills and one-click installers is the Claude Code Seatbelt Kit.

Quick start

Claude Code (examples/claude_code/)

claude mcp add sentarion -- sentarion

or in .mcp.json:

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

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

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

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

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

Provider keys come from your environment: set ANTHROPIC_API_KEY (or OPENAI_API_KEY), or leave both out and the fleet runs on your local Ollama if one is running (examples/ollama/). Then say: "Use sentarion: run sentarion_doctor, birth yourself as Scout, then orchestrate_and_record a plan for X with k=3."

Tools

tool

what it does

sentarion_doctor(timeout_s)

read-only health check of every dependency, with one plain fix per failing check; never prints secrets

sentarion_quickstart(topic)

canonical, runnable example calls for every capability

sentarion_birth(name, covenant)

earn a soul_id before acting (Law 5: born, not configured)

remember / recall / verify

dual-chain memory: local chamber + hosted ArkHive, merged newest-first, both provable

govern(action, flags, rules)

two-chamber, zero-LLM, fail-closed "may I?" gate

orchestrate_and_record(goal, k)

gate → Algernon plan+dispatch → auto-logged to both chains; returns a run_id, a tasks/succeeded/failed summary and the memory outcome per chain

dispatch_with_dependencies(tasks_json)

gate → waves by depends_on; dependents receive {{id}} results (data flow, new in 0.2.2)

recall_and_replan(query, k)

history-primed plan (plan only, no dispatch)

cost_estimate(k, in_price, out_price)

rough pre-dispatch cost

worktree(action, repo_path, ...)

governed git-worktree sandbox: create / list / remove

sentarion_pro(topic, email)

what the paid v2 upgrade adds to the capability you are using; with an email, requests a trial key

Governance — real, wired, fail-closed

Two governors, one decision rule: a rendered veto blocks; a chamber that fails to answer never manufactures a veto; if no chamber renders a verdict, the action is blocked. Every tool that executes work or mutates state (orchestrate_and_record, dispatch_with_dependencies, worktree create/remove) passes the gate first.

Examples

Free vs v2

free, Apache-2.0, forever

Sentarion v2 (paid)

local MCP server, standard MCP client compatibility

durable jobs and background execution

Algernon orchestration and dependency dispatch with {{id}} data flow

phase-gate workflow engine with role enforcement and structured task contracts

ArkHive integration and the local chamber; remember / recall / verify

signed run manifests and SHA-bound verification evidence

birth / identity; two-chamber fail-closed governance; the obvious risk flags inferred from the action text

deeper inference (PII, credentials, money, bulk scope), a REVIEW verdict a human can turn into a yes, stored versioned policies, a remote chamber

worktree create / list / remove

worktree diff / patch / commit, repository leases, repo truth snapshots

local Ollama fleet; rough cost estimates

budgets and hard ceilings, retries, cache, advanced cost ledger

single-user usage, basic audit events

adversarial code review, GitHub/CI workflow, team tenancy, hosted history, deployment gates

Join v2 early access

Trial key + pricing: https://inboxaxe.com/mcp — or, from any client that has Sentarion loaded, call sentarion_pro(email="you@company.com") and a 14-day v2 key is requested for that address. Nothing is sent unless you supply an email.

Changelog

0.4.0

  • sentarion seatbelt: Claude Code / Cursor hooks (PreToolUse gate, PostToolUse memory, SessionStart brief, Stop gate), JSON policy files with a built-in baseline, install/uninstall/doctor/check/recall/policies CLI, 37 tests. Nothing in the MCP surface changed.

0.3.1

  • sentarion_birth bears the identity on both chains and returns actor (your birth name, which resolves on each chain). Before, birth landed on the local chamber only, so a stranger's very first hosted remember was refused as "not a born soul".

  • A chamber that cannot answer (for example a chain file written by ArkHive 2.x) is now a readable {error, fix} in the birth reply instead of an "unhandled errors in a TaskGroup" crash.

  • govern infers the obvious risk flags from the action text (irreversible, external_send, financial - the same names v2 uses) and refuses them by default, on both chambers. Before, govern("delete the production database") was approved, and so was the same call with flags=["irreversible"], because no default rule named those triggers.

  • README leads with the first minute, measured.

0.3.0

  • Server instructions. The MCP initialize response now carries usage guidance (birth first, govern before acting, never invent results, {{id}} data flow, free vs paid).

  • sentarion_doctor. Read-only health check of git, Algernon, the local chamber, hosted ArkHive, fleet provider, Ollama and API key, with one fix per failing check; never prints secrets.

  • sentarion_quickstart. Six canonical, runnable example calls, one per capability.

  • Run summary. orchestrate_and_record returns a run block with run_id and timing, a tasks/succeeded/failed summary, and a memory outcome per chain (recorded, not_configured, or error: <type>) instead of swallowing write failures.

  • Contextual sentarion_pro. Optional topic (worktree, dispatch, govern, memory, review, jobs) returns what v2 adds to the capability you are using; the no-argument and email paths are unchanged.

  • examples/. Claude Code, Codex, Cursor, Ollama, multi-agent dispatch and worktree examples, plus the Claude-plans / Codex-builds workflow.

  • Tests + CI. tests/ with pytest; a GitHub Actions job runs them on Python 3.10 and 3.12 and fails on version drift.

  • Birth fallback fix. The ArkHive birth fallback no longer raises NameError (tool_text was not imported).

  • Version unification. pyproject.toml, sentarion_mcp.__version__ and server.json now agree; built wheels are no longer tracked.

0.2.2 — what changed (found by dogfooding)

  • Fleet config is explicit. 0.2.1 passed the whole ambient environment to Algernon, so a stale OPENAI_API_KEY in your shell could silently override your Ollama setup (401). Now SENTARION_FLEET_PROVIDER=anthropic|openai|ollama wins, else a set key, else a local Ollama.

  • Local chamber always exists. Without Humane installed, the bundled arkhive-mcp package is the local chamber (own chain at ~/.sentarion/local_chamber.db). "humane_not_configured" is gone.

  • Dependencies carry data. {{t1}} in a dependent prompt is replaced with task t1's result.

  • Hosted birth works (the hosted 0.x server typed covenant as a string; we retry with one).

  • recall_and_replan no longer sends an argument the hosted recall never accepted.

  • Removed the unused mcp-agent dependency; added project URLs.

Support this project

Sentarion, Algernon and ArkHive are free, open source, and built on our own hardware. Donate: https://dondatabrain.com · Business suite: https://inboxaxe.com

Available Tools

13 tools
cost_estimateA

Predict token cost of an Algernon fan-out BEFORE dispatching.

Inputs: k_tasks (required), input_price_per_mtok (required), output_price_per_mtok (required).

dispatch_with_dependenciesB

Run tasks in dependency-ordered waves via Algernon (fan-out/fan-in).

Inputs: tasks_json (required).

governA

Ask the two-chamber gate (Humane + ArkHive) 'may I?' before acting. Rule-based, zero-LLM, fail-closed.

Inputs: action (required), flags, rules.

orchestrate_and_recordC

Two-chamber-govern-gated plan+dispatch via Algernon, auto-logged to both chains.

Inputs: k (required), goal (required), actor, flags.

recallC

Read prior context from BOTH chains and merge it, newest first, so the AI need not re-derive it.

Inputs: actor, limit.

recall_and_replanC

Recall prior state from both chains, feed it into a new Algernon plan.

Inputs: k (required), query (required).

rememberB

Write a tamper-evident record to BOTH chains at once (local Humane + hosted ArkHive). actor = the actor sentarion_birth returned (your birth name); each chain refuses an actor it has not born.

Inputs: actor (required), action (required), data.

sentarion_birthC

Earn an identity (Humane Law 5: born, not configured) before acting - on BOTH chains, the local chamber and hosted ArkHive. Returns actor (your birth name; it resolves to this identity on each chain) plus each chain's soul_id. Never crashes: a chamber that cannot answer is reported with a fix.

Inputs: name (required), covenant (required).

sentarion_doctorA

Check that everything Sentarion needs is present and reachable (git, Algernon, local chamber, hosted ArkHive, fleet provider, Ollama, API key) and say exactly what to fix. Read-only; never prints secrets.

Inputs: timeout_s.

sentarion_proC

Sentarion v2 — the paid upgrade: in-process (no per-call subprocesses), concurrent two-chamber gate with inferred risk flags + stored policies, {{id}} data-flow dispatch, signed audit manifests, adversarial multi-agent code review, worktree sandbox with diffs, real cost estimates, progress + background jobs. Free 0.x stays whole. Details + trial key: https://inboxaxe.com/mcp

Inputs: email, topic.

sentarion_quickstartC

Canonical, runnable examples for every Sentarion capability: plan a feature, fan out research, dispatch with dependencies, use a worktree, remember a result, replan from memory.

Inputs: topic.

verifyA

Prove BOTH audit chains (local Humane + hosted ArkHive) are unbroken.

Inputs: no named parameters.

worktreeA

Git-worktree sandbox skill: run dispatched work in an isolated worktree so it never touches the live checkout. action=create|list|remove. create/remove are two-chamber-governed; list is read-only.

Inputs: action (required), repo_path (required), base, path, +4 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.9/5.0

    Scored across 13 tools

    Disambiguation3/5

    Most tools target distinct Sentarion concepts, but several boundaries blur: govern vs. orchestrate_and_record vs. dispatch_with_dependencies overlap around gated orchestration, recall vs. recall_and_replan differ only by replanning, and verify vs. sentarion_doctor both diagnose chain/system health. Descriptions help, but an agent could still hesitate between several pairs.

    Naming Consistency3/5

    All names are snake_case and readable, but the convention is mixed: some are bare verbs (govern, recall, verify, remember), some are verb_noun compounds, and several use a sentarion_ prefix while others do not. The pattern is not predictable across the set.

    Tool Count4/5

    13 tools is a reasonable size for a governance, audit, and orchestration server. However, sentarion_pro and sentarion_quickstart are informational/promotional rather than core operational tools, slightly inflating the effective surface.

    Completeness4/5

    The core lifecycle is well covered: birth/identity, govern, plan/dispatch, remember, recall, verify, worktree sandboxing, and diagnostics. Minor gaps remain, such as policy management, audit log query/export beyond recall, and task cancellation/status operations that are only hinted at in sentarion_pro.

    Maintenance

    ActivityNo data
    ResponsivenessSyncing

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      B
      maintenance
      Provides a trust and governance layer for AI agents, enabling secure API access, credential vaulting, paid execution with human approval, and automatic call resume.
      4 npm
      2
      -
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables autonomous multi-agent orchestration using directed acyclic graph workflows to interact with external developer infrastructure such as Git, Postgres, and Docker through safety-gated MCP servers.
      Apache 2.0
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables governed tool-calling agents with policy decisions, optional human approval, hash-chained audit logging, and deterministic evaluation.
      MIT