An MCP server for creating, editing, and deleting LeafWiki pages.
LeafWiki MCP demonstrates solid tool design with consistent naming (verb_noun pattern), complete input schemas across all 18 tools, and comprehensive parameter descriptions. All tools follow the verb-first convention (add_, search_, get_, browse_, list_, move_, copy_, ensure_). Schemas are well-formed with proper types and defaults. However, tool descriptions average ~80 chars (below the 194-char baseline for A+ tools), lacking context on WHEN to use each tool vs. alternatives and missing dependency hints. Output schemas are not documented in the source. Error handling guidance is absent, no recovery hints or categorization. Security considerations (permission gates, audit trails) are not visible. Composition is strong: tools are single-responsibility and chain well (e.g., search_pages → get_page → get_page_links). Parameter naming is consistent and human-friendly (id/path alternatives, sensible defaults).
Create a page or section, optionally with content and metadata.
Browse the page hierarchy, optionally limited to a depth.
Compare two historical page snapshots.
Copy a page and its assets.
Ensure a nested page path exists.
Find pages by title.
Find pages carrying a property key and optional value.
Tool descriptions are too brief (avg ~80 chars vs. 194-char baseline). Missing WHEN to use each tool, prerequisites, and dependency hints. E.g., 'Get a page by ID or path' doesn't explain when to call get_page vs. search_pages or find_page_by_title.
Output schemas are not documented. LLMs cannot plan downstream calls or extract required fields. E.g., does add_page return the new page ID? Does search_pages return a total count for pagination?
No error handling guidance. Tools lack recovery hints (e.g., 'If page not found, try search_pages() first'). No error categorization (retryable vs. user-fixable vs. fatal). Agents cannot self-correct on failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Get full-text search indexing status.
Get a page by ID or path, including content and metadata.
Get backlinks, outgoing links, and broken links for a page.
Get a page revision; requires revisions to be enabled.
List page revisions; requires revisions to be enabled.
List available property keys.
List tags and usage counts, optionally filtering by name.
Resolve a path into tree segments.
Move a page under a new parent.
Search pages by text and tags, returning excerpts and tag facets.
Suggest an available slug for a title.
Destructive operations (move_page, copy_page, add_page) lack confirmation or dry-run support. Agents can accidentally move/delete pages without safeguards.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Clients cannot distinguish safe reads from destructive writes at the protocol level.