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 pandadocThis skill uses the workspace's default tool permissions.
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.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Analyzes BMad project state from catalog CSV, configs, artifacts, and query to recommend next skills or answer questions. Useful for help requests, 'what next', or starting BMad.
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