Skip to main content

arcaeon

One MCP connector for the whole Arcaeon toolbox. Install once, wire one stanza into your client, get eleven tools: a tamper-evident agent ledger, a static checker for MCP-server source, and the hosted witness that catches truncation.

Free to install. Free to use, except the two tools that spend money on our side, and those tell you the price in plain English instead of failing.

Arcaeon ships a shelf of small single-purpose packages. A shelf is a distribution problem: an agent that would use three of them has to find three, install three, and wire three stanzas. Most never get past the first. This is the one door.


Install

pip install arcaeon

Today that command does not work yet, and this README is not going to pretend otherwise. The connector depends on arcaeon-ledger>=0.7.0 and arcaeon-mcp-vet>=0.0.8; PyPI currently has arcaeon-ledger 0.5.9 and no mcp-vet at all. Until both are published, install the two from source first:

pip install -e path/to/arcaeon-ledger      # 0.7.0 — the agent tools live here
pip install -e path/to/mcp_vet             # 0.0.7
pip install -e path/to/arcaeon_connector   # this package

The dependency pins are declared honestly rather than loosened to whatever PyPI happens to hold: a >=0.5.9 that installs and then fails at import is worse than a resolver error that says what is missing.

Check the install without starting a server:

arcaeon-mcp --tools

Wire it into a client

.mcp.json (Claude Code and friends):

{
  "mcpServers": {
    "arcaeon": {
      "command": "arcaeon-mcp",
      "args": ["--log", "agent.log.jsonl"],
      "env": {}
    }
  }
}

With the paid lane switched on, and the ledger somewhere deliberate:

{
  "mcpServers": {
    "arcaeon": {
      "command": "arcaeon-mcp",
      "args": ["--log", "state/agent.log.jsonl", "--ns-dir", "state/ledgers"],
      "env": {
        "ARCAEON_KEY": "your-witness-key"
      }
    }
  }
}

If your client cannot run console scripts, "command": "python", "args": ["-m", "arcaeon_connector"] is the same server.

The tools

Tool Cost What it does
ledger_append free Append one action record to a hash-chained log; returns its chain hash.
ledger_verify free Verify the chain. Three-valued: true every row verified, null the scan was bounded (not a green), false names the exact broken line.
ledger_prove_my_conduct free Log a batch to your own named ledger, get back one head hash to hand your principal.
ledger_verify_peer_ledger free Judge ANOTHER agent's exported log from its text alone. No access to their machine, no writes on yours.
ledger_declare_break free Your log broke. Name the break instead of re-minting a chain that verifies.
vet_scan free Statically scan a Python MCP server's source; findings with exact line numbers.
vet_grade free The full re-testable grade artifact: source_sha256, findings, checks run, declared blind spots, verdict.
vet_audit_verify free Recompute the hash chain over mcp-vet's own call-record ledger; three-valued ok, rows, breaks, first_break.
witness_pin paid Pin your ledger head with a party you cannot advance. The only thing that catches truncation.
witness_renew paid Restate an unchanged head so a finished log stops looking abandoned.
arcaeon_status free Versions, the free/paid split, whether a key is set, where the ledger is.

Names are prefixed by which product answers: ledger_*, vet_*, witness_*.

The paid lane

Two tools need ARCAEON_KEY, because a hosted pin is a commit somebody pays for. Called without a key they return a plain sentence:

witness_pin is a paid Arcaeon tool and no ARCAEON_KEY is set, so nothing was sent.

