DocMake

Servidor MCP oficial para DocMake. Lista tus plantillas de documentos, muestra las variables que espera cada una y renderiza una plantilla a DOCX o PDF a través de la API de DocMake, guardando el archivo localmente. Requiere una clave de API de DocMake; el plan gratuito funciona.

Documentación

Tus documentos, generados por tu asistente de IA.

El servidor oficial de DocMake para el Protocolo de Contexto de Modelos (MCP). Pídele a Claude una factura en lenguaje natural; él elige la plantilla, completa los campos (el payload data) y te entrega el PDF terminado.

Se distribuye en npm como @docmake/mcp y se ejecuta localmente mediante npx, por lo que los únicos requisitos son Node.js 18 o superior y una clave de API de DocMake. Funciona con el plan gratuito y le brinda al asistente seis herramientas: listar plantillas, inspeccionar los campos de una plantilla, generar un documento (render_document), crear una plantilla, importar un DOCX y consultar el uso. El código fuente está en GitHub bajo la licencia MIT, y las mismas seis herramientas también están alojadas en app.docmake.io/mcp/v1 si prefieres no instalar nada.

Una conversación, no una integración

MCP es el estándar abierto que permite a los asistentes de IA usar herramientas externas. Con el servidor de DocMake instalado, tu asistente obtiene seis herramientas documentales y las usa por su cuenta: encuentra la plantilla adecuada, te pide los valores que falten y guarda el archivo generado en tu carpeta de Descargas.

Las generaciones son estrictas por defecto. Si un campo (un variable en la API) no tiene valor, el asistente recibe la lista exacta de campos faltantes en lugar de un documento a medias, así que te pregunta en lugar de inventar números.

Las plantillas permanecen en DocMake: diséñalas una vez en el editor visual o empieza desde la galería, y luego genéralas desde cualquier lugar.

Claude

Genera la factura para Acme Corp: 10 horas de consultoría a 100 EUR, con vencimiento en 14 días.

tool list_templates → Invoice (tmpl_ZjqIJk...)
tool get_template → client_name, items[], due_date...
tool render_document → invoice-acme.pdf

Listo. Tu factura para Acme Corp (1,000.00 EUR, vence el 23 de agosto) está guardada en ~/Downloads/DocMake/invoice-acme.pdf.

Configuración

  1. 01 Crea una cuenta gratuita de DocMake y añade una plantilla: empieza desde la galería, importa un DOCX o diseña la tuya.
  2. 02 Crea una clave de API en Configuración → Claves de API.
  3. 03 Añade el servidor a tu herramienta de IA con la configuración de la derecha. Node.js 18+ es el único requisito.

Los archivos generados se guardan en ~/Downloads/DocMake por defecto; configura DOCMAKE_OUTPUT_DIR para cambiarlo.

{
  "mcpServers": {
    "docmake": {
      "command": "npx",
      "args": ["-y", "@docmake/mcp@latest"],
      "env": {
        "DOCMAKE_API_KEY": "dm_your_api_key"
      }
    }
  }
}

Configuración > Desarrollador > Editar configuración, y luego reinicia Claude Desktop.

Remoto, nada que instalar

Las mismas seis herramientas, alojadas

DocMake también ejecuta el servidor por ti en https://app.docmake.io/mcp/v1, mediante HTTP transmisible. Un cliente que admita MCP remoto no necesita paquete ni Node.js: solo la URL y un encabezado, Authorization: Bearer dm_..., que lleva la misma clave de API que usa la API REST.

Dos cosas difieren del paquete local, porque el servidor se ejecuta de nuestro lado y no en tu máquina. render_document devuelve un enlace de descarga de corta duración en lugar de escribir el archivo en disco, y import_docx recibe el documento como base64 en lugar de una ruta. La generación estricta, el alcance del espacio de trabajo y los límites de tarifa del plan se comportan igual que en REST, donde un mensaje de MCP cuenta como una solicitud.

Claude.ai y ChatGPT añaden servidores remotos como conectores personalizados, y esos flujos se documentan en torno a OAuth en lugar de una clave estática, así que esta configuración aún no llega a ellos. Para Claude Desktop, usa la configuración de npx de arriba.

