Koskamo

Mzizi MCP

An MCP server for the Mzizi design system that provides tools to search components, retrieve design tokens, check accessibility, and access documentation. It serves registry data generated at build time and supports agent skills, with some tools requiring sign-in for Fundi console access.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Mzizi MCP logo, by MziziCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by Mzizi
You need:Free, no accountSign-in (a free WorkOS account)
MCP endpoint (Streamable HTTP)
https://mcp.mzizi.dev/mcp
Vendor documentation

What its tools do

14 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

14 of 14 have a description · 14 of 14 declare behavior hints · 11 of 13 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search and list UI components
  • Retrieve design tokens and architecture
  • Check component accessibility
  • Access Mzizi documentation

Source and maintenance

Community listingRegistry 0.17.0
Maintenance checked

Protocol and capabilities

Server
mzizi-mcp 0.17.0
MCP protocol negotiated in check
2025-11-25
Tools
14 advertised
Resources
38 advertised
Resource templates
2 advertised
Prompts
12 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "prompts": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Access to the Mzizi design system: components, design tokens, brand, the DNA-helix architecture, Ubuntu doctrine and conventions, agent skills and releases (the mzizi_* tools, served from files bundled at a pinned registry commit), plus the documentation site (the docs_* tools, forwarded to docs.mzizi.dev). Start with mzizi_search if you do not know the name of what you want; mzizi_get_component returns a component in full in one read, Rust first: where a Mzizi Roots (Rust) implementation exists it leads with the crate, the cargo add line, the contract and the .rs source, and gives the React build second (deprioritised); mzizi_list_components and mzizi_search mark those components with rustCrate; mzizi_get_architecture returns the helix and takes an uncapped node number; mzizi_get_tokens family=floors (and mzizi_get_doctrine topic=bundu-floor) states the Bundu floor, the minimums nothing can go under, including the spacing floor (14px inset, 7px gaps between controls, 7px between a label and its field, 7px between items, 1.5 body leading), and mzizi_check_accessibility checks colours and spacing values against it; docs_search_mzizi searches the documentation. Every tool is free without an account except mzizi_fundi and mzizi_report_issue, which act as your Mzizi console user and need sign-in; called without it they say how to sign in.

Tools

14 advertised

mzizi_search — Search Mzizi
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search the registry by words: components, conventions, AI instruction sets and releases. Start here when you do not know the exact name of what you want; use mzizi_get_component once you have a component's name. A component hit with `rustCrate` has a Mzizi Roots (Rust) implementation, which is the lead; at an equal score it ranks first. Documentation pages are searched by the docs_* tools. Paged: up to 50 hits per call and at most 25000 characters; meta.has_more and meta.next_offset say how to get the rest.

mzizi_search input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 9007199254740991,
      "description": "Hits per call (default 50, at most 200).",
      "exclusiveMinimum": 0
    },
    "query": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "description": "Free-text search term, e.g. 'button' or 'date picker'. Every word must match."
    },
    "offset": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 0,
      "description": "Hits to skip, for paging. Use meta.next_offset from the previous call."
    }
  }
}
mzizi_search output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "results"
  ],
  "properties": {
    "results": {
      "type": "object",
      "required": [
        "data",
        "meta"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "kind",
              "name"
            ],
            "properties": {
              "kind": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "title": {
                "type": "string"
              },
              "astroFile": {
                "type": "string"
              },
              "rustCrate": {
                "type": "string"
              },
              "description": {
                "type": "string"
              }
            },
            "additionalProperties": {}
          }
        },
        "meta": {
          "type": "object",
          "required": [
            "total",
            "count",
            "offset",
            "has_more"
          ],
          "properties": {
            "count": {
              "type": "number"
            },
            "total": {
              "type": "number"
            },
            "offset": {
              "type": "number"
            },
            "has_more": {
              "type": "boolean"
            },
            "next_offset": {
              "type": "number"
            }
          },
          "additionalProperties": {}
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
mzizi_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
mzizi_get_component — Get a component
Advertised by the server during the last successful anonymous check.
Advertised read-only

Fetch one component in full, Rust first. When the component has a Mzizi Roots (Rust) 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, its `npx shadcn add` line, and `vendor`: the registry commit, each file's install target, sha256 and a raw URL pinned to that commit, each `@/` import with the dependency that installs it, and the live API item URL (labelled live: it can serve a different commit). Each sha256 is of the registry source at path@ref; a file `shadcn add` writes can differ (it strips "use client" under rsc: false and rewrites aliases). 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.

mzizi_get_component input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "description": "Component name, e.g. 'button'."
    },
    "include": {
      "type": "array",
      "items": {
        "enum": [
          "docs",
          "versions"
        ],
        "type": "string"
      },
      "description": "Extra sections to fetch. Omit for the implementations only."
    }
  }
}
mzizi_get_component annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
mzizi_list_components — List components
Advertised by the server during the last successful anonymous check.
Advertised read-only

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 and at most 25000 characters per call; total, has_more and next_offset say how to get the rest.

mzizi_list_components input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "node": {
      "type": "integer",
      "maximum": 9007199254740991,
      "description": "Filter by node number (uncapped).",
      "exclusiveMinimum": 0
    },
    "rust": {
      "type": "boolean",
      "description": "true: only components with a Mzizi Roots (Rust) implementation; false: only those without."
    },
    "type": {
      "type": "string",
      "maxLength": 100,
      "description": "Filter by registry type, e.g. registry:ui | registry:lib | registry:block."
    },
    "astro": {
      "type": "boolean",
      "description": "true: only components with an Astro implementation (installable with mzizi add --target astro); false: only those without."
    },
    "limit": {
      "type": "integer",
      "maximum": 9007199254740991,
      "description": "Rows per call (default 400). A page also stops at 25000 characters.",
      "exclusiveMinimum": 0
    },
    "owner": {
      "type": "string",
      "maxLength": 100,
      "description": "Filter by owner: mzizi | nyuchi | bundu | framework."
    },
    "offset": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 0,
      "description": "Rows to skip, for paging."
    },
    "collection": {
      "type": "string",
      "maxLength": 100,
      "description": "Filter by collection, e.g. primitives | brand | pages | resilience."
    }
  }
}
mzizi_list_components output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "count",
    "total",
    "offset",
    "has_more",
    "hasMore",
    "withRust",
    "withAstro",
    "items"
  ],
  "properties": {
    "hint": {
      "type": "string"
    },
    "count": {
      "type": "number"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {},
          "astroFile": {
            "type": "string"
          },
          "rustCrate": {
            "type": "string"
          }
        },
        "additionalProperties": {}
      }
    },
    "total": {
      "type": "number"
    },
    "offset": {
      "type": "number"
    },
    "hasMore": {
      "type": "boolean"
    },
    "has_more": {
      "type": "boolean"
    },
    "withRust": {
      "type": "number"
    },
    "withAstro": {
      "type": "number"
    },
    "nextOffset": {
      "type": "number"
    },
    "next_offset": {
      "type": "number"
    },
    "registryTotal": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
