Skip to main content
Glama
mitchuski

agentprivacy

by mitchuski

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

site/star-chart/data/pages.json

agentprivacy.guide/tools/star-chart.mjs

one row per page: vertex, postured, posture, sorted_links, element, forkedFrom, priorVertex

site/star-chart/data/sitemaps/<id>/system/sitemap.json

same

title · date · links · vertex · posture

site/star-chart/data/vpkb/

same (from ~/vpk/pathways)

the BM25 search core + per-site lexical indexes

site/<sub>/<slug>.json

tools/snapshot.mjs

the page itself

Point elsewhere with AGENTPRIVACY_GUIDE_SITE=<dir>.

Related MCP server: OpenWorkProof

Tools

tool (plan name)

in

out

guide_search (guide.search)

query, limit?, sites?

an ordered walk: steps with site · slug · vertex · posture · PSI element · url

guide_page (guide.page)

slug, site?

text, weave (links), vertex + six bits, dims, stratum, element, copies across sites

guide_neighbours (guide.neighbours)

slug, site?

out-links and backlinks, each with the named lattice move: succ · neg · bnot · flip dim · jump ×k

lattice_move (lattice.move)

vertex, op

the resulting vertex, bits, dims, stratum, reading. op = succ · neg · bnot · flip <dim> · to <vertex>

key_derive (key.derive)

key (JSON · sigil PNG · path)

Law L5: canonical form → κ → verdict verified / mismatch / unlabelled, prior, 64 glyphs, lit + walked vertices

key_evolve (key.evolve)

key?, walk, name?

the evolved key: walks[] appended, prior chained, κ stamped, unsigned

sigil_render (sigil.render)

key, out?, size?

a PNG that carries the key (tEXt cityKey, base64 JSON) — imports on soulbis /star, /lattice, /sigil

compare_plain (compare.plain)

a, b

the ∩ in the open. Development only; hidden under VTA_MODE=1

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.mjs

Keystore ~/.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

key_sign

signs a City Key evolution → the VTA record {publicKeyHex, participantId, did, kappa, prior, at, walks, vrcs, sig}

κ must re-derive (L5) · own bearer only · prior = ledger head (no history rewrites; unchanged content not re-signed) · no unbaked steps · rate limit from the ledger

vta_publish

what a VTA publishes: public key · κ · prior · VRC commitments, plus a ready proofs page item for <name>.mages.city

never the key, never the walk, never the seed

sigil_seal

writes the record into a sigil PNG as a cityKeySig chunk beside cityKey

record must verify

policy_show

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.

Available Tools

10 tools
card_verifycard.verify (public)A

Verify an AgentCard as agentprivacy /ceremony signs it (ed25519 over the card payload; participantId = ap-<16 hex of the public key>). Returns participantId, did:key, displayName, trustTier, Drake Orb tier. This is the identity mages.city admits with; the board never re-issues it.

ParametersJSON Schema
NameRequiredDescriptionDefault
cardYesthe AgentCard JSON (object, JSON text, or a path)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It states the operation is verification, lists return data, and notes the board never re-issues it, implying a read-only/non-mutating action. It does not detail error behavior, but the core behavior is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and informative. The final sentence about mages.city adds context but is not strictly necessary for invocation, keeping it from a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It explains the verification algorithm, the participantId derivation, and the return fields, which is sufficient despite the lack of an output schema. It does not specify failure behavior, but that is less critical for a verify operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter is fully described in the schema with accepted formats (object, JSON text, or path). The tool description adds no additional semantic detail beyond referencing the card payload.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool verifies an AgentCard, specifies the signature scheme (ed25519), and lists the returned identity fields. It is distinct from sibling key_verify by targeting AgentCard/ceremony identity verification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose implies when to use it (when an AgentCard needs verification), but it does not explicitly compare against sibling tools like key_verify or state conditions for choosing this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_plaincompare.plain (development only)B

The ∩ of two keys (walked + lit vertices, shared PSI elements) computed IN THE OPEN by reading both keys. Development only: Rung 3 replaces it with DH-PSI, and it is hidden when VTA_MODE=1.