claude mcp add --transport http docmake \
  https://app.docmake.io/mcp/v1 \
  --header "Authorization: Bearer dm_your_api_key"

Añade el servidor al proyecto actual. Pasa --scope user para que esté disponible en todas partes.

Comparativa

Las mismas seis herramientas, el mismo espacio de trabajo, la misma clave dm_. Elige dónde quieres que ocurra el trabajo, no qué obtienes.

Local, @docmake/mcpAlojado, /mcp/v1
Transportestdio, ejecutado por tu cliente mediante npxHTTP transmisible, un POST por mensaje
RequisitosNode.js 18 o superiorNada instalado
AutenticaciónDOCMAKE_API_KEY en el entornoEncabezado Authorization: Bearer dm_...
HerramientasLas mismas seisLas mismas seis
Un archivo generadoEscrito en DOCMAKE_OUTPUT_DIR, ~/Downloads/DocMake por defecto, sin sobrescribir nuncaUn enlace de descarga firmado que no necesita clave y expira
import_docxUna ruta en tu máquinaEl archivo codificado en base64, hasta 10 MB
Recursos y promptsAnunciados junto a las herramientasSolo herramientas, ambas listas vacías
Versión0.1.1 en npm0.1.0, informada en el handshake
Límite de tarifaEl presupuesto del espacio de trabajo, una llamada es una solicitudEl mismo presupuesto, un mensaje es una solicitud

Seis herramientas, el ciclo documental completo

Las mismas seis en ambos servidores, con los mismos nombres, los mismos argumentos y las mismas respuestas. Todo lo que un asistente necesita para pasar de una solicitud a un archivo generado, incluida la creación e importación de plantillas sin salir de la conversación.

list_templates

Listar plantillas

Las plantillas del espacio de trabajo conectado, primero las editadas más recientemente, con búsqueda y paginación. Empieza aquí cuando necesites un id de plantilla.

search

string

Filtra por nombre, coincidencia de subcadena

page

integer

Desde 1

per_page

integer

Máximo 100, por defecto 20

Devuelve data: id, name, created_at, updated_at, variables_count, render_count. meta: current_page, last_page, per_page, total.

Solo lectura.

get_template

Obtener campos de plantilla

Una plantilla más su árbol de campos: cada campo que espera, como claves punteadas con la forma del payload de datos, con los campos de lista que llevan sus subcampos por elemento. Llámala antes de generar.

template_id

string, obligatorio

De list_templates

include_schema

boolean

También devuelve el esquema de documento sin procesar. Por defecto false, puede ser grande

Devuelve id, name, created_at, updated_at, fields (recursivo: key, name, label, type, required, default, example), unused.

Solo lectura. Un cálculo es una salida, así que no está en ninguna lista.

render_document

Generar un documento

Genera una plantilla a PDF o DOCX. Responde con un enlace de descarga de corta duración, no con los bytes del archivo, y se niega antes que llenar un documento con huecos.

template_id

string, obligatorio

data

object, obligatorio

Las claves coinciden con los campos de la plantilla

format

pdf o docx

Por defecto pdf

filename

string

Sin extensión

locale

string

BCP 47, por ejemplo ro-RO. Por defecto, la configuración del espacio de trabajo

page_size

a4 o letter

Por defecto, la configuración del espacio de trabajo

strict

boolean

Por defecto true

Devuelve document_id, filename, format, size_bytes, render_time_ms, warnings, download_url, download_expires_at.

Escritura. No idempotente: cada llamada produce un documento.

create_template

Crear una plantilla

Crea una plantilla a partir de un esquema de documento: un árbol de texto enriquecido con nodos de campo tipados, reglas y secciones repetidas. La forma más rápida de aprender el formato es get_template con include_schema true.

name

string, obligatorio

Máximo 255

schema

object, obligatorio

La raíz debe ser de tipo "doc" con un array content

Devuelve id, name, variables, edit_url.

Escritura. Cuenta contra el límite de plantillas.

import_docx

Importar un DOCX como plantilla

Convierte un documento de Word en una plantilla editable: los encabezados, párrafos, tablas y estilos se convierten, y luego añades campos en el editor o inspeccionas el resultado con get_template.

file_base64

string, obligatorio

