Model Context Protocol server for DokuWiki that exposes wiki API methods as MCP tools
DokuWiki MCP exposes 4 tools with significant definition gaps. The initialize, tools_list, and ping tools are protocol-level utilities with empty schemas and minimal descriptions (10-50 chars), violating the 10-1024 char baseline. The critical tools_call tool has a vague description ('Call a DokuWiki API method') that fails to explain WHEN to use it, what it returns, or its side effects. No parameter descriptions exist for the 'arguments' object, forcing LLMs to guess at structure. Output schemas are completely undocumented, LLMs cannot predict what fields to expect from tool results. Error handling is present but generic ('tool result' wrapping) without recovery guidance. The server acts as a thin proxy to DokuWiki's JSON-RPC API rather than exposing well-defined, LLM-optimized tools.
Initialize the MCP server and return protocol version, capabilities, and server info
Ping the MCP server to verify it is responsive
Call a DokuWiki API method as an MCP tool
List all available MCP tools with their schemas and annotations
Protocol-level tools (initialize, tools_list, ping) have empty input schemas and descriptions under 20 chars, violating hard scoring rules.
tools_call parameter 'arguments' lacks description. LLMs cannot infer what structure to pass. Rubric baseline: '100% of A+ tool params have descriptions.' Current: 0%.
No output schemas documented for any tool. LLMs cannot predict response structure, forcing them to parse unstructured JSON text. Rubric: '100% of A+ tools have documented return types.'
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | <=2025-11-25 | v2 |
tools_call description ('Call a DokuWiki API method as an MCP tool') is vague and does not explain WHEN to use it vs. other tools, what it modifies, or prerequisites. Rubric: 'Write descriptions as if prompt-engineering. State WHAT the tool does, WHEN to use it, and any prerequisites.'
Error handling wraps failures in generic 'isError' flag without recovery guidance. Rubric: 'Error responses must tell the LLM what to do next.' Current implementation returns only error text, not actionable next steps.