mzizi_list_components annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
mzizi_get_tokens — Get design tokens
Advertised by the server during the last successful anonymous check.
Advertised read-only

The Mzizi brand system: 21 colour families (7 minerals, 7 heritage, 7 experimental), semantic colours, typography, spacing, radii and the ecosystem brands, and the Bundu floor: the minimums nothing can go under (17px body, 14px captions, 49px hit region, 7:1 body contrast, and the spacing floor (14px inset, 7px gaps between controls, 7px between a label and its field, 7px between items, 1.5 body leading)). Ask for `floors` for the floor in one call (the spacing floor is also under `accessibility`), and 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).

mzizi_get_tokens input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "family": {
      "type": "string",
      "maxLength": 100,
      "description": "One of: colors (all 21 colour families at once), floors (the Bundu floor: sizes, contrast and the spacing floor, with how it is enforced), minerals, heritage, experimental, semantic, backgrounds, typography, spacing (the scale, plus the spacing floor), radii, ecosystem, componentSpecs, accessibility, voiceAndTone, philosophy. Common aliases resolve (status/semanticColors, radius, type/fonts, exp, floor/bundu-floor/spacing-floor). Omit for everything."
    }
  }
}
mzizi_get_tokens annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
mzizi_get_architecture — Get the architecture
Advertised by the server during the last successful anonymous check.
Advertised read-only

The Mzizi DNA double helix — nodes, rungs and strands — with live counts. Pass `node` for one node's covenant, stakeholder and implementation rules.

mzizi_get_architecture input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "node": {
      "type": "integer",
      "maximum": 9007199254740991,
      "description": "One node's detail (uncapped).",
      "exclusiveMinimum": 0
    }
  }
}
mzizi_get_architecture annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
mzizi_get_doctrine — Get doctrine
Advertised by the server during the last successful anonymous check.
Advertised read-only

How to build here: Ubuntu pillars and principles, mzizi conventions, the AI instruction sets, and the Bundu floor (topic `bundu-floor`): the minimums nothing can go under, including the spacing floor (14px inset, 7px gaps between controls, 7px between a label and its field, 7px between items, 1.5 body leading), how they are enforced and what to do.

mzizi_get_doctrine input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "topic"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 200,
      "description": "For ai-instructions, the name or target to fetch; for conventions, the convention's name. Omit to list."
    },
    "topic": {
      "enum": [
        "ubuntu-pillars",
        "ubuntu-principles",
        "ai-instructions",
        "conventions",
        "bundu-floor"
      ],
      "type": "string",
      "description": "Which doctrine to read."
    }
  }
}
mzizi_get_doctrine annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
mzizi_get_skills — Get agent skills
Advertised by the server during the last successful anonymous check.
Advertised read-only

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, progress-report, ship-release, registry-propagation and pr-gates — 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. A skill's answer lists the files it ships beside its SKILL.md (scripts such as hygiene.sh, token stylesheets); pass `name` and `file` to get one file's content. Each skill is also an MCP resource (mzizi://skills/<name>, files at mzizi://skills/<name>/<path>) and a prompt (skill-<name>). 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.

mzizi_get_skills input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "file": {
      "type": "string",
      "maxLength": 500,
      "description": "With `name`: a file the skill ships, by the path its `files` list gives (e.g. hygiene.sh). Returns that file's content."
    },
    "name": {
      "type": "string",
      "maxLength": 200,
      "description": "Skill name. Omit to list all."
    },
    "category": {
      "enum": [
        "dev",
        "design",
        "language",
        "build"
      ],
      "type": "string",
      "description": "Return every skill in this category in full: dev (digital-hygiene, progress-report, ship-release, registry-propagation, pr-gates — for every agent in every repo), design, language or build."
    }
  }
}
mzizi_get_skills annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
mzizi_check_accessibility — Check accessibility
Advertised by the server during the last successful anonymous check.
Advertised read-only

