PDFops

Herramientas PDF deterministas para agentes de IA: inspeccionar campos AcroForm, rellenar formularios, fusionar PDFs y generar facturas. Prueba sin clave, npx -y pdfops-mcp.

Documentación

pdfops-mcp

Servidor MCP que brinda a los agentes de IA herramientas PDF deterministas, respaldado por la API de PDFops: inspeccionar campos de AcroForm, completar formularios, fusionar PDFs y generar facturas — sin Chromium, sin dependencias nativas, nada que alojar.

Además de un agente local, las herramientas operan sobre rutas de archivo, por lo que los bytes PDF nunca transitan por el contexto del modelo: tu agente dice "completa /tmp/form.pdf y guarda en /tmp/out.pdf" y recibe una confirmación de una línea. Cada entrada PDF también acepta una URL https:// o un URI data:application/pdf;base64,…, y cada salida puede devolverse en línea en lugar de escribirse — que es lo que hace que el servidor funcione en entornos de ejecución alojados (ver más abajo).

Instalación

Claude Code

claude mcp add pdfops -- npx -y pdfops-mcp
# with a key:
claude mcp add pdfops -e PDFOPS_API_KEY=pdfops_live_… -- npx -y pdfops-mcp

Claude Desktop (claude_desktop_config.json) / Cursor (.cursor/mcp.json)

{
  "mcpServers": {
    "pdfops": {
      "command": "npx",
      "args": ["-y", "pdfops-mcp"],
      "env": { "PDFOPS_API_KEY": "pdfops_live_…" }
    }
  }
}

VS Code (.vscode/mcp.json, nota la clave servers y type)

{
  "servers": {
    "pdfops": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "pdfops-mcp"],
      "env": { "PDFOPS_API_KEY": "pdfops_live_…" }
    }
  }
}

Cualquier otro cliente stdio (Windsurf, Cline, Zed, tu propio agente): comando npx, argumentos -y pdfops-mcp. Guía por cliente y una transcripción real de llamadas a herramientas: pdfops.dev/mcp.

PDFOPS_API_KEY es opcional — sin él obtienes la prueba sin clave (100 solicitudes/IP/mes). Una clave gratuita (250/mes, sin tarjeta) toma un campo en pdfops.dev/pricing.

Herramientas

HerramientaQué hace
pdf_inspectLista los campos de formulario de un PDF (nombres, tipos, opciones, valores) + una plantilla de completado lista para pegar. Llámala primero en PDFs desconocidos.
pdf_fillCompleta campos AcroForm → escribe el PDF completado. El flatten opcional integra los valores y elimina el formulario.
pdf_mergeFusiona ≥2 PDFs en orden → escribe el resultado.
pdf_invoiceDatos estructurados → PDF de factura completo. Determinista: misma entrada, salida byte-idéntica.
pdfops_usageVerificación de cuota para la clave configurada.

Ejecución remota (Smithery, Glama alojado, pasarelas de IDE en la nube)

Un entorno de ejecución MCP alojado ejecuta este servidor en una máquina donde las rutas de archivo de tu agente no existen. Nada cambia en la configuración — pasa fuentes que el servidor pueda alcanzar y omite output_path:

  • Entradas (pdf_path, pdf_paths): una URL https:// que el servidor pueda obtener (≤50 MB), o un URI data:application/pdf;base64,… para archivos pequeños.
  • Salidas: omite output_path y pdf_fill / pdf_merge / pdf_invoice devuelven el PDF en línea como un recurso application/pdf incrustado (pdfops://filled.pdf, …) que el cliente guarda. Con output_path configurado, el archivo se escribe donde se ejecuta el servidor.

Localmente, las rutas absolutas siguen funcionando exactamente como antes y siguen siendo la forma recomendada — los bytes permanecen fuera del contexto del modelo.

Ejemplos de indicaciones

  • "¿Qué campos tiene ~/forms/fw9.pdf?" → pdf_inspect
  • "Completa ~/forms/fw9.pdf para Ada Lovelace, 12 Analytical Way, Londres; guárdalo aplanado como ~/out/w9-ada.pdf" → pdf_inspect, luego pdf_fill con flatten: true
  • "Completa el formulario de incorporación una vez por fila de contractors.csv en ~/out/" → un pdf_inspect, luego pdf_fill por fila
  • "Fusiona ~/out/w9-ada.pdf, ~/docs/nda.pdf y ~/docs/cover.pdf en un solo paquete, portada primero" → pdf_merge
  • "Factura a Globex por 3 días de consultoría a $650, impuesto del 8.5%, vencimiento en 30 días" → pdf_invoice
  • "¿Cuántas solicitudes de PDFops me quedan este mes?" → pdfops_usage

Flujo de agente de ejemplo

"Completa la plantilla W-9 en ~/docs/w9.pdf para Ada Lovelace y fúndela con ~/docs/cover.pdf"

  1. pdf_inspect → descubre nombres de campos + plantilla de completado
  2. pdf_fill → escribe el W-9 completado
  3. pdf_merge → escribe el paquete combinado

Enlaces

Documentación de la API: pdfops.dev/docs · OpenAPI: pdfops.dev/openapi.json · Cliente tipado: pdfops-sdk · Preguntas: hello@pdfops.dev

Política de privacidad

Este servidor se ejecuta en tu máquina y envía solo lo que una llamada de herramienta necesita a la API de PDFops (https://pdfops.dev): los bytes PDF a los que apuntas, los valores de campo que proporcionas y tu clave API si configuras una. PDFops procesa la solicitud en memoria y devuelve el resultado; no almacena tus documentos. El uso anónimo se mide por IP y por etiqueta de cliente (mcp) solo para cuota y atribución. Nada se comparte con terceros. La política completa, incluidos retención y datos de contacto, está en https://pdfops.dev/privacy. Preguntas: hello@pdfops.dev.

MIT © PDFops