# PDFGate MCP Server [Health: Active]

**Category:** ⚖️ Legal  
**Repository:** https://github.com/pdfgate/pdfgate-mcp-server  
**GitHub Stars:** 0  
**npm Downloads (last month):** 1039  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/mcp-server-37

## Description
MCP server for the PDFGate API. Generate PDFs, manage documents and handle e-signatures.

## Tools
Capabilities this server exposes over MCP:

- **generate_pdf** — Generate a PDF from a URL or raw HTML. Provide either 'url' or 'html', not both.
- **upload_file** — Upload a PDF to PDFGate so it can be referenced by other operations. Provide either 'filePath' (local path) or 'url'.
- **get_document** — Retrieve metadata for a stored PDFGate document by its ID.
- **delete_document** — Delete a PDFGate document.
- **flatten_pdf** — Flatten an interactive PDF into a static, non-editable PDF. Creates a new document; does not overwrite the original.
- **extract_form_data** — Extract form field values from a fillable PDF. Returns a JSON object mapping field names to their values.
- **add_form_fields** — Add interactive form fields to a stored PDF — from placeholder tags (refined via fieldOverrides) and/or explicitly positioned fields.
- **compress_pdf** — Compress/optimise a PDF to reduce file size without changing visual content.
- **protect_pdf** — Encrypt a PDF with a password and optional permission restrictions. Produces a new document; the original is unchanged.
- **watermark_pdf** — Apply a text or image watermark to a PDF. For type='text' provide 'text'; for type='image' provide 'watermarkImagePath'.
- **download_file** — Download the raw PDF bytes of a stored document, returned as an embedded resource. For a shareable link instead, use get_document.
- **create_envelope** — Create a signing envelope from one or more existing PDFGate documents. Each recipient is given either as email and name or as the recipientId of a stored recipient. Recipients marked embedded sign inside your application via create_embed_link and receive no emails. Returns an envelope in 'created' status; call send_envelope to dispatch signing emails.
- **send_envelope** — Send a created envelope to its recipients. PDFGate dispatches signing emails with secure, OTP-protected links that stay valid until the envelope expires. Embedded recipients receive no email; create their signing links with create_embed_link after sending.
- **get_envelope** — Retrieve the current state of an envelope including its status, document progress, and per-recipient signing status. Each recipient carries an embedded boolean; embedded recipients have no signing link — mint one with create_embed_link instead.
- **void_envelope** — Void (cancel) an envelope in 'created' or 'in_progress' status. Recipients who have not signed are notified by email and their signing links stop working; documents already signed by all recipients are not affected. The optional reason is visible to recipients. Cannot be undone.
- **delete_envelope** — Permanently delete an envelope and the files it produced (signed documents and audit logs). Recipient data is anonymized and recipients lose access; source documents are not deleted. Only envelopes in 'draft', 'completed', 'expired', or 'voided' status can be deleted — void an active envelope first. Cannot be undone.
- **create_embed_link** — Create a short-lived signing URL for an embedded recipient, to be rendered in an iframe inside your application. The envelope must be in 'in_progress' status and the link expires after 10 minutes, so create it when the signer is ready (one link per signing session). When the session ends the iframe redirects to returnUrl with event (signing_complete, voided, expired or not_found), envelopeId, documentId and recipientId appended as query parameters; existing returnUrl query parameters are preserved.
- **create_recipient** — Store a recipient in your account so envelopes can reference them by recipientId. Emails are not unique; every call creates a new recipient, so use list_recipients first when reuse is intended.
- **list_recipients** — List stored recipients with the given email (case-insensitive), oldest first.
- **get_recipient** — Retrieve a stored recipient by ID.
- **update_recipient** — Update a stored recipient's name or metadata. The email cannot be changed. Existing envelopes are not affected; they keep the recipient name they were created with.
- **create_webhook** — Create a PDFGate webhook subscription. The response includes a signing secret — store it securely to verify incoming event signatures.
- **get_webhook** — Retrieve a PDFGate webhook subscription by its ID.
- **delete_webhook** — Delete a PDFGate webhook subscription. Future events will no longer be delivered to the associated endpoint.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "pdfgate-mcp-server": {
    "command": "npx",
    "args": ["-y","@pdfgate/mcp-server"],
    "env": {
      "PDFGATE_API_KEY": ""
    }
  }
}
```

**Requires environment variables:** `PDFGATE_API_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What PDFGate MCP Server MCP server does

The PDFGate MCP Server MCP server connects an MCP client to PDFGate’s document and e-signature API. It can create PDFs from a URL or raw HTML, upload existing PDFs, retrieve document metadata, download file bytes, and remove stored documents. Operations that modify a document can create a new stored document while preserving the source, including flattening, protection, compression, and watermarking.

Form workflows are supported in both directions. The server can read values from fillable PDFs and add interactive fields using placeholder tags, field overrides, or explicitly positioned fields. Watermarks can use text or an image, while password protection can include permission restrictions.

Signing workflows use envelopes built from one or more stored documents. Agents can create an envelope, send it to recipients, inspect signing progress, void active envelopes, or delete eligible envelopes and their produced files. Embedded recipients can sign inside an application through a short-lived link created for an iframe session.

## How it works

PDFGate documents are referenced by IDs returned from upload or generation operations. Those IDs are then supplied to processing, download, and envelope tools. Envelopes begin in a created state and must be sent before PDFGate dispatches signing emails. Embedded recipients do not receive email; an application creates a signing link after the envelope is in progress.

Recipient records can be stored and reused by ID. The server also exposes webhook management. Registered events include envelope sent, completed, expired, voided, deleted, document completion, and recipient signing. Incoming events are available through the `pdfgate://events` MCP resource.

## Setup and configuration

Run the PDFGate MCP Server MCP server locally through the `@pdfgate/mcp-server` npm package and provide `PDFGATE_API_KEY`. Keys beginning with `live_` select production, while `test_` keys select the sandbox. The webhook listener uses port `3599` by default and can be changed with `PDFGATE_WEBHOOK_PORT`.

A hosted option is available at `https://mcp.pdfgate.com/server`. MCP clients that support remote Streamable HTTP servers can authenticate through OAuth, or send an `X-API-KEY` header. OAuth sessions use the production account; sandbox access uses a `test_` key. To receive webhook events, expose the listener to the internet and register the public URL with `create_webhook`.

## Tools and capabilities

- Generate PDFs from URLs or HTML and upload local files or remote URLs.
- Retrieve, download, delete, flatten, compress, protect, and watermark documents.
- Extract fillable form data and add interactive fields.
- Create, send, inspect, void, and delete signing envelopes.
- Create embedded signing links and manage stored recipients.
- Create, inspect, and delete webhook subscriptions.

## Limitations and notes

Generation accepts either a URL or raw HTML, not both. Uploading likewise accepts either a local file path or a URL. Flattening and protection produce new documents rather than overwriting the original. Deleting an envelope also removes its signed documents and audit logs, cannot be undone, and is restricted by envelope status; active envelopes must be voided first.

Embedded links expire after 10 minutes and should be created when the signer is ready. A separate link is needed for each signing session. The local webhook listener requires an internet-accessible endpoint, such as one exposed through a tunneling service. The provided material does not specify a software license or PDFGate pricing.

_Full upstream README: https://allmcps.com/mcp/mcp-server-37/readme_

