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:
- List templates, documents — List templates with optional filters for search, tags, folder, and shared/deleted status
- Get templates details, documents summary, documents status — Get full details for a template including roles, fields, tokens, and pricing tables
- Create templates, documents — Create a new template from a publicly accessible PDF URL with optional name, folder, tokens, and owner
- Update documents — Update a draft document — name, recipients, fields, tokens, images, pricing tables, and metadata
- Change documents status — Manually change a document status to completed, expired, paid, or voided
- Send documents — Send a draft document to recipients for review and signature with optional message, subject, and CC settings
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 content of a document in HTML or PDF format by document ID.2 params
Get the content of a document in HTML or PDF format by document ID.
content_formatstringrequiredContent format to return. Must be one of: 'plaintext' or 'markdown'.document_idstringrequiredDocument IDpandadocmcp_documents_create#Create a new document from an existing template with optional recipients, tokens, fields, and metadata.15 params
Create a new document from an existing template with optional recipients, tokens, fields, and metadata.
namestringrequiredNew document namerecipientsarrayrequiredList of recipients for the documenttemplate_uuidstringrequiredTemplate UUIDcontent_placeholdersstringoptionalContent placeholders for content library blocksdetect_title_variablesstringoptionalUse title variables from template in document namefieldsstringoptionalDocument fields as key-value pairsfolder_uuidstringoptionalDestination folder UUIDimagesstringoptionalImages to populate in template image blocksmetadatastringoptionalDocument metadata as key-value pairsownerstringoptionalDocument owner (email or membership_id)pricing_tablesstringoptionalPricing tablestablesstringoptionalTablestagsstringoptionalDocument tagstextsstringoptionalText blocks to populate by nametokensstringoptionalDocument tokens (variables) as name/value pairspandadocmcp_documents_create_from_markdown#Create a new PandaDoc document from Markdown content with optional recipients and role-based fields.5 params
Create a new PandaDoc document from Markdown content with optional recipients and role-based fields.
document_markdownstringrequiredContent of the document in markdownnamestringrequiredName of the new documentfolder_idstringoptionalID of the folder to create the document in. Optional, if not provided document will be created in root folder.recipientsstringoptionalList of document recipients. Optional, if not provided document will be created without recipients.role_fieldsstringoptionalList of roles with assigned fields. Optional, if not provided no fields will be assigned to recipients by default. MUST be used together with `recipients`: every role referenced here must match the `role` of a recipient in the `recipients` argument. Passing `role_fields` without a matching recipient role will cause an error.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 optional filters for status, folder, tag, and search query. Returns paginated results.6 params
List documents with optional filters for status, folder, tag, and search query. Returns paginated results.
countstringoptionalLimits the size of the response. Default is 50 documents, maximum is 100 documents.folder_uuidstringoptionalFilters by the folder where the documents are stored.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).statusstringoptionalFilters documents by the status. 0: document.draft, 1: document.sent, 2: document.completed, 3: document.uploaded, 4: document.error, 5: document.viewed, 6: document.waiting_approval, 7: document.approved, 8: document.rejected, 9: document.waiting_pay, 10: document.paid, 11: document.voided, 12: document.declined, 13: document.external_review.tagstringoptionalFilters documents by tag.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 these PandaDoc document status codes (omit to ignore status). 0 draft, 1 sent, 2 completed, 5 viewed, 6 waiting approval, 7 approved, 8 rejected, 9 waiting pay, 10 paid, 11 expired, 12 declined, 13 external review. Example: ``[1, 2]`` for sent or 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.8 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.subjectstringoptionalValue that will be used as the email subject.pandadocmcp_documents_status_change#Manually change a document status to completed, expired, paid, or voided.4 params
Manually change a document status to completed, expired, paid, or voided.
document_idstringrequiredDocument IDstatusintegerrequiredDocument status code (2=completed, 10=paid, 11=expired, 12=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 an AI-generated or standard summary for a document by ID.2 params
Get an AI-generated or standard summary for a document by ID.
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 tablesrecipientsstringoptionalList of recipients. Each should have email, first_name, last_name, etc.tablesstringoptionalTablestagsstringoptionalDocument tagstextsstringoptionalList of text blocks to update. Each item should have 'name' and 'data' fieldstokensstringoptionalDocument tokens (variables). Each should have name and value.urlstringoptionalDocument URLpandadocmcp_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.