Api2Pdf MCP by usefulapi
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
MCP server for Api2Pdf — generate PDFs & images from HTML, URLs or office files; merge, barcodes.
| Author | io.usefulapi |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 374 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Api2Pdf MCP by usefulapi": {
"url": "https://api2pdf.usefulapi.io/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (16)
api2pdf_html_to_pdfdestructiveRender an HTML string to a PDF using the headless-Chrome engine. Returns a { FileUrl } link (valid ~24h) by default. Great for invoices, reports, and letters produced as HTML. BILLED per document. Api2Pdf API: POST /chrome/pdf/html.
Parameters:
html(required) — string — The HTML source to render into a PDF.inline— boolean — If true (Api2Pdf default), the generated file is served inline; if false, as an attachment.options— object — Engine-specific render options (page size, margins, orientation, headers/footers, etc.). Passed through verbatim to Api2Pdf.storage— object — Custom storage target, used when useCustomStorage is true.fileName— string — A name for the generated file, e.g. 'invoice.pdf'.output_binary— boolean — If true, return the raw file bytes as base64 instead of a FileUrl. Default false (recommended for agents — returns a short-lived link).extraHTTPHeaders— object — Extra HTTP headers Api2Pdf forwards when it fetches a source URL (e.g. auth for a protected page/file).useCustomStorage— boolean — If true, Api2Pdf uploads the result to your own storage (see `storage`) instead of hosting it.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
api2pdf_url_to_pdfdestructiveFetch a web page by URL and render it to a PDF using headless Chrome. Returns a { FileUrl } (valid ~24h). Use extraHTTPHeaders to pass auth for a protected page. BILLED. Api2Pdf API: POST /chrome/pdf/url.
Parameters:
url(required) — string — The URL of the web page Api2Pdf will fetch and render to PDF.inline— boolean — If true (Api2Pdf default), the generated file is served inline; if false, as an attachment.options— object — Engine-specific render options (page size, margins, orientation, headers/footers, etc.). Passed through verbatim to Api2Pdf.storage— object — Custom storage target, used when useCustomStorage is true.fileName— string — A name for the generated file, e.g. 'invoice.pdf'.output_binary— boolean — If true, return the raw file bytes as base64 instead of a FileUrl. Default false (recommended for agents — returns a short-lived link).extraHTTPHeaders— object — Extra HTTP headers Api2Pdf forwards when it fetches a source URL (e.g. auth for a protected page/file).useCustomStorage— boolean — If true, Api2Pdf uploads the result to your own storage (see `storage`) instead of hosting it.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
api2pdf_markdown_to_pdfdestructiveRender a Markdown string to a PDF using headless Chrome. Returns a { FileUrl } (valid ~24h). BILLED. Api2Pdf API: POST /chrome/pdf/markdown.
Parameters:
markdown(required) — string — The Markdown source to render into a PDF.inline— boolean — If true (Api2Pdf default), the generated file is served inline; if false, as an attachment.options— object — Engine-specific render options (page size, margins, orientation, headers/footers, etc.). Passed through verbatim to Api2Pdf.storage— object — Custom storage target, used when useCustomStorage is true.fileName— string — A name for the generated file, e.g. 'invoice.pdf'.output_binary— boolean — If true, return the raw file bytes as base64 instead of a FileUrl. Default false (recommended for agents — returns a short-lived link).extraHTTPHeaders— object — Extra HTTP headers Api2Pdf forwards when it fetches a source URL (e.g. auth for a protected page/file).useCustomStorage— boolean — If true, Api2Pdf uploads the result to your own storage (see `storage`) instead of hosting it.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
api2pdf_html_to_imagedestructiveRender an HTML string to an image using headless Chrome. Returns a { FileUrl } (valid ~24h) by default, or base64 bytes with output_binary:true. BILLED. Api2Pdf API: POST /chrome/image/html.
Parameters:
html(required) — string — The HTML source to render into an image.inline— boolean — If true (Api2Pdf default), the generated file is served inline; if false, as an attachment.options— object — Engine-specific render options (page size, margins, orientation, headers/footers, etc.). Passed through verbatim to Api2Pdf.storage— object — Custom storage target, used when useCustomStorage is true.fileName— string — A name for the generated file, e.g. 'invoice.pdf'.output_binary— boolean — If true, return the raw file bytes as base64 instead of a FileUrl. Default false (recommended for agents — returns a short-lived link).extraHTTPHeaders— object — Extra HTTP headers Api2Pdf forwards when it fetches a source URL (e.g. auth for a protected page/file).useCustomStorage— boolean — If true, Api2Pdf uploads the result to your own storage (see `storage`) instead of hosting it.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
api2pdf_url_to_imagedestructiveTake a screenshot of a live web page by URL using headless Chrome. Returns a { FileUrl } (valid ~24h). BILLED. Api2Pdf API: POST /chrome/image/url.
Parameters:
url(required) — string — The URL of the web page to screenshot.inline— boolean — If true (Api2Pdf default), the generated file is served inline; if false, as an attachment.options— object — Engine-specific render options (page size, margins, orientation, headers/footers, etc.). Passed through verbatim to Api2Pdf.storage— object — Custom storage target, used when useCustomStorage is true.fileName— string — A name for the generated file, e.g. 'invoice.pdf'.output_binary— boolean — If true, return the raw file bytes as base64 instead of a FileUrl. Default false (recommended for agents — returns a short-lived link).extraHTTPHeaders— object — Extra HTTP headers Api2Pdf forwards when it fetches a source URL (e.g. auth for a protected page/file).useCustomStorage— boolean — If true, Api2Pdf uploads the result to your own storage (see `storage`) instead of hosting it.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
api2pdf_wkhtml_to_pdfdestructiveRender an HTML string to a PDF using the wkhtmltopdf engine — an alternate to Chrome that supports a table of contents (pass enableToc / tocOptions inside `options`). Returns a { FileUrl } (valid ~24h). BILLED. Api2Pdf API: POST /wkhtml/pdf/html.
Parameters:
html(required) — string — The HTML source to render into a PDF.inline— boolean — If true (Api2Pdf default), the generated file is served inline; if false, as an attachment.options— object — Engine-specific render options (page size, margins, orientation, headers/footers, etc.). Passed through verbatim to Api2Pdf.storage— object — Custom storage target, used when useCustomStorage is true.fileName— string — A name for the generated file, e.g. 'invoice.pdf'.output_binary— boolean — If true, return the raw file bytes as base64 instead of a FileUrl. Default false (recommended for agents — returns a short-lived link).extraHTTPHeaders— object — Extra HTTP headers Api2Pdf forwards when it fetches a source URL (e.g. auth for a protected page/file).useCustomStorage— boolean — If true, Api2Pdf uploads the result to your own storage (see `storage`) instead of hosting it.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
api2pdf_office_to_pdfdestructiveConvert an office document (Word, Excel, PowerPoint, ODT, and many more) at a URL to a PDF using LibreOffice. Returns a { FileUrl } (valid ~24h). BILLED. Api2Pdf API: POST /libreoffice/any-to-pdf.
Parameters:
url(required) — string — URL of the source document to convert to PDF.inline— boolean — If true (Api2Pdf default), the generated file is served inline; if false, as an attachment.options— object — Engine-specific render options (page size, margins, orientation, headers/footers, etc.). Passed through verbatim to Api2Pdf.storage— object — Custom storage target, used when useCustomStorage is true.fileName— string — A name for the generated file, e.g. 'invoice.pdf'.output_binary— boolean — If true, return the raw file bytes as base64 instead of a FileUrl. Default false (recommended for agents — returns a short-lived link).extraHTTPHeaders— object — Extra HTTP headers Api2Pdf forwards when it fetches a source URL (e.g. auth for a protected page/file).useCustomStorage— boolean — If true, Api2Pdf uploads the result to your own storage (see `storage`) instead of hosting it.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
api2pdf_merge_pdfsdestructiveMerge several existing PDFs (given as URLs, in order) into a single PDF. Returns a { FileUrl } (valid ~24h). BILLED. Api2Pdf API: POST /pdfsharp/merge.
Parameters:
urls(required) — array — URLs of the PDFs to merge, in the order they should appear (at least two).inline— boolean — If true (Api2Pdf default), the generated file is served inline; if false, as an attachment.options— object — Engine-specific render options (page size, margins, orientation, headers/footers, etc.). Passed through verbatim to Api2Pdf.storage— object — Custom storage target, used when useCustomStorage is true.fileName— string — A name for the generated file, e.g. 'invoice.pdf'.output_binary— boolean — If true, return the raw file bytes as base64 instead of a FileUrl. Default false (recommended for agents — returns a short-lived link).extraHTTPHeaders— object — Extra HTTP headers Api2Pdf forwards when it fetches a source URL (e.g. auth for a protected page/file).useCustomStorage— boolean — If true, Api2Pdf uploads the result to your own storage (see `storage`) instead of hosting it.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
api2pdf_compress_pdfdestructiveCompress an existing PDF (given as a URL) to reduce its file size. Returns a { FileUrl } (valid ~24h). BILLED. Api2Pdf API: POST /pdfsharp/compress.
Parameters:
url(required) — string — URL of the PDF to compress.inline— boolean — If true (Api2Pdf default), the generated file is served inline; if false, as an attachment.options— object — Engine-specific render options (page size, margins, orientation, headers/footers, etc.). Passed through verbatim to Api2Pdf.storage— object — Custom storage target, used when useCustomStorage is true.fileName— string — A name for the generated file, e.g. 'invoice.pdf'.output_binary— boolean — If true, return the raw file bytes as base64 instead of a FileUrl. Default false (recommended for agents — returns a short-lived link).extraHTTPHeaders— object — Extra HTTP headers Api2Pdf forwards when it fetches a source URL (e.g. auth for a protected page/file).useCustomStorage— boolean — If true, Api2Pdf uploads the result to your own storage (see `storage`) instead of hosting it.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
api2pdf_extract_pagesdestructiveExtract a range of pages from an existing PDF (given as a URL) into a new PDF. `start`/`end` are 0-based page indices; omit `end` to extract a single page. Returns a { FileUrl } (valid ~24h). BILLED. Api2Pdf API: POST /pdfsharp/extract-pages.
Parameters:
url(required) — string — URL of the source PDF.end— integer — 0-based index of the last page to extract. Omit for a single page (just `start`).start— integer — 0-based index of the first page to extract. Default 0.inline— boolean — If true (Api2Pdf default), the generated file is served inline; if false, as an attachment.options— object — Engine-specific render options (page size, margins, orientation, headers/footers, etc.). Passed through verbatim to Api2Pdf.storage— object — Custom storage target, used when useCustomStorage is true.fileName— string — A name for the generated file, e.g. 'invoice.pdf'.output_binary— boolean — If true, return the raw file bytes as base64 instead of a FileUrl. Default false (recommended for agents — returns a short-lived link).extraHTTPHeaders— object — Extra HTTP headers Api2Pdf forwards when it fetches a source URL (e.g. auth for a protected page/file).useCustomStorage— boolean — If true, Api2Pdf uploads the result to your own storage (see `storage`) instead of hosting it.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
api2pdf_add_passworddestructiveEncrypt an existing PDF (given as a URL) with a user password (required to open) and an optional owner password (controls permissions). Returns a { FileUrl } (valid ~24h). BILLED. Api2Pdf API: POST /pdfsharp/password.
Parameters:
url(required) — string — URL of the PDF to protect.userpassword(required) — string — Password required to OPEN the resulting PDF.inline— boolean — If true (Api2Pdf default), the generated file is served inline; if false, as an attachment.options— object — Engine-specific render options (page size, margins, orientation, headers/footers, etc.). Passed through verbatim to Api2Pdf.storage— object — Custom storage target, used when useCustomStorage is true.fileName— string — A name for the generated file, e.g. 'invoice.pdf'.output_binary— boolean — If true, return the raw file bytes as base64 instead of a FileUrl. Default false (recommended for agents — returns a short-lived link).ownerpassword— string — Optional owner password controlling permissions (printing, editing, etc.).extraHTTPHeaders— object — Extra HTTP headers Api2Pdf forwards when it fetches a source URL (e.g. auth for a protected page/file).useCustomStorage— boolean — If true, Api2Pdf uploads the result to your own storage (see `storage`) instead of hosting it.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
api2pdf_convert_to_markdowndestructiveConvert a document or file (given as a URL — PDF, Office docs, and more) to Markdown text via MarkItDown. Great for feeding a document's contents back to an agent. Returns a { FileUrl } (valid ~24h). BILLED. Api2Pdf API: POST /markitdown.
Parameters:
url(required) — string — URL of the document/file to convert to Markdown.inline— boolean — If true (Api2Pdf default), the generated file is served inline; if false, as an attachment.options— object — Engine-specific render options (page size, margins, orientation, headers/footers, etc.). Passed through verbatim to Api2Pdf.storage— object — Custom storage target, used when useCustomStorage is true.fileName— string — A name for the generated file, e.g. 'invoice.pdf'.output_binary— boolean — If true, return the raw file bytes as base64 instead of a FileUrl. Default false (recommended for agents — returns a short-lived link).extraHTTPHeaders— object — Extra HTTP headers Api2Pdf forwards when it fetches a source URL (e.g. auth for a protected page/file).useCustomStorage— boolean — If true, Api2Pdf uploads the result to your own storage (see `storage`) instead of hosting it.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
api2pdf_generate_barcodedestructiveGenerate a barcode or QR code image. `format` is the symbology (e.g. 'QRCode', 'Code128', 'PDF417', 'DataMatrix') and `value` is the string to encode. Returns a { FileUrl } (valid ~24h) by default, or base64 with output_binary:true. BILLED. Api2Pdf API: GET /zebra.
Parameters:
format(required) — string — Barcode/QR symbology, e.g. 'QRCode', 'Code128', 'PDF417', 'DataMatrix'.value(required) — string — The string to encode in the barcode/QR code.width— integer — Image width in pixels.height— integer — Image height in pixels.showlabel— boolean — If true, render the encoded value as a human-readable label under the barcode.output_binary— boolean — If true, return the raw image bytes as base64 instead of a FileUrl. Default false.
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
api2pdf_get_balanceread-onlyReturn the remaining balance / usage for the configured Api2Pdf account. Api2Pdf API: GET /balance.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
api2pdf_get_statusread-onlyReturn the current Api2Pdf service / health status. Api2Pdf API: GET /status.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
api2pdf_delete_filedestructiveDelete a previously generated file by its ResponseId (the `ResponseId` returned in a generation response). Api2Pdf API: DELETE /file/{ResponseId}.
Parameters:
responseId(required) — string — The ResponseId of the generated file to delete (from a prior generation response).
Hints: read-only not declared · destructive yes · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.