Pandadoc MCP connector
OAuth 2.1/DCRProductivityAutomationFiles & DocumentsConnect to PandaDoc MCP. Create, send, and manage documents, templates, and e-signatures directly from your AI workflows.
Pandadoc MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'pandadocmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Pandadoc MCP:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'pandadocmcp_documents_list',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "pandadocmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Pandadoc MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="pandadocmcp_documents_list",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Create documents — build a document from a PandaDoc template, from markdown content, or from a PDF/DOCX file URL
- Send for signature — send a draft to its recipients with a custom subject and message, control email notifications, and set forwarding and approval options
- Manage recipients — add CC recipients, edit a recipient’s details, reassign a signer to another contact, or remove a recipient
- Track status and history — check document status, retrieve the full audit trail, and manually mark a document Completed, Paid, Expired, or Declined
- Find and read documents — list with status, folder, tag, sorting and date-range filters, full-text search, and pull content, details, summaries, or metadata (single or batched across up to 40 documents)
- Work with templates — list templates, inspect a template’s roles, fields, tokens and pricing tables, or create a new template from a PDF URL
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
pandadocmcp_documents_archive#Archive a document by ID to remove it from active lists without permanently deleting it.1 param
Archive a document by ID to remove it from active lists without permanently deleting it.
document_idstringrequiredDocument ID to archivepandadocmcp_documents_audit_trail_get#Retrieve the full audit trail for a document, showing all events including views, signatures, and status changes.1 param
Retrieve the full audit trail for a document, showing all events including views, signatures, and status changes.
document_idstringrequiredDocument IDpandadocmcp_documents_content_get#Get the textual content of a document in plaintext or markdown format by document ID.2 params
Get the textual content of a document in plaintext or markdown format by document ID.
content_formatstringrequiredContent format to return. Must be one of: 'plaintext' or 'markdown'.document_idstringrequiredDocument IDpandadocmcp_documents_create#Create a document from a template, markdown content, or a PDF/DOCX file URL. Pass a single 'request' object whose 'source' selects the creation mode; each source accepts only its own parameters. Creation is asynchronous - poll Get Document Status until the document is Draft or Error.1 param
Create a document from a template, markdown content, or a PDF/DOCX file URL. Pass a single 'request' object whose 'source' selects the creation mode; each source accepts only its own parameters. Creation is asynchronous - poll Get Document Status until the document is Draft or Error.
requestobjectrequiredDocument to create. Set `source` to `template` (create from a PandaDoc template), `markdown` (create from markdown content), or `file` (create from a PDF/DOCX file URL). Each source accepts only its own parameters.pandadocmcp_documents_details_get#Retrieve full details for a document including metadata, recipients, fields, and status.1 param
Retrieve full details for a document including metadata, recipients, fields, and status.
document_idstringrequiredDocument IDpandadocmcp_documents_fields_assign#Assign, reassign, or unassign document fields to recipients. Document must be in draft status.2 params
Assign, reassign, or unassign document fields to recipients. Document must be in draft status.
assignmentsarrayrequiredList of field-to-recipient assignments. Each item maps a field UUID to a recipient UUID (or null to unassign).document_idstringrequiredDocument IDpandadocmcp_documents_list#List documents with filters for status, folder, tag, free-text search, sorting, and created/completed date ranges. Returns paginated results.12 params
List documents with filters for status, folder, tag, free-text search, sorting, and created/completed date ranges. Returns paginated results.
completed_fromstringoptionalOnly documents completed on or after this ISO-8601 datetime.completed_tostringoptionalOnly documents completed before this ISO-8601 datetime.countstringoptionalLimits the size of the response. Default is 50 documents, maximum is 100 documents.created_fromstringoptionalOnly documents created on or after this ISO-8601 datetime, e.g. ``2026-03-01T00:00:00Z``.created_tostringoptionalOnly documents created before this ISO-8601 datetime, e.g. ``2026-03-31T23:59:59Z``.folder_uuidstringoptionalUUID of the folder to list from (folder_uuid, NOT folder_id).pagestringoptionalPaginates the search result. Increase value to get the next page of results.qstringoptionalFilters documents by name or reference number (stored on the template level).sort_bystringoptionalField to sort documents by. Defaults to date_status_changed when omitted.sort_orderstringoptionalSort direction, ascending when omitted. Keep consistent across pages of the same query.statusstringoptionalFilters documents by status. Valid values: Draft, Sent, Completed, Uploaded, Error, Viewed, Waiting for Approval, Approved, Rejected, Waiting for Payment, Paid, Expired, Declined, External Review, Scheduled.tagstringoptionalFilters documents by tag.pandadocmcp_documents_metadata_batch_get#Retrieve metadata for 1-40 documents in one request. Preferred over calling Get Document Metadata in a loop; a failure for one document does not fail the batch.2 params
Retrieve metadata for 1-40 documents in one request. Preferred over calling Get Document Metadata in a loop; a failure for one document does not fail the batch.
document_idsarrayrequired1-40 document IDs to fetch metadata for. Duplicates are rejected by the server.field_keysstringoptionalOptional case-sensitive filter on metadata field `key` (the human-readable name returned as `results[].key` by the single-document endpoint, e.g. `Contract value`). Unknown keys are silently ignored. When omitted, every populated field is returned per document.pandadocmcp_documents_metadata_get#Get AI-extracted metadata fields from a document, combining document and content data into structured key-value pairs.3 params
Get AI-extracted metadata fields from a document, combining document and content data into structured key-value pairs.
document_idstringrequiredDocument IDlimitstringoptionalMaximum number of fields to return in one response. Omit for API default (100). Max 100.offsetstringoptionalNumber of fields to skip before starting to collect the result set. For predictable paging, use multiples of `limit`.pandadocmcp_documents_search#Full-text search across documents with optional filters for status, date range, and pagination.7 params
Full-text search across documents with optional filters for status, date range, and pagination.
querystringrequiredFull-text search string (matches document content and metadata).countstringoptionalPage size: public API ``count`` query param. Omit for default (30). Max 100.date_filter_columnstringoptionalWhich document timestamp the date window applies to. If you set any date filter, set **all three** of ``date_filter_column``, ``from_date``, and ``to_date``. Allowed values: ``date_created``, ``date_expiration``, ``last_modified``, ``signature_date``, ``effective_date``.from_datestringoptionalInclusive window start (ISO-8601), e.g. ``2026-03-01T00:00:00Z``. Use together with ``date_filter_column`` and ``to_date``.pagestringoptionalPage number (1-based). Omit to use API default (1).statusstringoptionalRestrict hits to documents with these statuses (omit to ignore status). Valid values: Draft, Sent, Completed, Uploaded, Error, Viewed, Waiting for Approval, Approved, Rejected, Waiting for Payment, Paid, Expired, Declined, External Review, Scheduled. Example: ["Sent", "Completed"].to_datestringoptionalInclusive window end (ISO-8601), e.g. ``2026-03-31T23:59:59Z``. Use together with ``date_filter_column`` and ``from_date``.pandadocmcp_documents_send#Send a draft document to recipients for review and signature with optional message, subject, and CC settings.9 params
Send a draft document to recipients for review and signature with optional message, subject, and CC settings.
document_idstringrequiredDocument IDforwarding_settingsstringoptionalSettings for document and signature forwarding. Controls whether recipients can forward the document or reassign their fields to another person.messagestringoptionalA message that will be sent by email with a link to the document to sign.reply_tostringoptionalEmail address used as reply-to for the document. Must be enabled for the account by support.selected_approversstringoptionalConfiguration for selecting approvers from approval workflow groups. Copy 'steps' from the 'approval_execution' section of Document Details and set 'is_selected' to true for the desired approver.senderstringoptionalSet a sender of a document as an email or membership_id.silentstringoptionalIf true, disables email notifications for document recipients and the sender. Also disables scheduled reminders. Does not affect 'Approve document' email notification.skip_unfilled_variablesbooleanoptionalMust be false by default. Only set to true when the user has explicitly chosen to send with empty variables.subjectstringoptionalValue that will be used as the email subject.pandadocmcp_documents_status_change#Manually change a document's status. Only Completed, Paid, Expired, and Declined are settable; other statuses are managed automatically by PandaDoc.4 params
Manually change a document's status. Only Completed, Paid, Expired, and Declined are settable; other statuses are managed automatically by PandaDoc.
document_idstringrequiredDocument IDstatusstringrequiredTarget status. Valid values: Completed, Paid, Expired, Declined.notestringoptionalOptional note for the status changenotify_recipientsbooleanoptionalWhether to notify recipients of the status changepandadocmcp_documents_status_get#Get the current status of a document by ID.1 param
Get the current status of a document by ID.
document_idstringrequiredDocument IDpandadocmcp_documents_summary_get#Get a summary for a document at one of three granularity levels: detailed, short, or headline.2 params
Get a summary for a document at one of three granularity levels: detailed, short, or headline.
document_idstringrequiredDocument IDsummary_typestringrequiredSummary granularity to return. Must be one of: 'detailed', 'short', or 'headline'.pandadocmcp_documents_update#Update a draft document — name, recipients, fields, tokens, images, pricing tables, and metadata. Document must be in draft status.12 params
Update a draft document — name, recipients, fields, tokens, images, pricing tables, and metadata. Document must be in draft status.
document_idstringrequiredDocument IDfieldsstringoptionalDocument fields as key-value pairsimagesstringoptionalImagesmetadatastringoptionalDocument metadata as key-value pairsnamestringoptionalDocument namepricing_tablesstringoptionalPricing tables to populate by namerecipientsstringoptionalList of recipients. Each should have email, first_name, last_name, etc.tablesstringoptionalTables to populate by nametagsstringoptionalDocument tagstextsstringoptionalList of text blocks to update. Each item should have 'name' and 'data' fieldstokensstringoptionalDocument tokens (variables). Each should have name and value.urlstringoptionalDocument URLpandadocmcp_recipients_add_cc#Add a CC (non-signing) recipient to a document using an existing contact ID. Cannot add to expired or declined documents.3 params
Add a CC (non-signing) recipient to a document using an existing contact ID. Cannot add to expired or declined documents.
contact_idstringrequiredContact UUID to add as CC.document_idstringrequiredDocument UUIDkindstringoptional'contact' or 'contact_group'.pandadocmcp_recipients_delete#Remove a recipient from a document. Signers can only be removed while the document is in draft; CC recipients can be removed in any status except expired or declined.2 params
Remove a recipient from a document. Signers can only be removed while the document is in draft; CC recipients can be removed in any status except expired or declined.
document_idstringrequiredDocument UUIDrecipient_idstringrequiredRecipient UUID to remove.pandadocmcp_recipients_edit#Update a recipient's details such as email, name, phone, company, address, or redirect. A signer's email cannot be changed after they have signed.15 params
Update a recipient's details such as email, name, phone, company, address, or redirect. A signer's email cannot be changed after they have signed.
document_idstringrequiredDocument UUIDrecipient_idstringrequiredRecipient UUID from document details.citystringoptionalCity.companystringoptionalCompany name.countrystringoptionalCountry.delivery_methodsstringoptionalDelivery methods (email/sms).emailstringoptionalNew email address.first_namestringoptionalFirst name.job_titlestringoptionalJob title.last_namestringoptionalLast name.phonestringoptionalPhone number.postal_codestringoptionalPostal / ZIP code.redirectstringoptionalPost-signing redirect (is_enabled, url).statestringoptionalState or region.street_addressstringoptionalStreet address.pandadocmcp_recipients_reassign#Replace a signer with another contact, transferring all assigned fields to the new signer. Cannot reassign recipients who have already signed.4 params
Replace a signer with another contact, transferring all assigned fields to the new signer. Cannot reassign recipients who have already signed.
document_idstringrequiredDocument UUIDnew_contact_idstringrequiredContact UUID of the new signer.recipient_idstringrequiredRecipient UUID of the signer to replace.kindstringoptional'contact' or 'contact_group'.pandadocmcp_templates_create#Create a new template from a publicly accessible PDF URL with optional name, folder, tokens, and owner.7 params
Create a new template from a publicly accessible PDF URL with optional name, folder, tokens, and owner.
urlstringrequiredSecure (HTTPS) and publicly accessible URL to the PDF documentfolder_uuidstringoptionalFolder ID where the created template should be storedmetadatastringoptionalArbitrary key-value data to associate with the templatenamestringoptionalThe name of the templateowner_emailstringoptionalOwner email for the templateowner_membership_idstringoptionalOwner membership_id for the templatetokensstringoptionalCUSTOM variables as list of {name, value} pairspandadocmcp_templates_details_get#Get full details for a template including roles, fields, tokens, and pricing tables.1 param
Get full details for a template including roles, fields, tokens, and pricing tables.
template_idstringrequiredTemplate IDpandadocmcp_templates_list#List templates with optional filters for search, tags, folder, and shared/deleted status.9 params
List templates with optional filters for search, tags, folder, and shared/deleted status.
countstringoptionalSpecify how many templates to return.deletedstringoptionalReturns only the deleted templates.fieldsstringoptionalA comma-separated list of additional fields to include in the response.folder_uuidstringoptionalUUID of the folder where the templates are stored.pagestringoptionalSpecify which page of the dataset to return.qstringoptionalSearch query. Filter by template name.sharedstringoptionalReturns only the shared templates.tagstringoptionalSearch tag. Filter by template tag.template_idstringoptionalSpecify template ID.