MCP server for Workflowy content management, built with rmcp
Workflowy MCP server has 13 tools with generally adequate naming and descriptions, but significant gaps in schema documentation and parameter descriptions. Tool names follow verb_noun conventions (find_node, create, delete, edit, move, search_nodes, etc.), which is good. Descriptions are present for all tools and average ~120 characters, within the 10-1024 character baseline. However, parameter schemas visible in the tool list show inconsistent documentation: most tools have parameters with descriptions, but the actual JSON Schema visibility is limited in the provided code excerpt. The server includes both read-only and destructive operations, with some error handling guidance expected but not fully visible in the snippet. Tool composition is reasonable, separate tools for different operations (find_node vs search_nodes, create vs insert, edit vs move vs delete). Output schemas are not documented in the provided code. Pagination and result limiting are not evident. The audit_mirrors and review tools perform domain-specific analysis, which is good specialization.
Audit canonical/mirror references within a subtree for broken, drifted, orphaned, or lonely entries
List direct children of a node
Create a new node with optional parent and content
Delete a node and its entire subtree
Edit the name and/or description of an existing node
Fast case-insensitive lookup of nodes by name using the persistent name index, with optional content search in descriptions
Resolve a node by its 8-character or 12-character UUID short hash (prefix form or URL-suffix form)
Output schemas not documented in visible code. LLMs cannot determine what fields to expect from tool responses, limiting downstream planning and field extraction.
No pagination or result limiting parameters visible for search_nodes or list operations (children, subtree). Large result sets risk context window exhaustion.
delete tool lacks confirmation or dry-run mechanism. Destructive operations should support a confirmation step to prevent accidental data loss.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | D | 50 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 17 | - | v1 |
Fetch a single node by ID with its full metadata
Batch insert hierarchical content under a node with automatic child creation from indentation
Move a node to a new parent with parent-availability retry
Generate a multi-bucket review report over a subtree (revisit-due, multi-pillar, stale cross-pillar, source-MOC re-cited)
Search for nodes by name or description content with optional index acceleration
Fetch a complete subtree rooted at a node with optional timeout and cancellation support
Parameter descriptions for optional fields (e.g., 'description' in create, 'relative_priority' in move) use minimal text. LLMs need explicit dependency and constraint hints.
children, edit, and audit_mirrors have short descriptions (60-70 chars). Descriptions should explain WHAT the tool does, WHEN to use it, and any prerequisites (baseline 194 chars avg).
review tool includes optional 'source_moc_blob' parameter with no explanation of expected format or usage context. Error recovery path is unclear.
No visible error handling guidance. Tools do not indicate whether failures are retryable, user-fixable, or fatal. create, insert, move, delete should return actionable error messages.
Tool names are mostly clear, but 'children' is generic. Could be more specific: 'list_children' or 'get_children' to follow verb_noun convention more consistently.