> For the complete documentation index, see [llms.txt](https://developer.paddle.com/llms.txt).

# Docs MCP server

Connect AI agents to current Paddle documentation, the OpenAPI specification, and SDK references using the Paddle docs MCP server.

---

The Paddle docs MCP server gives AI agents full, current knowledge of Paddle so you can build, integrate, and troubleshoot without relying on stale training data.

## How it works

AI agents are only as good as what they know. Without access to current documentation, they can give outdated advice, miss important details, or confidently suggest things that no longer work.

The Paddle docs MCP server gives your agent access to up-to-date-Paddle documentation. Install it once and your AI agent can search all public Paddle resources, including:

- **Paddle docs**  
  Every guide and reference published at [developer.paddle.com](https://developer.paddle.com).
- **OpenAPI specification**  
  The full, current [Paddle API specification](https://github.com/PaddleHQ/paddle-openapi) covering endpoints, parameters, response shapes, and webhooks.
- **SDK references**  
  Up-to-date references for all Paddle SDKs, including [Node.js](https://github.com/PaddleHQ/paddle-node-sdk), [Python](https://github.com/PaddleHQ/paddle-python-sdk), [Go](https://github.com/PaddleHQ/paddle-go-sdk), and [PHP](https://github.com/PaddleHQ/paddle-php-sdk).

{% callout type="note" %}
The docs MCP server gives your AI agent knowledge of Paddle. To let your agent take actions in your Paddle account, set up the [Paddle MCP server](https://developer.paddle.com/sdks/ai/paddle-mcp.md).
{% /callout %}

## Install the docs MCP server

The server runs remotely on [Kapa.ai](https://kapa.ai).

{% tabs %}
{% tab-item title="Claude Desktop" %}

1. Open Claude Desktop and go to **Settings > Developer > Edit Config**.
2. In the `claude_desktop_config.json` file, add the `paddle-docs` server configuration to the `mcpServers` object.
3. Save the file and restart Claude Desktop.

```json
{
  "mcpServers": {
    "paddle-docs": {
      "type": "http",
      "url": "https://paddlehq.mcp.kapa.ai"
    }
  }
}
```

{% /tab-item %}

{% tab-item title="Claude Code" %}

Run the following command in your terminal:

```bash
claude mcp add --transport http paddle-docs https://paddlehq.mcp.kapa.ai
```

{% /tab-item %}

{% tab-item title="OpenAI Codex" %}

1. Run `codex mcp add --transport http paddle-docs https://paddlehq.mcp.kapa.ai` in your terminal.
2. Run `codex mcp login paddle-docs --scopes openid` to print an authorization URL.
3. Manually append `&resource=https%3A%2F%2Fpaddle-docs.mcp.kapa.ai%2F` to the end of the authorization URL.
4. Open the authorization URL in your browser and complete the authentication flow.

The full URL should look something like:

```text
https://mcp.kapa.ai/auth/public/authorize?...&scope=openid&resource=https%3A%2F%2Fpaddle-docs.mcp.kapa.ai%2F
```

{% callout type="info" %}
Appending `resource` is a workaround for a known bug in Codex. Without it, authorization fails with `error=server_error`.
{% /callout %}

{% /tab-item %}

{% tab-item title="Cursor" %}

### One-click install

[Install the Paddle docs MCP in Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=paddle-docs&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vcGFkZGxlaHEubWNwLmthcGEuYWkifQ==)

### Manual install

1. Open **Cursor Settings > MCP Tools** (or Command/Ctrl + Shift + J > **MCP Tools**).
2. Click Add Custom MCP to open the `mcp.json` file.
3. Add the `paddle-docs` server configuration to the `mcpServers` object.
4. Save the file and restart Cursor.

```json
{
  "mcpServers": {
    "paddle-docs": {
      "type": "http",
      "url": "https://paddlehq.mcp.kapa.ai"
    }
  }
}
```

{% /tab-item %}

{% tab-item title="VS Code" %}

### One-click install

[Install the Paddle docs MCP in VS Code](vscode:mcp/install?%7B%22name%22%3A%22paddle-docs%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fpaddlehq.mcp.kapa.ai%22%7D)

### Manual install

1. Press Command/Ctrl + Shift + P to open the command palette.
2. Search and select MCP: Add Server....
3. Select **HTTP** as the server type.
4. Enter `https://paddlehq.mcp.kapa.ai` as the server URL.
5. Enter `paddle-docs` as the server name.
6. Click User Settings.
7. Restart VS Code.

{% /tab-item %}

{% tab-item title="Raycast" %}

[Install the Paddle MCP in Raycast](raycast://mcp/install?%7B%22name%22%3A%22paddle-docs%22%2C%22type%22%3A%22stdio%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%20%22mcp-remote%22%2C%20%22https%3A%2F%2Fpaddlehq.mcp.kapa.ai%22%5D%7D)

{% /tab-item %}

{% tab-item title="ChatGPT Desktop" %}

{% callout type="info" %}
MCP server support in ChatGPT Desktop requires developer mode.
{% /callout %}

1. Open ChatGPT Desktop and go to **Settings > Features**.
2. Enable **Developer mode**.
3. Navigate to **Settings > MCP Servers > Add Server**.
4. Enter `paddle-docs` as the server name and `https://paddlehq.mcp.kapa.ai` as the URL.
5. Complete the authentication flow when prompted.

{% /tab-item %}

{% tab-item title="Windsurf" %}

1. In the **Agent** sidebar, click the  button, then Open MCP Config File.
2. Add the `paddle-docs` server configuration to the `mcpServers` object.
3. Save the file and reload Windsurf.
4. Complete the authentication flow when prompted.

```json
{
  "mcpServers": {
    "paddle-docs": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://paddlehq.mcp.kapa.ai"
      ]
    }
  }
}
```

{% /tab-item %}

{% tab-item title="Zed" %}

1. Run `npx mcp-remote https://paddlehq.mcp.kapa.ai` in your terminal to authenticate your session.
2. Add the `paddle-docs` server to the `context_servers` block in `~/.config/zed/settings.json`.
3. Reload Zed.

```json
{
  "context_servers": {
    "paddle-docs": {
      "source": "custom",
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://paddlehq.mcp.kapa.ai"
      ],
      "env": {}
    }
  }
}
```

{% /tab-item %}

{% tab-item title="Antigravity" %}

1. In the **Agent** sidebar, click the  button, then MCP Servers.
2. Click Manage MCP Servers, then View raw config.
3. Add the `paddle-docs` server configuration to the `mcpServers` object.
4. Save the file and click Refresh.
5. Complete the authentication flow when prompted.

```json
{
  "mcpServers": {
    "paddle-docs": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://paddlehq.mcp.kapa.ai"
      ]
    }
  }
}
```

{% /tab-item %}

{% tab-item title="Other" %}

For any other MCP-compatible client, configure the server manually with these details:

| Setting | Value                          |
| ------- | ------------------------------ |
| Name    | `paddle-docs`                  |
| Type    | `http`                         |
| URL     | `https://paddlehq.mcp.kapa.ai` |

```json
{
  "mcpServers": {
    "paddle-docs": {
      "type": "http",
      "url": "https://paddlehq.mcp.kapa.ai"
    }
  }
}
```

{% /tab-item %}
{% /tabs %}

Once installed, you may be prompted to authenticate with [Kapa.ai](https://kapa.ai). This check keeps the service reliable and secure for everyone.

{% callout type="info" %}
You may have to reauthenticate from time to time. If requests fail, check your MCP settings to make sure you're still authenticated.
{% /callout %}

## Use the server

Once connected, your AI agent can search the Paddle docs, OpenAPI spec, and SDK references automatically when needed. You don't need to configure it to use it.

Most agents show you when an MCP server is used. If yours doesn't, ask it to use up-to-date information from the Paddle documentation. That encourages it to call the tool rather than rely on training data.

## Example prompts

Use these example prompts to get started.

### Integrate Paddle

```markdown {% wrap=true %}
Using the latest Paddle documentation, what's the correct way to verify a webhook signature in my current Node.js implementation?
```

### Understand the API

```markdown {% wrap=true %}
Check the Paddle docs and tell me which fields I need to include when creating a one-time charge on an existing subscription.
```

### Debug an issue

```markdown {% wrap=true %}
Looking at the current Paddle documentation, what are the most likely causes of a `too_many_requests` error when calling the transactions endpoint, and how should I handle it?
```

### Plan a migration

```markdown {% wrap=true %}
Based on the current Paddle docs, what are the main differences between Paddle Classic and Paddle Billing, and what would I need to update in my existing integration to migrate?
```

### Build a checkout

```markdown {% wrap=true %}
Using up-to-date Paddle documentation, plan how to add an overlay, one-page Paddle Checkout to my existing Next.js pricing page.
```

### Manage subscriptions

```markdown {% wrap=true %}
Using up-to-date Paddle documentation, give me detailed instructions on how to open a customer portal for my customers to manage their subscriptions.
```