ParametersJSON Schema
NameRequiredDescriptionDefault
aYes
bYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavior. It reveals that the tool reads both keys and computes the intersection 'IN THE OPEN', implying a potentially insecure or development-only behavior. It also notes the tool is hidden under VTA_MODE=1. However, it lacks details on side effects, security implications, return values, or error conditions, leaving the agent with limited understanding of consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two sentences that front-load the core operation and then add lifecycle context. It avoids unnecessary verbosity. However, the use of specialized jargon ('walked + lit vertices', 'PSI', 'Rung 3') slightly hampers immediate clarity but does not add bloat. Overall structure is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (two parameters, no output schema, no enums), the description provides sufficient context about its development-only nature and hidden status. It lacks information about the return format, possible outputs, or error scenarios, but these are absent from the schema as well. The cryptic terminology and lack of parameter mapping create gaps, but the basic usage context is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal parameter-specific meaning. It mentions 'two keys' but does not differentiate between parameters 'a' and 'b' or explain their roles. The schema itself provides identical generic descriptions for both parameters (JSON object, string, PNG, or path), so the description contributes nothing beyond the schema. The agent must guess which key is which or infer from the operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action: comparing two keys and computing their intersection ('∩ of two keys'), with a parenthetical explaining the inputs ('walked + lit vertices, shared PSI elements'). It clearly identifies the resource (two keys) and the operation (computed by reading both). Some jargon remains cryptic, but the core purpose is recognizable and distinct from sibling tools like key_verify or card_verify.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage constraints: it is 'development only', mentions a future replacement (Rung 3 / DH-PSI), and notes it is hidden when VTA_MODE=1. This gives the agent explicit conditions for when not to use it, but it does not explicitly compare to sibling tools or state when to prefer this over alternatives like key_verify. The guidance is useful but not comprehensive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

guide_neighboursguide.neighboursD

Linked pages (outgoing and backlinks) of a page, each with the NAMED LATTICE MOVE from this page to it: succ · neg · bnot · flip · jump ×k (dimensions), per the 64-vertex sovereignty lattice.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNo
slugYes

TDQS

D1.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose side effects, permissions, data mutation, rate limits, or whether the operation is read-only. The agent is given no behavioral expectations beyond an unclear statement about linked pages.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but poorly structured and filled with unexplained jargon like 'succ · neg · bnot · flip <dimension> · jump ×k'. The opening phrase is somewhat concise, but the rest detracts from clarity and does not effectively front-load useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description omits essential context such as the return format, the meaning of the lattice moves, the relationship between parameters and the page, and any example usage. With no output schema and cryptic terminology, the tool is not sufficiently specified for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema lists 'site' and 'slug' with no descriptions, and the tool description does not explain what these parameters mean or how they relate to the 'page'. Schema coverage is 0%, and the description provides no meaningful parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool deals with 'linked pages (outgoing and backlinks) of a page', but it is phrased as a noun phrase rather than a clear action. The appended 'NAMED LATTICE MOVE' terminology is cryptic and does not clarify the tool's primary purpose or distinguish it from sibling tools like guide_search or guide_page.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the sibling tools. The description does not mention alternatives, conditions, or scenarios, leaving the agent to infer usage solely from the tool name and vague description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

guide_pageguide.pageA

One page by slug (site optional — identity is the slug, never the host): its text, weave (links), lattice vertex + six-bit posture, PSI element and public URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNo
slugYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the burden. It lists returned content (text, weave, lattice vertex, PSI element, public URL), suggesting read-only behavior, but does not explicitly confirm side effects or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single compact sentence conveys the tool's purpose, key parameter guidance, and return contents without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple page-retrieval tool, the description is adequately complete: it names the resource, parameters, and output fields. It omits error scenarios, but these are not critical for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description clarifies that slug is the identity and site is optional, which partially compensates for the sparse schema. It does not explain the format or possible values for slug or site.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly identifies the tool as retrieving a single page by slug and distinguishes it from search/neighbor tools by emphasizing the slug as the identity. Lacks an explicit verb like 'get' or 'fetch', but the intent is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives useful guidance that the slug is the identity and site is optional, but does not explicitly state when to prefer this tool over sibling tools like guide_search or guide_neighbours.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

key_derivekey.deriveC

