carve-mcp
Official# Carve MCP server
MCP server for the Carve parser, linter, formatter, and renderers, using @markup-carve/carve 0.1.15 or later. File access is enabled only for configured roots. Read the [Carve documentation](https://markup-carve.github.io/carve/) for the language syntax.
## Install
```sh
npm install -g @markup-carve/carve-mcp
```
## Usage
```sh
carve-mcp --help
```
## Documentation
- [Carve documentation](https://markup-carve.github.io/carve/)
- [Documentation index](docs/README.md)
- [Development](docs/development.md)
- [Client setup](docs/client-setup.md)
## License
[MIT](LICENSE)
TDQS
Scored across 15 tools
The patch/edit cluster has unclear boundaries: carve_plan_ast_edit, carve_create_ast_patch, and carve_create_reversible_ast_patch all produce patches, while carve_apply_ast_patch and carve_apply_reversible_ast_patch both apply them, and carve_replace_source provides yet another source-editing path. An agent must reason carefully about reversible vs. non-reversible and AST-level vs. source-level before selecting, and carve_diagnose_and_fix partially overlaps with lint/format plus plan-and-apply flows.
All names use the carve_ prefix with snake_case and a dominant verb_noun convention (create_ast_patch, apply_ast_patch, select_ast_nodes, get_block, replace_source). The only minor deviation is that several tools are verb-only (format, lint, render, parse, migrate), but the pattern remains predictable and readable.
Fifteen tools is at the upper edge of a reasonable scope for a markup-language toolchain spanning parsing, formatting, linting, rendering, migration, and editing. However, the count is inflated by the redundant reversible/non-reversible patch pairs, so not every tool clearly earns an independent place.
The surface covers the full lifecycle well: parse, format, lint, render across multiple targets, migrate, diagnose/fix, inspect blocks, and create/apply patches with undo. Minor gaps exist around direct document persistence (tools explicitly avoid writing files) and general insertion/append operations outside the patch model, but agents can work around these.