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.
https://mcp.mzizi.dev/mcpWhat its tools do
14 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (11)
Can change data (3)
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
- 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
{
"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.
Tools
14 advertised
mzizi_search — Search Mzizi
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.
{
"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."
}
}
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}mzizi_get_component — Get a component
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.
{
"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."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}mzizi_list_components — List components
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.
{
"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."
}
}
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}mzizi_get_tokens — Get design tokens
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).
{
"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."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}mzizi_get_architecture — Get the architecture
The Mzizi DNA double helix — nodes, rungs and strands — with live counts. Pass `node` for one node's covenant, stakeholder and implementation rules.
{
"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
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}mzizi_get_doctrine — Get doctrine
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.
{
"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."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}mzizi_get_skills — Get agent skills
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.
{
"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."
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}mzizi_check_accessibility — Check accessibility
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).
{
"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."
}
}
}{
"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
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}mzizi_report_issue — Report an issue
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.
{
"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."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}mzizi_fundi — fundi
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.
{
"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."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}mzizi_mcp_describe — Describe this server
What this MCP server exposes: its tools, which are free and which need sign-in, what each replaces, and where its data comes from.
{
"type": "object",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}docs_search_mzizi — Docs: Search documentation
[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`).
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Search query"
}
},
"additionalProperties": false
}{
"title": "Search documentation",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}docs_query_docs_filesystem_mzizi — Docs: Query documentation filesystem
[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`.
{
"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
}{
"title": "Query documentation filesystem",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}docs_submit_feedback — Docs: Submit documentation feedback
[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.
{
"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
}{
"title": "Submit documentation feedback",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}Prompts
12 advertised
skill-mzizi-language — Load the mzizi-language skill
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).
skill-mzizi-roots — Load the mzizi-roots skill
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.
skill-mzizi-design — Load the mzizi-design skill
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.
skill-mukoko-design — Load the mukoko-design skill
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.
skill-mzizi-backend — Load the mzizi-backend skill
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.
skill-mzizi-architecture — Load the mzizi-architecture skill
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.
skill-discoverability — Load the discoverability skill
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.
skill-digital-hygiene — Load the digital-hygiene skill
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.
skill-progress-report — Load the progress-report skill
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).
skill-ship-release — Load the ship-release skill
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.
skill-registry-propagation — Load the registry-propagation skill
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.
skill-pr-gates — Load the pr-gates skill
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.
Resources
38 advertised
mzizi-tools — Mzizi MCP tools
The tools this server exposes, and which legacy tools each replaces.
mzizi://toolsmzizi-language — Skill: mzizi-language
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://skills/mzizi-languagemzizi-roots — Skill: mzizi-roots
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://skills/mzizi-rootsmzizi-design — Skill: mzizi-design
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://skills/mzizi-designmukoko-design — Skill: mukoko-design
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.
mzizi://skills/mukoko-designmzizi-backend — Skill: mzizi-backend
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://skills/mzizi-backendmzizi-architecture — Skill: mzizi-architecture
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://skills/mzizi-architecturediscoverability — Skill: discoverability
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.
mzizi://skills/discoverabilitydigital-hygiene — Skill: digital-hygiene
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.
mzizi://skills/digital-hygieneprogress-report — Skill: progress-report
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).
mzizi://skills/progress-reportship-release — Skill: ship-release
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.
mzizi://skills/ship-releaseregistry-propagation — Skill: registry-propagation
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.
mzizi://skills/registry-propagationpr-gates — Skill: pr-gates
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.
mzizi://skills/pr-gatesmzizi-design/tokens-update.css — mzizi-design: tokens-update.css
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mzizi-design/tokens-update.cssmzizi-design/tokens/minerals.css — mzizi-design: tokens/minerals.css
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mzizi-design/tokens/minerals.cssmzizi-design/tokens/minerals.json — mzizi-design: tokens/minerals.json
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mzizi-design/tokens/minerals.jsonmzizi-design/tokens/palette.css — mzizi-design: tokens/palette.css
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mzizi-design/tokens/palette.cssmzizi-design/tokens/palette.json — mzizi-design: tokens/palette.json
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mzizi-design/tokens/palette.jsonmukoko-design/app-icon/mukoko-appicon-paper.png — mukoko-design: app-icon/mukoko-appicon-paper.png
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mukoko-design/app-icon/mukoko-appicon-paper.pngmukoko-design/app-icon/mukoko-appicon.png — mukoko-design: app-icon/mukoko-appicon.png
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mukoko-design/app-icon/mukoko-appicon.pngmukoko-design/backgrounds/honeycomb-grain-paper.svg — mukoko-design: backgrounds/honeycomb-grain-paper.svg
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mukoko-design/backgrounds/honeycomb-grain-paper.svgmukoko-design/backgrounds/honeycomb-pattern-full.svg — mukoko-design: backgrounds/honeycomb-pattern-full.svg
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mukoko-design/backgrounds/honeycomb-pattern-full.svgmukoko-design/backgrounds/honeycomb-splash-stone-1080x1920.png — mukoko-design: backgrounds/honeycomb-splash-stone-1080x1920.png
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mukoko-design/backgrounds/honeycomb-splash-stone-1080x1920.pngmukoko-design/backgrounds/honeycomb-splash-stone.svg — mukoko-design: backgrounds/honeycomb-splash-stone.svg
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mukoko-design/backgrounds/honeycomb-splash-stone.svgmukoko-design/backgrounds/honeycomb-tanzanite-header.svg — mukoko-design: backgrounds/honeycomb-tanzanite-header.svg
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mukoko-design/backgrounds/honeycomb-tanzanite-header.svgmukoko-design/favicon/apple-touch-icon.png — mukoko-design: favicon/apple-touch-icon.png
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mukoko-design/favicon/apple-touch-icon.pngmukoko-design/favicon/favicon-16.png — mukoko-design: favicon/favicon-16.png
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mukoko-design/favicon/favicon-16.pngmukoko-design/favicon/favicon-32.png — mukoko-design: favicon/favicon-32.png
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mukoko-design/favicon/favicon-32.pngmukoko-design/favicon/favicon.ico — mukoko-design: favicon/favicon.ico
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mukoko-design/favicon/favicon.icomukoko-design/favicon/favicon.svg — mukoko-design: favicon/favicon.svg
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mukoko-design/favicon/favicon.svgmukoko-design/lockup/mukoko-lockup-dark.svg — mukoko-design: lockup/mukoko-lockup-dark.svg
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mukoko-design/lockup/mukoko-lockup-dark.svgmukoko-design/lockup/mukoko-lockup-light.svg — mukoko-design: lockup/mukoko-lockup-light.svg
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mukoko-design/lockup/mukoko-lockup-light.svgmukoko-design/mark/mukoko-mark-full-dark.svg — mukoko-design: mark/mukoko-mark-full-dark.svg
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mukoko-design/mark/mukoko-mark-full-dark.svgmukoko-design/mark/mukoko-mark-full-light.svg — mukoko-design: mark/mukoko-mark-full-light.svg
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mukoko-design/mark/mukoko-mark-full-light.svgmukoko-design/SOURCES.md — mukoko-design: SOURCES.md
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/mukoko-design/SOURCES.mddigital-hygiene/hygiene.sh — digital-hygiene: hygiene.sh
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/digital-hygiene/hygiene.shprogress-report/progress.sh — progress-report: progress.sh
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/progress-report/progress.shship-release/verify-live.sh — ship-release: verify-live.sh
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
mzizi://skills/ship-release/verify-live.shmzizi-skill — Mzizi agent skill
A Mzizi agent skill's SKILL.md body (@nyuchi/mzizi-skills 0.19.0).
mzizi://skills/{name}mzizi-skill-file — A file a Mzizi skill ships
A script, stylesheet, data file or image shipped beside a skill's SKILL.md, byte for byte (images as base64 blobs).
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.
Claude Code
claude mcp add --transport http mzizi-mcp https://mcp.mzizi.dev/mcpCodex
codex mcp add mzizi-mcp --url https://mcp.mzizi.dev/mcpCursor
{
"mcpServers": {
"mzizi-mcp": {
"url": "https://mcp.mzizi.dev/mcp"
}
}
}Cline
{
"mcpServers": {
"mzizi-mcp": {
"type": "streamableHttp",
"url": "https://mcp.mzizi.dev/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"mzizi-mcp": {
"type": "http",
"url": "https://mcp.mzizi.dev/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http mzizi-mcp https://mcp.mzizi.dev/mcpClaude Desktop
https://mcp.mzizi.dev/mcpWindsurf
{
"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.