addrbookFor publishers
← The evidence ledger

Evidence row 264460

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint f44cc51c-e922-4446-81bb-8c21f40b0bea
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
0bca6b5921b856fe7cbaf5d88e054acf3d099fdae4eadbde2aeec8c2a83c1d76
Leaf
0xd4ce47d7dac7c3fd1942af81c429e4fedf175c83a83fcf78a8e707100f9dbf72

What was observed

{
  "count": 14,
  "tools": [
    {
      "description": "[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.\n\nThis 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`.\n\n**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.\n\n**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.\n\nSupported 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.\n\nEach 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.\n\nExamples (replace the placeholder paths with real ones from `tree` or search):\n- `tree / -L 2` — see the top-level directory layout\n- `rg -il \"rate limit\" /` — find all files mentioning \"rate limit\"\n- `rg -C 3 \"apiKey\" /some-directory/` — show matches with 3 lines of context around each hit\n- `head -80 /some/page.mdx` — read the top 80 lines of a specific page\n- `head -80 /page-one.mdx /page-two.mdx /section/page-three.mdx` — read multiple pages in one call\n- `cat /some/page.mdx` — read a full page when you need everything\n\nOutput 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.\n\nWhen 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`.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "command": {
            "description": "A shell command to run against the virtualized documentation filesystem (e.g., `rg -il \"keyword\" /`, `tree / -L 2`, `head -80 /path/file.mdx`).",
            "type": "string"
          }
        },
        "required": [
          "command"
        ],
        "type": "object"
      },
      "name": "docs_query_docs_filesystem_mzizi"
    },
    {
      "description": "[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`).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "query": {
            "description": "Search query",
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "docs_search_mzizi"
    },
    {
      "description": "[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.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "feedback": {
            "description": "A clear description of the documentation issue or suggestion — what is incorrect, outdated, missing, or confusing.",
            "minLength": 1,
            "type": "string"
          },
          "path": {
            "description": "The URL path of the documentation page the feedback is about (the page you were reading, without the `.mdx` extension).",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "path",
          "feedback"
        ],
        "type": "object"
      },
      "name": "docs_submit_feedback"
    },
    {
      "description": "Contrast and colour-vision checks against the Mzizi APCA/AAA floor. Computed locally — no network, no upstream dependency.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "background": {
            "description": "Background colour as #RRGGBB.",
            "type": "string"
          },
          "foreground": {
            "description": "Foreground colour as #RRGGBB.",
            "type": "string"
          }
        },
        "required": [
          "foreground",
          "background"
        ],
        "type": "object"
      },
      "name": "mzizi_check_accessibility"
    },
    {
      "description": "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.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "action": {
            "enum": [
              "submit",
              "task_status",
              "cancel"
            ],
            "type": "string"
          },
          "instruction": {
            "description": "What fundi should do. Required for submit.",
            "type": "string"
          },
          "skill": {
            "description": "Required for submit.",
            "enum": [
              "security-scan",
              "chaos-run",
              "a11y-audit",
              "heal-issue"
            ],
            "type": "string"
          },
          "taskId": {
            "description": "Required for task_status and cancel.",
            "type": "string"
          }
        },
        "required": [
          "action"
        ],
        "type": "object"
      },
      "name": "mzizi_fundi"
    },
    {
      "description": "The Mzizi DNA double helix — nodes, rungs and strands — with live counts. Pass `node` for one node's covenant, stakeholder and implementation rules.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "node": {
            "description": "One node's detail (uncapped).",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "mzizi_get_architecture"
    },
    {
      "description": "Fetch one component in full, Rust first. When the component has a Mzizi Roots (Rust) implementation, `rust` comes first (Roots' crates are built on Dioxus 0.7 today and are moving to Mzizi's own renderer): 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.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "include": {
            "description": "Extra sections to fetch. Omit for the implementations only.",
            "items": {
              "enum": [
                "docs",
                "versions"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "description": "Component name, e.g. 'button'.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "name": "mzizi_get_component"
    },
    {
      "description": "How to build here: Ubuntu pillars and principles, mzizi conventions, and the AI instruction sets.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "name": {
            "description": "For ai-instructions, the name or target to fetch; for conventions, the convention's name. Omit to list.",
            "type": "string"
          },
          "topic": {
            "description": "Which doctrine to read.",
            "enum": [
              "ubuntu-pillars",
              "ubuntu-principles",
              "ai-instructions",
              "conventions"
            ],
            "type": "string"
          }
        },
        "required": [
          "topic"
        ],
        "type": "object"
      },
      "name": "mzizi_get_doctrine"
    },
    {
      "description": "List the published Mzizi agent skills, or fetch one in full. Skills are what an agent loads first. Each skill has a category: `dev` (how every agent works in every repo: digital-hygiene and progress-report — load these before any dev work), `design`, `language` or `build`. Pass `category` to get every skill in it in full (e.g. category=dev), or `name` for one skill. Served from the skill files bundled into this server at build time, so they are exactly the text in mzizi-dev/agent-tools at the deployed commit.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "category": {
            "description": "Return every skill in this category in full: dev (digital-hygiene, progress-report — for every agent in every repo), design, language or build.",
            "enum": [
              "dev",
              "design",
              "language",
              "build"
            ],
            "type": "string"
          },
          "name": {
            "description": "Skill name. Omit to list all.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "mzizi_get_skills"
    },
    {
      "description": "The Mzizi brand system: 21 colour families (7 minerals, 7 heritage, 7 experimental), semantic colours, typography, spacing, radii and the ecosystem brands. Ask for `colors` to get every colour family in one call. For text, use each family's `textLight` / `textDark` on the base surface, and `onContainerLight` / `onContainerDark` on its container; never use `hex`, `lightHex` or `darkHex` as a text colour (they are accents).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "family": {
            "description": "One of: colors (all 21 colour families at once), minerals, heritage, experimental, semantic, backgrounds, typography, spacing, radii, ecosystem, componentSpecs, accessibility, voiceAndTone, philosophy. Common aliases resolve (status/semanticColors, radius, type/fonts, exp). Omit for everything.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "mzizi_get_tokens"
    },
    {
      "description": "The registry index, optionally filtered by node, owner, collection, type or rust. Returns a lean row per component (name, type, node, owner, collection, and rustCrate when it has a Mzizi Roots (Rust) implementation, which is the lead) — use get_component for one component in full, or search when you only have words. Paged: up to 400 rows per call, with total and hasMore reported.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "astro": {
            "description": "true: only components with an Astro implementation (installable with mzizi add --target astro); false: only those without.",
            "type": "boolean"
          },
          "collection": {
            "description": "Filter by collection, e.g. primitives | brand | pages | resilience.",
            "type": "string"
          },
          "limit": {
            "description": "Rows per call (default 400).",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "node": {
            "description": "Filter by node number (uncapped).",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "type": "integer"
          },
          "offset": {
            "description": "Rows to skip, for paging.",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "owner": {
            "description": "Filter by owner: mzizi | nyuchi | bundu | framework.",
            "type": "string"
          },
          "rust": {
            "description": "true: only components with a Mzizi Roots (Rust) implementation; false: only those without.",
            "type": "boolean"
          },
          "type": {
            "description": "Filter by registry type, e.g. registry:ui | registry:lib | registry:block.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "mzizi_list_components"
    },
    {
      "description": "What this MCP server exposes: its tools, which are free and which need sign-in, what each replaces, and where its data comes from.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "mzizi_mcp_describe"
    },
    {
      "description": "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.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "action": {
            "default": "file",
            "description": "What to do. Defaults to filing a new report.",
            "enum": [
              "file",
              "list",
              "get",
              "retry"
            ],
            "type": "string"
          },
          "component": {
            "description": "Component the report concerns.",
            "type": "string"
          },
          "kind": {
            "description": "Report kind. Required for action 'file'.",
            "enum": [
              "feedback",
              "observability",
              "chaos"
            ],
            "type": "string"
          },
          "limit": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "message": {
            "description": "What happened. Required for action 'file'.",
            "type": "string"
          },
          "reportId": {
            "description": "Report id. Required for actions 'get' and 'retry'.",
            "type": "string"
          },
          "severity": {
            "enum": [
              "low",
              "medium",
              "high",
              "critical"
            ],
            "type": "string"
          },
          "skill": {
            "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.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "mzizi_report_issue"
    },
    {
      "description": "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. 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.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "query": {
            "description": "Free-text search term.",
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "mzizi_search"
    }
  ]
}

