Convertit du HTML et des URL en PDF, effectue des captures d'écran et génère des factures électroniques conformes aux normes de l'UE via une API REST.
Aussi connu sous polydoc-tech/polydoc-mcp, polydoc-mcp
- Étoiles
- 0
- Outils
- 4
- Téléchargements, 30 jours
- —
- Dernière version
- 0.1.10
- Dernier commit
- 14 nov. 2026
- Licence
- MIT
Qu'est-ce que PolyDoc MCP ?
PolyDoc est un serveur MCP. Convertit du HTML et des URL en PDF, effectue des captures d'écran et génère des factures électroniques conformes aux normes de l'UE via une API REST. Il expose 4 outils, comme polydoc_html_to_pdf, polydoc_screenshot, polydoc_generate_einvoice.
Résumé généré à partir du README du projet
À propos du MCP server PolyDoc
PolyDoc vous permet de convertir du contenu web en documents professionnels ou de réaliser des captures visuelles directement depuis votre assistant IA. Les développeurs utilisant Claude Desktop, Claude Code ou Cursor peuvent se connecter à ce serveur via npx pour automatiser leurs flux de génération de documents. Le serveur s'interface avec l'API REST de PolyDoc en utilisant une clé POLYDOC_API_KEY requise pour effectuer des tâches de rendu complexes.
Les utilisateurs peuvent transformer des chaînes HTML, des URL ou des templates Liquid en PDF respectant des normes d'archivage ou d'accessibilité spécifiques telles que PDF/A et PDF/UA-1. La suite d'outils comprend polydoc_html_to_pdf pour la création de documents, polydoc_screenshot pour la capture d'images dans des formats comme PNG ou WebP, et polydoc_generate_einvoice pour la création de fichiers hybrides Factur-X ou ZUGFeRD conformes aux normes de l'UE. Les fichiers sont sauvegardés dans un répertoire local défini par POLYDOC_OUTPUT_DIR, bien qu'ils puissent également être envoyés vers un stockage cloud ou des webhooks. Pour une conformité critique, l'option verify utilise veraPDF pour garantir que les fichiers respectent des normes strictes avant d'être renvoyés.
Ce que vous pouvez faire avec
- 1Générer des factures électroniques conformesCréez des documents hybrides PDF/A-3 Factur-X ou ZUGFeRD à partir de données de facturation structurées en utilisant des profils spécifiques.
- 2Capturer des captures d'écran de sites webRéalisez des captures visuelles d'une URL ou d'un contenu HTML dans divers formats d'image avec un contrôle sur le viewport et le ratio de pixels.
Extrait du README du projet. Chaque cas d'utilisation est vérifié par rapport à une citation du document.
Comment installer PolyDoc MCP
Formats vérifiés le 10 nov. 2026Ajouter à CursorAjouter à GooseInstaller PolyDoc MCP dans Claude Code
$ claude mcp add --env 'POLYDOC_API_KEY=<YOUR_POLYDOC_API_KEY>' polydoc-mcp -- npx -y polydoc-mcpInstaller PolyDoc MCP dans Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"polydoc-mcp": {
"command": "npx",
"args": [
"-y",
"polydoc-mcp"
],
"env": {
"POLYDOC_API_KEY": "<YOUR_POLYDOC_API_KEY>"
}
}
}
}Installer PolyDoc MCP dans VS Code
.vscode/mcp.json
{
"servers": {
"polydoc-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"polydoc-mcp"
],
"env": {
"POLYDOC_API_KEY": "<YOUR_POLYDOC_API_KEY>"
}
}
}
}Installer PolyDoc MCP dans 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>"}}'Installer PolyDoc MCP dans Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"polydoc-mcp": {
"command": "npx",
"args": [
"-y",
"polydoc-mcp"
],
"env": {
"POLYDOC_API_KEY": "<YOUR_POLYDOC_API_KEY>"
}
}
}
}Installer PolyDoc MCP dans Codex
$ codex mcp add polydoc-mcp --env 'POLYDOC_API_KEY=<YOUR_POLYDOC_API_KEY>' -- npx -y polydoc-mcpInstaller PolyDoc MCP dans 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>"
Installer PolyDoc MCP dans Gemini CLI
$ gemini mcp add -s user -e 'POLYDOC_API_KEY=<YOUR_POLYDOC_API_KEY>' polydoc-mcp npx -- -y polydoc-mcpInstaller PolyDoc MCP dans Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"polydoc-mcp": {
"command": "npx",
"args": [
"-y",
"polydoc-mcp"
],
"env": {
"POLYDOC_API_KEY": "<YOUR_POLYDOC_API_KEY>"
}
}
}
}Outils MCP PolyDoc 4
Détectés depuis le READMEpolydoc_html_to_pdfpolydoc_screenshotpolydoc_generate_einvoicepolydoc_test_credentials
| polydoc_html_to_pdf | — | |
| polydoc_screenshot | — | |
| polydoc_generate_einvoice | — | |
| polydoc_test_credentials | — |
Configuration
POLYDOC_API_KEYRequisSecretAPI 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.
| Nom | Description | Type |
|---|---|---|
| POLYDOC_API_KEY | API key from dashboard.polydoc.tech. | RequisSecret |
| 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. |
Vérifications automatisées
Exécuté le 13 nov. 2026Rapport complet →A passé nos vérifications automatisées. Il ne s'agit pas d'un audit de sécurité : lisez le code et donnez au serveur l'accès le plus restreint dont il a besoin. Fonctionnement des vérifications
- Dépôt source lié et accessiblepolydoc-tech/polydoc-mcp is public and reachablegithub.com/polydoc-tech/polydoc-mcp ↗Réussi
- Le nom du package correspond au dépôt sourcepolydoc-mcp names polydoc-tech/polydoc-mcp as sourcenpmjs.com/package/polydoc-mcp ↗Réussi
- Provenance du build (attestation Sigstore)Sigstore attestation for polydoc-mcpnpmjs.com/package/polydoc-mcp/v/0.1.10#provenance ↗Réussi
- Licence open source (OSI)MITspdx.org/licenses/MIT.html ↗Réussi
- Commit ou version publiée au cours de l'année écouléeLast commit or release 2026-11-13github.com/polydoc-tech/polydoc-mcp ↗Réussi
- OpenSSF ScorecardNon vérifié
- Nom du package non proche d'un package populaireNo popular package one edit away from polydoc-mcpRéussi
- Aucun avis critique dans le package ou ses dépendances99 resolved dependencies checked; no critical advisoryosv.dev ↗Réussi
- Aucune instruction cachée destinée au modèle4 tool descriptions and the README read; no override phrases, credential paths or hidden charactersRéussi
- Les outils destructifs sont étiquetésNo tool named like delete, drop or execRéussi
- Le point de terminaison distant répond à la poignée de main MCPNon vérifié
README
Voir sur 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
Questions sur PolyDoc MCP
Comment ajouter PolyDoc MCP à Claude Code ?
Exécutez claude mcp add --env 'POLYDOC_API_KEY=<YOUR_POLYDOC_API_KEY>' polydoc-mcp -- npx -y polydoc-mcp dans votre terminal. Ajoutez --scope user pour le rendre disponible dans tous les projets.
Comment ajouter PolyDoc MCP à Cursor ?
Ouvrez ~/.cursor/mcp.json et ajoutez le serveur sous mcpServers, avec la configuration Cursor indiquée dans la section d'installation ci-dessus.
Quels outils PolyDoc MCP fournit-il ?
Il expose 4 outils, dont polydoc_html_to_pdf, polydoc_screenshot, polydoc_generate_einvoice, polydoc_test_credentials.
Comment puis-je m'assurer que mon PDF respecte les normes d'archivage ou d'accessibilité ?
Vous pouvez cibler le format PDF/A pour l'archivage ou PDF/UA-1 pour l'accessibilité, et utiliser l'option verify pour valider le résultat avec veraPDF.
Quels formats puis-je utiliser pour les captures d'écran ?
L'outil prend en charge la capture d'écran aux formats PNG, JPEG ou WebP.
Comment tester si ma clé API fonctionne ?
Utilisez l'outil polydoc_test_credentials pour vérifier votre clé avec un rendu minimal en sandbox qui n'utilise pas votre quota de production.