Model Context Protocol server for authoring and converting Carve documents
Carve MCP demonstrates solid definition quality with 21 well-named tools, comprehensive input schemas, and clear descriptions. All tools follow verb_noun naming (carve_lint, carve_render, carve_write_file). Schemas are properly typed with JSON Schema. However, descriptions are terse (avg ~60 chars, below the 194-char baseline), lacking context on WHEN to use tools and dependencies between them. Output schemas are not documented. Error handling guidance is absent. Tool composition is strong, tools chain well (parse → select → patch → apply). Security is well-considered with workspace root indexing and dry-run support.
Apply an AST patch to transform an AST and regenerate source
Apply a reversible AST patch in forward or inverse direction
Check which render targets are supported for a Carve document
Create a patch to transform one AST into another
Create a reversible AST patch with forward and inverse operations
Diagnose and automatically fix issues in Carve document source
Format Carve document source according to style rules
Descriptions are terse (avg ~60 chars vs 194-char baseline). Most lack context on WHEN to use the tool, dependencies, or prerequisites. E.g., 'Lint Carve document source for warnings and errors' does not explain when to call it vs carve_diagnose_and_fix, or what platforms are.
Output schemas are not documented. LLMs cannot plan downstream calls or extract required fields. E.g., carve_render returns a RenderResult but the structure is not visible in tool definitions.
No error handling guidance. Tools do not document what errors are retryable, user-fixable, or fatal. E.g., carve_render with strictLosses=true may fail, but no recovery path is documented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2025-06-18+ | v2 |
Lint Carve document source for warnings and errors
List files in a workspace root directory
Migrate document source from HTML, Markdown, Djot, or BBCode to Carve
Parse Carve document source into an abstract syntax tree (AST)
Plan a semantic AST edit and preview the changes
Prepare a single file edit with validation and diff preview
Prepare multiple file edits with validation and diff previews
Read a file from a configured workspace root
Build a reference graph of document links and includes in the workspace
Render Carve document source to HTML, Markdown, plain text, or ANSI
Review workspace files for issues and generate a report
Select AST nodes matching a selector (by heading ID, footnote label, node type, or AST path)
Get information about configured workspace roots and write permissions
Write content to a file in a configured workspace root
Tool dependencies are implicit. carve_parse must be called before carve_select_ast_nodes, but this is not documented in descriptions. LLMs may attempt invalid call sequences.
Parameter constraints are incomplete. E.g., carve_render.maxRenderLosses is an integer with no min/max bounds documented. carve_list_files.maxDepth and limit lack range guidance.