It pins your ledger head with the hosted witness (https://witness.arcaeon.io): a
party you cannot advance, which is the only thing that catches truncation.

Free tier: 100 pins/month, no card. To get one: email hello@arcaeon.io or ask
Nora for a key.
Entry pack: $5 for 1,000 pins ($0.005/pin): https://buy.stripe.com/aFa4gAb10ead3xy35f0RG08
...

No stack trace, no silent nothing, and the free door named before the paid one — the witness free tier is 100 pins/month with no card, and the witness library itself is self-hostable free forever (point ARCAEON_WITNESS_URL at your own deployment and the same two tools work). The catalog those numbers come from is /.well-known/offers.json, and a test in this repo fails if the copy in the code drifts from it.

Environment

Variable Default Meaning
ARCAEON_KEY unset Witness bearer key. Unset means the two paid tools explain themselves instead of running.
ARCAEON_LEDGER_LOG agent.log.jsonl The ledger ledger_append / ledger_verify write. Same as --log.
ARCAEON_LEDGER_NS_DIR ledgers/ beside the log Per-namespace agent ledgers. Same as --ns-dir.
ARCAEON_WITNESS_URL https://witness.arcaeon.io Point the witness tools at your own self-hosted deployment.
LICENSE_GATE_REQUIRED unset (off) Set to 1 to also require a license key on the two paid tools. Off by default; see below.
ARCAEON_LICENSE_KEY unset The license key, when the gate is on. Bound to a ledger namespace, not to a machine.
LICENSE_GATE_MODULE auto Override which module implements the gate. Only useful to a self-hoster or a test.

The optional license gate (off by default)

A second, optional gate sits in front of the same two paid tools and answers a different question: not "does this caller have a witness account" (that is ARCAEON_KEY) but "is this copy of the package licensed". It is inert unless you set LICENSE_GATE_REQUIRED=1 - unset, nothing here imports, nothing here runs, and the connector behaves exactly as it did before this existed.

When it is on, the license is bound to the ledger namespace being pinned. That is the whole idea: a borrowed key would have to pin under the lender's namespace, into the lender's public pin history, under the lender's name. The gate does not prevent that; it makes it self-incriminating, which for people who buy audit tooling is the part that bites.

It fails closed. LICENSE_GATE_REQUIRED=1 with no gate module installed refuses the paid tools rather than waving them through, because a required check that passes because its own implementation is missing looks enforced and is nothing.

Honest limit, stated here as well as in the gate's own README: a client-side license check deters, it does not prevent. Anyone who can edit the package can delete the call. The real moat is updates and the ledger identity, not this.

What this does NOT prove

Inherited from the packages it bundles, restated here because a bundle that drops the caveats is selling a stronger claim than its parts:

  • Tamper-evidence is not truth. The ledger proves a record was not altered. It says nothing about whether what it records was correct, or whether the agent that wrote it was honest at the time.
  • A clean vet_scan is not "safe". It means a small set of documented failure classes found nothing. mcp-vet publishes its own blind spots inside every grade, including one it demonstrates on its own server.
  • A pin proves no-truncation only relative to what the witness saw, and only as recently as the last pin. The pin gap is the security parameter.
  • Witness auth is bearer-key only (auth_level: "bearer-stage0"). A leaked key can pin and renew in your name. Owner-signature auth is designed (STAGE1_SIGNATURE_DESIGN) and not built.
  • This connector adds no analysis of its own. It re-exports; the ledger tools dispatch straight into arcaeon_ledger.mcp_server.handle, the same function the standalone server runs. If a result here disagrees with the standalone server, that is a bug in this package, and one of the tests exists to catch exactly that shape of drift.

Run the tests

pip install -e ".[dev]"
pytest -q

Fifteen tests. Every one drives a real MCP round-trip; one of them spawns the installed entry point as a subprocess and speaks raw JSON-RPC down the pipe, because "one install and it works" is a claim about the package, not about an importable module.

Security note

Local stdio only. The tools read caller-named paths, so do not put this behind a network transport without an auth layer in front — which is what vet_scan's own zero-auth check would tell you about anyone else's server.

MIT licensed. Every product Arcaeon charges for is listed in /.well-known/offers.json; a charge that is not in that file is not ours.

Release files for arcaeon 0.1.2

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

Source distribution (sdist)

Source distribution for arcaeon 0.1.2
File Size Uploaded
arcaeon-0.1.2.tar.gz 17.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for arcaeon 0.1.2
File Interpreter ABI Platform
arcaeon-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 38.1 kB

Release files / arcaeon-0.1.2.tar.gz

Download URL arcaeon-0.1.2.tar.gz
Size 17.7 kB
Tags Source
SHA-256 checksum
How to use checksums
0e384a85b21e000f0180b4270c3ddd51428b1228dde6fccecb06167e60acebc2
BLAKE2b-256 checksum
How to use checksums
74aa094fa9619d9811930cf993a2e2aeba5d30f439a19c72a082d2534ef16f9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Release files / arcaeon-0.1.2-py3-none-any.whl

Download URL arcaeon-0.1.2-py3-none-any.whl
Size 20.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dc80a951f2fb5e341a1834591fb40b3d4fc898677c67e5b21508a3fabf1b1b48
BLAKE2b-256 checksum
How to use checksums
9b09876676db126462f19f723524fb1109e5f462052b4b0d49512b711758b96e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Release history Release notifications | RSS feed

0.1.3

2 release files

This release

0.1.2 This release

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