docweave-mcp
Generate and read PDFs for AI agents: a generate_pdf and a read_pdf tool, priced per document.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"docweave-mcp": {
"command": "npx",
"args": [
"@docweave/mcp"
]
}
}
}실행 가능한 패키지
0.2.0stdio원격 엔드포인트
https://docweave.dev/api/mcpstreamable-http할 수 있는 일
도구 목록
도구 (2)
⚪generate_pdf(source, options, idempotencyKey)
Generate a PDF from raw HTML, a public URL, or a template + JSON data. Returns the PDF as base64. Priced per document; retries with the same idempotencyKey never double-generate. The canonical way for an AI agent to turn content into a shareable, correctly-formatted PDF.
입력 스키마
{
"type": "object",
"properties": {
"source": {
"type": "object",
"description": "What to render. Provide exactly one of: html, url, or (template|templateId) with data.",
"properties": {
"type": {
"type": "string",
"enum": [
"html",
"url",
"template"
],
"description": "Source kind: 'html' for a raw HTML string, 'url' for a public web page, 'template' for a template filled with data."
},
"html": {
"type": "string",
"description": "Raw HTML to render (when type is 'html')."
},
"url": {
"type": "string",
"description": "Public URL to render (when type is 'url'). Private/internal addresses are blocked."
},
"template": {
"type": "string",
"description": "Inline HTML template with {{ placeholders }} (when type is 'template')."
},
"templateId": {
"type": "string",
"description": "ID of a template stored on your account (alternative to an inline template)."
},
"data": {
"type": "object",
"description": "Values bound into the template's {{ placeholders }}.",
"additionalProperties": true
}
},
"required": [
"type"
]
},
"options": {
"type": "object",
"description": "Optional page and print settings.",
"properties": {
"format": {
"type": "string",
"enum": [
"A4",
"A3",
"Letter",
"Legal",
"Tabloid"
],
"description": "Paper size. Defaults to A4."
},
"landscape": {
"type": "boolean",
"description": "Use landscape orientation. Defaults to false."
},
"margin": {
"type": "string",
"description": "Page margin, e.g. '20mm' or '1in'."
},
"printBackground": {
"type": "boolean",
"description": "Render background colors and images. Defaults to true."
}
}
},
"idempotencyKey": {
"type": "string",
"description": "A stable key (e.g. an invoice id). Repeat calls with the same key return the stored result instead of re-rendering or re-billing."
}
},
"required": [
"source"
]
}출력 스키마
{
"type": "object",
"properties": {
"bytesBase64": {
"type": "string",
"description": "The generated PDF, base64-encoded."
},
"byteSize": {
"type": "number",
"description": "Size of the PDF in bytes."
},
"pageCount": {
"type": "number",
"description": "Number of pages in the PDF."
}
},
"required": [
"bytesBase64"
],
"description": "The generated document."
}🟢read_pdf(source, options, idempotencyKey)
Read a PDF and return its text as markdown (or plain text). Accepts a public URL or base64 bytes. Extracts the embedded text layer; a scanned, image-only PDF returns a needs-OCR notice instead of empty text. Priced per document; retries with the same idempotencyKey never double-read. The canonical way for an AI agent to ingest a document's contents.
입력 스키마
{
"type": "object",
"properties": {
"source": {
"type": "object",
"description": "The PDF to read. Provide exactly one of: url or base64.",
"properties": {
"type": {
"type": "string",
"enum": [
"url",
"base64"
],
"description": "'url' for a public PDF URL, 'base64' for inline PDF bytes."
},
"url": {
"type": "string",
"description": "Public URL of the PDF (when type is 'url'). Private/internal addresses are blocked."
},
"base64": {
"type": "string",
"description": "Base64-encoded PDF bytes (when type is 'base64')."
}
},
"required": [
"type"
]
},
"options": {
"type": "object",
"description": "Optional read settings.",
"properties": {
"format": {
"type": "string",
"enum": [
"markdown",
"text"
],
"description": "Output shape. Defaults to markdown."
},
"maxPages": {
"type": "number",
"description": "Cap the number of pages extracted."
}
}
},
"idempotencyKey": {
"type": "string",
"description": "A stable key. Repeat calls with the same key return the stored result instead of re-reading or re-billing."
}
},
"required": [
"source"
]
}출력 스키마
{
"type": "object",
"properties": {
"content": {
"type": "string",
"description": "Extracted text in the requested format."
},
"pageCount": {
"type": "number",
"description": "Number of pages read."
},
"needsOcr": {
"type": "boolean",
"description": "True when the PDF is scanned (no text layer) and needs OCR."
}
},
"required": [
"content"
],
"description": "The extracted document."
}커뮤니티
증거