Check a design against the Mzizi floors. Colours: the WCAG 2.x contrast ratio of a foreground on a background (#RRGGBB), with the AA-large, AA and AAA verdicts and whether it meets the Mzizi floor of 7:1. Spacing: pass any of `insetPx` (text to container edge), `controlGapPx`, `labelGapPx`, `itemGapPx` (gaps) and `leading` (body line height) and each is compared with the spacing floor the pinned registry states (nothing may go under it): the spacing floor (14px inset, 7px gaps between controls, 7px between a label and its field, 7px between items, 1.5 body leading). Give colours, spacing values, or both. Computed locally, no network. It does not compute APCA Lc or simulate colour-vision deficiency; read the Mzizi accessibility doctrine (mzizi_get_tokens family=accessibility) for those rules. To check a project's source rather than values, run `mzizi check` (@nyuchi/mzizi-cli).

mzizi_check_accessibility input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "insetPx": {
      "type": "number",
      "maximum": 1000,
      "minimum": 0,
      "description": "Padding between text and its container edge, in px."
    },
    "leading": {
      "type": "number",
      "maximum": 10,
      "minimum": 0,
      "description": "Body line height as a unitless ratio, e.g. 1.5."
    },
    "itemGapPx": {
      "type": "number",
      "maximum": 1000,
      "minimum": 0,
      "description": "Gap between sibling items in a list, grid or toolbar, in px."
    },
    "background": {
      "type": "string",
      "maxLength": 16,
      "description": "Background colour as #RRGGBB, e.g. #FFFFFF. Give with foreground."
    },
    "foreground": {
      "type": "string",
      "maxLength": 16,
      "description": "Foreground colour as #RRGGBB, e.g. #1B1A17. Give with background."
    },
    "labelGapPx": {
      "type": "number",
      "maximum": 1000,
      "minimum": 0,
      "description": "Gap between a label and its field, in px."
    },
    "controlGapPx": {
      "type": "number",
      "maximum": 1000,
      "minimum": 0,
      "description": "Gap between adjacent interactive controls, visible edge to visible edge, in px."
    }
  }
}
mzizi_check_accessibility output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "passes": {
      "type": "object",
      "required": [
        "aaLarge",
        "aa",
        "aaa"
      ],
      "properties": {
        "aa": {
          "type": "boolean"
        },
        "aaa": {
          "type": "boolean"
        },
        "aaLarge": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "spacing": {
      "type": "object",
      "required": [
        "floor",
        "checks",
        "meetsFloor"
      ],
      "properties": {
        "floor": {
          "type": "object",
          "required": [
            "insetPx",
            "controlGapPx",
            "labelGapPx",
            "itemGapPx",
            "leadingBody"
          ],
          "properties": {
            "insetPx": {
              "type": "number"
            },
            "itemGapPx": {
              "type": "number"
            },
            "labelGapPx": {
              "type": "number"
            },
            "leadingBody": {
              "type": "number"
            },
            "controlGapPx": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "checks": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "name",
              "value",
              "minimum",
              "unit",
              "passes"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "unit": {
                "enum": [
                  "px",
                  "ratio"
                ],
                "type": "string"
              },
              "value": {
                "type": "number"
              },
              "passes": {
                "type": "boolean"
              },
              "minimum": {
                "type": "number"
              }
            },
            "additionalProperties": false
          }
        },
        "meetsFloor": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "background": {
      "type": "string"
    },
    "foreground": {
      "type": "string"
    },
    "contrastRatio": {
      "type": "number"
    },
    "meetsMziziFloor": {
      "type": "boolean"
    },
    "spacingUnavailable": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
mzizi_check_accessibility annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
mzizi_report_issue — Report an issue
Advertised by the server during the last successful anonymous check.
Open-world

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.

mzizi_report_issue input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "kind": {
      "enum": [
        "feedback",
        "observability",
        "chaos"
      ],
      "type": "string",
      "description": "Report kind. Required for action 'file'."
    },
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1
    },
    "skill": {
      "type": "string",
      "maxLength": 100,
      "description": "fundi skill to run for the reproduction. fundi never infers a skill from text, so omit this to let the report kind choose one."
    },
    "action": {
      "enum": [
        "file",
        "list",
        "get",
        "retry"
      ],
      "type": "string",
      "default": "file",
      "description": "What to do. Defaults to filing a new report."
    },
    "message": {
      "type": "string",
      "maxLength": 20000,
      "description": "What happened. Required for action 'file'."
    },
    "reportId": {
      "type": "string",
      "maxLength": 200,
      "description": "Report id. Required for actions 'get' and 'retry'."
    },
    "severity": {
      "enum": [
        "low",
        "medium",
        "high",
        "critical"
      ],
      "type": "string"
    },
    "component": {
      "type": "string",
      "maxLength": 200,
      "description": "Component the report concerns."
    }
  }
}
mzizi_report_issue annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
mzizi_fundi — fundi
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

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.

mzizi_fundi input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "action"
  ],
  "properties": {
    "skill": {
      "enum": [
        "security-scan",
        "chaos-run",
        "a11y-audit",
        "heal-issue"
      ],
      "type": "string",
      "description": "Required for submit."
    },
    "action": {
      "enum": [
        "submit",
        "task_status",
        "cancel"
      ],
      "type": "string"
    },
    "taskId": {
      "type": "string",
      "maxLength": 200,
      "description": "Required for task_status and cancel."
    },
    "instruction": {
      "type": "string",
      "maxLength": 20000,
      "description": "What fundi should do. Required for submit."
    }
  }
}
mzizi_fundi annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
mzizi_mcp_describe — Describe this server
Advertised by the server during the last successful anonymous check.
Advertised read-only

What this MCP server exposes: its tools, which are free and which need sign-in, what each replaces, and where its data comes from.

mzizi_mcp_describe input schema
{
  "type": "object",
  "properties": {}
}
mzizi_mcp_describe annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
docs_search_mzizi — Docs: Search documentation
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

