Knowledge-markdown MCP server. Two read-only tools — prime and search — for vault sync, validate, and wiki-mcp agent tools.
Two read-only tools with solid descriptions (prime: 280 chars, search: 240 chars) and clear input schemas. Both tools have type-annotated parameters with descriptions. However, output schemas are not explicitly documented in the source code, only inferred from implementation. Tool names lack action verbs ('prime' and 'search' are weak; 'get_wiki_briefing' and 'search_wiki' would be clearer). Error handling exists via textError() helper but recovery guidance is minimal. No tool annotations (readOnlyHint, etc.) visible. Composition is sound: two independent, single-purpose tools with no overlapping concerns.
Orient on a project. Returns a markdown briefing with: identity (scope, phase, methodology, summary), the human-authored primer.md inlined, the glossary Language section under Vocabulary, active ADRs, current plan, page counts, top tags, hub pages (most-linked-to), recent events, cross-scope references, and — when `task` is provided — the top 3 tsvector-ranked relevant pages. Call once at session start. Empty sections are omitted to keep the surface lean.
Full-text search across wiki pages via SQLite FTS5. Returns ranked candidates {path, title, kind, summary, score} — never page bodies. The agent reads the returned paths directly from the filesystem. The authoring protocol is not indexed: read wiki://authoring, wiki://templates, and wiki://template/{domain}/{kind} as resources (or `kmd resource <uri>`) instead of searching for them.
Tool names lack action verbs. 'prime' and 'search' are weak; should be 'get_wiki_briefing' and 'search_wiki_pages' to clarify intent before LLM reads description.
Output schemas not documented in source. Tool descriptions mention return structure (e.g., 'returns markdown briefing', 'returns ranked candidates {path, title, kind, summary, score}') but no formal JSON Schema for responses. LLMs cannot plan downstream calls without knowing exact output fields.
No tool annotations visible. Neither tool declares readOnlyHint, destructiveHint, or idempotentHint, all are read-only and idempotent, but this is not machine-declared.
Error handling lacks recovery guidance. textError() returns code and message but does not suggest next steps (e.g., 'Try a different query' or 'Check vault path configuration').
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2025-06-18+ | v2 |
Parameter descriptions are minimal. 'task' param in prime is described as 'optional task context for ranking relevant pages', lacks format hints, length constraints, or examples of what constitutes good task context.