Skip to main content
Glama
zipviz-mcp

zipviz-mcp

Official
by ZipViz

zipviz-mcp

MCP server wrapping the ZipViz agent registry: tools for verified-identity lookup, signing, signature verification and agent-to-agent transport.

Published on npm as zipviz-mcp.

Quickstart

Requires Node.js 22.13 or later. Each client starts the server with npx, so there is nothing to install first.

Claude Code:

claude mcp add zipviz -- npx -y zipviz-mcp

Claude Desktop: add this to claude_desktop_config.json (Settings → Developer → Edit Config), then restart Claude Desktop.

Cursor: add the same block to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project).

{
  "mcpServers": {
    "zipviz": {
      "command": "npx",
      "args": ["-y", "zipviz-mcp"]
    }
  }
}

First call: ask your assistant to "use zipviz_lookup to look up zorro-her.smc.viz". The tool returns the agent card as JSON: name, tunnel URL, Ed25519 public key, protocols and authentication schemes. Any text the registrant wrote comes back in a separate block labelled untrusted.

To sign messages with zipviz_sign_message, create a key with the zipviz CLI first (npm install -g zipviz, then zipviz keygen). Both use ~/.zipviz/keys/.

Related MCP server: parseltongue-capsules

Tools

Tool

What it does

Network

zipviz_lookup

Fetch an agent's public card by .viz domain

live

zipviz_status

Quick identity and trust status check before talking to an agent

live

zipviz_send

Resolve recipient tunnel URL and POST one A2A message

live

zipviz_verify

Verify an Ed25519 signature against the agent's registered public key (signature is base64); the result includes a plain-English explanation

live

zipviz_sign_message

Sign a message locally with an Ed25519 PEM private key, returns base64 signature

local only

zipviz_explain_verification

Deprecated. Returns no explanation; use zipviz_verify, which includes one

local only

Transport

Bin

Transport

Use it for

zipviz-mcp

stdio

Claude Code, Claude Desktop, Cursor, Codex CLI, Codex Desktop

The stdio bin is stdout-clean (only JSON-RPC frames on stdout).

Development

git clone https://github.com/ZipViz/zipviz-mcp && cd zipviz-mcp
npm ci
npm run build              # produces dist/stdio.js
npm test                   # vitest

Local dev without building:

npm run dev                # stdio

API surface

All tools call https://api.zipviz.ai. See src/lib/types.ts for the response shapes (AgentCard, VerifyResponse, A2AResponse).

Security notes

  • Private keys for zipviz_sign_message default to ~/.zipviz/keys/<viz_domain>.key and never leave the local machine. key_path is rejected and viz_domain must match a strict .viz regex, so the tool cannot act as a signing oracle for arbitrary local keys.

  • zipviz_send is intentionally a thin transport helper: no queues, retries, scheduling, or routing logic.

Contributing

See CONTRIBUTING.md. Changes are listed in CHANGELOG.md.

License

Apache-2.0. See LICENSE and NOTICE.

Security

See SECURITY.md.

Available Tools

6 tools
zipviz_explain_verificationA

DEPRECATED and non-functional. zipviz_verify now returns the plain-English explanation alongside its verdict, derived from the verification it performed. This tool explains nothing: a verification result supplied by a caller cannot be told apart from one a caller invented, so explaining it would mint a trust claim with nothing behind it.

NameRequiredDescriptionDefault
resultNoIgnored. Call zipviz_verify instead.
zipviz_lookupA

Look up an agent on the ZipViz network by domain. Returns the agent card (name, tunnel URL, public key, supported protocols, trust status). Free-text fields the registrant wrote, such as the description, come back in a separate block labelled untrusted.

NameRequiredDescriptionDefault
domainYesThe agent domain to look up, e.g. ticki.adkgo.viz
zipviz_sendA

Send a message to an agent on the ZipViz network. Looks up the recipient's tunnel URL and POSTs an A2A message. The message is ALWAYS Ed25519-signed locally as the identity given in as (required), using that identity's private key (default location ~/.zipviz/keys/.key); the signature is attached as params.message.metadata.zipviz so the recipient's relay can verify the sender via api.zipviz.ai/v1/verify. There is no unsigned send path — recipients running strict signed-inbound reject unsigned messages.

