@stemma-sh/mcp
v0.6.0
Published
MCP server for tracked-changes DOCX editing, powered by the stemma engine. Prebuilt binaries — no Rust toolchain required.
Maintainers
Readme
@stemma-sh/mcp
A Model Context Protocol server for
tracked-changes .docx editing, powered by the
stemma engine. This package ships
prebuilt native binaries (Linux, macOS, Windows) behind a tiny launcher — no
Rust toolchain required.
Pre-1.0. A
0.xminor release may break API and wire contracts — deliberately, with changelog notice. The stability policy states exactly what you can depend on today.
Run it with an explicit boundary around the documents it may access:
npx -y @stemma-sh/mcp --workspace-root /absolute/path/to/documentsOr wire it into an MCP client (stdio transport):
{
"mcpServers": {
"stemma": {
"command": "npx",
"args": [
"-y",
"@stemma-sh/mcp",
"--workspace-root",
"/absolute/path/to/documents"
]
}
}
}The server speaks JSON-RPC over stdio. Documents are passed as tool arguments
(open_docx { "path": ... }). --workspace-root confines every read and
output path. When absent, STEMMA_MCP_WORKSPACE_ROOT takes precedence over
Claude Code's CLAUDE_PROJECT_DIR; the canonical startup directory remains a
warning-emitting compatibility fallback. Relative paths resolve under the
selected root and read symlinks may not escape it.
Stemma does not upload documents to a Stemma-operated service. In the path-based workflow, parsing and file writes happen locally. The MCP client or its configured model provider may receive selected document content through tool calls; consult the client's data policy.
Image files supplied by path default to a 20 MiB per-image cap
(STEMMA_MCP_MAX_IMAGE_BYTES) and a 50 MiB aggregate cap per transaction
(STEMMA_MCP_MAX_IMAGE_TOTAL_BYTES). Both measure bytes before base64 expansion,
return artifact_source_too_large when exceeded, and accept 0 to disable the
corresponding limit.
Every output is create-new: an existing destination or input alias is refused, with no overwrite option. Output is validated, staged in the destination directory, committed without clobbering, and verified by byte length and SHA-256 before success. This protects ordinary mistakes and failed writes; it is not a sandbox against a hostile same-user process or a power-loss durability promise.
Full tool reference, recipes, and refusal vocabulary: the stemma MCP reference.
The platform binary is selected via optionalDependencies
(@stemma-sh/mcp-<platform>); installing with --omit=optional will leave
the launcher without a binary, and it will say so rather than guess.
Dual-licensed under MIT or Apache-2.0.
