PandaDoc MCP

Live

OAUTH 2.0

DOCUMENTS

Files & Documents

The Pandadoc MCP connector lets AI agents create, send, and manage documents and templates directly within PandaDoc. Agents can handle the full document lifecycle — from drafting and updating to sending for e-signatures and tracking status — all on behalf of the authorized user.

  • Acts as the user: Documents and signatures stay tied to the PandaDoc account owner who authorized the agent, preserving your audit trail and sender identity.
  • Credentials stay vaulted: AES-256, resolved at request time, never in LLM context.
  • Scoped before every call: Permissions enforced per-user. 90-day audit trail.
PandaDoc MCP
agent · Acme Q3
Run
List my draft documents and send the NDA to the client for signature.
S
pandadocmcp_documents_list
85ms
Pandadoc MCP agent
Found 3 draft documents. The NDA has been sent to your client for review and e-signature.
Sources: 3 draft documents
pandadocmcpmcp
3 records
18:29
Message Claude...

Tools your documents agent reaches for on Pandadoc MCP, scoped per user.

CALL ANY TOOL
19 tools covering the full PandaDoc workflow — list, create, update, send, and track documents and templates with per-user OAuth credentials.
pandadocmcp_documents_archive
Archive documents
Archive a document by ID to remove it from active lists without permanently deleting it.
Parameters
Name
Type
Required
Description
document_id
string
Required
Document ID to archive
pandadocmcp_documents_audit_trail_get
Get documents audit trail
pandadocmcp_documents_content_get
Get documents content
pandadocmcp_documents_create
Create documents
pandadocmcp_documents_create_from_markdown
Documents Create From Markdown
pandadocmcp_documents_details_get
Get documents details
pandadocmcp_documents_fields_assign
Documents Fields Assign
pandadocmcp_documents_list
List documents
pandadocmcp_documents_metadata_get
Get documents metadata
pandadocmcp_documents_search
Search documents
pandadocmcp_documents_send
Send documents
pandadocmcp_documents_status_change
Documents Status Change
pandadocmcp_documents_status_get
Get documents status
pandadocmcp_documents_summary_get
Get documents summary
pandadocmcp_documents_update
Update documents
pandadocmcp_templates_create
Create templates
pandadocmcp_templates_details_get
Get templates details
pandadocmcp_templates_list
List templates
Build your Agent
Same auth pattern across every framework.
Python · LlamaIndex
from langchain_mcp_adapters.client import MultiServerMCPClient
from scalekit import ScalekitClient

client = ScalekitClient(env_url=ENV_URL, client_id=CLIENT_ID, client_secret=SECRET)
token = client.agent.get_token(user_id="user_id", connector="pandadocmcp")

mcp = MultiServerMCPClient({
"pandadocmcp": {
"url": "https://mcp.scalekit.com/pandadocmcp",
"headers": {"Authorization": "Bearer " + token}
}
})
tools = await mcp.get_tools()
import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";

const client = new ScalekitClient({ envUrl, clientId, clientSecret });
const token = await client.agent.getToken({ userId: "user_id", connector: "pandadocmcp" });

const openai = new OpenAI();
// Connect to MCP at https://mcp.scalekit.com/pandadocmcp
// Pass: Authorization: Bearer + token
import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";

const client = new ScalekitClient({ envUrl, clientId, clientSecret });
const token = await client.agent.getToken({ userId: "user_id", connector: "pandadocmcp" });

const anthropic = new Anthropic();
// Connect to MCP at https://mcp.scalekit.com/pandadocmcp
// Pass: Authorization: Bearer + token
from google.adk.agents import LlmAgent
from scalekit import ScalekitClient

client = ScalekitClient(env_url=ENV_URL, client_id=CLIENT_ID, client_secret=SECRET)
token = client.agent.get_token(user_id="user_id", connector="pandadocmcp")
# Connect to MCP at https://mcp.scalekit.com/pandadocmcp
# Pass: Authorization: Bearer + token
Try these prompts
Paste any prompt into your agent to get started.
Search & retrieve
Copy the prompt
Copied
List all my draft documents and show their recipients and current status.
Copy the prompt
Copied
Search for all contracts sent in the last 30 days and show their completion status.
Create & send
Copy the prompt
Copied
Create a new NDA from the standard template and send it to john@example.com for signature.
Copy the prompt
Copied
Create a proposal document from markdown, add two recipients, and send it with a custom subject line.
SEE HOW AUTH WORKS
User authorises once. Every agent call after uses their token with scope enforcement.
1
Authorize
Your user connects
PandaDoc MCP
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
PandaDoc MCP
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
PandaDoc MCP
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
PandaDoc MCP
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
See the same per-user auth pattern across other connectors.
SUPPORT
Support ticket automation (Google ADK)
Google ADK agent that classifies Zendesk tickets, pulls Notion context, and posts to Slack. End-to-end ticket handoff.
SUPPORT
Support triage agent
Read Zendesk tickets, fetch runbooks from Notion, and route to the right Slack channel with a drafted response.
GTM
Salesforce customer insights agent
Surface Salesforce account activity, NPS signals, and renewal flags into Slack threads for the account team.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
Other connector libraries treat auth as a demo afterthought.
01.
Shared tokens break per-user analytics
A shared token looks fine in a demo. In production every call looks like a service account. Scalekit resolves the real user credential.
// shared token
audit → bot_service_account

// scalekit
audit → user_abc ✓
02.
Authentication is not authorization
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Does the agent access Pandadoc MCP as the user or as a shared key?
Scalekit resolves a per-user credential for each call. The Pandadoc MCP audit log shows the real user identity, not a shared service account.
Where is the Pandadoc MCP token stored?
In Scalekit's AES-256 encrypted vault, isolated per tenant. Tokens are auto-refreshed before expiry and revocable from a single dashboard without code changes.
Can I limit what the agent is allowed to do in Pandadoc MCP?
Pass a toolNames filter to listScopedTools. Scalekit enforces the allowed set before every API call — the agent cannot invoke tools outside the approved list.
What happens when a user revokes Pandadoc MCP access?
The token is invalidated at the next tool call. The agent fails closed rather than falling back to a shared key. Other users are unaffected and the revocation event is logged with a timestamp.
Can the agent send or sign documents on behalf of a user without their knowledge?
Only if the user has explicitly authorized the agent through Scalekit's OAuth flow. The token Scalekit vaults is scoped to the permissions the user granted. You can further restrict which tools are callable by passing a toolNames filter, so an agent granted read access cannot invoke pandadocmcp_documents_send even if PandaDoc's API would otherwise allow it.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""pandadocmcp"": {
""url"": ""https://mcp.scalekit.com/pandadocmcp"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.pandadocmcp]
url = ""https://mcp.scalekit.com/pandadocmcp""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""pandadocmcp"": {
""url"": ""https://mcp.scalekit.com/pandadocmcp"",
""type"": ""http""
}
}
}