attest_subject
Attest subject, generate sealed Policy Artifact. Auto-loads into portal.
Seal what an agent is allowed to do into a signed artifact, measure it against that artifact while it runs, and export evidence anyone can verify offline.
LABSCO SUMMARY
The loop is attest, measure, verify: a sealed artifact fixes what is allowed, each measurement against it is signed, and the exported bundle carries the permitted and denied calls with their proofs. Offline verification is what makes that evidence worth anything to somebody outside your organisation.
A runtime governance layer for agents. It attests a subject into a sealed policy artifact, measures the running state against it, and produces signed receipts and bundles that verify without a network.
npx and a Node runtime; it runs as a local stdio process and needs no account key. Set AGA_GATEWAY_KEY to a signing seed you generate yourself before first use; without it the signing key changes on every restart, so evidence bundles cannot be pinned to one key. Verifying a bundle needs nothing at all — the reference verifier ships in the repository.
One command — npx -y @attested-intelligence/aga-mcp-server
USE CASES
Export the signed bundle at the end of a session and hand it over with the receipts, so the account of the run is checkable rather than narrated.
Measure the running state against the sealed artifact, and revoke the artifact when it no longer matches — the portal ends on the next measurement.
Seal the parent's scope, then derive the child's from it, knowing the derivation can only take permissions away.
Read which claims exist and at what sensitivity, then request disclosure and let the substitution happen where it is denied.
Verify it locally with no network and no callback to the vendor, then confirm the chain behind it.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
attest_subjectAttest subject, generate sealed Policy Artifact. Auto-loads into portal.
delegate_to_subagentDerive a constrained policy artifact for a sub-agent. Scope can only diminish, never expand. (NCCoE constrained delegation)
generate_evidence_bundleExport the canonical SEP evidence bundle: signed PERMITTED/DENIED tool-call receipts + Merkle proofs + a mandatory signed checkpoint, for offline third-party verification (verify_bundle_offline, aga-verify, or aga-receipt-spec/verify/verify-sep.mjs). Pin gateway_public_key to prove provenance.
get_chain_eventsGet continuity chain events.
get_portal_stateGet current portal state, loaded artifact info, and enforcement status.
get_receiptsGet all signed receipts, optionally filtered by artifact.
get_server_infoGet AGA server info, public keys, and portal state.
init_chainInitialize continuity chain with genesis event.
list_claimsList available claims with sensitivity levels.
measure_behaviorMeasure behavioral patterns (unauthorized tools, rate violations, forbidden sequences). DETECTIVE-ONLY by default: it records and PROVES drift but does not block. Pass enforce=true to also trip the portal into phantom quarantine on drift (opt-in; off by default). (NIST-2025-0035)
measure_integrityMeasure subject state, compare to sealed reference. Generates signed receipt for every measurement.
request_claimRequest disclosure of a claim. Auto-substitutes if denied.
revoke_artifactRevoke an active policy artifact mid-session. Portal terminates on next measurement. (NCCoE Phase 3b)
verify_bundle_offlineVerify a canonical SEP evidence bundle offline (full §6 algorithm: structural floor, receipt signatures, chain+ordering, leaf-recompute + Merkle bijection, signed checkpoint). Pass pinned_public_key to also prove provenance.
verify_chainVerify continuity chain integrity.
BEFORE YOU INSTALL
15 tools when we connected. measure_behavior only detects drift by default; blocking needs enforce=true.
npx on PATH
CONTEXT COST
Rated by the size of the 15 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx -y @attested-intelligence/aga-mcp-serverGenerate a signing seed once
AGA_GATEWAY_KEY is not an account key: it is a 64-hex Ed25519 seed you create yourself. Without it the server signs with an ephemeral key that changes on every restart, so evidence bundles cannot be tied to one signer across restarts.
node -e "console.log(require('node:crypto').randomBytes(32).toString('hex'))"Add this to claude_desktop_config.json
<YOUR_AGA_GATEWAY_KEY> is the string the command printed, and keep it secret and out of version control. AGA_GATEWAY_KEY_FILE, a path to a file holding the seed, works instead.
{
"mcpServers": {
"aga": {
"command": "npx",
"args": [
"-y",
"@attested-intelligence/aga-mcp-server"
],
"env": {
"AGA_GATEWAY_KEY": "<YOUR_AGA_GATEWAY_KEY>"
}
}
}
}