🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@nyuchi/mzizi-mcp

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nyuchi/mzizi-mcp

Mzizi MCP — Model Context Protocol server for the Mzizi component registry. Reads the document-route store, one component per JSON document.

latest
Source
npmnpm
Version
0.6.0
Version published
Maintainers
1
Created
Source

@nyuchi/mzizi-mcp

Registry-driven Model Context Protocol server for the mzizi design system — the drop-in replacement for the legacy design.nyuchi.com MCP.

The tool catalog is loaded at startup from the Supabase mcp_tool_registry table (RLS public-read, anon role) and dispatched dynamically. Adding, renaming, or retiring a tool is a registry edit, not a code change. The server is read-only on the anonymous surface — write-kind tools are excluded.

Live at https://mcp.mzizi.dev/mcp (Cloudflare Worker mzizi-mcp, version 0.4.0). A free WorkOS signup gate fronts the endpoint — a WorkOS Connect OAuth application (public client, PKCE; no client secret) — so sign up once and read the whole registry at no cost. The worker advertises /.well-known/oauth-protected-resource so MCP clients can run the OAuth discovery dance automatically.

MCP Registry name: io.github.nyuchi/mzizi-mcp

Using it — MCP client config

Point any MCP client at the live HTTP endpoint:

{
  "mcpServers": {
    "mzizi": {
      "type": "http",
      "url": "https://mcp.mzizi.dev/mcp"
    }
  }
}

The client will be redirected through the WorkOS Connect OAuth (PKCE) flow on first connect. After that, reads are free and unlimited.

stdio (local / offline)

Run the stdio bin via npx — useful for Claude Code, Cursor, or any assistant that speaks stdio MCP. It is zero-config — the public mzizi registry URL + its publishable (anon, RLS read-only) key are baked in, so no env is needed:

{
  "mcpServers": {
    "mzizi": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@nyuchi/mzizi-mcp"]
    }
  }
}

This is the sanctioned headless path: the hosted mcp.mzizi.dev endpoint sits behind an interactive, browser-only WorkOS signup gate that a headless agent (Claude Code, CI, an offline client) can't complete, whereas the stdio bin reads the same public registry directly with no login.

To point the bin at a fork or a self-hosted mirror, override the defaults with SUPABASE_URL and SUPABASE_PUBLISHABLE_KEY (their NEXT_PUBLIC_ equivalents are also accepted). Neither value is a secret — the publishable key only grants the anon role, which RLS restricts to read-only reads of the public registry.

Registry-driven dispatch

Registry kindDispatch
sql_functionsupabase.rpc(fn, args)
edge_functionsupabase.functions.invoke(fn, { body })
source_tablesupabase.from(table).select()

The registry currently holds 62 rows (60 enabled). After filtering out write-kind and first-party tools, ~55 tools are exposed on the anonymous public surface, spread across 17 categories.

Core tools (always present, defined in code)

ToolBacked byReturns
list_collectionscomponent_documents aggregateEvery collection + document counts + per-owner breakdown
get_database_statuscomponent_documents countProvider health + document-store row count + tool count
fundi_statusfundi /admin/whoami (M2M delegation)fundi identity + granted scopes (only when FUNDI_URL is set)

fundi_status is only registered on the server when FUNDI_URL is configured. It proxies to the fundi worker using a WorkOS M2M token minted from WORKOS_M2M_CLIENT_ID / WORKOS_M2M_CLIENT_SECRET, plus the authenticated user's token in X-Fundi-User-Token. This makes mzizi-mcp the sanctioned fundi caller — the CLI reaches fundi through mzizi-mcp, never by holding the M2M secret itself.

Tool categories (registry-driven)

CategoryExample tools
componentget_component, list_components, search_components, get_component_links
architectureget_node_documents
brandget_brand_tokens, list_ecosystem_brands
skillsget_skill, list_skills
doctrinedoctrine-read tools
documentsread_documents, read_versions
releaselist_changelog, get_changelog_entry, compute_release_diff
resolverresolve_primitive, list_framework_descriptors
a11ycalculate_contrast_ratio, simulate_color_blindness, run_accessibility_audit
observabilitylist_observability_events, is_domain_allowed
fundiget_healing_log, list_recent_fundi_issues
chaoslist_chaos_events
systemsystem-read tools
aiget_ai_instructions, list_ai_instructions
governanceget_bundu_convention
metamcp_describe

Call mcp_describe (with optional p_category filter) to enumerate the full live catalog.

Resources

URIContent
mzizi://collectionsEvery collection + document counts + owner breakdown
mzizi://componentsLean index of the components collection

Environment / secrets

HTTP Worker (Cloudflare)

Secrets (wrangler secret put):

SecretRequiredNotes
SUPABASE_URLyesPublic Supabase project URL
SUPABASE_PUBLISHABLE_KEYyesAnon (RLS public-read) key
SUPABASE_SECRET_KEYnoService-role key; placeholder is used if unset
COOKIE_ENCRYPTION_KEYyesHMAC key for the consent cookie (random bytes)

Plain vars ([vars] in wrangler.toml, not secrets):

VarNotes
WORKOS_CLIENT_IDConnect OAuth app client id (public client; PKCE)
WORKOS_AUTHKIT_DOMAINAuthKit domain for /oauth2/* (e.g. https://identity.nyuchi.com)
WORKOS_M2M_CLIENT_IDFundi M2M app client id; required only when FUNDI_URL is set
FUNDI_URLBase URL of the fundi worker; enables the fundi_status tool

The Connect OAuth app is a public client (PKCE) — there is no WORKOS_CLIENT_SECRET or WorkOS API key on the worker.

Optional: fundi-caller extras (only needed when mzizi-mcp is the fundi caller):

NameKindPurpose
WORKOS_M2M_CLIENT_SECRETsecretFundi M2M app secret (Worker secret; never in code)

stdio / local dev (.dev.vars or environment)

VariableRequiredNotes
SUPABASE_URLnoDefaults to canonical mzizi project
SUPABASE_PUBLISHABLE_KEYyesAnon key

Entrypoints

SurfaceEntryUse
stdiobin: mzizi-mcpLocal AI assistants (Claude Code, Cursor, etc.)
HTTP / Workermzizi-mcp/httpCloudflare Workers + any fetch runtime
Library@nyuchi/mzizi-mcpEmbed the server factory in your own host

Source files:

  • src/server.tscreateMziziMcpServer(supabase) factory
  • src/http.tscreateMziziHttpHandler() for any fetch runtime
  • src/worker.ts — Cloudflare Worker bound to env (the gated deployment)
  • src/stdio.tsbin: mzizi-mcp for the MCP registry / local Claude Code

Build and deploy

# typecheck
pnpm --filter @nyuchi/mzizi-mcp typecheck

# build (tsc → dist/)
pnpm --filter @nyuchi/mzizi-mcp build

# local Worker dev
pnpm --filter @nyuchi/mzizi-mcp cf:dev

# deploy manually (CI handles pushes to main)
pnpm --filter @nyuchi/mzizi-mcp cf:deploy

CI deploys automatically on push to main touching mzizi-mcp/** via .github/workflows/deploy-mzizi-mcp.yml.

License

Apache-2.0. Part of the mzizi tooling — an open-architecture project of the Bundu Foundation, operated by nyuchi.

Keywords

mcp

FAQs

Package last updated on 01 Aug 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts