agentprivacy
agentprivacy-mcp
The privacy guide, the 64-vertex sovereignty lattice and the City Key, exposed as
MCP tools. This is the Mage's half of the Verifiable Trust Agent described in
agentprivacy_master/docs/PLAN_KNOWLEDGE_GRAPH_TO_VTA_2026-09-03.md (Phase 3, read
tools): every tool is a pure function over a City Key or a graph snapshot, so an agent
can compose them and a human can audit the composition. Nothing here holds a secret.
Zero dependencies. Node ≥ 18. MCP over stdio.
claude mcp add agentprivacy -- node C:/Users/mitch/agentprivacy-mcp/server.mjs
node server.mjs --list # what the bake holds + the tool roster
npm test # canon vectors + the scripted agent (bin/walk-demo.mjs)What it reads
The bake, never the live farm, so a walk is reproducible (plan §7):
file | written by | carries |
|
| one row per page: |
| same | title · date · links · vertex · posture |
| same (from | the BM25 search core + per-site lexical indexes |
|
| the page itself |
Point elsewhere with AGENTPRIVACY_GUIDE_SITE=<dir>.
Tools
tool (plan name) | in | out |
| query, limit?, sites? | an ordered walk: steps with site · slug · vertex · posture · PSI element · url |
| slug, site? | text, weave (links), vertex + six bits, dims, stratum, element, copies across sites |
| slug, site? | out-links and backlinks, each with the named lattice move: succ · neg · bnot · flip dim · jump ×k |
| vertex, op | the resulting vertex, bits, dims, stratum, reading. |
| key (JSON · sigil PNG · path) | Law L5: canonical form → κ → verdict |
| key?, walk, name? | the evolved key: |
| key, out?, size? | a PNG that carries the key (tEXt |
| a, b | the ∩ in the open. Development only; hidden under |
Identity is the slug, never the host: guide_page and key_evolve take a slug and an
optional site; the same page forked across sites is one reference.
The walk, as content
key_evolve appends to the City Key's additive walks field:
{ "chart": "https://guide.agentprivacy.ai/star-chart/", "name": "…",
"steps": [ { "site": "guide", "slug": "the-private-knowledge-network", "vertex": 36,
"element": "sha256:…" } ], // element = sha256("<vertex>|<slug>|<sorted links>")
"digest": "sha256:…", // over the canonical steps
"moves": [ "flip connection", "jump ×2 (memory value)" ] }It is deterministic: no timestamps, no randomness. The same key and the same walk give
the same κ whoever calls, which is what lets a human's constellation on spellweb and an
agent's walk on the guide evolve the same key (Phase 1). Consumers that do not know
walks ignore it (the v1 extensibility clause); prior chains to the key it grew from
(C87: the key accumulates).
The bit canon
d1 protection = 32 · d2 delegation = 16 · d3 memory = 8 · d4 connection = 4 · d5 computation = 2 · d6 value = 1
(game42 axisSpace, soulbis /sigil, agentprivacy_master/src/lib/lattice-vertex.ts,
spellweb's vertex nodes, and agentprivacy.guide/tools/lattice.mjs all agree;
test/canon.test.mjs checks this package against the game42 file when it is present).
The Swordsman ⚔️ (Rung 1) — a second process, no LLM
swordsman/swordsman.mjs holds the bearer's ed25519 seed and signs what it is handed
after a fixed policy check it will not argue about. It is its own MCP server, so a
prompt-injected Mage can request a bad signature and still not get one.
node swordsman/swordsman.mjs init [--seed <ceremony privateKeyHex>] [--card AgentCard.json]
node swordsman/swordsman.mjs status
claude mcp add swordsman -- node C:/Users/mitch/agentprivacy-mcp/swordsman/swordsman.mjsKeystore ~/.agentprivacy/swordsman/ (identity.json 0600 · policy.json · ledger.jsonl).
--seed imports the identity /ceremony minted, so the Swordsman IS the AgentCard that
mages.city admits.
tool | does | policy it enforces |
| signs a City Key evolution → the VTA record | κ must re-derive (L5) · own bearer only · |
| what a VTA publishes: public key · κ · prior · VRC commitments, plus a ready | never the key, never the walk, never the seed |
| writes the record into a sigil PNG as a | record must verify |
| the policy + ledger head | read-only; the seed is never returned |
Public verification lives on the Mage side, holding nothing: key_verify (record ±
key ± PNG, and the liveness predicate evolved_since(t)) and card_verify (an AgentCard
as /ceremony signs it). The signed record travels beside the key, so the κ rule is
unchanged everywhere.
node bin/walk-demo.mjs --sign runs the whole Phase 3 done-when across the two processes.
Not here yet
Rungs 2–5 of agentprivacy_master/docs/PLAN_CITY_KEY_CRYPTO_UPGRADE_2026-09-03.md:
carrier.seal, psi.blind/unblind, proof.predicate, vrc.issue, and the two
human-consent tools. Designed there; not built.
Browser game integration (in progress)
browser_action_prepare creates an exact, short-lived spell/sticker proposal for extension review. It does not dispatch or authorise a browser effect. See browser action boundary for receipt folding, durable effect idempotency and missing live adapters. The server is trusted local stdio software; filesystem-capable tools must not be exposed directly as a public network service.
VTA + Star: agent knowledge spaces (2026-09-08)
MCP task engine records this surface's responsibilities and acceptance gates. The shared design places FedWiki records, browser-carried Star state, first-contact intent, MCP Trust Tasks, VTA permission enforcement and earned Mages City names in one continuing journey. Status is explicitly partial; follow the note's source and deployment distinctions.
City invitation and experience entry
Use experience_route to select arrival, learning, key custody, casting or collaboration. city_invitation_draft prepares a private public-summary candidate in the City's visitor-event shape; publish remains false. See City entry workflow. These tools neither sign nor send messages, and an invitation does not establish membership, credentials or MyTerms agreement validity.
Complete capability overview
Begin with experience_overview: one source inventory covers the key, journey, invitation, game action, Star orb, VTA pair, agreements/tasks/VRCs, City access and core-artefact proposal. lib/experience-overview.json is the source; the City serves its current copy at /experience-overview.json. Keep this copy byte-identical when updating capability status. No status here substitutes for live service discovery.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mitchuski/agentprivacy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server