[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`).

docs_search_mzizi input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query"
    }
  },
  "additionalProperties": false
}
docs_search_mzizi annotations
{
  "title": "Search documentation",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
docs_query_docs_filesystem_mzizi — Docs: Query documentation filesystem
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

[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`.

docs_query_docs_filesystem_mzizi input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "command"
  ],
  "properties": {
    "command": {
      "type": "string",
      "description": "A shell command to run against the virtualized documentation filesystem (e.g., `rg -il \"keyword\" /`, `tree / -L 2`, `head -80 /path/file.mdx`)."
    }
  },
  "additionalProperties": false
}
docs_query_docs_filesystem_mzizi annotations
{
  "title": "Query documentation filesystem",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
docs_submit_feedback — Docs: Submit documentation feedback
Advertised by the server during the last successful anonymous check.
Open-world

[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.

docs_submit_feedback input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "path",
    "feedback"
  ],
  "properties": {
    "path": {
      "type": "string",
      "minLength": 1,
      "description": "The URL path of the documentation page the feedback is about (the page you were reading, without the `.mdx` extension)."
    },
    "feedback": {
      "type": "string",
      "minLength": 1,
      "description": "A clear description of the documentation issue or suggestion — what is incorrect, outdated, missing, or confusing."
    }
  },
  "additionalProperties": false
}
docs_submit_feedback annotations
{
  "title": "Submit documentation feedback",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

12 advertised

skill-mzizi-language — Load the mzizi-language skill

Advertised by the server during the last successful anonymous check.

Use this skill when writing, checking or fixing Mzizi language source (.mz files): LANGUAGE-TRACKER.md as the one list of what Mzizi can and cannot do, the component syntax (enum tables, props, the view tree, when / for each, records, use motion), the backend service (routes, handlers with when / header / respond, example and ensure contracts; RFC-0011), the `mz check --agent` loop and its NDJSON diagnostics, `mz fix` for every exact fix, `mz contract`, `mz build` (a service to a local Rust + axum package), the diagnostic codes you will meet (MZ0101, MZ0106, MZ0312, MZ0313, MZ0406-MZ0409, MZ0602-MZ0613, MZ07xx, MZ08xx), programs (RFC-0013: fn main, let / var, functions, when / match, loops, int / float, text, list / map / set, records, enums, result with try) checked by `mz check` and run by `mz run`, the language harness, and exactly what is not built yet (modules, a standard library, component lowering, Rust interop, I/O, concurrency, generics, mz test, a release).

No arguments advertised.

skill-mzizi-roots — Load the mzizi-roots skill

Advertised by the server during the last successful anonymous check.

Use this skill for anything involving Mzizi's components: using them, starting an app on them, or contributing one. Mzizi Roots is Mzizi's own components in Rust (UI and server components) from mzizi-dev/mzizi-registry. Covers `cargo add mzizi-roots` / `mzizi-roots-server`, what mzizi_get_component returns (Rust first), the node-to-crate map, `pub const CONTRACT`, the contracts in the registry's contracts/ for the Dashboard Standard (app/, 35 components) and the Discover Standard (discover/, 16 components; no script, server-filled shells): read one before building or changing a @bundu/ui component. Also no-JS fallback, density and floors (49px hit region, 17px body, 14px inset, 7px gaps) and brand-overlay rules, the frontend paths (pure .astro via `mzizi add --type astro`, Astro with Roots, pure Rust; Next.js adopts the .tsx), reuse before build, and adding a component (node, .rs, .tsx, registry.json, the gates). Files are the data layer: no database.

No arguments advertised.

skill-mzizi-design — Load the mzizi-design skill

Advertised by the server during the last successful anonymous check.

Use this skill for the Mzizi design system and brand: generating well-branded interfaces (production or prototype), design tokens, and ecosystem-level work. Contains the canonical 21-family palette (seven African Minerals, seven Heritage tones, the Experimental Seven) with generated stylesheets (tokens/palette.css, tokens-update.css), the radius scale, Noto Sans/Serif and JetBrains Mono type, pill buttons, the Bundu floor (17px body, 14px captions, 49px hit region, 14px inset, 7px gaps, 1.5 leading) and the density layer, 7:1/4.5:1/3:1 contrast, status and surface tokens, the Dashboard and Discover Standards' brand overlays (colour and mark only), the verified brand constellation (each brand's mineral, voice, meaning, URL), the five Ubuntu pillars and principles, what is and isn't an ecosystem app, and the wordmarks. Also covers Apple's Human Interface Guidelines as the baseline and where Mzizi is the authority: touch targets, spacing, type scale, colour, pill geometry, materials, density and the shell.

No arguments advertised.

skill-mukoko-design — Load the mukoko-design skill

Advertised by the server during the last successful anonymous check.

mukoko's brand files and the rules for them: the Seed of Life mark (the Swarm) in the seven minerals with tanzanite at the core, copied byte for byte from mukoko-dev/mukoko-news public/ (the source of truth, which mukoko-weather and mukoko-events pin by hash): the full-palette mark light and dark, the app icon on deep tanzanite, the paper icon, the favicon set (favicon.svg with its own ground, 16 and 32 PNG, .ico, apple-touch-icon) and the lowercase serif lockup; plus the honeycomb backgrounds and the 1080x1920 splash carried over from before 0.8.0. SOURCES.md names every file's source and SHA-256, and a test holds them to it. The rules: the full-palette mark is the only icon at every size, with no mono or single-colour reduction; never recolour, reorder, add a gradient or shadow, or redraw; the wordmark is always lowercase mukoko in Noto Serif 600. Meanings from mzizi_get_tokens. For the 21-family palette, tokens and UI use mzizi-design.

No arguments advertised.

skill-mzizi-backend — Load the mzizi-backend skill

Advertised by the server during the last successful anonymous check.

