Convierte HTML y URLs a PDF, captura capturas de pantalla y genera facturas electrónicas conformes a la normativa de la UE mediante una API REST.
También conocido como polydoc-tech/polydoc-mcp, polydoc-mcp
- Stars
- 0
- Herramientas
- 4
- Descargas, 30 días
- —
- Última versión
- 0.1.10
- Último commit
- 14 nov 2026
- Licencia
- MIT
¿Qué es PolyDoc MCP?
PolyDoc es un MCP server. Convierte HTML y URLs a PDF, captura capturas de pantalla y genera facturas electrónicas conformes a la normativa de la UE mediante una API REST. Expone 4 herramientas, como polydoc_html_to_pdf, polydoc_screenshot, polydoc_generate_einvoice.
Resumen generado a partir del README del proyecto
Acerca del MCP server de PolyDoc
PolyDoc te permite convertir contenido web en documentos profesionales o realizar capturas visuales directamente desde tu asistente de IA. Los desarrolladores que utilicen Claude Desktop, Claude Code o Cursor pueden conectarse a este servidor vía npx para automatizar flujos de trabajo de generación de documentos. El servidor se comunica con la API REST de PolyDoc utilizando una POLYDOC_API_KEY obligatoria para ejecutar tareas de renderizado complejas.
Los usuarios pueden transformar cadenas HTML, URLs o plantillas Liquid en PDFs con estándares específicos de archivo o accesibilidad, como PDF/A y PDF/UA-1. El conjunto de herramientas incluye polydoc_html_to_pdf para la creación de documentos, polydoc_screenshot para capturar imágenes en formatos como PNG o WebP, y polydoc_generate_einvoice para crear archivos híbridos Factur-X o ZUGFeRD que cumplen con la normativa de la UE. Los archivos se guardan en un directorio local definido por POLYDOC_OUTPUT_DIR, aunque también pueden enviarse a almacenamiento en la nube o webhooks. Para garantizar el cumplimiento en procesos críticos, la opción verify utiliza veraPDF para asegurar que los archivos cumplan con estándares estrictos antes de ser entregados.
Qué puedes hacer con él
- 1Generar facturas electrónicas conformes a la normativaCrea documentos híbridos PDF/A-3 de tipo Factur-X o ZUGFeRD a partir de datos de facturación estructurados utilizando perfiles específicos.
- 2Capturar capturas de pantalla de sitios webRealiza capturas visuales de una URL o contenido HTML en varios formatos de imagen con control sobre el viewport y el pixel ratio.
Escrito a partir del README del proyecto. Cada caso de uso se verifica con una cita del mismo.
Cómo instalar PolyDoc MCP
Formatos verificados el 10 nov 2026Añadir a CursorAñadir a GooseInstalar PolyDoc MCP en Claude Code
$ claude mcp add --env 'POLYDOC_API_KEY=<YOUR_POLYDOC_API_KEY>' polydoc-mcp -- npx -y polydoc-mcpInstalar PolyDoc MCP en Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"polydoc-mcp": {
"command": "npx",
"args": [
"-y",
"polydoc-mcp"
],
"env": {
"POLYDOC_API_KEY": "<YOUR_POLYDOC_API_KEY>"
}
}
}
}Instalar PolyDoc MCP en VS Code
.vscode/mcp.json
{
"servers": {
"polydoc-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"polydoc-mcp"
],
"env": {
"POLYDOC_API_KEY": "<YOUR_POLYDOC_API_KEY>"
}
}
}
}Instalar PolyDoc MCP en VS Code CLI
$ code --add-mcp '{"name":"polydoc-mcp","type":"stdio","command":"npx","args":["-y","polydoc-mcp"],"env":{"POLYDOC_API_KEY":"<YOUR_POLYDOC_API_KEY>"}}'Instalar PolyDoc MCP en Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"polydoc-mcp": {
"command": "npx",
"args": [
"-y",
"polydoc-mcp"
],
"env": {
"POLYDOC_API_KEY": "<YOUR_POLYDOC_API_KEY>"
}
}
}
}Instalar PolyDoc MCP en Codex
$ codex mcp add polydoc-mcp --env 'POLYDOC_API_KEY=<YOUR_POLYDOC_API_KEY>' -- npx -y polydoc-mcpInstalar PolyDoc MCP en Codex config.toml
~/.codex/config.toml
[mcp_servers.polydoc-mcp] command = "npx" args = ["-y", "polydoc-mcp"] [mcp_servers.polydoc-mcp.env] POLYDOC_API_KEY = "<YOUR_POLYDOC_API_KEY>"
Instalar PolyDoc MCP en Gemini CLI
$ gemini mcp add -s user -e 'POLYDOC_API_KEY=<YOUR_POLYDOC_API_KEY>' polydoc-mcp npx -- -y polydoc-mcpInstalar PolyDoc MCP en Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"polydoc-mcp": {
"command": "npx",
"args": [
"-y",
"polydoc-mcp"
],
"env": {
"POLYDOC_API_KEY": "<YOUR_POLYDOC_API_KEY>"
}
}
}
}Herramientas de PolyDoc MCP 4
Detectado desde el READMEpolydoc_html_to_pdfpolydoc_screenshotpolydoc_generate_einvoicepolydoc_test_credentials
| polydoc_html_to_pdf | — | |
| polydoc_screenshot | — | |
| polydoc_generate_einvoice | — | |
| polydoc_test_credentials | — |
Configuración
POLYDOC_API_KEYObligatorioSecretoAPI key from dashboard.polydoc.tech.
POLYDOC_BASE_URLOverride for self-hosted or staging use. Defaults to https://api.polydoc.tech.
POLYDOC_OUTPUT_DIRDirectory downloads are written to. Defaults to the OS temp dir + /polydoc.
POLYDOC_SANDBOXDefault sandbox mode (watermarked, does not use production quota). A tool call can override per request. Defaults to false.
| Nombre | Descripción | Tipo |
|---|---|---|
| POLYDOC_API_KEY | API key from dashboard.polydoc.tech. | ObligatorioSecreto |
| POLYDOC_BASE_URL | Override for self-hosted or staging use. Defaults to https://api.polydoc.tech. | |
| POLYDOC_OUTPUT_DIR | Directory downloads are written to. Defaults to the OS temp dir + /polydoc. | |
| POLYDOC_SANDBOX | Default sandbox mode (watermarked, does not use production quota). A tool call can override per request. Defaults to false. |
Verificaciones automáticas
Ejecutado 13 nov 2026Informe completo →Pasó nuestras verificaciones automáticas. Esto no es una auditoría de seguridad: lee el código y dale al servidor el acceso más limitado que necesite. Cómo funcionan las verificaciones
- Repositorio de origen vinculado y accesiblepolydoc-tech/polydoc-mcp is public and reachablegithub.com/polydoc-tech/polydoc-mcp ↗Aprobado
- El paquete indica este repositorio como su origenpolydoc-mcp names polydoc-tech/polydoc-mcp as sourcenpmjs.com/package/polydoc-mcp ↗Aprobado
- Procedencia de la compilación (atestación de Sigstore)Sigstore attestation for polydoc-mcpnpmjs.com/package/polydoc-mcp/v/0.1.10#provenance ↗Aprobado
- Licencia de código abierto (OSI)MITspdx.org/licenses/MIT.html ↗Aprobado
- Commit o lanzamiento en el último añoLast commit or release 2026-11-13github.com/polydoc-tech/polydoc-mcp ↗Aprobado
- OpenSSF ScorecardNo verificado
- El nombre del paquete no es similar a un paquete popularNo popular package one edit away from polydoc-mcpAprobado
- No hay avisos críticos en el paquete ni en sus dependencias99 resolved dependencies checked; no critical advisoryosv.dev ↗Aprobado
- Sin instrucciones ocultas para el modelo4 tool descriptions and the README read; no override phrases, credential paths or hidden charactersAprobado
- Las herramientas destructivas están etiquetadasNo tool named like delete, drop or execAprobado
- El endpoint remoto responde al handshake de MCPNo verificado
README
Ver en GitHubpolydoc-mcp
An MCP server for PolyDoc, a REST API that converts HTML or URLs to PDF, captures screenshots, and generates EU-compliant e-invoices (Factur-X / ZUGFeRD hybrid PDF/A-3). It lets MCP clients (Claude Desktop, Claude Code, Cursor, and others) drive PolyDoc directly.
PDF output can target PDF/A (archival) and PDF/UA-1 (accessible, ISO 14289-1). Both are best-effort by default; set verify on either to validate the result with veraPDF and fail the request instead of returning a non-conforming file.
Tools
polydoc_html_to_pdf- HTML, URL, or saved template to PDF (layout, margins, page format, page ranges, bookmarks, tagged PDFs, PDF/A and PDF/UA conformance).polydoc_screenshot- HTML, URL, or template to PNG / JPEG / WebP, with viewport and device-pixel-ratio control. Returns an inline image preview when small enough.polydoc_generate_einvoice- Factur-X or ZUGFeRD hybrid PDF/A-3 from structured invoice data, profilesbasic,en16931andextended.polydoc_test_credentials- verify the configured API key with a minimal sandbox render (never draws production quota).
Content can come from a URL, an inline HTML string, or a saved template (with Liquid templateData). Downloads are written to a local directory and the file path is returned; you can also deliver to your cloud storage (presigned URL) or a webhook.
Installation
Requires Node.js >= 20.15. Published to npm, so clients can run it with npx:
npx -y polydoc-mcp
The server is configured entirely through environment variables (see below).
Configuration
| Variable | Required | Default | Description |
|---|---|---|---|
POLYDOC_API_KEY |
yes | - | API key from dashboard.polydoc.tech. |
POLYDOC_SANDBOX |
no | false |
Default sandbox mode (watermarked, rate-limited). A tool call can override per request. |
POLYDOC_BASE_URL |
no | https://api.polydoc.tech |
Override for self-hosted or staging. |
POLYDOC_OUTPUT_DIR |
no | OS temp dir + /polydoc |
Where downloads are written. Output never escapes this folder. |
Client setup
Claude Desktop
Add to claude_desktop_config.json (Settings > Developer > Edit Config):
{
"mcpServers": {
"polydoc": {
"command": "npx",
"args": ["-y", "polydoc-mcp"],
"env": {
"POLYDOC_API_KEY": "your-key",
"POLYDOC_OUTPUT_DIR": "/Users/you/Documents/polydoc"
}
}
}
}
Claude Code
claude mcp add polydoc -e POLYDOC_API_KEY=your-key -- npx -y polydoc-mcp
Cursor
Add to ~/.cursor/mcp.json (or a project .cursor/mcp.json) using the same mcpServers block shown for Claude Desktop.
Output and delivery
- Download (default): the file is written under
POLYDOC_OUTPUT_DIRand the absolute path is returned with metadata (size, conversion id, credits). Screenshots also return an inline image block. PassreturnBase64: trueto also receive the bytes as base64 (heavy; for clients without a filesystem). - Cloud storage: set
delivery: "cloudStorage"andpresignedUrl. The upload URL is returned. - Webhook: set
delivery: "webhook"and awebhookobject ({ url, async?, method?, headers? }).
PDF/A and PDF/UA
polydoc_html_to_pdf takes two conformance targets inside pdfOptions:
{
"pdfOptions": {
"pdfa": { "level": "3b", "verify": true },
"pdfua": { "verify": true }
}
}
pdfa.level is 1b, 2b, or 3b. Setting pdfua forces a tagged render, so you do not need tagged as well.
Without verify, output is best-effort: it targets the standard but the request still succeeds if the toolchain cannot satisfy every machine-checkable rule. With verify: true, veraPDF validates the result and a non-conforming file fails with 422 instead of being returned. Use it when a downstream system will reject a bad file anyway.
Anything not in a tool's schema?
Every conversion tool has an advanced object that is deep-merged into the request body, so any API capability not surfaced as a typed field (for example pdf.watermark, pdf.encryption, render, request) is still reachable. See the field reference at docs.polydoc.tech.
Examples
Worked tool inputs for each angle live in examples/: a branded PDF from a template, a URL screenshot, and a ZUGFeRD / EN 16931 e-invoice.
Development
yarn installyarn build- compile todist/yarn lintyarn test- unit tests (request builder, output jail, tool handlers) and an in-memory MCP round-tripPOLYDOC_API_KEY=your-key yarn test:integration- live smoke tests against the sandboxyarn scrub:check- check for em-dashes in source and docs
Run the built server directly for a quick check:
POLYDOC_API_KEY=your-key node dist/index.js
License
Preguntas sobre PolyDoc MCP
¿Cómo agrego PolyDoc MCP a Claude Code?
Ejecuta claude mcp add --env 'POLYDOC_API_KEY=<YOUR_POLYDOC_API_KEY>' polydoc-mcp -- npx -y polydoc-mcp en tu terminal. Añade --scope user para que esté disponible en todos los proyectos.
¿Cómo agrego PolyDoc MCP a Cursor?
Abre ~/.cursor/mcp.json y añade el servidor en mcpServers, usando la configuración de Cursor que se muestra en la sección de instalación de arriba.
¿Qué herramientas proporciona PolyDoc MCP?
Expone 4 herramientas, incluidas polydoc_html_to_pdf, polydoc_screenshot, polydoc_generate_einvoice, polydoc_test_credentials.
¿Cómo puedo asegurarme de que mi PDF cumpla con los estándares de archivo o accesibilidad?
Puedes elegir PDF/A para archivo o PDF/UA-1 para accesibilidad, y utilizar la opción verify para validar el resultado con veraPDF.
¿Qué formatos puedo usar para las capturas de pantalla?
La herramienta permite capturar pantallas en formatos PNG, JPEG o WebP.
¿Cómo compruebo si mi API key funciona?
Usa la herramienta polydoc_test_credentials para verificar tu clave con un renderizado mínimo en sandbox que no consume tu cuota de producción.