Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Pandadoc MCP server

Vendor MCP
Open markdown

The Pandadoc MCP connector routes your AI agent's tool calls to Pandadoc's own MCP server through Scalekit. Each user signs in to Pandadoc once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 22 tools.

Tools
22
What they doRead · write · destructive
11 · 8 · 311 read8 write3 destructive
Users sign in with
OAuth app
Scalekit's or your own

What you can do

  • 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

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. 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>
  3. Create the Pandadoc MCP connection

    In AgentKit > Connections, create a Pandadoc MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Pandadoc MCP server, so you don't need to register an OAuth app.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'pandadocmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Pandadoc MCP:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'pandadocmcp_documents_list',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • pandadocmcp_documents_audit_trail_getRetrieve the full audit trail for a document, showing all events including views, signatures, and status changes.Read-only

    Documents Audit Trail Get

    Retrieve the full audit trail for a document, showing all events including views, signatures, and status changes.

    Inputs

    document_idstringrequired
    Document ID
  • pandadocmcp_documents_content_getGet the content of a document in HTML or PDF format by document ID.Read-only

    Documents Content Get

    Get the content of a document in HTML or PDF format by document ID.

    Inputs

    content_formatstringrequired
    Content format to return. Must be one of: 'plaintext' or 'markdown'.one of plaintextmarkdown
    document_idstringrequired
    Document ID
  • pandadocmcp_documents_details_getRetrieve full details for a document including metadata, recipients, fields, and status.Read-only

    Documents Details Get

    Retrieve full details for a document including metadata, recipients, fields, and status.

    Inputs

    document_idstringrequired
    Document ID
  • pandadocmcp_documents_listList documents with filters for status, folder, tag, free-text search, sorting, and created/completed date ranges.Read-only

    Documents List

    List documents with filters for status, folder, tag, free-text search, sorting, and created/completed date ranges. Returns paginated results.

    Inputs

    completed_fromstring
    Only documents completed on or after this ISO-8601 datetime.
    completed_tostring
    Only documents completed before this ISO-8601 datetime.
    countstring
    Limits the size of the response. Default is 50 documents, maximum is 100 documents.
    created_fromstring
    Only documents created on or after this ISO-8601 datetime, e.g. ``2026-03-01T00:00:00Z``.
    created_tostring
    Only documents created before this ISO-8601 datetime, e.g. ``2026-03-31T23:59:59Z``.
    folder_uuidstring
    UUID of the folder to list from (folder_uuid, NOT folder_id).
    pagestring
    Paginates the search result. Increase value to get the next page of results.
    qstring
    Filters documents by name or reference number (stored on the template level).
    sort_bystring
    Field to sort documents by. Defaults to date_status_changed when omitted.
    sort_orderstring
    Sort direction, ascending when omitted. Keep consistent across pages of the same query.
    statusstring
    Filters 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.
    tagstring
    Filters documents by tag.
  • pandadocmcp_documents_metadata_batch_getRetrieve metadata for 1-40 documents in one request.Read-only

    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.

    Inputs

    document_idsarrayrequired
    1-40 document IDs to fetch metadata for. Duplicates are rejected by the server.
    field_keysstring
    Optional 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_getGet AI-extracted metadata fields from a document, combining document and content data into structured key-value pairs.Read-only

    Documents Metadata Get

    Get AI-extracted metadata fields from a document, combining document and content data into structured key-value pairs.

    Inputs

    document_idstringrequired
    Document ID
    limitstring
    Maximum number of fields to return in one response. Omit for API default (100). Max 100.
    offsetstring
    Number of fields to skip before starting to collect the result set. For predictable paging, use multiples of `limit`.
  • pandadocmcp_documents_status_getGet the current status of a document by ID.Read-only

    Documents Status Get

    Get the current status of a document by ID.

    Inputs

    document_idstringrequired
    Document ID