Skip to content

io.github.mzizi-dev/mzizi-mcp

by mzizi-dev · remote · local (npm) · no sign-in to list tools · v0.13.0 · published by GitHub user mzizi-dev

Mzizi design system MCP: components, tokens, skills and docs. Free; sign-in only for Fundi.

Deletes · 1Changes · 4

14 tools: 1 can delete or cancel things, 4 change things and 9 only read.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http mzizi https://mcp.mzizi.dev/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn1 info
  • The description names a tool "query_docs_filesystem" that this server does not list.

    Matched text

    description: "...ull content of a specific page, use the query_docs_filesystem tool to `head` or `cat` the page path (appen..."

    What this check looks for
  • The server marks "docs_query_docs_filesystem_mzizi" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "docs_query_docs_filesystem_mzizi" says "query": a word for reading.

    What this check looks for
  • The description is 2,784 characters long, over the 2,000 this check looks for.

    Matched text

    description ends: "...emoving the `.mdx` extension. For example, `/some/page.mdx` becomes `/some/page`."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

14 tools

Deletes or cancels 1Claude Code: deny
  • mzizi_fundiDelegate a task to the fundi agent, or check on one.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delegate a task to the fundi agent, or check on one. Submit-and-poll: `submit` returns a task id immediately and never waits for the run. Needs sign-in: fundi runs as your Mzizi console user.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Changes things 4Claude Code: ask
  • docs_query_docs_filesystem_mzizi[docs.mzizi.dev] Run a read-only shell-like query against a virtualized, in-memory filesystem rooted at `/` that contains ONLY the Mzizi documentation pages.2 findings

    Why it is in this group

    • The name "docs_query_docs_filesystem_mzizi" says "query": a word for reading.
    • The input takes a statement or command to run (input.command), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Info

      The description is 2,784 characters long, over the 2,000 this check looks for.

      Matched text

      description ends: "...emoving the `.mdx` extension. For example, `/some/page.mdx` becomes `/some/page`."

      What this check looks for
    • Warn

      The server marks "docs_query_docs_filesystem_mzizi" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "docs_query_docs_filesystem_mzizi" says "query": a word for reading.

      What this check looks for
    Description, as the server wrote it
    [docs.mzizi.dev] Run a read-only shell-like query against a virtualized, in-memory filesystem rooted at `/` that contains ONLY the Mzizi documentation pages. This is NOT a shell on any real machine — nothing runs on the user's computer, the server host, or any network. The filesystem is a sandbox backed by documentation chunks. This is how you read documentation pages: there is no separate "get page" tool. To read a page, pass its `.mdx` path to `head` or `cat` — a page at the URL path `/some/page` lives at `/some/page.mdx`. To search the docs with exact keyword or regex matches, use `rg`. To understand the docs structure, use `tree` or `ls`. **Paths are specific to this site — never guess them.** Discover real paths with `tree / -L 2`, `ls /`, or the search tool before reading. If a path does not exist, that only means the guess was wrong; it does NOT mean the topic is undocumented — use `rg -il "keyword" /` to find where it is covered. **Workflow:** Start with the search tool for broad or conceptual queries like "how to authenticate" or "rate limiting". Use this tool when you need exact keyword/regex matching, structural exploration, or to read the full content of a specific page by path. Supported commands: rg (ripgrep), grep, find, tree, ls, cat, head, tail, stat, wc, sort, uniq, cut, sed, awk, jq, plus basic text utilities. No writes, no network, no process control. Run `--help` on any command for usage. Each call is STATELESS: the working directory always resets to `/` and no shell variables, aliases, or history carry over between calls. If you need to operate in a subdirectory, chain commands in one call with `&&` or pass absolute paths (e.g., `cd /some-directory && ls` or `ls /some-directory`). Do NOT assume that `cd` in one call affects the next call. Examples (replace the placeholder paths with real ones from `tree` or search): - `tree / -L 2` — see the top-level directory layout - `rg -il "rate limit" /` — find all files mentioning "rate limit" - `rg -C 3 "apiKey" /some-directory/` — show matches with 3 lines of context around each hit - `head -80 /some/page.mdx` — read the top 80 lines of a specific page - `head -80 /page-one.mdx /page-two.mdx /section/page-three.mdx` — read multiple pages in one call - `cat /some/page.mdx` — read a full page when you need everything Output is truncated to 30KB per call. Prefer targeted `rg -C` or `head -N` over broad `cat` on large files. To read only the relevant sections of a large file, use `rg -C 3 "pattern" /path/file.mdx`. Batch multiple file reads into a single `head` or `cat` call whenever possible. When referencing pages in your response to the user, convert filesystem paths to URL paths by removing the `.mdx` extension. For example, `/some/page.mdx` becomes `/some/page`.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • docs_submit_feedback[docs.mzizi.dev] Report a problem with this documentation site so the docs team can fix it.No findings

    Why it is in this group

    • The name "docs_submit_feedback" says "submit": a word for a change.
    Description, as the server wrote it
    [docs.mzizi.dev] Report a problem with this documentation site so the docs team can fix it. Use when a documentation page is incorrect, outdated, confusing, incomplete, or has a broken example. This is for feedback about the documentation content itself — not for product support requests or feedback about this tool or assistant.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • mzizi_check_accessibilityContrast and colour-vision checks against the Mzizi APCA/AAA floor.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Contrast and colour-vision checks against the Mzizi APCA/AAA floor. Computed locally — no network, no upstream dependency.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • mzizi_report_issueReport a problem with a component or the registry.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Report a problem with a component or the registry. It goes to your own issue desk — a Durable Object holding your reports — which reproduces it via fundi, drafts an issue body including what the reproduction actually returned, and logs it to fundi. fundi files the GitHub issue with its proposed fix in it and tracks that issue afterwards, so action 'get' shows where yours got to: filed, picked up, closed. Use 'list' to see your earlier reports and 'retry' to re-attempt one that drafted but could not be logged. Your history is included in each new issue, because a repeated complaint from one reporter is often one bug. Needs sign-in: the desk belongs to your Mzizi console user.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Only reads 9Claude Code: allow
  • docs_search_mzizi[docs.mzizi.dev] Search across the Mzizi knowledge base to find relevant information, code examples, API references, and guides.1 finding

    Why it is in this group

    • The name "docs_search_mzizi" says "search": a word for reading.

    Findings

    • Warn

      The description names a tool "query_docs_filesystem" that this server does not list.

      Matched text

      description: "...ull content of a specific page, use the query_docs_filesystem tool to `head` or `cat` the page path (appen..."

      What this check looks for
    Description, as the server wrote it
    [docs.mzizi.dev] Search across the Mzizi knowledge base to find relevant information, code examples, API references, and guides. Use this tool when you need to answer questions about Mzizi, find specific documentation, understand how features work, or locate implementation details. The search returns contextual content with titles and direct links to the documentation pages. If you need the full content of a specific page, use the query_docs_filesystem tool to `head` or `cat` the page path (append `.mdx` to the path returned from search — e.g. a result at `/some/page` is read with `head -200 /some/page.mdx`).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • mzizi_get_architectureThe Mzizi DNA double helix — nodes, rungs and strands — with live counts.No findings

    Why it is in this group

    • The name "mzizi_get_architecture" says "get": a word for reading.
    Description, as the server wrote it
    The Mzizi DNA double helix — nodes, rungs and strands — with live counts. Pass `node` for one node's covenant, stakeholder and implementation rules.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • mzizi_get_componentFetch one component in full, Rust first.No findings

    Why it is in this group

    • The name "mzizi_get_component" says "get": a word for reading.
    Description, as the server wrote it
    Fetch one component in full, Rust first. When the component has a Mzizi Roots (Rust, Dioxus) implementation, `rust` comes first: its crate, the `cargo add` line, its CONTRACT clause block and the `.rs` source inline. `astro` follows when the component has a pure Astro implementation (mzizi-registry#397): its `mzizi add --target astro` line, the files it installs into src/components/mzizi/ and their dependencies; null otherwise. `react` follows: the React build (deprioritised; it keeps working, new work goes to Rust), shadcn-shaped with files[] inline and its `npx shadcn add` line. With no Rust, `rust` is null and `lead` is "react". Add docs (use cases, variants, a11y: the documented contract) and version history (from the changelog) with `include`. Former nyuchi-* names resolve to their mzizi-* successors.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • mzizi_get_doctrineHow to build here: Ubuntu pillars and principles, mzizi conventions, and the AI instruction sets.No findings

    Why it is in this group

    • The name "mzizi_get_doctrine" says "get": a word for reading.
    Description, as the server wrote it
    How to build here: Ubuntu pillars and principles, mzizi conventions, and the AI instruction sets.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • mzizi_get_skillsList the published Mzizi agent skills, or fetch one in full.No findings

    Why it is in this group

    • The name "mzizi_get_skills" says "get": a word for reading.
    Description, as the server wrote it
    List the published Mzizi agent skills, or fetch one in full. Skills are what an agent loads first. Each skill has a category: `dev` (how every agent works in every repo: digital-hygiene and progress-report — load these before any dev work), `design`, `language` or `build`. Pass `category` to get every skill in it in full (e.g. category=dev), or `name` for one skill. Served from the skill files bundled into this server at build time, so they are exactly the text in mzizi-dev/agent-tools at the deployed commit.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • mzizi_get_tokensThe Mzizi brand system: 21 colour families (7 minerals, 7 heritage, 7 experimental), semantic colours, typography, spacing, radii and the ecosystem brands.No findings

    Why it is in this group

    • The name "mzizi_get_tokens" says "get": a word for reading.
    Description, as the server wrote it
    The Mzizi brand system: 21 colour families (7 minerals, 7 heritage, 7 experimental), semantic colours, typography, spacing, radii and the ecosystem brands. Ask for `colors` to get every colour family in one call. For text, use each family's `textLight` / `textDark` on the base surface, and `onContainerLight` / `onContainerDark` on its container; never use `hex`, `lightHex` or `darkHex` as a text colour (they are accents).

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • mzizi_list_componentsThe registry index, optionally filtered by node, owner, collection, type or rust.No findings

    Why it is in this group

    • The name "mzizi_list_components" says "list": a word for reading.
    Description, as the server wrote it
    The registry index, optionally filtered by node, owner, collection, type or rust. Returns a lean row per component (name, type, node, owner, collection, and rustCrate when it has a Mzizi Roots (Rust) implementation, which is the lead) — use get_component for one component in full, or search when you only have words. Paged: up to 400 rows per call, with total and hasMore reported.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • mzizi_mcp_describeWhat this MCP server exposes: its tools, which are free and which need sign-in, what each replaces, and where its data comes from.No findings

    Why it is in this group

    • The name "mzizi_mcp_describe" says "describe": a word for reading.
    Description, as the server wrote it
    What this MCP server exposes: its tools, which are free and which need sign-in, what each replaces, and where its data comes from.

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.13.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http mzizi https://mcp.mzizi.dev/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__mzizi__mzizi_search",
      "mcp__mzizi__mzizi_get_component",
      "mcp__mzizi__mzizi_list_components",
      "mcp__mzizi__mzizi_get_tokens",
      "mcp__mzizi__mzizi_get_architecture",
      "mcp__mzizi__mzizi_get_doctrine",
      "mcp__mzizi__mzizi_get_skills",
      "mcp__mzizi__mzizi_mcp_describe",
      "mcp__mzizi__docs_search_mzizi"
    ],
    "ask": [
      "mcp__mzizi__mzizi_check_accessibility",
      "mcp__mzizi__mzizi_report_issue",
      "mcp__mzizi__docs_query_docs_filesystem_mzizi",
      "mcp__mzizi__docs_submit_feedback"
    ],
    "deny": [
      "mcp__mzizi__mzizi_fundi"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as mzizi. Review it before you use it.