Software Development Kit for HNPX format - provides tools for creating, navigating, and modifying HNPX documents (hierarchical narrative structure format)
Server has 19 well-structured tools with consistent naming (verb_noun pattern) and complete input schemas. All tools have descriptions and parameters are typed. However, descriptions are minimal (10-50 chars, well below the 50-200 char LLM-optimized baseline), lack context on WHEN to use each tool, and omit error recovery guidance. Output schemas are not documented. No tool annotations (readOnlyHint/destructiveHint). Error handling exists but is generic. Composition is sound, tools are single-responsibility and chainable via node_id references.
Create a new beat element
Create a new chapter element
Create a new empty HNPX document
Create a new paragraph element
Create a new sequence element
Edit attributes of a node
Edit the text content of a paragraph node
Descriptions are too brief (10-50 chars vs. 50-200 char baseline). Missing WHEN to use each tool, prerequisites, and dependencies. E.g., 'Create a new chapter element' does not explain that parent_id must be a book node or what happens on invalid hierarchy.
No output schemas documented. Tools return XML strings or error messages, but LLMs cannot plan downstream calls without knowing the structure. E.g., get_subtree returns XML but no schema describes the element hierarchy or field names.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Edit the summary text of a node
Retrieve immediate child nodes of a specified parent
Find next container node without children within a specific node's subtree (BFS order)
Retrieve XML representation of a specific node (without descendants)
Return hierarchical path from document root to specified node
Get ID of the book node (document root)
Retrieve XML representation of node including all descendants, optionally pruned
Move one or more nodes to a new parent
Remove all child nodes of a specified parent
Remove one or more nodes from the document
Render a node and its descendants as formatted text
Reorder child nodes of a parent
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Agents cannot distinguish safe reads from destructive writes without explicit hints. remove_nodes and remove_node_children are destructive but unmarked.
Error handling is generic. Exceptions (NodeNotFoundError, InvalidHierarchyError) are raised but no recovery guidance is provided. E.g., 'Node not found' does not suggest calling get_root_id or get_children to discover valid node IDs.
Parameter descriptions lack format/constraint details. E.g., pruning_level accepts 'book|chapter|sequence|beat|full' but the description does not explain what each level means or when to use each. Mode parameter in create_paragraph lists examples but no enum constraint.