A Mzizi backend service, on Cloudflare Workers today (containers and bare metal are decided, not built): where it stands today (every live Mzizi Worker is TypeScript; the language's backend service slice, RFC-0011, runs in process under mz contract and lowers with mz build to a local Rust + axum package, with no Workers target and nothing deployed), the live endpoint map (api.mzizi.dev, mcp.mzizi.dev, docs.mzizi.dev/mcp), a Rust Worker as a sans-IO core plus thin host (workers-rs, wrangler, cron, queues, bindings, no database client), an MCP server (Streamable HTTP, one factory with many entrypoints, a code-defined catalogue over data bundled at a pinned commit, federation, naming and annotations, npm + MCP Registry publish), the free-except-Fundi access rule, logging and deploy. Replaces cloudflare-worker-rust and mcp-server-cloudflare.

No arguments advertised.

skill-mzizi-architecture — Load the mzizi-architecture skill

Advertised by the server during the last successful anonymous check.

Use this skill before you start a new Mzizi app, site, console or page, before you add a page to one, and whenever you decide where code, data or a component belongs. Design architecture is the DNA helix (8 nodes, 4 rungs, 6 strands), read live from api.mzizi.dev/v1/architecture or mzizi_get_architecture, with what each placement obliges. App architecture puts the shell first: every app or page mounts exactly one shell before anything else (AppShell for a signed-in app, the Dashboard Standard; DiscoverShell for a public browse site, the Discover Standard), then the page patterns, the five application layers, and the rule that a missing component goes upstream. System architecture covers Rust first, Astro as the default UI, Cloudflare Workers, the four API gateways, files as the registry's data layer at a pinned commit, one service per domain database, and what is decided versus built. Use it when an app lacks a shell, a page invents its own chrome, or someone asks how the pieces fit.

No arguments advertised.

skill-discoverability — Load the discoverability skill

Advertised by the server during the last successful anonymous check.

SEO + AIO for the Mzizi ecosystem: how to guarantee machines can find and render a site — social/messaging link previews (OpenGraph), search engines, and AI agents. Covers the 'if the machine can't see it, it doesn't exist' convention, the brand-agnostic Mzizi hive OG-image template (dynamic per page: title + description + site icon), build-time OG images on static Astro (the standard), the rules for a surface already on Next.js (next 16.3.6 or later, no request input in an ImageResponse), APCA-checked text colours, and a pre-ship checklist. Use when a shared link shows no preview or when adding a new route/site.

No arguments advertised.

skill-digital-hygiene — Load the digital-hygiene skill

Advertised by the server during the last successful anonymous check.

Use this skill whenever an agent clones a repository, adds a git worktree, fans out sub-agents, builds or tests (pnpm, npm, vitest, cargo, Astro, wrangler), reviews a PR, or finishes a task. It keeps agent hosts and cloud sessions from filling their disks: check free disk with `df -h /` before starting, refuse to fan out below 50 GB on a shared host, and in a Claude Code cloud session treat df's Avail as the fixed allowance. Work only in a folder unique to you (a clone or git worktree with an owner marker), never touch a folder you did not create, share build caches, never commit build output. On close, audit uncommitted changes, stashes and local branches with no commit on any remote (a squash merge leaves commits local-only), then delete only your own clone. Ships hygiene.sh; every deleting command is a dry run unless given --apply. Never rm -rf an unchecked variable, never touch ~/GitHub, claude-* temp, browser profiles or another agent's folders, never delete staging.

No arguments advertised.

skill-progress-report — Load the progress-report skill

Advertised by the server during the last successful anonymous check.

Use this skill whenever dev work starts, in any repo. All dev work runs on a 10-minute progress-report loop. When work starts, schedule a recurring report every 10 minutes (`/loop 10m` or CronCreate `*/10 * * * *`; the cron dies with the session; without cron, report at each checkpoint). Measure, don't guess: each report has 20-cell progress bars with a percentage and a one-line basis (plan steps, features, code migrated as lines, and an Overall bar labelled estimate when not exact) and per workstream open PRs, latest release, staging ahead of main, CI, and a live HTTP check for deployed sites. It ends with one 'Since last report:' line and a final 'Needs you:' line. A "what's blocking / what's live" status gives each product one line: live value, what waits, who acts. When nothing changed, report a single line. Ticks are read-only: never publish, release, merge, delete or deploy from a tick unless the owner approved that exact action. No secrets or PII. Ships progress.sh (bar, pct, repo, lines, http).

No arguments advertised.

skill-ship-release — Load the ship-release skill

Advertised by the server during the last successful anonymous check.

Use this skill whenever you release a Mzizi repo, meaning staging goes to main and the change goes live (npm, Cloudflare Workers, docs.mzizi.dev, mzizi.dev). It is the runbook: cut the release branch off origin/main with staging's exact tree in one commit and prove the tree hashes are equal, the PR title and the issue line in its body, the version rule (next minor above npm, a CHANGELOG section per bumped version, majors need the owner), the main-gate failure about commits that staging may not have and its owner-only forward-ported label (never --admin), merge queue methods (GraphQL is blocked in cloud sessions, use the REST route), stale checks, a publish that npm lists late, immutable releases, and verifying LIVE with commands. Ships verify-live.sh, which only reads. A release is live when the live commands say so, never when it merges.

No arguments advertised.

skill-registry-propagation — Load the registry-propagation skill

Advertised by the server during the last successful anonymous check.

Use this skill when a change in mzizi-registry has to reach the products that read it, or when someone asks whether a registry change is live. It maps the chain: a registry release on main, then the pins on staging (mzizi-api scripts/registry-ref.json with build:data, parity and PIN_ entries in EXPECTED; mzizi-mcp registry.pin.json; @bundu/ui scripts/registry-ref.json with registry:sync, registry:check and contracts:check), docs (check-freshness.mjs), the site (builds from the API, so verify-rendered.py counts move), and the skills (agent-tools mzizi-skills, then the registry's skills:generate and plugin:skills). It gives the rules (pin a released registry main commit, pins are bumped by PR into staging, parity non-strict into staging and strict into main), the order, what each product shows once live, and a live alignment table to fill with commands. Releasing each repo uses ship-release.

No arguments advertised.

skill-pr-gates — Load the pr-gates skill

Advertised by the server during the last successful anonymous check.

Use this skill before the first push of any pull request in a Mzizi repo, and whenever a required check is red. It makes the first push green by naming the checks that failed again and again and the fix for each: issue attached (the line must start with Closes, Fixes, Refs or No issue and sit on its own line), changelog entry required (an entry under Unreleased with a descriptive heading, so markdownlint MD024 does not flag duplicates; no-changelog only for CI, lint or typo changes), markdownlint, yamllint line length, no agent-local files (never commit CLAUDE.md or .claude), oxfmt and vp fmt (CI is the authority, never format a whole package locally), CodeQL (bad HTML filtering regexp, polynomial regular expression), parity (strict ignores EXPECTED), rendered-content gates, the version policy on staging, CHANGELOG merge conflicts and merge methods. Never skip a test, never --admin.

No arguments advertised.

Resources

38 advertised

mzizi-tools — Mzizi MCP tools

Advertised by the server during the last successful anonymous check.

The tools this server exposes, and which legacy tools each replaces.

mzizi-tools URI
mzizi://tools

MIME type: application/json

mzizi-language — Skill: mzizi-language

Advertised by the server during the last successful anonymous check.

Use this skill when writing, checking or fixing Mzizi language source (.mz files): LANGUAGE-TRACKER.md as the one list of what Mzizi can and cannot do, the component syntax (enum tables, props, the view tree, when / for each, records, use motion), the backend service (routes, handlers with when / header / respond, example and ensure contracts; RFC-0011), the `mz check --agent` loop and its NDJSON diagnostics, `mz fix` for every exact fix, `mz contract`, `mz build` (a service to a local Rust + axum package), the diagnostic codes you will meet (MZ0101, MZ0106, MZ0312, MZ0313, MZ0406-MZ0409, MZ0602-MZ0613, MZ07xx, MZ08xx), programs (RFC-0013: fn main, let / var, functions, when / match, loops, int / float, text, list / map / set, records, enums, result with try) checked by `mz check` and run by `mz run`, the language harness, and exactly what is not built yet (modules, a standard library, component lowering, Rust interop, I/O, concurrency, generics, mz test, a release).

mzizi-language URI
mzizi://skills/mzizi-language

MIME type: text/markdown

mzizi-roots — Skill: mzizi-roots

Advertised by the server during the last successful anonymous check.

Use this skill for anything involving Mzizi's components: using them, starting an app on them, or contributing one. Mzizi Roots is Mzizi's own components in Rust (UI and server components) from mzizi-dev/mzizi-registry. Covers `cargo add mzizi-roots` / `mzizi-roots-server`, what mzizi_get_component returns (Rust first), the node-to-crate map, `pub const CONTRACT`, the contracts in the registry's contracts/ for the Dashboard Standard (app/, 35 components) and the Discover Standard (discover/, 16 components; no script, server-filled shells): read one before building or changing a @bundu/ui component. Also no-JS fallback, density and floors (49px hit region, 17px body, 14px inset, 7px gaps) and brand-overlay rules, the frontend paths (pure .astro via `mzizi add --type astro`, Astro with Roots, pure Rust; Next.js adopts the .tsx), reuse before build, and adding a component (node, .rs, .tsx, registry.json, the gates). Files are the data layer: no database.

mzizi-roots URI
mzizi://skills/mzizi-roots

MIME type: text/markdown

mzizi-design — Skill: mzizi-design

Advertised by the server during the last successful anonymous check.

Use this skill for the Mzizi design system and brand: generating well-branded interfaces (production or prototype), design tokens, and ecosystem-level work. Contains the canonical 21-family palette (seven African Minerals, seven Heritage tones, the Experimental Seven) with generated stylesheets (tokens/palette.css, tokens-update.css), the radius scale, Noto Sans/Serif and JetBrains Mono type, pill buttons, the Bundu floor (17px body, 14px captions, 49px hit region, 14px inset, 7px gaps, 1.5 leading) and the density layer, 7:1/4.5:1/3:1 contrast, status and surface tokens, the Dashboard and Discover Standards' brand overlays (colour and mark only), the verified brand constellation (each brand's mineral, voice, meaning, URL), the five Ubuntu pillars and principles, what is and isn't an ecosystem app, and the wordmarks. Also covers Apple's Human Interface Guidelines as the baseline and where Mzizi is the authority: touch targets, spacing, type scale, colour, pill geometry, materials, density and the shell.

mzizi-design URI
mzizi://skills/mzizi-design

MIME type: text/markdown

mukoko-design — Skill: mukoko-design

Advertised by the server during the last successful anonymous check.

mukoko's brand files and the rules for them: the Seed of Life mark (the Swarm) in the seven minerals with tanzanite at the core, copied byte for byte from mukoko-dev/mukoko-news public/ (the source of truth, which mukoko-weather and mukoko-events pin by hash): the full-palette mark light and dark, the app icon on deep tanzanite, the paper icon, the favicon set (favicon.svg with its own ground, 16 and 32 PNG, .ico, apple-touch-icon) and the lowercase serif lockup; plus the honeycomb backgrounds and the 1080x1920 splash carried over from before 0.8.0. SOURCES.md names every file's source and SHA-256, and a test holds them to it. The rules: the full-palette mark is the only icon at every size, with no mono or single-colour reduction; never recolour, reorder, add a gradient or shadow, or redraw; the wordmark is always lowercase mukoko in Noto Serif 600. Meanings from mzizi_get_tokens. For the 21-family palette, tokens and UI use mzizi-design.

mukoko-design URI
mzizi://skills/mukoko-design

MIME type: text/markdown

mzizi-backend — Skill: mzizi-backend

Advertised by the server during the last successful anonymous check.

A Mzizi backend service, on Cloudflare Workers today (containers and bare metal are decided, not built): where it stands today (every live Mzizi Worker is TypeScript; the language's backend service slice, RFC-0011, runs in process under mz contract and lowers with mz build to a local Rust + axum package, with no Workers target and nothing deployed), the live endpoint map (api.mzizi.dev, mcp.mzizi.dev, docs.mzizi.dev/mcp), a Rust Worker as a sans-IO core plus thin host (workers-rs, wrangler, cron, queues, bindings, no database client), an MCP server (Streamable HTTP, one factory with many entrypoints, a code-defined catalogue over data bundled at a pinned commit, federation, naming and annotations, npm + MCP Registry publish), the free-except-Fundi access rule, logging and deploy. Replaces cloudflare-worker-rust and mcp-server-cloudflare.

mzizi-backend URI
mzizi://skills/mzizi-backend

MIME type: text/markdown

mzizi-architecture — Skill: mzizi-architecture

Advertised by the server during the last successful anonymous check.

Use this skill before you start a new Mzizi app, site, console or page, before you add a page to one, and whenever you decide where code, data or a component belongs. Design architecture is the DNA helix (8 nodes, 4 rungs, 6 strands), read live from api.mzizi.dev/v1/architecture or mzizi_get_architecture, with what each placement obliges. App architecture puts the shell first: every app or page mounts exactly one shell before anything else (AppShell for a signed-in app, the Dashboard Standard; DiscoverShell for a public browse site, the Discover Standard), then the page patterns, the five application layers, and the rule that a missing component goes upstream. System architecture covers Rust first, Astro as the default UI, Cloudflare Workers, the four API gateways, files as the registry's data layer at a pinned commit, one service per domain database, and what is decided versus built. Use it when an app lacks a shell, a page invents its own chrome, or someone asks how the pieces fit.

mzizi-architecture URI
mzizi://skills/mzizi-architecture

MIME type: text/markdown

discoverability — Skill: discoverability

Advertised by the server during the last successful anonymous check.

SEO + AIO for the Mzizi ecosystem: how to guarantee machines can find and render a site — social/messaging link previews (OpenGraph), search engines, and AI agents. Covers the 'if the machine can't see it, it doesn't exist' convention, the brand-agnostic Mzizi hive OG-image template (dynamic per page: title + description + site icon), build-time OG images on static Astro (the standard), the rules for a surface already on Next.js (next 16.3.6 or later, no request input in an ImageResponse), APCA-checked text colours, and a pre-ship checklist. Use when a shared link shows no preview or when adding a new route/site.

discoverability URI
mzizi://skills/discoverability

MIME type: text/markdown

digital-hygiene — Skill: digital-hygiene

Advertised by the server during the last successful anonymous check.

Use this skill whenever an agent clones a repository, adds a git worktree, fans out sub-agents, builds or tests (pnpm, npm, vitest, cargo, Astro, wrangler), reviews a PR, or finishes a task. It keeps agent hosts and cloud sessions from filling their disks: check free disk with `df -h /` before starting, refuse to fan out below 50 GB on a shared host, and in a Claude Code cloud session treat df's Avail as the fixed allowance. Work only in a folder unique to you (a clone or git worktree with an owner marker), never touch a folder you did not create, share build caches, never commit build output. On close, audit uncommitted changes, stashes and local branches with no commit on any remote (a squash merge leaves commits local-only), then delete only your own clone. Ships hygiene.sh; every deleting command is a dry run unless given --apply. Never rm -rf an unchecked variable, never touch ~/GitHub, claude-* temp, browser profiles or another agent's folders, never delete staging.

digital-hygiene URI
mzizi://skills/digital-hygiene

MIME type: text/markdown

progress-report — Skill: progress-report

Advertised by the server during the last successful anonymous check.

Use this skill whenever dev work starts, in any repo. All dev work runs on a 10-minute progress-report loop. When work starts, schedule a recurring report every 10 minutes (`/loop 10m` or CronCreate `*/10 * * * *`; the cron dies with the session; without cron, report at each checkpoint). Measure, don't guess: each report has 20-cell progress bars with a percentage and a one-line basis (plan steps, features, code migrated as lines, and an Overall bar labelled estimate when not exact) and per workstream open PRs, latest release, staging ahead of main, CI, and a live HTTP check for deployed sites. It ends with one 'Since last report:' line and a final 'Needs you:' line. A "what's blocking / what's live" status gives each product one line: live value, what waits, who acts. When nothing changed, report a single line. Ticks are read-only: never publish, release, merge, delete or deploy from a tick unless the owner approved that exact action. No secrets or PII. Ships progress.sh (bar, pct, repo, lines, http).

progress-report URI
mzizi://skills/progress-report

MIME type: text/markdown

ship-release — Skill: ship-release

Advertised by the server during the last successful anonymous check.

Use this skill whenever you release a Mzizi repo, meaning staging goes to main and the change goes live (npm, Cloudflare Workers, docs.mzizi.dev, mzizi.dev). It is the runbook: cut the release branch off origin/main with staging's exact tree in one commit and prove the tree hashes are equal, the PR title and the issue line in its body, the version rule (next minor above npm, a CHANGELOG section per bumped version, majors need the owner), the main-gate failure about commits that staging may not have and its owner-only forward-ported label (never --admin), merge queue methods (GraphQL is blocked in cloud sessions, use the REST route), stale checks, a publish that npm lists late, immutable releases, and verifying LIVE with commands. Ships verify-live.sh, which only reads. A release is live when the live commands say so, never when it merges.

ship-release URI
mzizi://skills/ship-release

MIME type: text/markdown

registry-propagation — Skill: registry-propagation

Advertised by the server during the last successful anonymous check.

Use this skill when a change in mzizi-registry has to reach the products that read it, or when someone asks whether a registry change is live. It maps the chain: a registry release on main, then the pins on staging (mzizi-api scripts/registry-ref.json with build:data, parity and PIN_ entries in EXPECTED; mzizi-mcp registry.pin.json; @bundu/ui scripts/registry-ref.json with registry:sync, registry:check and contracts:check), docs (check-freshness.mjs), the site (builds from the API, so verify-rendered.py counts move), and the skills (agent-tools mzizi-skills, then the registry's skills:generate and plugin:skills). It gives the rules (pin a released registry main commit, pins are bumped by PR into staging, parity non-strict into staging and strict into main), the order, what each product shows once live, and a live alignment table to fill with commands. Releasing each repo uses ship-release.

registry-propagation URI
mzizi://skills/registry-propagation

MIME type: text/markdown

pr-gates — Skill: pr-gates

Advertised by the server during the last successful anonymous check.

Use this skill before the first push of any pull request in a Mzizi repo, and whenever a required check is red. It makes the first push green by naming the checks that failed again and again and the fix for each: issue attached (the line must start with Closes, Fixes, Refs or No issue and sit on its own line), changelog entry required (an entry under Unreleased with a descriptive heading, so markdownlint MD024 does not flag duplicates; no-changelog only for CI, lint or typo changes), markdownlint, yamllint line length, no agent-local files (never commit CLAUDE.md or .claude), oxfmt and vp fmt (CI is the authority, never format a whole package locally), CodeQL (bad HTML filtering regexp, polynomial regular expression), parity (strict ignores EXPECTED), rendered-content gates, the version policy on staging, CHANGELOG merge conflicts and merge methods. Never skip a test, never --admin.

pr-gates URI
mzizi://skills/pr-gates

MIME type: text/markdown

mzizi-design/tokens-update.css — mzizi-design: tokens-update.css

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mzizi-design/tokens-update.css URI
mzizi://skills/mzizi-design/tokens-update.css

MIME type: text/css

mzizi-design/tokens/minerals.css — mzizi-design: tokens/minerals.css

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mzizi-design/tokens/minerals.css URI
mzizi://skills/mzizi-design/tokens/minerals.css

MIME type: text/css

mzizi-design/tokens/minerals.json — mzizi-design: tokens/minerals.json

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mzizi-design/tokens/minerals.json URI
mzizi://skills/mzizi-design/tokens/minerals.json

MIME type: application/json

mzizi-design/tokens/palette.css — mzizi-design: tokens/palette.css

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mzizi-design/tokens/palette.css URI
mzizi://skills/mzizi-design/tokens/palette.css

MIME type: text/css

mzizi-design/tokens/palette.json — mzizi-design: tokens/palette.json

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mzizi-design/tokens/palette.json URI
mzizi://skills/mzizi-design/tokens/palette.json

MIME type: application/json

mukoko-design/app-icon/mukoko-appicon-paper.png — mukoko-design: app-icon/mukoko-appicon-paper.png

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mukoko-design/app-icon/mukoko-appicon-paper.png URI
mzizi://skills/mukoko-design/app-icon/mukoko-appicon-paper.png

MIME type: image/png

mukoko-design/app-icon/mukoko-appicon.png — mukoko-design: app-icon/mukoko-appicon.png

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mukoko-design/app-icon/mukoko-appicon.png URI
mzizi://skills/mukoko-design/app-icon/mukoko-appicon.png

MIME type: image/png

mukoko-design/backgrounds/honeycomb-grain-paper.svg — mukoko-design: backgrounds/honeycomb-grain-paper.svg

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mukoko-design/backgrounds/honeycomb-grain-paper.svg URI
mzizi://skills/mukoko-design/backgrounds/honeycomb-grain-paper.svg

MIME type: image/svg+xml

mukoko-design/backgrounds/honeycomb-pattern-full.svg — mukoko-design: backgrounds/honeycomb-pattern-full.svg

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mukoko-design/backgrounds/honeycomb-pattern-full.svg URI
mzizi://skills/mukoko-design/backgrounds/honeycomb-pattern-full.svg

MIME type: image/svg+xml

mukoko-design/backgrounds/honeycomb-splash-stone-1080x1920.png — mukoko-design: backgrounds/honeycomb-splash-stone-1080x1920.png

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mukoko-design/backgrounds/honeycomb-splash-stone-1080x1920.png URI
mzizi://skills/mukoko-design/backgrounds/honeycomb-splash-stone-1080x1920.png

MIME type: image/png

mukoko-design/backgrounds/honeycomb-splash-stone.svg — mukoko-design: backgrounds/honeycomb-splash-stone.svg

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mukoko-design/backgrounds/honeycomb-splash-stone.svg URI
mzizi://skills/mukoko-design/backgrounds/honeycomb-splash-stone.svg

MIME type: image/svg+xml

mukoko-design/backgrounds/honeycomb-tanzanite-header.svg — mukoko-design: backgrounds/honeycomb-tanzanite-header.svg

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mukoko-design/backgrounds/honeycomb-tanzanite-header.svg URI
mzizi://skills/mukoko-design/backgrounds/honeycomb-tanzanite-header.svg

MIME type: image/svg+xml

mukoko-design/favicon/apple-touch-icon.png — mukoko-design: favicon/apple-touch-icon.png

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mukoko-design/favicon/apple-touch-icon.png URI
mzizi://skills/mukoko-design/favicon/apple-touch-icon.png

MIME type: image/png

mukoko-design/favicon/favicon-16.png — mukoko-design: favicon/favicon-16.png

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mukoko-design/favicon/favicon-16.png URI
mzizi://skills/mukoko-design/favicon/favicon-16.png

MIME type: image/png

mukoko-design/favicon/favicon-32.png — mukoko-design: favicon/favicon-32.png

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mukoko-design/favicon/favicon-32.png URI
mzizi://skills/mukoko-design/favicon/favicon-32.png

MIME type: image/png

mukoko-design/favicon/favicon.ico — mukoko-design: favicon/favicon.ico

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mukoko-design/favicon/favicon.ico URI
mzizi://skills/mukoko-design/favicon/favicon.ico

MIME type: image/x-icon

mukoko-design/favicon/favicon.svg — mukoko-design: favicon/favicon.svg

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mukoko-design/favicon/favicon.svg URI
mzizi://skills/mukoko-design/favicon/favicon.svg

MIME type: image/svg+xml

mukoko-design/lockup/mukoko-lockup-dark.svg — mukoko-design: lockup/mukoko-lockup-dark.svg

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mukoko-design/lockup/mukoko-lockup-dark.svg URI
mzizi://skills/mukoko-design/lockup/mukoko-lockup-dark.svg

MIME type: image/svg+xml

mukoko-design/lockup/mukoko-lockup-light.svg — mukoko-design: lockup/mukoko-lockup-light.svg

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mukoko-design/lockup/mukoko-lockup-light.svg URI
mzizi://skills/mukoko-design/lockup/mukoko-lockup-light.svg

MIME type: image/svg+xml

mukoko-design/mark/mukoko-mark-full-dark.svg — mukoko-design: mark/mukoko-mark-full-dark.svg

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mukoko-design/mark/mukoko-mark-full-dark.svg URI
mzizi://skills/mukoko-design/mark/mukoko-mark-full-dark.svg

MIME type: image/svg+xml

mukoko-design/mark/mukoko-mark-full-light.svg — mukoko-design: mark/mukoko-mark-full-light.svg

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mukoko-design/mark/mukoko-mark-full-light.svg URI
mzizi://skills/mukoko-design/mark/mukoko-mark-full-light.svg

MIME type: image/svg+xml

mukoko-design/SOURCES.md — mukoko-design: SOURCES.md

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mukoko-design/SOURCES.md URI
mzizi://skills/mukoko-design/SOURCES.md

MIME type: text/markdown

digital-hygiene/hygiene.sh — digital-hygiene: hygiene.sh

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

digital-hygiene/hygiene.sh URI
mzizi://skills/digital-hygiene/hygiene.sh

MIME type: text/x-shellscript

progress-report/progress.sh — progress-report: progress.sh

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

progress-report/progress.sh URI
mzizi://skills/progress-report/progress.sh

MIME type: text/x-shellscript

ship-release/verify-live.sh — ship-release: verify-live.sh

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

ship-release/verify-live.sh URI
mzizi://skills/ship-release/verify-live.sh

MIME type: text/x-shellscript

mzizi-skill — Mzizi agent skill

Advertised by the server during the last successful anonymous check.

A Mzizi agent skill's SKILL.md body (@nyuchi/mzizi-skills 0.19.0).

mzizi-skill URI template
mzizi://skills/{name}

MIME type: text/markdown

mzizi-skill-file — A file a Mzizi skill ships

Advertised by the server during the last successful anonymous check.

A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).

mzizi-skill-file URI template
mzizi://skills/{name}/{+path}

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1647 ms
95th percentile latency
1647 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1647 ms · metadata changed · 14 tool(s), 38 resource(s), 2 resource template(s), 12 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http mzizi-mcp https://mcp.mzizi.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add mzizi-mcp --url https://mcp.mzizi.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable mzizi-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "mzizi-mcp": {
      "url": "https://mcp.mzizi.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "mzizi-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.mzizi.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start mzizi-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "mzizi-mcp": {
      "type": "http",
      "url": "https://mcp.mzizi.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http mzizi-mcp https://mcp.mzizi.dev/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mcp.mzizi.dev/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "mzizi-mcp": {
      "serverUrl": "https://mcp.mzizi.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Mzizi MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.