Skip to main content
Glama
PDFGate MCP Server

PDFGate MCP Server

Official
by pdfgate

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PDFGATE_API_KEYYesYour PDFGate API key
PDFGATE_WEBHOOK_PORTNoPort for the webhook listener3599

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

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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. A recipient signs through the hosted flow (emailed link), embedded signing (embedded: sign inside your application via create_embed_link, no emails) or automatic signing (autoSign: the stored signature of a recipient enrolled with request_recipient_signature is applied on their behalf, no signing session). 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. Each recipient also carries autoSign (signed automatically with their stored signature) and sendSignedCopy (emailed the signed document on completion) booleans.

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. Once a stored signature was requested the response carries a signature object (status pending, active or revoked, plus requestedAt, adoptionMethod, enrolledAt, revokedAt, lastUsedAt and useCount); while the signature is active it also includes image, the signature as a PNG data URL, which can be very long.

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.

delete_recipientA

Delete a stored recipient from your account directory. The record is kept with its personal data removed (email, name, phone, metadata and any stored signature), so later reads return 404 and a new envelope to the same address creates a fresh recipient; envelopes already sent keep their own copy and are not affected. Rejected with a 400 error while the recipient has an active stored signature or a pending enrolment — call remove_recipient_signature first.

request_recipient_signatureA

Automatic signing: email a stored recipient a link to store a reusable signature (they verify their email with a one-time code, accept the authorization text and type, draw or upload their signature). The link is valid for 7 days and calling this again replaces a pending request with a new link. Returns the recipient with signature.status 'pending'; once they complete the enrolment the recipient.signature.enrolled webhook fires and envelopes can set autoSign on this recipient. Rejected with a 400 error when the recipient has no email or already has an active stored signature (remove it first with remove_recipient_signature).

remove_recipient_signatureA

Automatic signing: remove the stored signature of a recipient (signature.status becomes 'revoked' and the recipient.signature.revoked webhook fires) or cancel a pending enrolment so its link stops working. Envelopes already waiting on the automatic signature fall back to a signing link emailed to the recipient. Idempotent: a recipient without a stored signature is returned unchanged. Required before delete_recipient while a signature is active or an enrolment is pending.

create_webhookB

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
pdfgate-eventsRecent PDFGate webhook events (newest first, up to 100). Subscribe to this resource to receive push notifications when new events arrive.

TDQS

A3.7/5.0

Scored across 27 tools

Disambiguation4/5

The surface splits cleanly into four resource families (documents, recipients, envelopes, webhooks), and the descriptions proactively resolve the few confusable pairs (download_file vs get_document, delete_document vs delete_envelope, delete_recipient vs remove_recipient_signature, create_embed_link vs send_envelope). The remaining risk is the four transform tools (protect_pdf, flatten_pdf, compress_pdf, watermark_pdf), which are only distinguishable by reading the names closely, but their purposes are in fact distinct.

Naming Consistency5/5

Every one of the 27 tools follows a snake_case verb_noun pattern (create_/get_/list_/update_/delete_/remove_/send_/void_ plus a resource), with no camelCase or bare-noun outliers. Domain-specific verbs (protect_pdf, flatten_pdf, watermark_pdf) still conform to the same verb_resource shape.

Tool Count3/5

27 tools is on the heavy side, though the server genuinely spans three loosely coupled domains: PDF manipulation (~10 tools), recipients with automatic signing (7), envelopes (6) and webhooks (3). Each tool does earn roughly its place, but the document-processing group could plausibly have been consolidated into a single parameterized transform tool.

Completeness3/5

Recipients have full CRUD plus listing and signature lifecycle support, but the other families are missing key discovery/lifecycle operations: there is no list_documents, list_envelopes, or list_webhooks, and no update_envelope or webhook update. An agent can create and fetch by ID but cannot enumerate resources, which is a real dead end for discovery workflows.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues