# @markup-carve/carve-mcp

Parse, lint, format, render, and migrate Carve documents through MCP.

- **Type:** MCP server
- **Trust:** 85/100 (A), scored on the package rubric
- **Verification:** verified (build provenance)
- **Version:** 0.1.4
- **Author:** io.github.markup-carve
- **License:** MIT
- **npm:** @markup-carve/carve-mcp
- **Source:** https://github.com/markup-carve/carve-mcp
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

85/100 (A), scored on the package rubric
- Publisher verified: no
- Build provenance: verified attestation
- npm trusted publishing (OIDC): yes
- Install scripts: nothing suspicious found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 12 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-09-11T21:41:51.541Z
- **Version scanned:** 0.1.4
- **CVEs:** none found by OSV at scan time

## Tools

23 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `review-document` — Review a Carve document for clear, correct, human-focused writing.
- `convert-markdown` — Convert Markdown to Carve while explaining fidelity warnings.
- `prepare-for-github` — Check a Carve document for GitHub-specific publishing surprises.
- `explain-warnings` — Turn Carve diagnostics into concise, actionable writing guidance.
- `preview-document` — Render and assess a document without changing its source.
- `review-workspace` — Review an authorized documentation workspace as a bounded project.
- `carve_read_file` — Read a UTF-8 text file inside an explicitly configured workspace root.
- `carve_list_files` — List supported document files inside an explicitly configured root, with bounded recursion and no host paths.
- `carve_review_workspace` — Lint Carve files and validate explicit local document links and anchors across a bounded workspace scan.
- `carve_prepare_edit` — Read and canonically format a Carve workspace file without writing. A lossless result includes a stale-guarded patch with UTF-8 byte ranges; a lossy writer-revi
- `carve_prepare_workspace_edits` — Prepare bounded formatting proposals and unified diffs without writing. Lossless items include stale-guarded UTF-8 byte patches; lossy writer-review items have 
- `carve_workspace_info` — List root indexes and whether writes are enabled. Paths are intentionally not exposed.
- `carve_write_file` — Dry-run by default; atomically write UTF-8 text only when dryRun is false. Overwrites require the hash returned by carve_read_file.
- `carve_lint` — Check Carve source for author-facing problems and silent degradation.
- `carve_format` — Format Carve source canonically and report any lossy raw-format nodes.
- `carve_render` — Render Carve to HTML, Markdown, plain text, or ANSI terminal text, with loss reporting.
- `carve_parse` — Parse and resolve Carve into its position-aware interchange AST.
- `carve_create_ast_patch` — Compare two PART 12 Carve ASTs and return position-independent add, replace, and remove operations.
- `carve_apply_ast_patch` — Validate and apply structured operations to a PART 12 Carve AST, returning the patched AST and canonical Carve source.
- `carve_select_ast_nodes` — Resolve a heading ID, footnote label, or node type to reviewable PART 12 AST paths without silently choosing among multiple matches.
- `carve_create_reversible_ast_patch` — Compare two PART 12 ASTs and return forward and inverse operations with semantic stale-edit fingerprints.
- `carve_apply_reversible_ast_patch` — Verify a reversible AST patch against source, apply or undo it, and return a minimal stale-guarded UTF-8 source edit without writing files.
- `carve_migrate` — Migrate HTML, Markdown, or Djot source to Carve with fidelity diagnostics.

## Install

**Verdict: install** — No blocking findings and no open coverage gaps — safe to install as configured.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"carve\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@markup-carve/carve-mcp\"\n      ]\n    }\n  }\n}"
```

## Blast radius

Extensive blast radius — mutates data; runs on your machine.
- Floor 34, ceiling 58 (tier: extensive)
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/%40markup-carve%2Fcarve-mcp
- Install plan: https://forgeregistry.com/api/v1/packages/%40markup-carve%2Fcarve-mcp/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/%40markup-carve%2Fcarve-mcp
- HTML page: https://forgeregistry.com/registry/%40markup-carve%2Fcarve-mcp
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