Law L5 — a κ is never trusted, only re-derived. Canonical form (keys sorted recursively, no whitespace, kappa excluded) → sha256 → compare with the stamped κ. Accepts a City Key JSON or a sigil PNG (the image carries the key). Returns verdict, derived κ, prior, the 64 glyphs, lit and walked vertices.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of explaining side effects, but it only mentions inputs, processing steps, and return values. It does not state whether the operation is read-only, whether file paths are read, or whether any state is modified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and uses a clear process arrow, with no redundant filler. However, the density of domain-specific terms makes it harder to parse, slightly reducing accessibility.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description mentions several outputs but leaves crucial context unexplained, such as what 'stamped κ' refers to, what 'prior' means, and how 'glyphs', 'lit vertices', and 'walked vertices' are defined. There is no output schema to fill these gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description for 'key' is detailed and useful, specifying accepted formats: JSON object, JSON string, sigil PNG as base64/data URL, or a path. This goes beyond basic type information and gives practical input guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description conveys a derivation-and-comparison process, but it is heavily jargon-laden and does not clearly define key terms such as 'stamped κ', 'prior', or 'lit and walked vertices'. The purpose is inferable but not directly stated in plain language.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given about when to use this tool versus sibling tools like key_verify, key_evolve, or compare_plain. The 'never trusted, only re-derived' rule hints at a principle, but it does not specify concrete use cases or selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

key_evolvekey.evolveA

Append a walk to a City Key — pure and deterministic. Walk = an array of {site?, slug} steps (or slugs), a pathway.v1, or a star-chart constellation. Each step is resolved against the bake to its vertex and PSI element; the evolved key gains walks[], prior = κ of the key it grew from, and a fresh κ. UNSIGNED — a Swordsman signs (Rung 1). Omit key to start from the default key.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNo
nameNoname this walk (a constellation name)
walkYessteps: [{site, slug}] | [slug] | {steps:[…]}

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses key behavioral traits: pure and deterministic, UNSIGNED requiring a Swordsman at Rung 1, and the resulting key structure with walks[], prior, and fresh κ. No annotations are present, but the description covers the important behavioral constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the action, and every sentence adds relevant information; no filler or redundant restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers input forms, the default-key path, output key evolution, and signing context. It omits details such as error handling and explanation of bake/κ, but is reasonably complete for a domain-specific tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters have meaningful descriptions that extend the loose anyOf schemas, especially key (JSON/sigil/path) and walk (step forms). The semantics are enriched beyond the schema even if some domain terms remain terse.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the operation: append a walk to a City Key, with a deterministic, pure outcome. It distinguishes itself by emphasizing UNSIGNED and default-key behavior, though it does not explicitly contrast sibling tools like key_derive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides operational details (walk forms, default key, unsigned status) but no explicit guidance on when to choose this over sibling tools such as key_derive, guide_search, or lattice_move.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

key_verifykey.verify (Rung 1, public)A

Verify a signed VTA record (kind agentprivacy.vta/1: bearer public key, κ, prior, at, walks, vrcs, ed25519 sig) — and, when the key is given, that the record names THIS key (L5: κ re-derived from the key equals the signed κ). Accepts the record as JSON or a sigil PNG carrying a cityKeySig chunk. With since, also evaluates the liveness predicate evolved_since(t). Holds no secret.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNo
vtaYesthe VTA record, or a PNG (base64 / path) carrying cityKeySig
sinceNoISO time — evaluate evolved_since(since)
horizonDaysNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

It discloses key behavioral facts: it verifies signatures, can bind the record to a provided key, evaluates a liveness predicate with since, and holds no secret. However, it does not describe return values, failure modes, or side effects beyond verification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but efficient, packing the action, formats, optional behaviors, and a safety note into a short space. The heavy use of domain jargon slightly reduces readability, but there is no obvious fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is sufficient for basic use and for optional since/key behavior, but it omits the meaning of horizonDays, does not state the output/return contract, and does not clarify how this tool relates to card_verify or compare_plain. Given the 4-parameter complexity, these are meaningful gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds useful semantics for key binding and accepted vta formats, and explains since's role. However, horizonDays is left completely unexplained, and the key/vta formats remain jargon-heavy, leaving gaps in the parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action as verifying a signed VTA record, optionally checking key binding and evaluating liveness. It names the specific resource and scope, distinguishing it from sibling verification, derivation, and rendering tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives conditional behavior for optional key and since parameters, but it does not explicitly state when to prefer key_verify over related tools such as card_verify, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lattice_movelattice.moveA

Apply a lattice operator to a vertex (0-63): succ (the wheel, +1 mod 64), neg (Swordsman reflection, 64−x), bnot (Mage antipode, 63−x), "flip " (one bit), or "to " (names the move). Returns the resulting vertex, its six bits (d1 protection … d6 value), dimensions, stratum, and a derived reading.

