# Creating and sharing documents with the PandaDoc MCP Server

<Callout title="Governing MCP across your organization?" type="info">
  Speakeasy's [AI control plane](/product/ai-control-plane) connects, secures, and observes every agent and MCP server from one entry point — with SSO, RBAC, runtime guardrails, and a full audit trail.
</Callout>

PandaDoc is a document automation platform that helps users create professional documents from templates. 

Using the PandaDoc MCP Server, you can create and populate professional documents through Claude Desktop, generating contracts, proposals, and reports by describing what you need in natural language.

![Screenshot of Claude Desktop showing the generated content for the document](/assets/mcp/using-mcp/pandadoc-claude-quickstart/final-result.png)

This guide shows you how to connect the PandaDoc MCP Server to Claude Desktop.

## Prerequisites 

- A [PandaDoc account](https://www.pandadoc.com/)
- [Claude Desktop](https://claude.ai/download) 

## Creating a PandaDoc template

PandaDoc creates documents from templates, so you'll need a template that Claude can populate with your content.

In the PandaDoc dashboard, click **Templates** in the sidebar, then **+ Template** (or **Other Template Type**, if you're using a new account).

![Screenshot of the PandaDoc dashboard highlighting the new template button](/assets/mcp/using-mcp/pandadoc-claude-quickstart/add-template.png)

Select **Blank Template**.

![Screenshot of the PandaDoc dashboard highlighting the blank template option](/assets/mcp/using-mcp/pandadoc-claude-quickstart/blank-template.png)

Double-click the template name in the top-left corner and rename the template "Progress Report Template". This will make it easy to reference the template when you ask Claude to create the document using PandaDoc.

![Screenshot of the PandaDoc dashboard highlighting the template name and "Create document" button](/assets/mcp/using-mcp/pandadoc-claude-quickstart/rename-template.png)

Click **Create document**. 

## Retrieving the PandaDoc API key

In the PandaDoc dashboard, navigate to **Settings → API and Integrations**. Scroll down and click **API** under **API and Webhooks**.

![Screenshot of the PandaDoc "API and Integrations" configuration highlighting the "API" option](/assets/mcp/using-mcp/pandadoc-claude-quickstart/api-settings.png)

On the API configuration page that opens, you can view the Sandbox and Production keys. Click **Generate** to create a Sandbox key, then copy the key and save it. You'll need it for the Claude Desktop configuration.

![Screenshot of PandaDoc settings showing where to copy the generated Sandbox key](/assets/mcp/using-mcp/pandadoc-claude-quickstart/sandbox-api-key.png)

## Connecting the PandaDoc MCP Server

Now add the PandaDoc MCP Server to the Claude Desktop configuration.

In Claude Desktop, go to **Settings** → **Developer** → **Edit Config**.

![Screenshot of Claude Desktop highlighting the navigation path: Settings → Developer → Edit Config](/assets/mcp/using-mcp/pandadoc-claude-quickstart/claude-desktop-config-settings.png)

Add the PandaDoc configuration to the `claude_desktop_config.json` file that opens:

```json
{
  "mcpServers": {
    "pandadoc": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://developers.pandadoc.com/mcp",
        "--header",
        "Authorization: API-Key ${AUTH_TOKEN}"
      ],
      "env": {
        "AUTH_TOKEN": "YOUR_SANDBOX_KEY"
      }
    }
  }
}
```

Replace `YOUR_SANDBOX_KEY` with the sandbox key you copied from PandaDoc.

Restart Claude Desktop.

## Configuring Claude for optimal PandaDoc integration

Update your response preferences in Claude Desktop to ensure Claude works effectively with PandaDoc templates. 

Go to **Settings** → **Profile** and add the following instructions to your response preferences:

```txt
When working with the PandaDoc MCP Server:
- Always create text fields with specific merge_field names when populating templates
- Use the pattern: "Add a text field with merge_field name '[field_name]'"
- Include verification: "Check that the document is filled, otherwise make sure"
- Specify content length for better generation (e.g., "50-word report")
```

![Screenshot of Claude Desktop settings showing the response preferences field](/assets/mcp/using-mcp/pandadoc-claude-quickstart/claude-preferences.png)

## Testing the connection 

Test the connection by asking Claude to find your PandaDoc template:

```txt
Confirm the Progress Report template exists using the PandaDoc MCP server.
```

![Screenshot of Claude Desktop UI showing a response confirming the PandaDoc template has been found](/assets/mcp/using-mcp/pandadoc-claude-quickstart/find-template.png)

## Generating and sharing a document

Now ask Claude to generate a short scrum report, and create and share the document using PandaDoc:

```txt
Before starting this task, first review my PandaDoc preferences and confirm you understand them. Then create a short scrum report and create a document in PandaDoc with the Progress Report template following my documented approach. Finally, publish and share the document with an_email_address_com.
```

![Screenshot of Claude Desktop UI showing the report has been successfully generated and emailed](/assets/mcp/using-mcp/pandadoc-claude-quickstart/generate-document.png)

Claude will generate sample report content, populate your template, create the document in PandaDoc, and share it with the specified email address.

![Screenshot of the email sent from PandaDoc with a link to the generated document](/assets/mcp/using-mcp/pandadoc-claude-quickstart/result-email.png)

In a real-world scenario, you could provide the report content as part of the prompt, include a context document containing the data, or have Claude pull the information from another MCP server.

![Screenshot of the generated document in PandaDoc](/assets/mcp/using-mcp/pandadoc-claude-quickstart/result-doc.png)

## Conclusion

Now that you can generate documents in Claude Desktop using the PandaDoc MCP Server, try combining this functionality with other MCP servers. For example, you could use [Slack conversations](/mcp/using-mcp/mcp-server-providers/slack) to automatically generate project reports or client updates with PandaDoc.
