markup-carve/carve-mcp

Model Context Protocol server for authoring, linting, converting, and rendering Carve documents

TypeScript

0

53 commits

updated Oct 1, 2026

See the code

See what people are saying

SourceMessageScoreDate

UTF-8 and source edits (r/rust)

[Carve](https://markup-carve.github.io/carve/) is a modern plain-text document format with headings, numbered captions, cross-references, and tables with mergeable cells. Markdown on steroids. It has Rust, JavaScript, and PHP implementations. Its editing tools need to change source without…

0

Oct 1, 2026

README

Carve MCP server

Give MCP-compatible assistants the same Carve parser, linter, formatter, and renderers used by the JavaScript implementation. Filesystem access is absent by default and can be enabled for explicitly configured document roots.

Tools

  • carve_lint checks a document and returns precise, structured warnings.
  • carve_diagnose_and_fix previews safe fixes, applies selected fix IDs, and returns an undo patch; ambiguous repairs remain writer-review items.
  • carve_format produces canonical Carve and reports rendering losses.
  • carve_render renders HTML, Markdown, plain text, or ANSI.
  • carve_check_targets compares publishing compatibility across HTML, Markdown, plain text, ANSI, GitHub, WordPress, and PDF-stage profiles.
  • carve_parse returns the resolved, position-aware interchange AST.
  • carve_create_ast_patch compares two interchange ASTs and returns a position-independent patch.
  • carve_apply_ast_patch validates and previews a patch as both an AST and canonical Carve source without changing files.
  • carve_select_ast_nodes finds headings, footnotes, node types, or a current AST path without making an ambiguous selection for the caller.
  • carve_plan_ast_edit turns one or more exact semantic matches and small edit intents into one explained, reversible source patch for approval.
  • carve_create_reversible_ast_patch adds inverse operations and semantic stale-edit fingerprints.
  • carve_apply_reversible_ast_patch safely previews forward or undo operations as a guarded UTF-8 source edit.
  • carve_migrate converts HTML, Markdown, Djot, or BBCode and reports version 2 migration fidelity.
  • carve_reference_graph indexes cross-document headings, footnotes, abbreviations, links, and images, including broken edges and orphaned definitions (when workspace access is enabled).

Tools return concise text for readers alongside schema-validated structured results for clients. Six optional prompts guide common review, conversion, and publishing workflows without replacing the writer's judgment.

Use --tool-profile review, convert, structure, or workspace to expose only the tools needed for that job and reduce model context. The default all profile preserves the complete tool surface.

Raw HTML passthrough is disabled by default because MCP inputs are untrusted. The server has no filesystem access unless you explicitly give it a workspace root. That also governs {{ path }} includes, which stay literal until a call names a configured root. See Include expansion.

Resources

  • carve://guide is a concise authoring quick start.
  • carve://rules explains the normative rule categories.
  • carve://rules/{ruleId} looks up a stable normative CARVE-* rule ID, such as carve://rules/CARVE-P0-001.
  • carve://lint-rules/{ruleName} explains a stable diagnostic name returned by carve_lint.

The resources identify the Carve version and link to the complete documentation when a reader needs normative detail. Lint diagnostic names are a separate namespace and are returned with their explanations directly by carve_lint.

Get started

Node.js 20 or newer is required.

npx -y @markup-carve/carve-mcp

See Connect Carve to your writing tool for copy-ready setup in Claude, VS Code, Cursor, Zed, and Codex, plus prompts to confirm it works. The compatibility page explains what CI verifies and provides the short host smoke test used for releases.

Install in VS Code Add to Cursor

The writer workflows show practical review, conversion, preview, GitHub publishing, and documentation-folder tasks.

For local builds, workspace access, native binaries, HTTP and container deployment, and contributor checks, see Development and deployment.

This project is licensed under the MIT License.

carve
markup
mcp
model-context-protocol

markup-carve/carve-mcp

Model Context Protocol server for authoring, linting, converting, and rendering Carve documents

TypeScript

0

53 commits

updated Oct 1, 2026

See the code

See what people are saying

SourceMessageScoreDate

UTF-8 and source edits (r/rust)

[Carve](https://markup-carve.github.io/carve/) is a modern plain-text document format with headings, numbered captions, cross-references, and tables with mergeable cells. Markdown on steroids. It has Rust, JavaScript, and PHP implementations. Its editing tools need to change source without…

0

Oct 1, 2026

README

Carve MCP server

Give MCP-compatible assistants the same Carve parser, linter, formatter, and renderers used by the JavaScript implementation. Filesystem access is absent by default and can be enabled for explicitly configured document roots.

Tools

  • carve_lint checks a document and returns precise, structured warnings.
  • carve_diagnose_and_fix previews safe fixes, applies selected fix IDs, and returns an undo patch; ambiguous repairs remain writer-review items.
  • carve_format produces canonical Carve and reports rendering losses.
  • carve_render renders HTML, Markdown, plain text, or ANSI.
  • carve_check_targets compares publishing compatibility across HTML, Markdown, plain text, ANSI, GitHub, WordPress, and PDF-stage profiles.
  • carve_parse returns the resolved, position-aware interchange AST.
  • carve_create_ast_patch compares two interchange ASTs and returns a position-independent patch.
  • carve_apply_ast_patch validates and previews a patch as both an AST and canonical Carve source without changing files.
  • carve_select_ast_nodes finds headings, footnotes, node types, or a current AST path without making an ambiguous selection for the caller.
  • carve_plan_ast_edit turns one or more exact semantic matches and small edit intents into one explained, reversible source patch for approval.
  • carve_create_reversible_ast_patch adds inverse operations and semantic stale-edit fingerprints.
  • carve_apply_reversible_ast_patch safely previews forward or undo operations as a guarded UTF-8 source edit.
  • carve_migrate converts HTML, Markdown, Djot, or BBCode and reports version 2 migration fidelity.
  • carve_reference_graph indexes cross-document headings, footnotes, abbreviations, links, and images, including broken edges and orphaned definitions (when workspace access is enabled).

Tools return concise text for readers alongside schema-validated structured results for clients. Six optional prompts guide common review, conversion, and publishing workflows without replacing the writer's judgment.

Use --tool-profile review, convert, structure, or workspace to expose only the tools needed for that job and reduce model context. The default all profile preserves the complete tool surface.

Raw HTML passthrough is disabled by default because MCP inputs are untrusted. The server has no filesystem access unless you explicitly give it a workspace root. That also governs {{ path }} includes, which stay literal until a call names a configured root. See Include expansion.

Resources

  • carve://guide is a concise authoring quick start.
  • carve://rules explains the normative rule categories.
  • carve://rules/{ruleId} looks up a stable normative CARVE-* rule ID, such as carve://rules/CARVE-P0-001.
  • carve://lint-rules/{ruleName} explains a stable diagnostic name returned by carve_lint.

The resources identify the Carve version and link to the complete documentation when a reader needs normative detail. Lint diagnostic names are a separate namespace and are returned with their explanations directly by carve_lint.

Get started

Node.js 20 or newer is required.

npx -y @markup-carve/carve-mcp

See Connect Carve to your writing tool for copy-ready setup in Claude, VS Code, Cursor, Zed, and Codex, plus prompts to confirm it works. The compatibility page explains what CI verifies and provides the short host smoke test used for releases.

Install in VS Code Add to Cursor

The writer workflows show practical review, conversion, preview, GitHub publishing, and documentation-folder tasks.

For local builds, workspace access, native binaries, HTTP and container deployment, and contributor checks, see Development and deployment.

This project is licensed under the MIT License.

carve
markup
mcp
model-context-protocol

Languages

TypeScript

47.6%

Rust

42.3%

JavaScript

8.8%

Shell

1.1%