ParametersJSON Schema
NameRequiredDescriptionDefault
opYessucc | neg | bnot | flip <dim> | to <vertex>
vertexYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It discloses the return payload (resulting vertex, six bits, dimensions, stratum, and a derived reading) and explains all operator behaviors. It does not mention side effects or error conditions, but the operation appears pure and well-specified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence contributes: it lists operators, explains their effects, and lists the return fields. No filler or redundant phrasing. The structure flows logically from action to parameters to output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool and the absence of an output schema, the description covers the essential aspects: what it does, the operators, and the return format. It does not discuss edge cases like invalid 'op' values, but that is a minor gap for a well-defined lattice operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only lists 'op' with a brief enum-like description and 'vertex' with a min/max. The tool description adds rich semantics: it defines each operator's mathematical meaning (e.g., '+1 mod 64', '64−x', '63−x', bit flip) and clarifies the vertex range. This far exceeds the schema's minimal information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Apply a lattice operator to a vertex' and enumerates each operator with its exact semantics (succ, neg, bnot, flip, to). This is distinct from sibling tools like key_derive or guide_search, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides the exact syntax for the 'op' parameter and explains each operation, effectively teaching how to use the tool. However, it does not explicitly state when to prefer this tool over siblings, leaving the agent to infer from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sigil_rendersigil.renderC

Draw the key's sigil — 64 glyphs, one per vertex, lit by the RE-DERIVED κ (never the stamped claim), coloured by the key's palette by stratum; lit vertices ring coral, walked vertices ring cyan — as a PNG that CARRIES the key (tEXt cityKey), importable on soulbis.com/star, /lattice, /sigil. Returns the image; writes it to out when given.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYes
outNofile path to write the PNG
sizeNo

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool returns an image, optionally writes to a file specified by 'out', and embeds the key in the PNG metadata (tEXt cityKey). These are important side effects, but there is no mention of read-only or destructive behavior, and the description uses cryptic language. Still, the side effects are stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a long, convoluted sentence with ambiguous jargon and poetic phrasing. It lacks clear structure and could be simplified. The essential information is embedded in cryptic language, making it hard to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description does not explain the tool's place among its siblings or when to prefer it over alternatives. No prerequisites, follow-up steps, or related tools are mentioned. The mention of importable URLs is tangential and not contextual.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only the 'key' parameter has a detailed description, covering multiple formats. The 'out' parameter has a brief description, and 'size' has no description, only constraints. With only 33% schema description coverage, the parameter semantics are insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the primary purpose of drawing a sigil from a key. The phrase 'Draw the key's sigil' directly indicates the action, though the details are cryptic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool. It mentions importability on certain URLs, but that does not constitute a usage guideline. No conditions or scenarios are described.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 10 tool updatesv0.1.0
    • First observedcard_verify
    • First observedcompare_plain
    • First observedguide_neighbours
    • First observedguide_page
    • First observedguide_search
    • First observedkey_derive
    • First observedkey_evolve
    • First observedkey_verify
    • First observedlattice_move
    • First observedsigil_render

TDQS

B3/5.0

Scored across 10 tools

Disambiguation5/5

Each tool targets a distinct operation: key derivation, guide search/page/neighbours, lattice moves, key evolution, sigil rendering, key and card verification, and a dev-only comparison. The descriptions clearly separate overlapping functions like key_derive vs key_verify.

Naming Consistency3/5

Most tools follow noun_verb (key_derive, guide_search, lattice_move), but guide_page and guide_neighbours are noun_noun and compare_plain is verb_adj. The mix is still readable but not uniformly consistent.

Tool Count5/5

10 tools is well-scoped for the domain: 5 key-related, 3 guide-related, 1 lattice, 1 card verification. Each tool earns its place without redundancy.

Completeness4/5

Covers key lifecycle (derive, evolve, verify, render), guide exploration (search, page, neighbours), and lattice operations. Missing explicit signing, but that is described as an external Swordsman step, and dev-only compare_plain is clearly marked.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Default-deny action registry, append-only spend ledger, and human sign-off audit trail (MCP tools).
    6
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Verifiable execution protocol for AI agents. Ed25519-signed work contracts, offline-verifiable proof-carrying work, and cryptographic audit trails. 14 MCP tools for signing, verification, and schema lookup. Python >=3.10.
    29
    190
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides evidence-oriented MCP service for cryptographically identified agents, bounded public contracts, privacy-preserving records, and append-only audit.
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides deterministic MCP tools for managing encrypted member profiles, including self/other lookups, responsible-person contacts, and birthday queries with privacy-focused local encryption.
    -

Latest Blog Posts

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