Custom MCP server for WebDNA documentation with search, retrieval, and exploration capabilities
The WebDNA MCP server defines 5 tools with explicit JSON schemas and descriptions. All tools follow a consistent naming convention (verb-noun: search-, get-, get-webdna-*) and have non-empty descriptions. However, there are significant gaps in schema completeness, parameter descriptions, and output documentation. All tools are read-only (no state mutation), which reduces complexity but also limits utility. Schemas are present but parameters lack detailed type information for optional fields. Output schemas are not documented anywhere, LLMs cannot predict what get-webdna-doc or search-webdna-docs returns. Error handling is not visible in the tool definitions. The tool definitions are directly visible in src/mcp-tools.js, so they receive full scoring (not capped at 50).
Retrieves a random selection of WebDNA documentation entries. Useful for exploration and discovery of WebDNA features.
Retrieves all WebDNA documentation categories with the count of instructions in each category. Useful for exploring the WebDNA framework structure.
Retrieves detailed documentation for a specific WebDNA instruction or context by its ID or name. Returns full documentation including syntax, parameters, examples, and related instructions.
Retrieves statistics about the WebDNA documentation database, including total number of instructions, categories, and recent additions.
Searches WebDNA documentation for specific instructions, contexts, or keywords. Returns matching documentation entries with descriptions and links to full documentation.
Output schemas are completely undocumented. LLMs cannot infer what these tools return, making it impossible to plan downstream actions or extract specific fields. Per the rubric, 100% of A+ tools have documented return types.
Parameter descriptions are generic and lack actionable constraints. E.g., 'query' is described as 'The search query for WebDNA documentation (e.g., 'table', 'database', 'search')', the examples are appropriate, but no guidance on length limits, special characters, or expected format. 'category' and 'limit' descriptions are similarly vague.
Parameter 'id' in get-webdna-doc accepts multiple types ('ID, WebDNA ID, or instruction name') without distinguishing how they differ or providing guidance on which to use. This violates the naming principle: 'When a parameter could be an ID, name, email, or position, suffix it with the type: user_id, user_name, user_email.'
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 47 | - | v1 |
Tools lack error handling documentation. No guidance on what happens if search fails, a doc ID is not found, or the database is unavailable. Per the rubric, error responses must tell the LLM what to do next.
search-webdna-docs accepts 'limit' and 'offset' but does not document total count or next_cursor in the response. Pagination without total count or cursor guidance violates the pattern: tools returning lists should return a total count or next_cursor.
get-webdna-categories and get-webdna-stats lack descriptions explaining what 'instruction count' means or what statistics are returned. Descriptions are 45 - 55 characters, below the 100-char minimum recommended for discovery tools.