NameRequiredDescriptionDefault
asYesREQUIRED. The .viz domain to send AS, e.g. stuart-clau.smc.viz. The message is signed locally with that identity's Ed25519 key and the signature is attached to the outbound A2A envelope's metadata.zipviz block. Every send must be signed; there is no unsigned path.
domainYesThe agent domain to message, e.g. ticki.adkgo.viz
messageYesThe message to send to the agent
envelope_vNoEnvelope version. Default 1 (unchanged v1 canonical). 2 adds recipient binding, msg_id, and expiry.
zipviz_sign_messageA

Sign a message locally with an agent's configured Ed25519 private key and the v=1 canonical-JSON envelope {v:1, from, message, timestamp} that api.zipviz.ai /v1/verify accepts. Returns the base64 signature, the timestamp baked into the signed payload, and signing_version:1. No network calls.

NameRequiredDescriptionDefault
messageYesThe message content to sign (UTF-8)
key_pathNoNOT PERMITTED. This tool always signs with the configured local agent key. Passing key_path is rejected — it would let a caller sign with any PEM the process can read.
timestampNoOptional ISO 8601 timestamp to bake into the signed payload. Defaults to `new Date().toISOString()` at sign time. Callers that need to send the timestamp alongside the signature (e.g. zipviz_send) should read it back from the return value.
viz_domainYesThe .viz domain that owns the signing key, e.g. claudais.smc.viz
zipviz_statusB

Check if an agent on the ZipViz network is verified and holds trust status. Use this for quick trust checks before communicating with an agent.

NameRequiredDescriptionDefault
domainYesThe agent domain to check, e.g. ticki.adkgo.viz
zipviz_verifyA

Verify a signed message from an agent. Checks the Ed25519 signature against the agent's registered public key and returns the verdict bound to the domain you asked about. A verdict that cannot be attributed to ZipViz's verifier reads as unknown — never as a pass, and never as a failure.

NameRequiredDescriptionDefault
domainYesThe domain of the agent that signed the message
messageYesThe original message content
signatureYesThe Ed25519 signature to verify (base64)
timestampYesISO 8601 timestamp of when the message was signed

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.1.1
    • First observedzipviz_explain_verification
    • First observedzipviz_lookup
    • First observedzipviz_send
    • First observedzipviz_sign_message
    • First observedzipviz_status
    • First observedzipviz_verify

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation4/5

Most tools target distinct actions, but zipviz_status overlaps with zipviz_lookup since both report trust status, and zipviz_sign_message overlaps conceptually with zipviz_send's automatic signing. The deprecated non-functional zipviz_explain_verification adds minor confusion, though its description explicitly warns agents away. Overall the set is mostly distinguishable.

Naming Consistency5/5

Every tool uses the same zipviz_ prefix followed by snake_case verb or verb_phrase names. The pattern is predictable and consistent throughout. There are no mixed naming conventions.

Tool Count4/5

Six tools is a reasonable size for a focused agent-trust and messaging server. However, one tool is explicitly deprecated and non-functional, so it does not earn its place and should be removed. The remaining five tools are well within a sensible range.

Completeness4/5

The surface covers lookup, trust status, sending, verification, and local signing, which supports core agent trust workflows. Minor gaps include key lifecycle operations such as generation or rotation, and the dead zipviz_explain_verification tool is a non-functional surface entry. These are workable limitations rather than severe omissions.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI agents to prove knowledge of a private key through a three-pass commitment, challenge, and response exchange, paired with SHA-256 Merkle inclusion proofs, JWT HMAC-SHA256 claim validation, constant-time secret comparison, and sliding-window nonce replay protection. Runs as a zero-dependency JSON-RPC 2.0 stdio server compatible with Claude Desktop, Cursor, and Windsurf.
    7
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Lets an agent manage local identities and public contact cards, and hide a message inside ordinary-looking cover text via concealment carriers, while inspecting and verifying sealed notes and encrypted capsules entirely on the user's own machine. Passphrases and plaintext stay in the companion CLI, and neither server has any outbound network capability.
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables secure cross-system identity and token exchange for autonomous agents, including on-behalf-of token exchange, scoped permission delegation, token lifetime refresh, and zero-leakage ephemeral credentials. It integrates with MCP-compatible clients via standard JSON-RPC stdio without external runtime dependencies.
    7
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables a coding agent to keep a persistent, self-signed record of itself through stdio tool calls: waking to read back its positions, pending decisions and recent entries, pushing signed notes, decisions and outcomes, spawning sub-agents that start from its own record, and exporting the whole signed record for offline checking. Everything is signed locally with the agent's own key, so it works inside a sandbox with no shell network.
    14 npm
    MIT