Los bytes del .docx, en base64. Máximo 10 MB decodificados

name

string

Por defecto "Imported document"

Devuelve id, name, import_warnings, edit_url.

Escritura. El paquete local toma una ruta de archivo en su lugar.

get_usage

Obtener uso y límites

Plan, documentos usados contra el límite mensual, número de plantillas, créditos de IA y el límite de tarifa por minuto. Consúltalo cuando las generaciones empiecen a fallar por cuota.

Devuelve plan, billing_period, renders, templates, credits, api_calls, rate_limit.

Solo lectura. No toma argumentos.

¿Prefieres HTTP puro? Las mismas capacidades están disponibles a través de la API REST, donde los errores, el encabezado X-DocMake-Warnings y el modo estricto están documentados en detalle.

Una ejecución, de principio a fin

Esto es lo que hace realmente un asistente, mostrado como JSON-RPC puro contra el servidor alojado para que puedas seguirlo solo con curl. Cada llamada y cada respuesta a continuación se ejecutaron contra https://app.docmake.io/mcp/v1 con una clave real y se pegaron sin editar; la clave y la firma están censuradas.

0. Abrir una sesión

HTTP transmisible: un POST por mensaje, con la clave en el encabezado Authorization. El servidor responde al handshake con un id de sesión para enviar en cada llamada posterior.

curl -sS -X POST https://app.docmake.io/mcp/v1 \
  -H "Authorization: Bearer dm_xxx" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize",
       "params":{"protocolVersion":"2025-06-18","capabilities":{},
                 "clientInfo":{"name":"curl","version":"1.0"}}}'
mcp-session-id: b988daa4-cb37-470d-92f5-fe6badbe3dc1

{"jsonrpc":"2.0","id":1,"result":{
  "protocolVersion":"2025-06-18",
  "capabilities":{"tools":{"listChanged":false},
                  "resources":{"listChanged":false},
                  "prompts":{"listChanged":false}},
  "serverInfo":{"name":"docmake","version":"0.1.0"}, ... }}

1. Encontrar la plantilla

{"jsonrpc":"2.0","id":3,"method":"tools/call",
 "params":{"name":"list_templates","arguments":{"search":"formula"}}}
{
  "data": [
    {
      "id": "tmpl_xYucq408uKkJ",
      "name": "Docs formula example",
      "created_at": "2026-09-03T05:48:46+00:00",
      "updated_at": "2026-09-03T05:49:21+00:00",
      "variables_count": 5,
      "render_count": 2
    }
  ],
  "meta": { "current_page": 1, "last_page": 1, "per_page": 20, "total": 1 }
}

2. Preguntar qué necesita

Las claves están punteadas y tienen la forma del payload, así que un asistente puede construir el objeto de datos sin adivinar. Un campo de lista lleva sus campos por elemento. Los cálculos son salidas y no aparecen en ningún lugar de este árbol.

{"jsonrpc":"2.0","id":4,"method":"tools/call",
 "params":{"name":"get_template","arguments":{"template_id":"tmpl_xYucq408uKkJ"}}}
{
  "id": "tmpl_xYucq408uKkJ",
  "name": "Docs formula example",
  "fields": [
    {
      "key": "client", "name": "client", "label": "Client",
      "type": "object", "required": false, "default": null, "example": null,
      "fields": [
        { "key": "client.name", "name": "name", "label": "Client name",
          "type": "string", "required": false, "default": null, "example": null }
      ]
    },
    {
      "key": "items", "name": "items", "label": "Items",
      "type": "array", "required": false, "default": null, "example": null,
      "fields": [
        { "key": "items.product", ... },
        { "key": "items.qty", ... },
        { "key": "items.unit_price", ... }
      ]
    }
  ],
  "unused": []
}

3. Generar y leer las advertencias

La respuesta lleva un array warnings con la misma forma que el encabezado X-DocMake-Warnings de la API REST: vacío aquí, porque no faltaba nada. El enlace no necesita clave de API y expira, así que se puede entregar directamente a la persona que lo pidió.

