PDF Generator API
MCP server for the PDF Generator API — generate PDFs from templates, manage templates and workspaces, watermark, encrypt, optimize, convert HTML/URL to PDF…
What it can do
- Get Status: Returns service status / health
- Add Watermark: Adds a text or an image watermark to PDF document from base64 string or a remote URL.
- Encrypt Document: Encrypts a PDF document from base64 string or a remote URL.
What data it sees
Do you need an account
No: the server works without sign-in
MCP server for the PDF Generator API — generate PDFs from templates, manage templates and workspaces, watermark, encrypt, optimize, convert HTML/URL to PDF, fill PDF forms, create e-invoices, generate QR codes, and more.
How to connect
How to connect PDF Generator API to Claude
The server address to paste into Claude settings:
https://mcp-server--pdf-generator-api.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect PDF Generator API to ChatGPT
The server address to paste into ChatGPT settings:
https://mcp-server--pdf-generator-api.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect PDF Generator API to Cursor
The server address to paste into Cursor settings:
https://mcp-server--pdf-generator-api.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (49)
Raw names from tools/list. Only developers need these.
| get_status | Returns service status / health |
| add_watermark | Adds a text or an image watermark to PDF document from base64 string or a remote URL. |
| encrypt_document | Encrypts a PDF document from base64 string or a remote URL. |
| decrypt_document | Decrypts an encrypted PDF document from base64 string or a remote URL. |
| optimize_document | Optimizes the size of a PDF document from base64 string or a remote URL. |
| make_accessible | Adds accessibility tags to a PDF document from base64 string or a remote URL. |
| extract_form_fields | Extracts form fields and their metadata from a PDF document using base64 string or a remote URL. |
| fill_form_fields | Fills form fields in a PDF document with provided data from base64 string or a remote URL. |
| get_templates | Returns a list of templates available for the authenticated workspace |
| create_template | Creates a new template. If template configuration is not specified in the request body then an empty template is created. Template is placed to the workspace specified in authentication params. Template configuration must be sent in the request body. |
| get_template_schema | Returns Template JSON Schema which defines the structure of the Template Definition. |
| import_template | Creates a template from existing PDF |
| validate_template | Validates if the provided template configuration matches the template JSON schema. |
| get_template | Returns template configuration |
| update_template | Updates template configuration. The template configuration for pages and layout must be complete as the entire configuration is replaced and not merged. |
| delete_template | Deletes the template from workspace |
| get_template_data | Returns all data fields used in the template. Returns structured JSON data that can be used to check which data fields are used in template or autogenerate sample data. |
| copy_template | Creates a copy of a template to the workspace specified in authentication parameters. |
| open_editor | Returns an unique URL which you can use to redirect your user to the editor from your application or use the generated URL as iframe source to show the editor within your application. When using iframe, make sure that your browser allows third-party cookies. |
| list_template_versions | Returns a paginated list of template versions for the specified template. |
| get_template_version | Returns the template definition of the specified version. |
| delete_template_version | Deletes the specified template version. Production versions cannot be deleted. |
| promote_template_version | Promotes the specified template version to production. Only one version can be production at a time. |
| get_documents | Returns a list of generated documents created by authorized workspace and stored in PDF Generator API. If master user is specified as workspace in JWT then all documents created in the organization are returned. NB! This endpoint returns only documents generated using the output=url option. |
| get_document | Returns document stored in the Document Storage |
| delete_document | Delete document from the Document Storage |
| generate_document | Merges template with data and returns base64 encoded document or a public URL to a document. NB! When the public URL option is used, the document is stored for 30 days and automatically deleted. |
| generate_document_async | Merges template with data as asynchronous job and makes POST request to callback URL defined in the request. Request uses the same format as response of synchronous generation endpoint. The job id is also added to the callback request as header PDF-API-Job-Id *Example response from callback URL:* ``` { "response": "https://us1.pdfgeneratorapi.com/share/12821/VBERi0xLjcKJeLjz9MKNyAwIG9i", "meta": { "name": "a2bd25b8921f3dc7a440fd7f427f90a4.pdf", "display_name": "a2bd25b8921f3dc7a440fd7f427f90a4", "encoding": "binary", "content-type": "application/pdf" } } ``` |
| generate_document_batch | Allows to merge multiple templates with data and returns base64 encoded document or public URL to a document. NB! When the public URL option is used, the document is stored for 30 days and automatically deleted. |
| generate_document_batch_async | Merges template with data as asynchronous job and makes POST request to callback URL defined in the request. Request uses the same format as response of synchronous generation endpoint. The job id is also added to the callback request as header PDF-API-Job-Id *Example response from callback URL:* ``` { "response": "https://us1.pdfgeneratorapi.com/share/12821/VBERi0xLjcKJeLjz9MKNyAwIG9i", "meta": { "name": "a2bd25b8921f3dc7a440fd7f427f90a4.pdf", "display_name": "a2bd25b8921f3dc7a440fd7f427f90a4", "encoding": "binary", "content-type": "application/pdf" } } ``` |
| get_async_job_status | Returns status of an async job |
| get_workspaces | Returns all workspaces in the organization |
| create_workspace | Creates a regular workspace with identifier specified in the request. |
| get_workspace | Returns workspace information for the workspace identifier specified in the request. |
| delete_workspace | Delete workspace. Only regular workspaces can be deleted. |
| convert_html_to_pdf | Converts HTML content to PDF |
| convert_url_to_pdf | Converts public URL to PDF |
| get_forms | Returns a list of forms available for the organization |
| create_form | Creates a new form based on the configuration sent in the request body. |
| import_form | Creates a new form based on editable PDF |
| get_form | Returns form configuration |
| update_form | Updates the form configuration. The form configuration must be complete as the entire configuration is replaced and not merged. |
| delete_form | Deletes the form with specified id |
| share_form | Creates an unique sharing URL to collect form data |
| generate_qr_code | Creates a QR code based on the configuration |
| create_einvoice | This endpoint transforms a JSON payload into an XML-based e-invoice that is fully compliant with the European EN 16931 standard. The generated output can be formatted in either UBL (Universal Business Language) or CII (Cross-Industry Invoice) syntax, ensuring interoperability across B2B and B2G platforms. The JSON payload follows Peppol BIS Billing 3.0 UBL Invoice described here: https://docs.peppol.eu/poacc/billing/3.0/ |
| create_xrechnung_einvoice | This endpoint transforms a JSON payload into an XML-based XRechnung e-invoice that is fully compliant with the European EN 16931 standard. The generated output follows the XRechnung format and can be formatted in either UBL (Universal Business Language) or CII (Cross-Industry Invoice) syntax, ensuring interoperability across B2B and B2G platforms. The JSON payload follows Peppol BIS Billing 3.0 UBL Invoice described here: https://docs.peppol.eu/poacc/billing/3.0/ |
| create_facturx_einvoice | This endpoint transforms a JSON payload a Factur-X e-invoice that is fully compliant with the European EN 16931 standard. The generated output is always a PDF document, embedding a structured CII (Cross-Industry Invoice) XML according to the Factur-X format into a human-readable invoice, ensuring interoperability across B2B and B2G platforms. The JSON payload follows Peppol BIS Billing 3.0 UBL Invoice described here: https://docs.peppol.eu/poacc/billing/3.0/ |
| get_einvoice_schema | Returns e-invoice JSON schema which defines the structure of the e-invoice. |