Help us improve
Share bugs, ideas, or general feedback.
From pandadoc
Provides patterns for PandaDoc MCP server: API key authentication, tool reference for documents, documentation search, code generation, rate limiting, error handling, best practices.
npx claudepluginhub wyre-technology/msp-claude-plugins --plugin pandadocHow this skill is triggered — by the user, by Claude, or both
Slash command
/pandadoc:api-patternsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
PandaDoc provides a hosted MCP server at `https://developers.pandadoc.com/mcp` for AI tool integration. The MCP server provides direct API access to PandaDoc's document automation platform, documentation search, and code generation assistance. This skill covers MCP server connection, authentication, the complete tool reference, rate limiting, error handling, and best practices.
Manages PandaDoc documents: creates proposals, quotes, contracts, SOWs, MSAs from templates; sends for e-signature; checks status; downloads signed copies; handles full lifecycle with tokens and pricing tables.
Automates PandaDoc document workflows: create documents from files, manage contacts, organize folders, set up webhooks, create templates, and track document status via Composio integration.
Automates DocuSign e-signature workflows via Rube MCP/Composio: list templates, create/send envelopes, manage signatures/documents. Requires active DocuSign connection.
Share bugs, ideas, or general feedback.
PandaDoc provides a hosted MCP server at https://developers.pandadoc.com/mcp for AI tool integration. The MCP server provides direct API access to PandaDoc's document automation platform, documentation search, and code generation assistance. This skill covers MCP server connection, authentication, the complete tool reference, rate limiting, error handling, and best practices.
PandaDoc hosts an official MCP server. Authentication uses an API key passed via the Authorization header:
MCP Server URL: https://developers.pandadoc.com/mcp
Required Header:
| Header | Value | Description |
|---|---|---|
Authorization | API-Key <key> | API key from PandaDoc Settings |
| Mode | Auth Required | Use Case |
|---|---|---|
| Documentation search | No | Browsing PandaDoc API docs and guides |
| Code generation assistance | No | Generating code snippets for PandaDoc integration |
| Live API calls | Yes | Creating documents, sending for signature, checking status |
Note: Documentation search and code generation work without an API key. All live API operations (creating documents, managing templates, sending for signature) require a valid API key.
export PANDADOC_API_KEY="your-api-key"
{
"mcpServers": {
"pandadoc": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://developers.pandadoc.com/mcp",
"--header", "Authorization:API-Key YOUR_API_KEY"
]
}
}
}
| Tool | Description | Key Parameters |
|---|---|---|
pandadoc-list-documents | List and filter documents | status, q (search query), tag, count, page, order_by, template_id, folder_uuid |
pandadoc-get-document | Get a single document's details | id (required) |
pandadoc-get-document-status | Get document status | id (required) |
pandadoc-create-document | Create a document from template | template_uuid, name, recipients, tokens, fields, pricing_tables, folder_uuid |
pandadoc-send-document | Send a document for signature | id (required), message, subject, silent |
pandadoc-download-document | Download a completed document | id (required) |
| Tool | Description | Key Parameters |
|---|---|---|
pandadoc-list-templates | List available templates | q (search query), count, page, tag, folder_uuid |
pandadoc-get-template | Get template details | id (required) |
| Tool | Description | Key Parameters |
|---|---|---|
pandadoc-add-recipient | Add a recipient to a document | document_id (required), email, first_name, last_name, role, signing_order |
| Tool | Description | Key Parameters |
|---|---|---|
pandadoc-search-docs | Search PandaDoc API documentation | query (required) |
pandadoc-get-code-sample | Generate code samples | endpoint, language |
List tools use 1-based page pagination with configurable count:
Pagination Parameters:
| Parameter | Description | Default | Max |
|---|---|---|---|
page | Page number (1-based) | 1 | - |
count | Results per page | 50 | 100 |
To fetch all results, call the list tool repeatedly, incrementing page from 1 until the number of results returned is less than count:
page=1 and count=100page=2| Parameter | Values | Description |
|---|---|---|
status | document.draft, document.sent, document.completed, document.viewed, document.waiting_approval, document.approved, document.rejected, document.waiting_pay, document.paid, document.voided, document.declined, document.expired | Filter by document status |
q | string | Search documents by name |
tag | string | Filter by document tag |
template_id | UUID | Filter by source template |
folder_uuid | UUID | Filter by folder |
order_by | date_created, date_modified, name, date_status_changed | Sort field |
| Parameter | Values | Description |
|---|---|---|
q | string | Search templates by name |
tag | string | Filter by template tag |
folder_uuid | UUID | Filter by folder |
Single Document:
{
"id": "msFYActMfJHqNTKH9tcPFa",
"name": "Acme Corp - Managed Services Agreement",
"status": "document.sent",
"date_created": "2026-01-15T10:30:00.000000Z",
"date_modified": "2026-01-16T14:22:00.000000Z",
"expiration_date": "2026-02-15T00:00:00.000000Z",
"version": "2",
"recipients": [
{
"email": "john@acme.com",
"first_name": "John",
"last_name": "Smith",
"role": "Client",
"signing_order": 1,
"has_completed": false
}
],
"tokens": [
{
"name": "Client.Company",
"value": "Acme Corporation"
}
],
"grand_total": {
"amount": "2500.00",
"currency": "USD"
}
}
Paginated Document List:
{
"results": [
{
"id": "msFYActMfJHqNTKH9tcPFa",
"name": "Acme Corp - Managed Services Agreement",
"status": "document.sent",
"date_created": "2026-01-15T10:30:00.000000Z"
}
]
}
| Plan | Limit |
|---|---|
| Business | 300 requests per minute |
| Enterprise | 600 requests per minute |
When rate limited, the API returns HTTP 429. Wait before retrying. Use exponential backoff for automated retries.
| Error | HTTP Code | Cause | Resolution |
|---|---|---|---|
| Unauthorized | 401 | Invalid or missing API key | Check PANDADOC_API_KEY and regenerate if needed |
| Forbidden | 403 | Insufficient permissions | Verify API key has required access scope |
| Not Found | 404 | Document/template ID does not exist | Verify the resource ID |
| Rate Limited | 429 | Too many requests | Wait and retry with exponential backoff |
| Validation Error | 422 | Invalid request parameters | Check required fields and parameter formats |
| Server Error | 500 | PandaDoc internal error | Retry after a brief delay |
https://developers.pandadoc.com/mcppandadoc-search-docs (no auth required) to verify connectivitypandadoc-list-documents with count=1 to verify authenticationstatus, q, and tag parameters to narrow resultsdraft status before sendinghas_completed for each recipient to monitor progress