MCP 服务器

docweave-mcp

io.github.NicolasMartalog/docweave-mcp
知识与文档 媒体与内容 公开且可连接 MCP 2026-07-28

此 MCP 可以做什么

Generates PDFs from HTML, URLs, or templates and extracts text from PDF documents.

generate_pdf
Generate PDF
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', 'required': ['source'], 'properties': {'source': {'type': 'object', 'required': ['type'], 'properties': {'url': {'type': 'string', 'description': "Public URL to render (when type is 'url'). Private/internal addresses are blocked."}, 'data': {'type': 'object', 'description': "Values bound into the template's {{ placeholders }}.", 'additionalProperties': True}, 'html': {'type': 'string', 'description': "Raw HTML to render (when type is 'html')."}, 'type': {'enum': ['html', 'url', 'template'], 'type': 'string', 'description': "Source kind: 'html' for a raw HTML string, 'url' for a public web page, 'template' for a template filled with data."}, '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).'}}, 'description': 'What to render. Provide exactly one of: html, url, or (template|templateId) with data.'}, 'options': {'type': 'object', 'properties': {'format': {'enum': ['A4', 'A3', 'Letter', 'Legal', 'Tabloid'], 'type': 'string', 'description': 'Paper size. Defaults to A4.'}, 'margin': {'type': 'string', 'description': "Page margin, e.g. '20mm' or '1in'."}, 'landscape': {'type': 'boolean', 'description': 'Use landscape orientation. Defaults to false.'}, 'printBackground': {'type': 'boolean', 'description': 'Render background colors and images. Defaults to true.'}}, 'description': 'Optional page and print settings.'}, '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.'}}}
输出模式
{'type': 'object', 'required': ['bytesBase64'], 'properties': {'byteSize': {'type': 'number', 'description': 'Size of the PDF in bytes.'}, 'pageCount': {'type': 'number', 'description': 'Number of pages in the PDF.'}, 'bytesBase64': {'type': 'string', 'description': 'The generated PDF, base64-encoded.'}}, 'description': 'The generated document.'}
read_pdf
Read PDF
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', 'required': ['source'], 'properties': {'source': {'type': 'object', 'required': ['type'], 'properties': {'url': {'type': 'string', 'description': "Public URL of the PDF (when type is 'url'). Private/internal addresses are blocked."}, 'type': {'enum': ['url', 'base64'], 'type': 'string', 'description': "'url' for a public PDF URL, 'base64' for inline PDF bytes."}, 'base64': {'type': 'string', 'description': "Base64-encoded PDF bytes (when type is 'base64')."}}, 'description': 'The PDF to read. Provide exactly one of: url or base64.'}, 'options': {'type': 'object', 'properties': {'format': {'enum': ['markdown', 'text'], 'type': 'string', 'description': 'Output shape. Defaults to markdown.'}, 'maxPages': {'type': 'number', 'description': 'Cap the number of pages extracted.'}}, 'description': 'Optional read settings.'}, 'idempotencyKey': {'type': 'string', 'description': 'A stable key. Repeat calls with the same key return the stored result instead of re-reading or re-billing.'}}}
输出模式
{'type': 'object', 'required': ['content'], 'properties': {'content': {'type': 'string', 'description': 'Extracted text in the requested format.'}, 'needsOcr': {'type': 'boolean', 'description': 'True when the PDF is scanned (no text layer) and needs OCR.'}, 'pageCount': {'type': 'number', 'description': 'Number of pages read.'}}, 'description': 'The extracted document.'}
已添加
read_pdf
2026年9月17日 12:45
已添加
generate_pdf
2026年9月17日 12:45