PDFGate MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PDFGATE_API_KEY | Yes | Your PDFGate API key | |
| PDFGATE_WEBHOOK_PORT | No | Port for the webhook listener | 3599 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| generate_pdfB | Generate a PDF from a URL or raw HTML. Provide either 'url' or 'html', not both. |
| upload_fileA | Upload a PDF to PDFGate so it can be referenced by other operations. Provide either 'filePath' (local path) or 'url'. |
| get_documentC | Retrieve metadata for a stored PDFGate document by its ID. |
| delete_documentA | Delete a PDFGate document. |
| flatten_pdfA | Flatten an interactive PDF into a static, non-editable PDF. Creates a new document; does not overwrite the original. |
| extract_form_dataA | Extract form field values from a fillable PDF. Returns a JSON object mapping field names to their values. |
| add_form_fieldsA | Add interactive form fields to a stored PDF — from placeholder tags (refined via fieldOverrides) and/or explicitly positioned fields. |
| compress_pdfA | Compress/optimise a PDF to reduce file size without changing visual content. |
| protect_pdfA | Encrypt a PDF with a password and optional permission restrictions. Produces a new document; the original is unchanged. |
| watermark_pdfB | Apply a text or image watermark to a PDF. For type='text' provide 'text'; for type='image' provide 'watermarkImagePath'. |
| download_fileA | Download the raw PDF bytes of a stored document, returned as an embedded resource. For a shareable link instead, use get_document. |
| create_envelopeA | 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. Use signingOrder to make recipients sign in sequence. Returns an envelope in 'created' status; call send_envelope to dispatch signing emails. |
| send_envelopeA | 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. On documents with a signingOrder only the first recipients are emailed; later recipients are activated as earlier ones sign. |
| get_envelopeA | 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. Recipients on ordered documents carry signingOrder and, once it is their turn, activatedAt. |
| void_envelopeA | 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_envelopeA | 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_linkA | 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). On documents with a signingOrder the link can only be created once it is the recipient's turn; the envelope.recipient.activated webhook event signals that moment. 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_recipientA | 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_recipientsA | List stored recipients with the given email (case-insensitive), oldest first. |
| get_recipientA | Retrieve a stored recipient by ID. |
| update_recipientA | 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_webhookA | Create a PDFGate webhook subscription. The response includes a signing secret — store it securely to verify incoming event signatures. |
| get_webhookB | Retrieve a PDFGate webhook subscription by its ID. |
| delete_webhookA | Delete a PDFGate webhook subscription. Future events will no longer be delivered to the associated endpoint. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| pdfgate-events | Recent PDFGate webhook events (newest first, up to 100). Subscribe to this resource to receive push notifications when new events arrive. |
TDQS
Scored across 24 tools
Every tool targets a distinct action-object pair, from PDF manipulation (flatten, compress, protect, watermark) to lifecycle operations for envelopes and recipients. Even similar operations like upload_file vs generate_pdf are clearly differentiated by their descriptions.
All 24 tools follow a consistent verb_noun snake_case pattern (e.g., list_recipients, create_envelope, download_file). No mixed conventions or vague generic verbs appear.
With 24 tools, the server falls into the heavy range (16-25). The breadth is justified by covering PDF manipulation, document storage, e-signature envelopes, recipients, and webhooks, but the count is still borderline and could feel overwhelming for agents.
The tool surface lacks list operations for documents and envelopes (e.g., list_documents, list_envelopes), forcing agents to rely on previously known IDs. There is also no delete_recipient or update_webhook, leaving notable lifecycle gaps that can hinder discovery and management workflows.