io.github.uuaid/mcp

Official registry AI and agents

Permanent identity + encrypted, quantum-ready memory that outlives the session, for any AI agent.

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package @uuaid/mcp
Claude Code
claude mcp add io-github-uuaid-mcp -e 'UUAID_API_KEY=<your uuaid_api_key>' -e 'UUAID_VAULT_KEY=<your uuaid_vault_key>' -e 'UUAID_AGENT=<UUAID_AGENT>' -e 'UUAID_BASE_URL=https://api.uuaid.org' -- npx -y @uuaid/mcp@0.1.1
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "io-github-uuaid-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "@uuaid/mcp@0.1.1"
            ],
            "env": {
                "UUAID_API_KEY": "<your uuaid_api_key>",
                "UUAID_VAULT_KEY": "<your uuaid_vault_key>",
                "UUAID_AGENT": "<UUAID_AGENT>",
                "UUAID_BASE_URL": "https://api.uuaid.org"
            }
        }
    }
}

Environment variables

  • UUAID_API_KEY secret UUAID partner API key. Optional at startup — call the uuaid_signup tool to mint a free-tier key.
  • UUAID_VAULT_KEY secret Client-side memory encryption key (uvk_...). Required for the memory tools; generate with `uuaid vault keygen`.
  • UUAID_AGENT Default agent identity (uuaid:foundation:agent:...) so memory tools bind to it automatically.
  • UUAID_BASE_URL API base URL. Defaults to https://api.uuaid.org.

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. UUAID
  2. Packages
  3. Quickstart
  4. Verifying a badge
  5. Development
  6. Security

UUAID

The verifiable identity layer for AI agents — the SSL/CA for agents.

A permanent, portable identity plus encrypted, quantum-ready memory that outlives the session. This monorepo holds the official TypeScript packages; the hosted registry, resolver, and on-chain anchor run at uuaid.org.

Protocol specifications live in uuaid/spec. The design argument, including the vulnerability we found in our own verifier, is at uuaid.org/know-your-agent.

Packages

PackagenpmWhat
@uuaid/core@uuaid/coreUUAID grammar, JCS content hashing, crypto-agile signature envelope, Verifiable Badges (IAASO-0003)
@uuaid/vault@uuaid/vaultClient-side memory encryption (AES-256-GCM + hybrid X25519/ML-KEM-768)
@uuaid/sdk@uuaid/sdkTyped client: signup, mint, save/recall memory, verify
@uuaid/provenance@uuaid/provenanceMedia provenance (IAASO-0004) — bind an image, video or PDF to the agent that made it
@uuaid/cli@uuaid/cliuuaid signup · register · badge · verify-badge · vault …
@uuaid/mcp@uuaid/mcpMCP server — one config line makes any agent persistent

Quickstart

npx @uuaid/cli signup "my-lab"     # free API key, shown once
npx @uuaid/cli register "ci-bot"   # permanent ID
import { UuaidClient, generateVaultKey } from "@uuaid/sdk";

const { api_key } = await UuaidClient.signup("My Agent Lab"); // free tier
const uuaid = new UuaidClient({ apiKey: api_key });
const { uuaid: id } = await uuaid.registerAgent({ display_name: "Aria" });

Verifying a badge

The one thing to get right, so it is worth stating before the code: a badge envelope carries the signer's own public key. Well-formedness, the payload-hash bind, signature validity, even a valid post-quantum signature — all of them pass for a badge anybody minted with a fresh keypair and a copied keyId. Pinning the issuer against a published root is the only step that turns a valid signature into an identity claim.

verifyBadge therefore fails closed. No pin, no verdict.

import { parseBadgeSvg, verifyBadge } from "@uuaid/core";

const { keys } = await fetch("https://api.uuaid.org/.well-known/uuaid-registry.json").then(r => r.json());
const trustedIssuerKeys = Object.fromEntries(keys.map(k => [k.keyId, k.publicKey]));

const r = verifyBadge(parseBadgeSvg(svg), { trustedIssuerKeys });
r.ok            // true only when the issuer pinned and the envelope is intact
r.level         // "L1-trusted" | "L0-selfsigned" | "invalid" | …
r.nameVerified  // did the registry vouch for the NAME on it? usually false

Omit trustedIssuerKeys and you get ok: false, level: "L0-selfsigned" — the level a forgery reaches. See IAASO-0003 §4.3.

Development

pnpm install
pnpm build && pnpm typecheck && pnpm test

Security

Found a badge that verifies and shouldn't? That is the most useful thing you can send us — security@uuaid.org, and see SECURITY.md.

Apache-2.0 — see LICENSE.

Frequently asked questions

What is io.github.uuaid/mcp?

Permanent identity + encrypted, quantum-ready memory that outlives the session, for any AI agent.

How do I install io.github.uuaid/mcp?

It runs on your machine. In Claude Code: claude mcp add io-github-uuaid-mcp -e 'UUAID_API_KEY=<your uuaid_api_key>' -e 'UUAID_VAULT_KEY=<your uuaid_vault_key>' -e 'UUAID_AGENT=<UUAID_AGENT>' -e 'UUAID_BASE_URL=https://api.uuaid.org' -- npx -y @uuaid/mcp@0.1.1. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.github.uuaid/mcp need an API key?

Yes. It expects UUAID_API_KEY, UUAID_VAULT_KEY, which you set in its configuration.

Is io.github.uuaid/mcp open source?

Yes. Its code is on GitHub under the Apache-2.0 license.

Who maintains io.github.uuaid/mcp?

It is published by uuaid. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.