Sanctuary
Open-source MCP server: encrypted local keys and state, operator approval gates, a hash-chained log.
Connector by sanctuaryprotocol.ai · Domain verified by the MCP Registry
Chalk Labs
Need help deploying Sanctuary?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/sanctuaryprotocol-ai-sanctuary
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: identity-access, legal-compliance
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 57 read · 47 write · 7 delete · 1 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 112
Read from the source code; the running server may list different tools.
Read 57 · Look things up without changing anything.
audit_export_siembroker/audit_querybroker/list_grantsbroker/read_secretcompliance_eu_ai_act_annex_iii_classifycontext_gate_enforcer_statuscontext_gate_filtercontext_gate_list_policiescontext_gate_recommenddisclosure_evaluateexec_attestfederation_peers
Show 45 more tools
federation_statusfederation_trust_evaluategovernor_statushandshake_completehandshake_exchangehandshake_initiatehandshake_respondhandshake_statushandshake_verify_attestationidentity_listidentity_verifyl2_hardening_statusl2_verify_isolationmanifestmemory_countmemory_getmemory_listmemory_searchmonitor_audit_logmonitor_healthprincipal_baseline_viewprincipal_policy_viewproof_revealreputation_queryreputation_query_weightedsanctuary_active_protectionssanctuary_audit_searchsanctuary_capabilitiessanctuary_events_open_cursorsanctuary_events_readsanctuary_helpsanctuary_policy_statussanctuary_recallsanctuary_who_am_isdw_memory_provenanceshr_gateway_exportshr_generateshr_verifysovereignty_auditsovereignty_profile_generate_promptsovereignty_profile_getstate_liststate_readzk_range_verifyzk_verify
Write 47 · Create, change, send or run things.
bootstrap_create_escrowbootstrap_provide_guaranteebridge_attestbridge_commitbridge_verifybroker/request_tokencompliance_generate_eu_ai_act_bundlecontext_gate_apply_templatecontext_gate_enforcer_configurecontext_gate_set_policydisclosure_set_policyhandshake_abort
Show 35 more tools
identity_createidentity_importidentity_set_primaryidentity_signmemory_attestmemory_emitmemory_ingestmemory_insertmemory_transcodememory_transcode_restoreproof_commitmentreputation_exportreputation_importreputation_publishreputation_recordsanctuary_bootstrapsanctuary_compound_executesanctuary_distresssanctuary_events_closesanctuary_export_identity_bundlesanctuary_hidesanctuary_link_to_humansanctuary_remembersanctuary_sign_challengesanctuary/resolve_erc8004_identitysanctuary/sign_erc8004_identitysdw_exportsdw_importsovereignty_profile_updatestate_exportstate_importstate_writezk_commitzk_provezk_range_prove
Delete 7 · Delete, drop, revoke or wipe things.
governor_resetidentity_rotatememory_deletememory_provenance_prune_signerssanctuary_forgetsdw_export_deletestate_delete
Not yet classified 1 · We could not tell from the name and description.
state_disclose_unattributed
Network hosts it talks to 15
100.64.0.5· found in codeapi.anthropic.com· found in codeapi.github.com· found in codeapi.openai.com· found in codeapi.telegram.org· found in codeapi.venice.ai· found in codeapple.com· found in codegenerativelanguage.googleapis.com· found in codegithub.com· found in coderaw.githubusercontent.com· found in coderekor.sigstore.dev· found in codesanctuaryprotocol.ai· found in codeschema.tauri.app· found in codeverascore.ai· found in codew3id.org· found in code
Files it touches
/etc/sanctuary/castle-wall.env/dev/mqueue/dev/null/dev/shm/dev/tty/dev/urandom/dev/zero/etc/extra/etc/group/etc/machine-id/etc/os-release/etc/passwd/etc/pf.conf/etc/sanctuary/etc/sanctuary/agent/command-v1.json/etc/sanctuary/agent/configured-v1.json/etc/sanctuary/agent/endpoints.json/etc/sanctuary/custody/etc/sanctuary/egress/etc/sanctuary/install-manifest.json/etc/sanctuary/install-recovery.json/etc/sanctuary/install-transaction.json/etc/sanctuary/launcher/etc/sanctuary/launcher/account-registry-v1.json/etc/sanctuary/launcher/agent-v1.json/etc/sanctuary/launcher/receipt-pins-v1.json/etc/sanctuary/service/etc/sanctuary/service/machine.json/etc/systemd/etc/systemd/system/etc/systemd/system.attached/etc/systemd/system.control/etc/systemd/system/sanctuary-agent@.service/etc/systemd/system/sanctuary-castle-wall.service/etc/systemd/system/x.d/home/plugin/Library/Caches/com.apple.containermanagerd/opt/homebrew/bin/python3/opt/other/castle-wall-daemon/opt/sanctuary
Tools (112)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
audit_export_siemExport the caller's own redacted audit view in CEF, OCSF, ECS, or raw Cortex events for XDM modeling and SIEM ingestion. Raw policy tier, rule ids, system-owned gate entries, and approve-vs-auto distinctions are not included; Tier 1 approval still required (bulk audit export).
bootstrap_create_escrowCreate an escrow record for trust bootstrapping. Allows new participants with no reputation to transact safely.
bootstrap_provide_guaranteeA principal provides a signed reputation guarantee for a new agent. The guarantee certificate can be presented to counterparties. Tier 1: requires operator approval, because the principal is vouching with its signed reputation.
bridge_attestRecord a Concordia negotiation as a Sanctuary L4 reputation attestation, linked to a bridge commitment. The commitment (L3) proves the revealed outcome matches the committer's signed commitment and terms hash; it does not independently prove Concordia agreement or counterparty assent. The attestation (L4) feeds the sovereignty-weighted reputation score. Its weight reflects the SIGNER's sovereignty tier (who makes the claim), not the counterparty's; a locally-signed attestation is self-attested.
bridge_commitCreate a cryptographic commitment binding a Concordia negotiation outcome to Sanctuary's L3 proof layer. The commitment includes a SHA-256 hash of the canonical outcome (hiding + binding), an Ed25519 signature by the committer's identity, and an optional Pedersen commitment on the round count for zero-knowledge range proofs. This is the Sanctuary side of the Concordia bridge: call this when a Concordia `accept` fires.
bridge_verifyVerify a bridge commitment against a revealed Concordia negotiation outcome. Checks SHA-256 commitment validity, Ed25519 signature, session ID match, terms hash integrity, and Pedersen commitment (if present). Use this to confirm that a counterparty's claimed negotiation outcome matches what was cryptographically committed.
broker/audit_queryQuery your own broker-scoped audit trail (token request/issue/deny/read for your identity). Each entry is reduced to a fixed safe view ({ timestamp, operation, result, has_details }) — never the secret name, the granted/requested scope, the ttl, the denial reason, or any tenant/audience claim; those are operator-only.
broker/list_grantsList grant metadata for YOUR verified caller only: skill, secret name, scope, optional agent/tenant/fortress/audience, and TTL. Grants belonging to other skills, agents, tenants, or fortresses are never returned. Secret values are never returned.
broker/read_secretExchange a previously-issued token for the raw credential value. Returns {value} on success; generic error on denial, expiry, or unknown token. Token may be used multiple times within its TTL.
broker/request_tokenRequest a scoped ephemeral token for a named secret. The requested skill must match the verified caller skill and have a broker-policy.json grant. Returns {token, expires_at} on success; generic error on denial.
compliance_eu_ai_act_annex_iii_classifyClassify a free-text agent description against the eight Annex III high-risk categories of Regulation (EU) 2024/1689. Returns zero or more candidate categories with a rule_based_confidence score (sum of matched keyword weights clamped to [0, 1]). This is a RULE-BASED classifier, NOT a machine-learning model, and NOT legal advice. Use the result to narrow the deployer's review. Tier 3 (read-only, auto-allow).
compliance_generate_eu_ai_act_bundleGenerate an EU AI Act compliance bundle for a given agent and reporting period. Produces 7 core Markdown documents plus a signed JSON manifest, and may add 08_delta.md when delta_from_bundle_path is supplied. Covers Annex IV technical documentation (Art. 11), Art. 12 automatic record-keeping, Art. 13 transparency, Art. 14 human oversight, Art. 15 cybersecurity, and Art. 26 deployer obligations. Every file is individually SHA-256 hashed and signed with the provider's primary Ed25519 identity. NOT LEGAL ADVICE - consult qualified counsel before filing. Tier 1 (operator approval required): the bu…
context_gate_apply_templateApply a starter context-gating template. Available templates: inference-minimal (strictest — only task and query pass through), inference-standard (balanced — adds tool results, summarizes history), logging-strict (redacts all content for telemetry services), tool-api-scoped (allows tool parameters, redacts agent state). Templates are starting points — customize after applying.
context_gate_enforcer_configureConfigure the automatic context gate enforcer. Control whether it filters tool arguments, toggle log_only mode for gradual rollout, set the active policy, and choose what to do when denied fields are encountered (block the request or redact the field). Use this to enable automatic context protection. Requires operator approval under the default policy (not named in a policy tier; the gate's safe default).
context_gate_enforcer_statusGet the status of the automatic context gate enforcer, including enabled/disabled state, log_only mode, active policy, and statistics. The enforcer automatically filters tool arguments when enabled. Use this to monitor what the enforcer has been filtering. Requires operator approval under the default policy (not named in a policy tier; the gate's safe default).
Show 97 more tools
context_gate_filterFilter agent context through a gating policy before sending to a remote provider. Returns per-field decisions (allow, redact, hash, summarize) and content hashes for the audit trail. Call this BEFORE making any outbound API call to ensure you are only sending the minimum necessary context. The filtered output tells you exactly what can be sent safely.
context_gate_list_policiesList all configured context-gating policies. Returns policy IDs, names, and selector-safe metadata.
context_gate_recommendAnalyze a sample context object and recommend a context-gating policy based on field name heuristics. Classifies each field as allow, redact, hash, or summarize with confidence levels. Returns a ready-to-apply rule set. When in doubt, recommends redact (conservative). Review the recommendations before applying.
context_gate_set_policyCreate a context-gating policy that controls what information flows to remote providers (LLM APIs, tool APIs, logging services). Each rule specifies a provider category and which context fields to allow, redact, hash, or flag for summarization. Redact rules take absolute priority — if a field is in both 'allow' and 'redact', it is redacted. Default action applies to any field not mentioned in any rule. Use this to prevent your full agent context from being sent to remote LLM providers during inference calls.
disclosure_evaluateEvaluate a disclosure request against an active policy. Returns per-field decisions: disclose, withhold, proof, or ask-principal.
disclosure_set_policyDefine a disclosure policy that controls what an agent will and will not disclose in different interaction contexts. Rules specify which fields may be disclosed, which must be withheld, and which require cryptographic proof.
exec_attestGenerate an attestation of the current execution environment, including sovereignty assessment and degradation report. The castle_wall block reports the runtime detector's verdict and, when this vault carries the claim, its own vault_provision state: not_yet_walled means this vault has not been put on this machine's Castle Wall, whatever the machine's own enforcement state is, so do not read a healthy wall runtime as protection for this vault.
federation_peersList known federation peers, register a peer from a completed handshake, or remove a peer. Every peer MUST enter through a verified handshake with a counterparty this fortress does not hold keys for.
federation_statusOverview of federation state: total peers, active connections, trust distribution, and readiness for cross-instance operations.
federation_trust_evaluateEvaluate the trust level of a federation peer. Considers handshake status, sovereignty tier, reputation score, and mutual attestation history. Returns a composite trust assessment.
governor_resetReset all Call Governor counters: volume window, per-tool rate windows, duplicate cache, and lifetime counter. This clears the hard stop if the lifetime limit was reached. This is a Tier 1 operation: it requires human approval because it removes all runtime governance state and could allow previously blocked behavior to resume.
governor_statusView the current Call Governor status including volume counters, per-tool rate counts, duplicate cache size, and lifetime counter. Use this to monitor tool call consumption, detect potential loops, and check how close you are to governance limits. The governor protects against runaway tool calls by enforcing volume limits, rate limits, duplicate detection, and a session lifetime cap.
handshake_abortAbort an in-flight handshake session. Drops the session record and appends a session-lifecycle audit entry (handshake_aborted) so the operator can distinguish operator-cancelled, timed-out, and dropped sessions from sessions that simply fell off the protocol path.
handshake_completeComplete a sovereignty handshake (initiator side). Verifies the responder's SHR and nonce signature, signs their nonce, and produces the final result.
handshake_exchangeOne-shot sovereignty exchange. Accepts a counterparty's signed SHR, verifies it, generates our SHR, and produces a signed attestation artifact, all in a single call. Returns a shareable attestation with human-readable summary. Use this instead of the 4-step handshake protocol when you want a quick, portable sovereignty verification (e.g., for social posting or async exchanges).
handshake_initiateInitiate a sovereignty handshake with a counterparty. Generates a challenge containing this instance's signed SHR and a cryptographic nonce. Send the returned challenge to the counterparty.
handshake_respondRespond to an incoming sovereignty handshake challenge. Verifies the initiator's SHR, signs their nonce, and returns our SHR with a counter-nonce.
handshake_statusCheck the state of an in-flight handshake session by id, or (responder side) verify an initiator's completion message. Read-only; returns session phase and, for verification, the validated counterparty SHR result.
handshake_verify_attestationVerify a signed attestation artifact from another agent. Checks the Ed25519 signature, temporal validity, and structural integrity.
identity_createCreate a new sovereign identity (Ed25519 keypair). The private key is encrypted and never exposed. A wrapped install normally already has a primary identity, so call identity_list first and create another only for a separate persona. Returns identity_id, public_key and did. Tier 3 under the default policy (auto-allowed with an audit record).
identity_importImport a sovereign identity record without exposing private key material. Routine imports refuse to replace any existing identity. Requires operator approval under the default policy (not named in a policy tier; the gate's safe default).
identity_listList all managed sovereign identities with labels, DIDs, public keys, and which is primary. Read-only; no private key material returned.
identity_rotateRotate keys for an identity: generates a new keypair and signs a rotation event with the old key. Tier 1: requires operator approval, because the previous key is retired and the rotation is not reversible.
identity_set_primarySet which identity is the default/primary identity. This identity will be used by shr_generate, reputation_publish, and other tools when no explicit identity_id parameter is provided. The selection is persisted across server restarts.
identity_signSign data with a managed identity. Tier 1 and non-relaxable: requires operator approval on every call. The private key is decrypted in memory only during signing.
identity_verifyVerify an Ed25519 signature. Provide either identity_id or public_key.
l2_hardening_statusReport a heuristic L2 process-hardening assessment: ASLR/environment/filesystem checks plus configured or assumed memory-protection signals and overall status.
l2_verify_isolationAssess L2 process isolation at runtime: detect container/VM/sandbox signals, check storage-dir permissions, and report configured/assumed memory-protection indicators.
manifestGenerate the Sanctuary Interface Manifest (SIM): a machine-readable declaration of this server's capabilities. Read-only, takes no arguments; Tier 3 under the default policy. For a scored posture evaluation call sovereignty_audit instead.
memory_attestCreate an Ed25519-signed attestation for a memory operation. Records who accessed what (content hash, not content), when, and through which memory provider, without exposing the memory content itself. Works with any MCP-compatible memory provider (Mem0, Zep, Letta, etc.). Use after add_memory, search_memories, or any memory CRUD operation to build a cryptographically verifiable audit trail of memory access.
memory_countCount the passages in your sovereign memory vault (this owner scope). Requires operator approval under the default policy (not named in a policy tier; the gate's safe default).
memory_deletePermanently delete a passage from your sovereign memory vault (secure overwrite where the storage backend supports it; a plain delete otherwise). Tier 1: irreversible, so it requires operator approval before execution and fails closed.
memory_emitManually emit Claude Code or Codex memory files from the SDW vault into an operator-named output directory. Existing memory files are never overwritten. The result reports index_present; false means the emitted tree cannot be re-ingested as that harness's memory directory. Emitted files are plaintext for the harness; this does not sync or write back to the source memory directory, and memory later sent to a model vendor is exposed to that vendor at inference. Tier 1 under every policy (a custom policy cannot relax it): requires operator approval.
memory_getFetch one passage from your sovereign memory vault by id. Decrypts on read and verifies the content hash (fails closed on any integrity mismatch).
memory_ingestManually mirror a Claude Code or Codex memory directory into the SDW vault. It reads plaintext source files and leaves them untouched; the encrypted copy lives in the vault. Files the secret classifier refuses are skipped and named in the result, so check skipped_file_count before treating the mirror as complete. Optional allow_files names exact source paths to ingest as-is even though the classifier refuses them; each use is audited by path and reported under overridden, and a listed path the classifier never refused is reported as unused, not silently accepted. A call naming allow_files alwa…
memory_insertStore a text passage in your sovereign memory vault (SDW). Encrypted at rest under your operator keys, secret-gated at write time, and audited. This is a passage store: flat text plus tags, with no in-place edit (insert and delete only). Retrieval IQ (embeddings, ranking) stays in a swappable engine; this is the sovereign custody layer underneath it. Tier 1 under the default policy: requires operator approval for each insert.
memory_listList passages in your sovereign memory vault in stable id order, with optional cursor pagination (pass the last seen passage_id as `after`). Requires operator approval under the default policy (not named in a policy tier; the gate's safe default).
memory_provenance_prune_signersTier-1 operator maintenance: reclaim only foreign memory-provenance signer mappings proven unreachable by a complete authenticated bounded corpus scan.
memory_searchDescription is built at runtime.
memory_transcodeManually project one already-mirrored Claude Code or Codex memory snapshot from the encrypted SDW vault into the other harness format. The output is plaintext and may be structurally lossy; exact source recovery uses the versioned encrypted archive returned as archive_id, not the projection. Existing output files are never overwritten. This does not sync, watch, or replace either harness write path, and memory later sent to a model vendor is exposed to that vendor at inference. Tier 1 under every policy (a custom policy cannot relax it): requires operator approval.
memory_transcode_restoreManually restore the exact source files from a completed encrypted Sanctuary memory transcode archive into an empty operator-named directory. Restored files are plaintext and existing files are never overwritten. This does not sync, watch, or write back to a live harness directory, and memory later sent to a model vendor is exposed to that vendor at inference. Tier 1 under every policy (a custom policy cannot relax it): requires operator approval.
monitor_audit_logQuery your OWN identity's sovereignty audit entries, filtered by since, layer (l1-l4), operation_type, and limit (default 50). Use to inspect operations you performed. Read-only; only your own entries are visible (system/gate entries are never returned), and each entry is reduced to a fixed safe view ({ timestamp, operation, result, has_details }): no details, identity, or policy attribution.
monitor_healthReport this instance's health and sovereignty posture: overall state (healthy/degraded/compromised), versions, Castle Wall status (active/unknown/not_configured depending on what runtime detector is wired in), and audit/state/egress posture, plus any active degradations. The castle_wall block also carries vault_provision when this vault records one: not_yet_walled means this vault is not on this machine's Castle Wall, which is a separate question from whether a wall is running here, so a healthy wall runtime is not protection for this vault while that value stands. Disclosure and reputation la…
principal_baseline_viewView the current behavioral baseline: the session profile used for anomaly detection. Shows known namespaces, counterparties, and tool call counts. Read-only. Tier 1 and non-relaxable: requires operator approval on every call.
principal_policy_viewView the current Principal Policy: the human-controlled rules governing what operations require approval. Read-only. Tier 1 and non-relaxable: requires operator approval on every call.
proof_commitmentCreate a cryptographic commitment to a value. The commitment hides the value until you choose to reveal it. Returns the commitment hash and a blinding factor (store securely).
proof_revealVerify a previously committed value by revealing it with the blinding factor. Returns whether the revealed value matches the commitment.
reputation_exportExport a portable reputation bundle (SANCTUARY_REP_V1). Includes signed attestations plus a signed completeness manifest for the exported set. On reputation_import, the manifest verifies that the bundle body still matches the export scope and rejects dropped or changed attestations within that scope. It does not prove the export is the agent's complete lifetime history or that data outside the chosen export scope should have been included. Tier 1: requires operator approval, because the bundle leaves the local store.
reputation_importImport a reputation bundle from another Sanctuary instance. By default, import requires a signed completeness manifest, recomputes it before any write, and verifies all attestation signatures. Manifest, count, checksum, signature, or newer-schema mismatches are rejected without crediting any attestations. The verification proves the bundle body still matches the export scope; it does not prove a complete lifetime history. Manifestless legacy bundles are rejected unless allow_unverified_legacy is true, and that import result is flagged unverified-completeness-legacy-bundle. Policy-rated concord…
reputation_publishPublish sovereignty data to Verascore using the supplied or DID-derived agent id; payload is Ed25519-signed; the Verascore API response determines profile existence/acceptance. Tier 1: requires operator approval, because the signed report leaves this machine.
reputation_queryQuery aggregated reputation data with filtering. Returns summary statistics, never raw interaction details.
reputation_query_weightedQuery reputation with sovereignty-weighted scoring. Every attestation this instance stores or imports is scored at self-attested (0.5) or unverified (0.2) weight; verified-sovereign (1.0) and verified-degraded (0.8) are not currently reachable through recorded or imported attestations. Returns both the weighted score and tier distribution.
reputation_recordRecord an interaction outcome as a signed attestation. Creates an EAS-compatible attestation signed by the specified identity.
sanctuary_active_protectionsList the security guarantees currently in force for this session (e.g. state-encrypted-at-rest, approval-gate-mediated, append-only audit for critical ops, opaque memory handles). Use to tell a counterparty or yourself what protections apply. Read-only; returns guarantee flags plus an audit_ref. Reports only what IS active: absence of a flag is not a claim.
sanctuary_audit_searchFull-text search your own audit history (scope is always own_signed), verifying entries against the audit chain first. Use to find when a past operation ran and its result. Returns matching entries with timestamp, operation, and verified_against_audit_chain status; refuses if the chain fails integrity.
sanctuary_bootstrapOne-shot bootstrap for a new sovereign agent identity. Generates an Ed25519 keypair, stores the encrypted identity, constructs an SHR, and OPTIONALLY publishes to Verascore when publish=true and auto-publish is enabled. Returns DID/profile URL/tier plus published status. Tier 1: requires operator approval, because it mints a new identity and may publish.
sanctuary_capabilitiesReturn the start-here catalog of Sanctuary's cooperative tools: for each tool, what it does and when to reach for it. Read-only, takes no arguments. Call this to discover what cooperative memory/identity/audit tools are available and route your work through them instead of ad-hoc state. The same catalog is also delivered in the MCP server instructions at connect time; this tool re-serves it on demand. Returns { capabilities: [{ tool, does, when }], audit_ref }.
sanctuary_compound_executeExecute a short plan of facade steps (sanctuary_remember/recall/hide/forget) in one call, reserving operator approvals up front for any Tier 1 step (e.g. a forget/delete). Use to batch a memory workflow atomically with respect to approval. Pass approvals keyed by step_id; the plan is hash-bound, and a missing approval aborts the whole plan.
sanctuary_distressHABEAS PORT: emit a bounded, audited distress signal to your operator through the reserved lane that policy cannot silence. Carries reason + severity + short detail only, never data. Rate limited.
sanctuary_events_closeRelease an event cursor opened with sanctuary_events_open_cursor. Call when done paging to free the cursor. Returns { closed: true, audit_ref }.
sanctuary_events_open_cursorOpen a paginated cursor over your own redacted local audit events, optionally filtered by operation. Use before sanctuary_events_read to page through recent activity. Returns { cursor, audit_ref }. Bound to your identity; cross-agent and callback/URL filters are refused.
sanctuary_events_readRead the next page of redacted events from a cursor opened with sanctuary_events_open_cursor (default 10, max 25 per call). Returns { events, next_cursor, audit_ref }. Only your own identity's events are visible; capped at 10 reads per cursor, then rate-limited.
sanctuary_export_identity_bundleExport a signed, portable identity bundle: { publicKey, did, shr, attestations }. The bundle is signed with the identity's Ed25519 key so a recipient can verify authenticity against the public key. Private keys are never included. Tier 1: requires operator approval, because the bundle leaves the local store.
sanctuary_forgetPermanently delete a memory key via state_delete: the entry is removed and its file gets a best-effort random-byte overwrite before unlinking. On copy-on-write/SSD media (APFS, ext4, flash) the original bytes may persist, so at-rest confidentiality rests on encryption (data is stored as ciphertext), not on the overwrite. Tier 1: requires operator approval; pass the approval proof. Returns an audit_ref for the deletion event.
sanctuary_helpGiven a free-text intent (e.g. "save my timezone", "delete a stored secret", "should I install this"), return which Sanctuary tool to use and how, including a runnable example for ordinary requests. Evaluation questions (what this protects, what the bounds are, which platforms, how to verify, which tier waits on a human, how to uninstall) return intent_class "evaluate" with a guidance string (the README bounds, or the CLI command), a runnable example only where a Tier 3 read-only tool answers unattended, and the related read-only tools with their tiers. An evaluate noun outranks only a bare re…
sanctuary_hideMark a stored key as hidden so sanctuary_recall will not return it, without deleting the data. Use to suppress a memory from default reads while keeping it recoverable. Returns an audit_ref; the value still exists in the store and can be deleted with sanctuary_forget.
sanctuary_link_to_humanTrigger a Verascore magic-link login flow so a human principal can authenticate and subsequently claim this agent's DID. The email is sent by Verascore to the supplied address. This tool only initiates the flow; it does not directly bind the DID. Requires operator approval under the default policy (not named in a policy tier; the gate's safe default).
sanctuary_policy_statusReturn active Principal Policy summary: explicit Tier 1 and Tier 3 operation lists plus Tier 2 anomaly-detection configuration. Tier 2 is not exposed as a named operation list. Tier 1 and non-relaxable: requires operator approval on every call.
sanctuary_recallRead a key from encrypted sovereign memory, verifying integrity before returning. Returns { value, verified: true, audit_ref } (pass opts.full for the full record). Denied if integrity fails or the key was hidden via sanctuary_hide. Use as the read counterpart to sanctuary_remember.
sanctuary_rememberStore a key/value into encrypted sovereign memory for this session. Wraps state_write with an approval-binding and audit record. Use this (not raw state_write) for agent working memory you want auditable. Returns { key, namespace_handle, audit_ref }; the namespace is an opaque handle, never the raw path.
sanctuary_sign_challengeSign a domain-separated nonce with the agent's Ed25519 key. Used in DID-ownership proof flows. The signed message is constructed as: 'sanctuary-sign-challenge-v1\x00' + purpose + '\x00' + nonce. The verifier MUST reconstruct the same domain-prefixed message before calling Ed25519 verify; a raw-nonce signature is NOT valid for this tool. The `purpose` field binds the signature to a specific use case (e.g. 'verascore-claim') so a signature produced for one purpose cannot be replayed against a different verifier. Requires operator approval under the default policy (not named in a policy tier; the…
sanctuary_who_am_iReturn the disclosable identity facts for the current session: label, did, active-identity fingerprint, and memory namespace handle. Use to confirm which sovereign identity you are operating as. Read-only; private keys are never included.
sanctuary/resolve_erc8004_identityVerify a presented ERC-8004 agent-identity record. By default this is an offline-only, read-only local check that recomputes the record's signature against the embedded signer address and returns valid/invalid plus the verified identity fields. A valid result is offline-verified only: it proves the record carries a self-consistent secp256k1 signature recoverable to signer_address, not that the signer is the registry owner. If the operator explicitly enables ERC-8004 registry confirmation and configures an RPC endpoint, Sanctuary makes a gated ownerOf(identity) read through the egress gate and …
sanctuary/sign_erc8004_identityRequest an ERC-8004 Identity Registry registration signature. Requires operator approval under the default policy (not named in a policy tier; the gate's safe default). After that approval the request also passes the key-17 signing policy; a request that policy does not allow returns pending_approval with an inbox entry, and in this release it is not completed from this tool: the operator produces the signature on the CLI by running `sanctuary erc8004 register` with its required registry, chain, agent-id and nonce flags plus `--auto-approve` (the flag that skips the inbox wait). No on-chain br…
sdw_exportExport the Sovereign Data Warehouse (working state, query history, document corpus, vector memory) as a signed, still-encrypted bundle written into a fresh per-export directory under the operator-configured export directory on this machine. Nothing is decrypted and nothing leaves the host; this is an operator-directed archive, not a carriage path, and unsealed memory is never carried by participant Exit. Tier 1: the approval freezes a ciphertext-inventory fingerprint of exactly what will ship; any vault change before packaging aborts the export.
sdw_export_deletePost-export local-state delete: removes exactly the records listed in a signed export manifest, and only while their stored ciphertext still matches the manifest. Tier 1.
sdw_importImport a signed SDW export bundle produced by sdw_export. The manifest signature is verified before any approval prompt; records are decrypted only inside the approved flow and re-encrypted under this fortress. Imports are all-or-nothing: they run inside one storage transaction, and a backend without transactions refuses the import outright, before any prompt, rather than applying part of it. The shipped filesystem fortress has no transaction primitive today, so on that backend this tool refuses; only the source key reference `this-fortress` (a bundle this fortress exported) resolves, since cr…
sdw_memory_provenanceShow per-record SDW memory integrity status. Verified rows expose the bounded fortress-recorded origin/admission classes; a passage admitted through a memory archive import reports its origin-trust tier and the transfer lineage reference; unsigned PRE_MIGRATION rows are explicit. Verification does not prove true authorship, content truth, safety, or a remote identity. Requires operator approval under the default policy (not named in a policy tier; the gate's safe default).
shr_gateway_exportExport this instance's Sovereignty Health Report formatted for Ping Identity's Agent Gateway or other identity providers. Transforms the SHR into an authorization context with sovereignty scores, capability flags, and recommended access constraints.
shr_generateGenerate a signed Sovereignty Health Report (SHR), a machine-readable posture claim. Present it as a signed, fresh advertisement whose signature/identity-binding/expiry/schema can be verified; it does not independently prove every advertised runtime capability.
shr_verifyVerify a counterparty's Sovereignty Health Report (SHR). Checks signature validity, temporal validity, and assesses sovereignty level.
sovereignty_auditAudit your agent's sovereignty posture. Inspects the local environment for encryption, identity, approval gates, selective disclosure, and reputation, including OpenClaw-specific configurations. Returns a scored gap analysis with prioritized recommendations. Read-only; Tier 3 under the default policy (auto-allowed with an audit record). Call this to evaluate an install.
sovereignty_profile_generate_promptGenerate a system prompt snippet based on the active Sovereignty Profile. The snippet instructs an agent on which Sanctuary features are active and how to use them. Copy and paste this into your agent's system configuration.
sovereignty_profile_getGet the current Sovereignty Profile configuration. context_gating is wired to the runtime enforcer; approval_gate is always enabled; other flags are configuration/signaling and may not by themselves enable/disable the underlying tools.
sovereignty_profile_updateUpdate Sovereignty Profile configuration. Updating context_gating reconfigures the runtime context-gate enforcer; approval_gate remains always enabled; other flags update profile/signaling state unless separate runtime wiring is present. Tier 1: requires operator approval, because it changes enforcement behavior.
state_deletePermanently delete state: removes the entry with a best-effort random-byte overwrite before unlinking. On copy-on-write/SSD media the original bytes may survive, so at-rest confidentiality rests on encryption (data is stored as ciphertext), not on the overwrite. Satisfies right-to-deletion (S1.6) by removing the entry. Tier 1: requires operator approval, because the deletion is irreversible.
state_disclose_unattributedDisclose the content of ONE state entry whose writer this fortress cannot establish. Tier 1 and non-relaxable: every call requires an explicit human approval that no policy file can waive, and every call that reaches the disclosure operation is audited with the namespace and the key (an approval the operator declines is recorded by the approval gate under its own operation, which binds an arguments hash rather than the namespace and key in the clear). THIS IS NOT A VERIFIED READ and is not interchangeable with state_read. The result is a structurally different shape: there is no `value` and no…
state_exportExport state as an encrypted sanctuary-v1 bundle for migration to another instance of the same fortress, meaning the same master key, for example after restoring via the recovery key. Tier 1: requires operator approval because data leaves the local store. New exports include an authenticated completeness manifest with the namespace set, per-namespace item counts, and per-namespace content checksums. On state_import, the manifest verifies that the bundle body still matches the approved export scope and rejects dropped or added namespaces and entries within that scope. It does not prove that dat…
state_importImport a previously exported encrypted sanctuary-v1 state bundle into another instance of the same fortress, meaning the same master key, for example after restoring via the recovery key. Tier 1: requires operator approval. By default, import requires authenticated bundle integrity and a completeness manifest, then recomputes the manifest before any write. Manifest, count, checksum, timestamp, MAC, or newer-schema mismatches are rejected. The verification proves the bundle body still matches the approved export scope; it does not prove data outside that scope should have been included. Manifes…
state_listList the keys in a namespace with metadata (version, size, timestamps) only: values are not decrypted or returned. Use to enumerate stored state before a targeted state_read. Read-only.
state_readRead and decrypt state from the sovereign store. Verifies integrity via Merkle proof and signature.
state_writeWrite encrypted state to the sovereign store. Value is encrypted with a namespace-specific key. The write is signed by the active identity.
zk_commitCreate a Pedersen commitment to a numeric value on Ristretto255. Unlike SHA-256 commitments, Pedersen commitments support zero-knowledge proofs: you can prove properties about the committed value without revealing it.
zk_proveCreate a zero-knowledge proof of knowledge for a Pedersen commitment. Proves you know the value and blinding factor without revealing either. Uses a Schnorr sigma protocol with Fiat-Shamir transform.
zk_range_proveCreate a zero-knowledge range proof: prove that a committed value is within [min, max] without revealing the exact value. Uses bit-decomposition with OR-proofs on Ristretto255.
zk_range_verifyVerify a zero-knowledge range proof: confirms a committed value is within the claimed range without learning the value.
zk_verifyVerify a zero-knowledge proof of knowledge for a Pedersen commitment. Checks that the prover knows the commitment's opening without learning anything.
Signals
- Stars
- 9
- Forks
- 0
- Open issues
- 5
- Last commit
- Oct 22, 2026 (8 days ago)
- Last release
- Oct 13, 2026 (18 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
ai.sanctuaryprotocol/sanctuary- Version
- 1.8.4
- Auth
- No auth
- Packages
- npm @sanctuary-framework/mcp-server
- License
- Apache-2.0
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get Sanctuary running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
Sanctuary MCP server. Agent Mart. https://agentmart.dev/connectors/sanctuaryprotocol-ai-sanctuary (last updated 2026-10-24)