# DocMake

The official DocMake MCP server lets an assistant find your templates, fill in the fields and render a finished PDF or DOCX without leaving the chat.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI
- Author: docmake-io
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/docmake-io/mcp
- Updated: 2026-08-31
- HTML: https://affpapa.org/en/nevibecode/mcp/docmake

## What it does

Six tools bridge the AI client and the DocMake API. `list_templates` browses the workspace, `get_template` returns the field tree a template expects, `render_document` produces the file, and `create_template` plus `import_docx` bring new templates in. `get_usage` reports the plan and render quota. Templates also show up as MCP resources, and a `generate-document` prompt walks through a guided render.

Strict mode is on unless you turn it off. A variable with no value in `data` stops the render, and the assistant gets back the missing keys — so it asks you rather than handing over a half-empty document. Setting `strict: false` switches to each variable's fallback text. Defaults declared in the template editor never count as missing: leave them out of `data` and the rendered file uses the default.

You need a DocMake API key from Settings > API Keys in the dashboard; the free plan is enough. Output lands in `DOCMAKE_OUTPUT_DIR` and an existing file is never overwritten. There is a hosted endpoint at `https://app.docmake.io/mcp/v1` that skips installation entirely, with two caveats: `render_document` gives back a short-lived download link, and `import_docx` wants the file as base64, because a remote server cannot read your disk.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `DOCMAKE_API_KEY`, `DOCMAKE_OUTPUT_DIR`, `DOCMAKE_API_BASE` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env DOCMAKE_API_KEY=<DOCMAKE_API_KEY> --env DOCMAKE_OUTPUT_DIR=<DOCMAKE_OUTPUT_DIR> --env DOCMAKE_API_BASE=<DOCMAKE_API_BASE> --transport stdio docmake -- npx -y @docmake/mcp
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add docmake --env DOCMAKE_API_KEY=<DOCMAKE_API_KEY> --env DOCMAKE_OUTPUT_DIR=<DOCMAKE_OUTPUT_DIR> --env DOCMAKE_API_BASE=<DOCMAKE_API_BASE> -- npx -y @docmake/mcp
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "docmake": {
            "command": "npx",
            "args": [
                "-y",
                "@docmake/mcp"
            ],
            "env": {
                "DOCMAKE_API_KEY": "<DOCMAKE_API_KEY>",
                "DOCMAKE_OUTPUT_DIR": "<DOCMAKE_OUTPUT_DIR>",
                "DOCMAKE_API_BASE": "<DOCMAKE_API_BASE>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "docmake": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@docmake/mcp"
            ],
            "env": {
                "DOCMAKE_API_KEY": "<DOCMAKE_API_KEY>",
                "DOCMAKE_OUTPUT_DIR": "<DOCMAKE_OUTPUT_DIR>",
                "DOCMAKE_API_BASE": "<DOCMAKE_API_BASE>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e DOCMAKE_API_KEY=<DOCMAKE_API_KEY> -e DOCMAKE_OUTPUT_DIR=<DOCMAKE_OUTPUT_DIR> -e DOCMAKE_API_BASE=<DOCMAKE_API_BASE> docmake npx -y @docmake/mcp
```
Replace <…> with your own values

## When to use it
- produce an invoice or contract from a template without filling it by hand
- find out which variables a template expects
- get a PDF or DOCX file on disk from a chat request
- turn an existing .docx into a DocMake template
- check how many renders are left this billing period

## Example prompts
- Which fields does my employment contract template need? Fill them for Maria Ionescu from 1 October and save a DOCX.
- Import `~/Documents/quarterly-report.docx` as a DocMake template and list the variables it found.

## Similar
- [firecrawl-parse](https://affpapa.org/en/nevibecode/skills/firecrawl-parse.md) — skill · 51000 installs
- [k2f](https://affpapa.org/en/nevibecode/skills/k2f.md) — skill · 2300 installs
- [translate-book](https://affpapa.org/en/nevibecode/skills/translate-book.md) — skill · 1800 installs
- [llamaparse](https://affpapa.org/en/nevibecode/skills/llamaparse.md) — skill · 1300 installs
- [document-processing](https://affpapa.org/en/nevibecode/skills/document-processing.md) — skill · 1300 installs
- [doc-to-markdown](https://affpapa.org/en/nevibecode/skills/doc-to-markdown.md) — skill · 872 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