What the leaf hashes

{"body":"0bca6b5921b856fe7cbaf5d88e054acf3d099fdae4eadbde2aeec8c2a83c1d76","id":264460,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793034194409223,"prev":null,"subject":"f44cc51c-e922-4446-81bb-8c21f40b0bea","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0xd4ce5085345ca9b7ef6c4c9e7f0750abc96def81ae026a0cd4e74a83a4f04e84
  2. 0x0b7c13d422a47ec46a698d58ee5918d7da79cc4c3130dea139f78e1a0d0cae9e
  3. 0x4b26e4e30d5b288cba5893559fd03448e265386d531c71545dbdb64433d8d76a
  4. 0x9b48711a993453495992a5f0b13aa7ed85c3bf5ba6112c36d5749b0ac86e0fd7
  5. 0x4073d4dfde1baa0e8abc3eb18cc279c02930d2ec3b54bc2304e4003a09f21d03
  6. 0xc1bb7f438e0caf06b5771edea5bbae18ad499095694c174ddfd17ca15871f9d0
  7. 0x14e7477d17d801f208a054b1a823eff34c84d6ea94688f4807c90755385c310f
  8. 0x5254c702a9eb980d50ffefa709e71effdf6c815d07dfe44727518f5f8b7f796c
  9. 0xe68852d059df1a2763d9eb9e407ab688f37fed3121a3f760478f3f9ea3d2d8a0
  10. 0x692eeb197968cd5781b6a621b2983348b30fee6c6aea503398abf2207d9af77b
  11. 0x13af2618b202e3256bff92107d30a646eb897d2992ea1f3e08e75bf4bef84c31
  12. 0x7026808261896a203198354548e5e8cabce4a06e89d077c172084841b47ae119
  13. 0x3199db04c2c73c3483386a86bf503eafde5af103465608156e2e5f42e72a6fbe
  14. 0x6b927d53caa5125cdba9255612d524976c691f8672796c3f0885ba2c5b3af1ad
  15. 0x6dc40f983a3840a0ad927a9ca17f4ff1e3b649a6c735e2a09b140db7c2caf13b
  16. 0x703f95866af09c5e5d6ead7411e9a10f964a41a2aff64d4a55ff0053c023a023
  17. 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON