Skip to content

Connectors · Files & documents

PandaDoc MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to PandaDoc and the rest of your systems. It gives your agent 126 PandaDoc actions (57 reads, 54 writes and 15 that wait for a confirmation) and holds the PandaDoc credential itself, so the agent never does. It paces PandaDoc's limits and records every call.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "pandadoc.document_folders.list",  intent: "check which PandaDoc account is connected"}# List Documents Folders · read · 1 upstream call
  • 126actionsin one signed file
  • 57readlook, never change
  • 54writecreate and update
  • 15wait for a yesdestructive, confirmed first

Set up

Connect PandaDoc in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect PandaDoc.

    API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.

    • api_keyPandaDoc API key
    • hostWhere your PandaDoc lives: your host
    account { op: "connections.requirements", service: "pandadoc" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "pandadoc.document_folders.list" }# list documents folders · read · 1 upstream callcheck { action: "pandadoc.document_folders.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

PandaDoc at a glance

Sign-in
API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
You provide
api_key
Setup fields
host
Limits we pace to
100 calls a minute, per connection
API covered
PandaDoc Public API (OpenAPI 3.0.3, 124 of 135 operations)api.pandadoc.com
Built from
PandaDoc's documentation, read 22 October 2026OpenAPI spec (GitHub)developers.pandadoc.com
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
57 of 57 reads, for up to 5 minutes; a write clears what it affects
Shared entities
6, so ask can line PandaDoc up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in PandaDoc.

126 actions in 45 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 57readlook, never change
  • 54writecreate and update
  • 15destructivewait for a confirmation
  1. Documents

    17

    5 read · 8 write · 4 destructive

    List Documents · Create Document (From PandaDoc Template) · Send Document · Document Details

  2. Templates

    7

    3 read · 3 write · 1 destructive

    List Templates · Create Template · Template Details · Template Update

  3. Webhook subscriptions

    6

    2 read · 3 write · 1 destructive

    Create Webhook Subscription · List Webhook Subscriptions · Update Webhook Subscription · Webhook Subscription Details

  4. Catalog items

    5

    2 read · 2 write · 1 destructive

    List Catalog Items Search · Create Catalog Item · Catalog Item Details · Update Catalog Item

  5. Contacts

    5

    2 read · 2 write · 1 destructive

    List contacts · Create contact · Contact Details · Update Contact

  6. Content library items

    4

    3 read · 1 write · 0 destructive

    List Content Library Item · Create Content Library Item · Content Library Item Details · Content Library Item Status

  7. Document attachments

    4

    2 read · 1 write · 1 destructive

    Create Document Attachment · List Document Attachments · Document Attachment Details · Delete Document Attachment

  8. Document recipients

    4

    0 read · 3 write · 1 destructive

    Update Document Recipient · Add Document Recipient · Delete Document Recipient · Change Signer (Reassign Document Recipient)

37 more areas · 74 actions
  • Notarization requests 4
  • Workspaces 4
  • Document auto reminders 3
  • Document fields 3
  • Document folders 3
  • Document linked objects 3
  • Document section uploads 3
  • Document sections 3
  • Members 3
  • Template folders 3
  • Users 3
  • Workspace members 3
  • API logs 2
  • API logs V2 2
  • Document AI metadata 2
  • Document docx exports 2
  • Document quotes 2
  • Document settings 2
  • Template approval workflows 2
  • Template settings 2
  • Template shares 2
  • Webhook events 2
  • Workspace privacy settings 2
  • Document audit trail 1
  • Document contents 1
  • Document editing sessions 1
  • Document esign disclosure 1
  • Document reminders 1
  • Document sessions 1
  • Document structure 1
  • Document summaries 1
  • Forms 1
  • Member tokens 1
  • Notaries 1
  • SMS opt outs 1
  • Template editing sessions 1
  • Workspace API keys 1

Top actions

The PandaDoc API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 48 of PandaDoc's 49 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
pandadoc.document_folders.listList Documents FoldersList Documents Folders.readcontent.folder.list62 connectors
pandadoc.users.listList UsersList Users.readidentity.user.list474 connectors
pandadoc.contacts.listList contactsList contacts.readcrm.contact.list177 connectors
pandadoc.document_folders.createCreate Documents FolderCreate Documents Folder.writecontent.folder.create62 connectors
pandadoc.workspaces.listList WorkspacesList Workspaces.readwork.workspace.list50 connectors
pandadoc.users.createCreate UserCreate User.writeidentity.user.create262 connectors
pandadoc.members.listList MembersList Members.readwork.workspace_member.list26 connectors
pandadoc.contacts.createCreate contactCreate contact.writecrm.contact.create161 connectors
pandadoc.catalog_items.searchList Catalog Items SearchList Catalog Items Search.readcommerce.product.search18 connectors
pandadoc.catalog_items.createCreate Catalog ItemCreate Catalog Item.writecommerce.product.create92 connectors
pandadoc.contacts.deleteDelete ContactDelete Contact.destructivecrm.contact.delete147 connectors
pandadoc.workspaces.createCreate WorkspaceCreate Workspace.writework.workspace.create36 connectors

Try it

Prompts to paste into Claude.

Each one names the PandaDoc actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Find the PandaDoc contacts with no email address, so we can clean them up.

    callspandadoc.contacts.list

  2. Writewrite

    Create Documents Folder in PandaDoc. Show me exactly what you will send before you save it.

    callspandadoc.document_folders.create

  3. Across systemsread

    Which contacts are in both PandaDoc and HaloPSA, and how many are in only one of them?

    callspandadoc.contacts.listhalopsa.users.list

Across your systems

PandaDoc, joined to the rest of your business.

One ask fetches from PandaDoc and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.

  • Which contacts are in both PandaDoc and HaloPSA, and how many are in only one of them?

    pandadoc.contacts.list + halopsa.users.list, on crm.contact · HaloPSA

  • Which contacts are in both PandaDoc and NetSuite, and how many are in only one of them?

    pandadoc.contacts.list + netsuite.views.contacts, on crm.contact · NetSuite

Also mapped by other connectorsidentity.user 517crm.contact 192commerce.product 109work.workspace 43content.folder 38work.workspace_member 18
ask
ask {  intent: "which contacts are in both PandaDoc and HaloPSA, and how many are in only one of them",  steps: [    { action: "pandadoc.contacts.list", as: "people", input: {}, limit: 100, max_pages: 5 },    { action: "halopsa.users.list", as: "people2", input: {}, limit: 100, max_pages: 5 },    { join: {        left: "people",        right: "people2",        on: "crm.contact",        group_by: "people.email",        select: ["people.email", "count(people2.id) as in_halopsa"]    } }  ]}
Example. Run it through check first: it validates the steps and prices them, and it is free.

Governance for PandaDoc

Destructive actions wait for a yes.

15 PandaDoc actions are destructive. These are all of them:

  • Delete Contactpandadoc.contacts.delete
  • Delete Catalog Itempandadoc.catalog_items.delete
  • Delete Webhook Subscriptionpandadoc.webhook_subscriptions.delete
  • Delete Documentpandadoc.documents.delete
  • Remove Member from Workspacepandadoc.workspace_members.remove
  • Delete Templatepandadoc.templates.delete
  • Delete Document Recipientpandadoc.document_recipients.delete
  • Delete documents (bulk)pandadoc.documents.bulk_delete
  • Delete Document Sectionpandadoc.document_sections.delete
  • Delete Document Attachmentpandadoc.document_attachments.delete
  • Update document ownershippandadoc.documents.transfer_ownership
  • Delete Notarization Requestpandadoc.notarization_requests.delete
  • Delete Linked Objectpandadoc.document_linked_objects.delete
  • Transfer all documents ownershippandadoc.documents.transfer_all_ownership
  • Deactivate Workspacepandadoc.workspaces.deactivate

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

dopandadoc.contacts.deleteconfirm_policy: human

Delete Contact?

intent: the user asked me to delete Contact

run suspended · waiting for a named person · key pandadoc-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "pandadoc-agent",  allowed_actions: ["pandadoc.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "pandadoc.contacts.delete", approver: "[email protected]" },    { match: "pandadoc.catalog_items.delete", approver: "[email protected]" },    { match: "pandadoc.webhook_subscriptions.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to PandaDoc only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What PandaDoc costs on actionlake.

Every PandaDoc action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call PandaDoc refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 126 PandaDoc actions
  • 126actions pageeach page of a long list is one call
  • 57reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every PandaDoc action.

126 actions by area: the id your agent calls, what it does, and its effect.

Documents17
  • pandadoc.documents.append_content_library_itemAppend Content Library Item to a documentwrite
  • pandadoc.documents.bulk_deleteDelete documents (bulk)destructive
  • pandadoc.documents.change_statusDocument Status Changewrite
  • pandadoc.documents.create_from_templateCreate Document (From PandaDoc Template)write
  • pandadoc.documents.create_from_urlCreate Document (From File By Url)write
  • pandadoc.documents.deleteDelete Documentdestructive
  • pandadoc.documents.getDocument Detailsread
  • pandadoc.documents.get_statusDocument Statusread
  • pandadoc.documents.listList Documentsread
  • pandadoc.documents.list_by_linked_objectList Documents by Linked Objectread
  • pandadoc.documents.move_to_folderDocument move to folderwrite
  • pandadoc.documents.revert_to_draftMove Document to Draftwrite
  • pandadoc.documents.search[Beta] List Documents Searchread
  • pandadoc.documents.sendSend Documentwrite
  • pandadoc.documents.transfer_all_ownershipTransfer all documents ownershipdestructive
  • pandadoc.documents.transfer_ownershipUpdate document ownershipdestructive
  • pandadoc.documents.updateUpdate Documentwrite
Templates7
  • pandadoc.templates.createCreate Templatewrite
  • pandadoc.templates.deleteDelete Templatedestructive
  • pandadoc.templates.duplicateDuplicate Templatewrite
  • pandadoc.templates.getTemplate Detailsread
  • pandadoc.templates.get_statusTemplate Statusread
  • pandadoc.templates.listList Templatesread
  • pandadoc.templates.updateTemplate Updatewrite
Webhook subscriptions6
  • pandadoc.webhook_subscriptions.createCreate Webhook Subscriptionwrite
  • pandadoc.webhook_subscriptions.deleteDelete Webhook Subscriptiondestructive
  • pandadoc.webhook_subscriptions.getWebhook Subscription Detailsread
  • pandadoc.webhook_subscriptions.listList Webhook Subscriptionsread
  • pandadoc.webhook_subscriptions.regenerate_shared_keyUpdate Webhook Subscription Shared Keywrite
  • pandadoc.webhook_subscriptions.updateUpdate Webhook Subscriptionwrite
Catalog items5
  • pandadoc.catalog_items.createCreate Catalog Itemwrite
  • pandadoc.catalog_items.deleteDelete Catalog Itemdestructive
  • pandadoc.catalog_items.getCatalog Item Detailsread
  • pandadoc.catalog_items.searchList Catalog Items Searchread
  • pandadoc.catalog_items.updateUpdate Catalog Itemwrite
Contacts5
  • pandadoc.contacts.createCreate contactwrite
  • pandadoc.contacts.deleteDelete Contactdestructive
  • pandadoc.contacts.getContact Detailsread
  • pandadoc.contacts.listList contactsread
  • pandadoc.contacts.updateUpdate Contactwrite
Content library items4
  • pandadoc.content_library_items.createCreate Content Library Itemwrite
  • pandadoc.content_library_items.getContent Library Item Detailsread
  • pandadoc.content_library_items.get_statusContent Library Item Statusread
  • pandadoc.content_library_items.listList Content Library Itemread
Document attachments4
  • pandadoc.document_attachments.createCreate Document Attachmentwrite
  • pandadoc.document_attachments.deleteDelete Document Attachmentdestructive
  • pandadoc.document_attachments.getDocument Attachment Detailsread
  • pandadoc.document_attachments.listList Document Attachmentsread
Document recipients4
  • pandadoc.document_recipients.addAdd Document Recipientwrite
  • pandadoc.document_recipients.deleteDelete Document Recipientdestructive
  • pandadoc.document_recipients.reassignChange Signer (Reassign Document Recipient)write
  • pandadoc.document_recipients.updateUpdate Document Recipientwrite
Notarization requests4
  • pandadoc.notarization_requests.createCreate Notarization Requestwrite
  • pandadoc.notarization_requests.deleteDelete Notarization Requestdestructive
  • pandadoc.notarization_requests.getNotarization Request Detailsread
  • pandadoc.notarization_requests.listList Notarization Requestsread
Workspaces4
  • pandadoc.workspaces.createCreate Workspacewrite
  • pandadoc.workspaces.deactivateDeactivate Workspacedestructive
  • pandadoc.workspaces.listList Workspacesread
  • pandadoc.workspaces.update[Beta] Update Workspacewrite
Document auto reminders3
  • pandadoc.document_auto_reminders.getDocument Auto Reminder Settingsread
  • pandadoc.document_auto_reminders.get_statusDocument Auto Reminder Statusread
  • pandadoc.document_auto_reminders.updateUpdate Document Auto Reminder Settingswrite
Document fields3
  • pandadoc.document_fields.createCreate Document Fieldswrite
  • pandadoc.document_fields.listList Document Fieldsread
  • pandadoc.document_fields.update_assignmentUpdate Document Fields Assignmentwrite
Document folders3
  • pandadoc.document_folders.createCreate Documents Folderwrite
  • pandadoc.document_folders.listList Documents Foldersread
  • pandadoc.document_folders.renameRename Documents Folderwrite
Document linked objects3
  • pandadoc.document_linked_objects.createCreate Linked Objectwrite
  • pandadoc.document_linked_objects.deleteDelete Linked Objectdestructive
  • pandadoc.document_linked_objects.listList Linked Objectsread
Document section uploads3
  • pandadoc.document_section_uploads.create_from_templateCreate Document Section (From PandaDoc Template)write
  • pandadoc.document_section_uploads.create_from_urlCreate Document Section (From File By Url)write
  • pandadoc.document_section_uploads.getDocument Section Upload Statusread
Document sections3
  • pandadoc.document_sections.deleteDelete Document Sectiondestructive
  • pandadoc.document_sections.getDocument Section Detailsread
  • pandadoc.document_sections.listList Document Sectionsread
Members3
  • pandadoc.members.getMember Detailsread
  • pandadoc.members.get_currentCurrent Member Detailsread
  • pandadoc.members.listList Membersread
Template folders3
  • pandadoc.template_folders.createCreate Templates Folderwrite
  • pandadoc.template_folders.listList Templates Foldersread
  • pandadoc.template_folders.renameRename Templates Folderwrite
Users3
  • pandadoc.users.createCreate Userwrite
  • pandadoc.users.getGet User Details by IDread
  • pandadoc.users.listList Usersread
Workspace members3
  • pandadoc.workspace_members.addAdd Member to Workspacewrite
  • pandadoc.workspace_members.change_roleChange Member Role in Workspacewrite
  • pandadoc.workspace_members.removeRemove Member from Workspacedestructive
API logs2
  • pandadoc.api_logs.getAPI Log Detailsread
  • pandadoc.api_logs.listList API Logread
API logs V22
  • pandadoc.api_logs_v2.getAPI Log Detailsread
  • pandadoc.api_logs_v2.listList API Logread
Document AI metadata2
  • pandadoc.document_ai_metadata.batch_get[Beta] Get AI Metadata for Multiple Documentsread
  • pandadoc.document_ai_metadata.list[Beta] Get AI Metadata for a Documentread
Document docx exports2
  • pandadoc.document_docx_exports.create[Beta] Create DOCX Export Taskwrite
  • pandadoc.document_docx_exports.get[Beta] DOCX Export Taskread
Document quotes2
  • pandadoc.document_quotes.batch_update[Beta] Update Multiple Quoteswrite
  • pandadoc.document_quotes.updateQuote updatewrite
Document settings2
  • pandadoc.document_settings.getGet document settingsread
  • pandadoc.document_settings.updateUpdate document settingswrite
Template approval workflows2
  • pandadoc.template_approval_workflows.get[Beta] Get Submit for approval configurationread
  • pandadoc.template_approval_workflows.update[Beta] Update Template Approval Workflowwrite
Template settings2
  • pandadoc.template_settings.getGet template settingsread
  • pandadoc.template_settings.updateUpdate template settingswrite
Template shares2
  • pandadoc.template_shares.getGet Template Sharing Settingsread
  • pandadoc.template_shares.updateUpdate Template Sharing Settingswrite
Webhook events2
  • pandadoc.webhook_events.getWebhook Event Detailsread
  • pandadoc.webhook_events.listList Webhook Eventsread
Workspace privacy settings2
  • pandadoc.workspace_privacy_settings.get[Beta] Workspace Privacy Settings Detailsread
  • pandadoc.workspace_privacy_settings.update[Beta] Update Workspace Privacy Settingswrite
Document audit trail1
  • pandadoc.document_audit_trail.listList Document Audit Trailread
Document contents1
  • pandadoc.document_contents.get[Beta] Document Contentread
Document editing sessions1
  • pandadoc.document_editing_sessions.createCreate Document Editing Sessionwrite
Document esign disclosure1
  • pandadoc.document_esign_disclosure.getDocument eSign disclosureread
Document reminders1
  • pandadoc.document_reminders.sendSend Manual Reminderwrite
Document sessions1
  • pandadoc.document_sessions.createCreate Document Session for Embedded Signwrite
Document structure1
  • pandadoc.document_structure.add_named_itemsAdd DSV Named Items to a Documentwrite
Document summaries1
  • pandadoc.document_summaries.get[Beta] Document Summaryread
Forms1
  • pandadoc.forms.listList Formsread
Member tokens1
  • pandadoc.member_tokens.createCreate Member Tokenwrite
Notaries1
  • pandadoc.notaries.listList Notariesread
SMS opt outs1
  • pandadoc.sms_opt_outs.listRecent SMS Opt-outread
Template editing sessions1
  • pandadoc.template_editing_sessions.createCreate Template Editing Sessionwrite
Workspace API keys1
  • pandadoc.workspace_api_keys.createCreate API Keywrite

Questions

The PandaDoc MCP server, answered.

Is there a PandaDoc MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 126 PandaDoc actions across documents, templates, webhook subscriptions and catalog items, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by PandaDoc.

What do I need to connect PandaDoc?

PandaDoc API key. Plus your host. The free call account { op: "connections.requirements", service: "pandadoc" } lists exactly what to paste.

Can an AI agent delete or change things in PandaDoc?

Only if its key allows it, and only with an explicit confirmation. 15 PandaDoc actions are destructive, including delete Contact, delete Catalog Item and delete Webhook Subscription. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my PandaDoc API limit?

actionlake paces every call to the limits in the PandaDoc service file: 100 calls a minute per connection. Repeated reads are answered from cache (57 PandaDoc actions can be), which never reaches PandaDoc.

What does a PandaDoc action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (126 PandaDoc actions page). Cache hits, searches, dry runs and calls PandaDoc refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which PandaDoc API does it cover?

The PandaDoc Public API (OpenAPI 3.0.3, 124 of 135 operations) at api.pandadoc.com by default, or the base URL set when you connect. It is built from PandaDoc's documentation as read on 22 October 2026. 126 actions in 45 areas, each one in the signed service file (version 1.0.0).

Can I combine PandaDoc with my other systems?

Yes. ask joins PandaDoc to HaloPSA or NetSuite on the same customer and returns the answer rather than every row. PandaDoc maps crm.contact, which 192 other connectors also map.

Does actionlake keep my PandaDoc data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your PandaDoc credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent PandaDoc today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.