Skip to main content

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.

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.

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.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, spends_money, deploys) 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

Metadata

Release files for sentarion-mcp 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sentarion-mcp 0.3.1
File Size Uploaded
sentarion_mcp-0.3.1.tar.gz 62.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sentarion-mcp 0.3.1
File Interpreter ABI Platform
sentarion_mcp-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 97.8 kB

Release files / sentarion_mcp-0.3.1.tar.gz

Download URL sentarion_mcp-0.3.1.tar.gz
Size 62.4 kB
Tags Source
SHA-256 checksum
How to use checksums
1991404c9715c9b08935222b138e9f6f52f16bd72bdbd0e1978e95eae286b75e
BLAKE2b-256 checksum
How to use checksums
46bb95ad6c7fc6463340362ddd30fc326c8470a404d4c151f00c372cc332270f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / sentarion_mcp-0.3.1-py3-none-any.whl

Download URL sentarion_mcp-0.3.1-py3-none-any.whl
Size 35.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2ae7176777d2506040abb2b0d9f7faa7f55947ecb9d2602c5c32d4684f9e147a
BLAKE2b-256 checksum
How to use checksums
288acb83f205b2db08aaa678faf83bc370f127e8dc3c21713a4514cbc9f06964
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release history Release notifications | RSS feed

0.4.0

2 release files

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page