HTML 및 URL을 PDF로 변환하고, 스크린샷을 캡처하며, REST API를 통해 EU 규격의 전자 송장을 생성합니다.
다른 이름 polydoc-tech/polydoc-mcp, polydoc-mcp
- 스타
- 0
- Tools
- 4
- 다운로드, 30일
- —
- 최신 버전
- 0.1.10
- 마지막 커밋
- 2026년 11월 14일
- 라이선스
- MIT
PolyDoc MCP란?
PolyDoc은(는) MCP server입니다. HTML 및 URL을 PDF로 변환하고, 스크린샷을 캡처하며, REST API를 통해 EU 규격의 전자 송장을 생성합니다. 4개 도구를 제공합니다. 예: polydoc_html_to_pdf, polydoc_screenshot, polydoc_generate_einvoice.
프로젝트 README에서 생성된 요약
PolyDoc MCP server 정보
PolyDoc은 웹 콘텐츠를 전문적인 문서로 변환하거나 AI 어시스턴트 내부에서 시각적 스냅샷을 캡처할 수 있게 해줍니다. Claude Desktop, Claude Code 또는 Cursor를 사용하는 개발자는 npx를 통해 이 MCP server에 연결하여 문서 생성 워크플로우를 자동화할 수 있습니다. 이 서버는 필수 항목인 POLYDOC_API_KEY를 사용하여 PolyDoc REST API와 연동하며 복잡한 렌더링 작업을 수행합니다.
사용자는 HTML 문자열, URL 또는 Liquid 템플릿을 PDF/A 및 PDF/UA-1과 같은 특정 보관 또는 접근성 표준을 갖춘 PDF로 변환할 수 있습니다. 도구 모음에는 문서 생성을 위한 polydoc_html_to_pdf, PNG 또는 WebP와 같은 형식으로 이미지를 캡처하는 polydoc_screenshot, 그리고 EU 규격의 Factur-X 또는 ZUGFeRD 하이브리드 파일을 생성하는 polydoc_generate_einvoice가 포함되어 있습니다. 파일은 POLYDOC_OUTPUT_DIR로 정의된 로컬 디렉토리에 저장되지만, 클라우드 스토리지나 웹훅으로 전송할 수도 있습니다. 엄격한 규정 준수가 필요한 경우, verify 옵션이 veraPDF를 사용하여 파일이 반환되기 전에 엄격한 표준을 충족하는지 확인합니다.
활용 사례
- 1규격 준수 전자 송장 생성구조화된 송장 데이터를 사용하여 특정 프로필에 따른 Factur-X 또는 ZUGFeRD 하이브리드 PDF/A-3 문서를 생성합니다.
- 2웹사이트 스크린샷 캡처뷰포트와 픽셀 비율을 제어하여 URL 또는 HTML 콘텐츠를 다양한 이미지 형식으로 시각적 캡처합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
PolyDoc MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 PolyDoc MCP 설치
$ claude mcp add --env 'POLYDOC_API_KEY=<YOUR_POLYDOC_API_KEY>' polydoc-mcp -- npx -y polydoc-mcpCursor에 PolyDoc MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"polydoc-mcp": {
"command": "npx",
"args": [
"-y",
"polydoc-mcp"
],
"env": {
"POLYDOC_API_KEY": "<YOUR_POLYDOC_API_KEY>"
}
}
}
}VS Code에 PolyDoc MCP 설치
.vscode/mcp.json
{
"servers": {
"polydoc-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"polydoc-mcp"
],
"env": {
"POLYDOC_API_KEY": "<YOUR_POLYDOC_API_KEY>"
}
}
}
}VS Code CLI에 PolyDoc MCP 설치
$ code --add-mcp '{"name":"polydoc-mcp","type":"stdio","command":"npx","args":["-y","polydoc-mcp"],"env":{"POLYDOC_API_KEY":"<YOUR_POLYDOC_API_KEY>"}}'Claude Desktop에 PolyDoc MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"polydoc-mcp": {
"command": "npx",
"args": [
"-y",
"polydoc-mcp"
],
"env": {
"POLYDOC_API_KEY": "<YOUR_POLYDOC_API_KEY>"
}
}
}
}Codex에 PolyDoc MCP 설치
$ codex mcp add polydoc-mcp --env 'POLYDOC_API_KEY=<YOUR_POLYDOC_API_KEY>' -- npx -y polydoc-mcpCodex config.toml에 PolyDoc MCP 설치
~/.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>"
Gemini CLI에 PolyDoc MCP 설치
$ gemini mcp add -s user -e 'POLYDOC_API_KEY=<YOUR_POLYDOC_API_KEY>' polydoc-mcp npx -- -y polydoc-mcpGemini settings.json에 PolyDoc MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"polydoc-mcp": {
"command": "npx",
"args": [
"-y",
"polydoc-mcp"
],
"env": {
"POLYDOC_API_KEY": "<YOUR_POLYDOC_API_KEY>"
}
}
}
}PolyDoc MCP 도구 4
README에서 감지됨polydoc_html_to_pdfpolydoc_screenshotpolydoc_generate_einvoicepolydoc_test_credentials
| polydoc_html_to_pdf | — | |
| polydoc_screenshot | — | |
| polydoc_generate_einvoice | — | |
| polydoc_test_credentials | — |
구성
POLYDOC_API_KEY필수비밀API 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.
| 이름 | 설명 | 유형 |
|---|---|---|
| POLYDOC_API_KEY | API key from dashboard.polydoc.tech. | 필수비밀 |
| 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. |
자동 검사
2026년 11월 13일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능polydoc-tech/polydoc-mcp is public and reachablegithub.com/polydoc-tech/polydoc-mcp ↗통과
- 패키지가 이 저장소를 소스로 명시polydoc-mcp names polydoc-tech/polydoc-mcp as sourcenpmjs.com/package/polydoc-mcp ↗통과
- 빌드 출처(Sigstore 증명)Sigstore attestation for polydoc-mcpnpmjs.com/package/polydoc-mcp/v/0.1.10#provenance ↗통과
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-13github.com/polydoc-tech/polydoc-mcp ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음No popular package one edit away from polydoc-mcp통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음99 resolved dependencies checked; no critical advisoryosv.dev ↗통과
- 모델에 대한 숨겨진 지침 없음4 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨No tool named like delete, drop or exec통과
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기polydoc-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
PolyDoc MCP 질문
PolyDoc MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add --env 'POLYDOC_API_KEY=<YOUR_POLYDOC_API_KEY>' polydoc-mcp -- npx -y polydoc-mcp를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
PolyDoc MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
PolyDoc MCP는 어떤 도구를 제공하나요?
4개 도구를 제공합니다. 예: polydoc_html_to_pdf, polydoc_screenshot, polydoc_generate_einvoice, polydoc_test_credentials.
PDF가 보관 또는 접근성 표준을 준수하는지 어떻게 확인합니까?
보관용으로는 PDF/A를, 접근성용으로는 PDF/UA-1을 대상으로 설정할 수 있으며, verify 옵션을 사용하여 veraPDF로 결과물을 검증할 수 있습니다.
스크린샷은 어떤 형식으로 사용할 수 있습니까?
PNG, JPEG 또는 WebP 형식의 스크린샷 캡처를 지원합니다.
API 키가 정상적으로 작동하는지 어떻게 테스트합니까?
polydoc_test_credentials 도구를 사용하여 프로덕션 할당량을 사용하지 않는 최소한의 샌드박스 렌더링으로 키를 검증할 수 있습니다.