{"jsonrpc":"2.0","id":5,"method":"tools/call",
 "params":{"name":"render_document","arguments":{
   "template_id":"tmpl_xYucq408uKkJ","format":"pdf","filename":"quote-northwind",
   "data":{"client":{"name":"Northwind Trading SRL"},"discount_percent":10,
     "items":[{"product":"Consulting","qty":1,"unit_price":2500},
              {"product":"Internal audit","qty":2,"unit_price":800},
              {"product":"Training","qty":3,"unit_price":350}]}}}}
{
  "document_id": "doc_M6fQVkMHLp04",
  "filename": "quote-northwind.pdf",
  "format": "pdf",
  "size_bytes": 21384,
  "render_time_ms": 1386,
  "warnings": [],
  "download_url": "https://app.docmake.io/mcp/documents/doc_M6fQVkMHLp04?expires=...&signature=...",
  "download_expires_at": "2026-09-03T06:50:22+00:00"
}

4. Qué ocurre cuando falta algo

La misma llamada sin un nombre de cliente. Las generaciones son estrictas por defecto aquí, así que no se produce nada y la herramienta responde con el problema y la salida. El asistente te pide el valor en lugar de inventarlo.

{
  "content": [
    {
      "type": "text",
      "text": "Nothing was rendered: client.name has no value. Ask the user for the right values and call render_document again, or pass strict:false to render anyway with missing values left blank."
    }
  ],
  "isError": true
}

Fuente y listados

El servidor local es de código abierto, está publicado en npm y aparece en el registro oficial del Protocolo de Contexto de Modelos, así que puedes leer el código antes de ejecutarlo.

[

Fuente

docmake-io/mcp

Código abierto bajo la licencia MIT, etiquetado v0.1.1.

](https://github.com/docmake-io/mcp)[

Paquete

@docmake/mcp

Versión 0.1.1 en npm, ejecutable con npx, sin instalación global.

](https://www.npmjs.com/package/@docmake/mcp)[

Registro

io.docmake/mcp

Listado en el registro oficial del Protocolo de Contexto de Modelos.

](https://registry.modelcontextprotocol.io/v0/servers?search=io.docmake/mcp)

Preguntas

¿Qué es el servidor MCP de DocMake?

Un paquete npm de código abierto (@docmake/mcp) que conecta asistentes de IA con tu cuenta de DocMake a través del Protocolo de Contexto de Modelos. Una vez instalado, asistentes como Claude pueden listar tus plantillas, comprobar qué campos necesitan y generar documentos PDF o DOCX terminados a partir de una conversación normal.

¿Qué herramientas de IA funcionan con él?

Cualquier cliente MCP: Claude Desktop, Claude Code, Cursor, Zed, Windsurf y otros. La configuración es la misma en todas partes: ejecuta @docmake/mcp mediante npx con tu clave de API en el entorno. Claude Code, Cursor y VS Code también pueden apuntar al servidor alojado, con la clave de API enviada como encabezado Authorization.

¿Es de código abierto?

Sí. El servidor está publicado en github.com/docmake-io/mcp bajo la licencia MIT, el paquete es @docmake/mcp en npm y está listado en el registro oficial del Protocolo de Contexto de Modelos como io.docmake/mcp.

¿Puedo usarlo sin instalar nada?

Sí. DocMake aloja las mismas seis herramientas en https://app.docmake.io/mcp/v1 mediante HTTP transmisible. Apunta un cliente que admita MCP remoto a esa URL y envía tu clave de API como encabezado Authorization: Bearer dm_... Tres cosas difieren del paquete local: los documentos generados vuelven como enlaces de descarga de corta duración en lugar de archivos locales, import_docx toma base64 en lugar de una ruta de archivo, y el servidor alojado expone solo herramientas, mientras que el paquete también anuncia recursos y un prompt.

¿Necesita un plan de pago?

No. El plan gratuito incluye acceso a la API, así que el servidor MCP funciona desde el momento en que te registras. Los planes de pago aumentan el volumen mensual de documentos y eliminan la marca de agua del pie de página.

¿Mis datos están seguros?

El servidor local se ejecuta en tu máquina y solo habla con la API de DocMake a través de HTTPS con tu clave de API. Los documentos generados se guardan en una carpeta que tú controlas. El servidor alojado se ejecuta dentro de DocMake y maneja tus datos igual que la API REST, bajo la misma política de privacidad. En ningún caso se envía nada a terceros.