Back to Browse

Uuaid MCP Server

by Uuaid
Developer ToolsLow Risk9.0MCP RegistryLocal
Free

Server data from the Official MCP Registry

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

About

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

Security Report

9.0
Low Risk9.0Low Risk

Valid MCP server (2 strong, 3 medium validity signals). 2 known CVEs in dependencies ⚠️ Package registry links to a different repository than scanned source. Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.

15 files analyzed · 3 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

env_vars

Check that this permission is expected for this type of plugin.

file_system

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

What You'll Need

Set these up before or after installing:

UUAID partner API key. Optional at startup — call the uuaid_signup tool to mint a free-tier key.Required

Environment variable: UUAID_API_KEY

Client-side memory encryption key (uvk_...). Required for the memory tools; generate with `uuaid vault keygen`.Required

Environment variable: UUAID_VAULT_KEY

Default agent identity (uuaid:foundation:agent:...) so memory tools bind to it automatically.Optional

Environment variable: UUAID_AGENT

API base URL. Defaults to https://api.uuaid.org.Optional

Environment variable: UUAID_BASE_URL

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-uuaid-mcp": {
      "env": {
        "UUAID_AGENT": "your-uuaid-agent-here",
        "UUAID_API_KEY": "your-uuaid-api-key-here",
        "UUAID_BASE_URL": "your-uuaid-base-url-here",
        "UUAID_VAULT_KEY": "your-uuaid-vault-key-here"
      },
      "args": [
        "-y",
        "@uuaid/mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

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.

Reviews

No reviews yet

Be the first to review this server!