Dodo Payments MCP Server

This server connects AI assistants and other MCP clients to the Dodo Payments API. It uses the streamable HTTP transport at this URL:

https://mcp.dodopayments.com/mcp

Sign in with Dodo Payments

You sign in with your Dodo Payments account through OAuth. You do not need an API key.

The first time that you connect, your client opens the Dodo Payments sign-in page (https://auth.dodopayments.com) in your browser. On the consent page, select:

Then approve the connection. Start with test mode and read permissions. Approve live mode or write permissions only when you need them.

Connect your client

Claude Code

claude mcp add --transport http dodopayments https://mcp.dodopayments.com/mcp

Then run /mcp in Claude Code and select dodopayments to sign in.

Claude Desktop and Claude.ai

  1. Open Settings → Connectors.
  2. Click Add custom connector.
  3. Enter the URL https://mcp.dodopayments.com/mcp.

Cursor

Add the server to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "dodopayments": {
      "url": "https://mcp.dodopayments.com/mcp"
    }
  }
}

ChatGPT

Open Settings → Apps & Connectors and create a connector. Enter https://mcp.dodopayments.com/mcp as the MCP server URL and select OAuth as the authentication. On some plans, custom connectors need developer mode.

Other clients

Use the URL https://mcp.dodopayments.com/mcp in a client that supports remote MCP servers with OAuth. If your client supports only local (stdio) servers, use mcp-remote as a bridge:

{
  "mcpServers": {
    "dodopayments": {
      "command": "npx",
      "args": ["-y", "mcp-remote@latest", "https://mcp.dodopayments.com/mcp"]
    }
  }
}

Test mode and live mode

A connection with one mode always uses that mode. A connection with both modes must send the Dodo-Mode: test or Dodo-Mode: live header with each request. If your client cannot send custom headers, select one mode on the consent page.

Each session keeps one mode. To use the other mode, start a new session with the other header value.

Claude Code:

claude mcp add --transport http dodopayments https://mcp.dodopayments.com/mcp --header "Dodo-Mode: test"

Cursor:

{
  "mcpServers": {
    "dodopayments": {
      "url": "https://mcp.dodopayments.com/mcp",
      "headers": { "Dodo-Mode": "test" }
    }
  }
}

Tools

async function run(client) {
  const page = await client.payments.list({ page_size: 10 });
  return page.items.map((payment) => ({ id: payment.payment_id, status: payment.status }));
}

Each execute call runs in a new, isolated sandbox. The execute tool can create, change, refund, and delete data in your business. Approve only the permissions that you need.

Manage connections

To see or revoke your connections, open the Dodo Payments dashboard and go to Settings → Connected Apps. A revoked connection stops working. To use the client again, connect again.

Your client never gets an API key. The server does not send your sign-in token to the Dodo Payments API. To call the API, the execute tool exchanges your sign-in token for a short-lived API token in the mode of the session.

Older connections with an API key

Before the Dodo Payments sign-in, this server asked for an API key. Existing connections that use an API key continue to work. The https://mcp.dodopayments.com/sse URL still uses the API-key sign-in. For a new connection, use https://mcp.dodopayments.com/mcp and sign in with your Dodo Payments account.

Troubleshooting

Learn more