DitaCraft MCP Server — DITA validation, key space, snapshots, and map analysis
DitaCraft provides 6 well-named, domain-specific tools with complete input schemas and reasonable descriptions. All tools follow verb_noun naming (dita_validate, dita_resolve_reference). Schemas include proper types, enums, and defaults. However, descriptions are terse (avg 80 chars, below the 194-char baseline), lack WHEN-to-use guidance, and omit error recovery hints. No tool annotations (readOnlyHint, destructiveHint). Output schemas are not documented in the source. Error handling is absent, no guidance on what to do if validation fails or a reference cannot be resolved. Parameter descriptions are minimal; e.g., 'Map file to snapshot' lacks format/constraint details. No pagination support despite tools returning potentially large results (dita_key_space, dita_map_structure).
Return a token-budgeted text representation of a DITA map for LLM injection.
Return a detailed trace of how a key resolves through scopes and keyref chains.
List all defined keys and their resolved targets from the key space.
Return the full topic hierarchy and metadata for a DITA map.
Resolve an href, keyref, conref, or conkeyref to its target file and element.
Validate a DITA file or XML fragment and return diagnostics.
Descriptions lack WHEN-to-use guidance and error recovery hints. E.g., dita_validate says 'Validate a DITA file' but does not explain when to call it vs dita_context_snapshot, or what to do if validation fails.
No output schemas documented. Tools return results but the source does not specify field names, types, or structure. LLMs cannot plan downstream calls without knowing what fields to expect.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are marked READ_ONLY in metadata but this is not exposed in the tool definition for LLM reasoning.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | <=2025-11-25 | v2 |
Parameter descriptions are minimal and lack format/constraint details. E.g., 'Map file to snapshot' does not specify file:// URI format, relative path resolution, or what happens if the file is not found.
No pagination or result-limiting guidance. dita_key_space and dita_map_structure could return hundreds of items; no limit parameter, no cursor, no total count documented.