About PDFGate
PDFGate is an MCP server for assistants that need to create and manage PDFs or handle electronic signatures through the PDFGate API. It offers local and hosted connection options, with OAuth or API-key authentication for the hosted endpoint.
Key features
- 01Generate PDFs from URLs or HTML
- 02Upload, retrieve, and process documents
- 03Add form fields, compression, protection, and watermarks
- 04Create and manage signature envelopes
- 05Manage recipients and webhooks
Use cases
- 01Generate a PDF from a webpage or HTML
- 02Prepare PDFs for signing and send them to recipients
- 03Track signature events through webhooks
MCP support
Exposes PDF generation, document processing, e-signature, recipient, and webhook tools to MCP clients. The hosted endpoint supports Streamable HTTP with OAuth or an API key; received webhook events are available as an MCP resource.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://mcp.pdfgate.com/serverclaude mcp add --transport http pdfgate https://mcp.pdfgate.com/server{"mcpServers":{"pdfgate":{"type":"http","url":"https://mcp.pdfgate.com/server"}}}Open in Cursor{"servers":{"pdfgate":{"type":"http","url":"https://mcp.pdfgate.com/server"}}}Open in VS Code{"mcpServers":{"pdfgate":{"type":"http","url":"https://mcp.pdfgate.com/server"}}}{"mcpServers":{"pdfgate":{"serverUrl":"https://mcp.pdfgate.com/server"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
https://mcp.pdfgate.com/serverAuth requiredTools
17| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | No | Public URL to render as PDF |
| html | string | No | Raw HTML string to render as PDF |
| pageSizeType | enum | No | Page size (default: a4)a0 | a1 | a2 | a3 | a4 | a5 | a6 | ledger | tabloid | legal | letter |
| orientation | enum | No | Page orientation (default: portrait)portrait | landscape |
| marginTop | string | No | Top margin e.g. '10mm' |
| marginBottom | string | No | Bottom margin |
| marginLeft | string | No | Left margin |
| marginRight | string | No | Right margin |
| header | string | No | HTML string for the page header |
| footer | string | No | HTML string for the page footer |
| printBackground | boolean | No | Print background graphics (default: true) |
| waitForNetworkIdle | boolean | No | Wait for network idle before rendering |
| javascript | string | No | JavaScript to inject before rendering |
| css | string | No | CSS to inject before rendering |
| emulateMediaType | enum | No | screen | print |
| enableFormFields | boolean | No | Enable interactive PDF form fields from HTML |
| preSignedUrlExpiresIn | integer | No | Pre-signed download URL expiry in seconds (60–86400) |
| metadata | object | No | Custom metadata to attach |
Details
From the project READMEPDFGate MCP Server
Model Context Protocol (MCP) server for the PDFGate API. Enables AI assistants to generate PDFs, manage documents and handle e-signatures.
Installation
Add the following to your MCP client configuration:
{
"mcpServers": {
"pdfgate": {
"command": "npx",
"args": ["-y", "@pdfgate/mcp-server"],
"env": {
"PDFGATE_API_KEY": "your_api_key_here"
}
}
}
}
Hosted server (remote)
If you prefer not to run anything locally, we also host the MCP server, so you can
connect straight to it — no npx, no local process. Point any client that
supports remote (Streamable HTTP) MCP servers at:
https://mcp.pdfgate.com/server
You can authenticate in two ways.
Option 1 — OAuth
For clients that support remote MCP servers with OAuth (such as Claude and ChatGPT), add the server by its URL alone and sign in through your browser. There is no key to copy or store: the client registers itself, sends you to the PDFGate dashboard to approve access, and receives a scoped token automatically.
{
"mcpServers": {
"pdfgate": {
"type": "http",
"url": "https://mcp.pdfgate.com/server"
}
}
}
Many clients let you add this from their UI instead of a config file — for
example, in Claude: Settings → Connectors → Add custom connector, then enter
the URL above. OAuth sessions run against your production account; for the
sandbox, use an X-API-KEY with a test_ key.
Option 2 — API key
Pass your key in the X-API-KEY header:
{
"mcpServers": {
"pdfgate": {
"type": "http",
"url": "https://mcp.pdfgate.com/server",
"headers": {
"X-API-KEY": "your_api_key_here"
}
}
}
}
live_ keys use production and test_ keys use the sandbox — the environment is
selected automatically from the key.
The hosted server provides the full PDFGate toolset (PDF generation, processing,
form fields, e-signatures and webhooks). The exact client config field names
(e.g. type / transport, headers) may vary by MCP client.
Getting an API key
Sign up at pdfgate.com to get your API key.
- Keys starting with
live_connect to the production environment - Keys starting with
test_connect to the sandbox environment
Tools
PDF Operations
| Tool | Description |
|---|---|
generate_pdf | Generate a PDF from a URL or raw HTML |
upload_file | Upload a local PDF file or from a URL |
get_document | Retrieve document metadata and a fresh download URL |
download_file | Download the raw PDF bytes of a stored document |
delete_document | Delete a document |
flatten_pdf | Flatten an interactive PDF into a static, non-editable file |
extract_form_data | Extract form field values from a fillable PDF |
add_form_fields | Add interactive form fields to a PDF (placeholder tags or explicit positions) |
compress_pdf | Compress a PDF to reduce file size |
protect_pdf | Encrypt a PDF with a password and permission restrictions |
watermark_pdf | Apply a text or image watermark to a PDF |
E-Signatures
| Tool | Description |
|---|---|
create_envelope | Create a signing envelope from one or more documents |
send_envelope | Send a created envelope to recipients |
get_envelope | Get the current status of an envelope |
void_envelope | Void an envelope so it can no longer be signed |
delete_envelope | Delete an envelope and remove its signed documents |
create_embed_link | Create a short-lived signing link for an embedded recipient |
Recipients
| Tool | Description |
|---|---|
create_recipient | Store a recipient for reuse across envelopes |
list_recipients | List stored recipients by email |
get_recipient | Retrieve a stored recipient by ID |
update_recipient | Update a stored recipient's name or metadata |
Webhook Management
| Tool | Description |
|---|---|
create_webhook | Subscribe to PDFGate events |
get_webhook | Retrieve a webhook subscription by ID |
delete_webhook | Remove a webhook subscription |
Webhook Triggers
The server listens for incoming PDFGate events on port 3599 by default. To receive events:
- Expose port
3599to the internet (e.g. via ngrok) - Use the
create_webhooktool to register your public URL
Supported events:
| Event | Description |
|---|---|
envelope.sent | Signing request emails have been dispatched to recipients |
envelope.completed | All documents in the envelope have been signed |
envelope.expired | The envelope expired before all documents were signed |
envelope.document.completed | A single document inside the envelope has been fully signed |
envelope.recipient.signed | A recipient has signed a document in the envelope |
envelope.voided | The envelope was voided by the sender |
envelope.deleted | The envelope was deleted |
Received events are available via the pdfgate://events MCP resource and pushed to the client in real time.
Environment variables
| Variable | Required | Default | Description |
|---|---|---|---|
PDFGATE_API_KEY | Yes | — | Your PDFGate API key |
PDFGATE_WEBHOOK_PORT | No | 3599 | Port for the webhook listener |
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.