Dodo Payments

API ao vivo do Dodo Payments para agentes de IA — pagamentos, assinaturas, clientes, produtos, reembolsos, chaves de licença e faturamento baseado em uso via OAuth no navegador (sem necessidade de chave de API) além de um servidor de busca de documentação complementar.

Documentação

Plugin de Agente Dodo Payments

License Version npm Discord

O plugin oficial da Dodo Payments para agentes de codificação de IA. Instala dezessete habilidades de integração e dois servidores MCP em Claude Code, Codex CLI, Cursor, VS Code / GitHub Copilot e OpenCode a partir de uma única fonte de verdade.

Este plugin está em conformidade com a especificação Agent Plugins 1.0.0: uma raiz plugin.json, habilidades como filhos imediatos de skills/ e servidores MCP em mcp.json. Clientes com suporte nativo a Agent Plugins o carregam diretamente; os manifestos específicos de provedor neste repositório são shims de compatibilidade gerados para clientes que não o fazem.

O que você obtém

  • Servidor MCP da API Dodo Payments - Acesso à API ao vivo (pagamentos, assinaturas, clientes, produtos, reembolsos, licenças, uso). Autentica via OAuth no navegador, sem necessidade de credenciais locais.
  • Servidor MCP do Conhecimento Dodo - Sem credenciais. Pesquisa semântica sobre a documentação atual da Dodo Payments.
  • Dezessete habilidades de agente - Escritas como arquivos SKILL.md com frontmatter YAML. Seu agente carrega a habilidade relevante por conta própria quando uma tarefa exige.

Instalação

Claude Code

claude plugins marketplace add dodopayments/dodo-agent-plugin
claude plugins install dodopayments@dodopayments

O servidor MCP da API usa OAuth no navegador por padrão, então nenhuma chave é necessária no momento da instalação. Na primeira vez que seu agente chamar uma ferramenta Dodo, você será solicitado a entrar.

Codex CLI

Registre o marketplace e depois instale o plugin:

codex plugin marketplace add dodopayments/dodo-agent-plugin
codex plugin add dodopayments@dodopayments

Verifique:

codex plugin list     # dodopayments  installed, enabled
codex mcp list        # dodo-knowledge, dodopayments-api
codex mcp login dodopayments-api    # browser OAuth, only needed for the API server

Você também pode instalar de dentro da TUI: execute codex, digite /plugins, selecione o marketplace Dodo Payments e o plugin dodopayments, depois escolha Instalar plugin.

Se você adicionou o marketplace anteriormente e o plugin não aparece, atualize-o:

codex plugin marketplace upgrade dodopayments

Cursor

Instalação manual:

git clone https://github.com/dodopayments/dodo-agent-plugin.git ~/.cursor/plugins/local/dodo-agent-plugin

Reinicie o Cursor. O plugin carrega habilidades de skills/ e servidores MCP de .mcp.json, conforme declarado em .cursor-plugin/plugin.json.

O Cursor 3.14.27 também reconhece Agent Plugins 1.0.0 diretamente: seu host de agente carrega ambos os URLs de schema da spec e o próprio regex name da spec, e aceita tanto .cursor-plugin/marketplace.json quanto .claude-plugin/marketplace.json como fonte de marketplace. O .cursor-plugin/plugin.json gerado é mantido como rede de segurança para builds mais antigas.

Antes da v0.5.0, este clone produzia um plugin sem habilidades funcionais: skills/ continha symlinks para um submódulo git que um git clone simples não busca. As habilidades agora são fornecidas como arquivos reais, então o comando acima funciona conforme documentado. Se você instalou uma versão anterior, re-clone.

Kiro

O Kiro lê o manifesto do Agent Plugins nativamente e carrega isto como um Power:

git clone https://github.com/dodopayments/dodo-agent-plugin.git

Aponte o Kiro para a pasta clonada. As habilidades carregam de skills/, servidores MCP de mcp.json, e a apresentação específica do Kiro vem do namespace de extensão dev.kiro em plugin.json.

Gemini CLI (somente MCP)

O Gemini CLI não tem primitiva de habilidade de agente, então apenas os dois servidores MCP estão disponíveis - as dezessete habilidades não estão. dodo-knowledge ainda cobre uma boa parte do que as habilidades fornecem, e permanece atualizado automaticamente.

git clone https://github.com/dodopayments/dodo-agent-plugin.git \
  ~/.gemini/extensions/dodopayments

Reinicie o Gemini CLI. gemini-extension.json na raiz do repositório é o manifesto.

VS Code / GitHub Copilot

git clone https://github.com/dodopayments/dodo-agent-plugin.git

Em seguida, abra a visualização de Chat, vá para Plugins e adicione a pasta clonada. As habilidades carregam de skills/ e ambos os servidores MCP carregam de .mcp.json.

O VS Code 1.125.1 não usa o $schema do Agent Plugins - a string não aparece em lugar nenhum do seu bundle. Seu carregador escolhe um manifesto sondando, em ordem, .plugin/plugin.json, depois .claude-plugin/plugin.json, depois um plugin.json raiz, e padroniza MCP para .mcp.json em vez de mcp.json. Como este repositório envia um .claude-plugin/plugin.json gerado, o VS Code o carrega através desse ramo. Tudo funciona - dezessete habilidades e dois servidores MCP - mas via manifestos de compatibilidade em vez dos da spec, então o VS Code usa a ponte mcp-remote em vez dos transportes nativos em mcp.json.

OpenCode

O OpenCode distribui via npm. Adicione o plugin ao seu opencode.json:

{
    "$schema": "https://opencode.ai/config.json",
    "plugin": ["@dodopayments/opencode-plugin"]
}

Reinicie o OpenCode. Ambos os servidores MCP (dodopayments-api, dodo-knowledge) são registrados automaticamente via o hook config do plugin. Nenhum bloco mcp manual é necessário.

As habilidades precisam do pacote instalado localmente mais uma linha extra. O OpenCode não verifica pacotes instalados para habilidades, então aponte-o para o diretório skills/ do pacote você mesmo. Entradas skills.paths resolvem em relação ao diretório do projeto, então o pacote deve estar presente no node_modules do projeto - o cache de plugin do próprio OpenCode não é o mesmo local:

npm install --save-dev @dodopayments/opencode-plugin
{
    "$schema": "https://opencode.ai/config.json",
    "plugin": ["@dodopayments/opencode-plugin"],
    "skills": {
        "paths": ["node_modules/@dodopayments/opencode-plugin/skills"]
    }
}

Um caminho absoluto também funciona e evita o requisito de instalação local.

Verifique com opencode run "List every skill available to you by name." - você deve ver todas as dezessete. Um caminho de habilidades que não existe é ignorado silenciosamente, então verifique em vez de assumir.

Versões anteriores à 0.5.0 documentavam essas habilidades como auto-descobertas. Elas não eram: nada no OpenCode verifica um pacote instalado, então usuários do OpenCode tinham servidores MCP, mas nenhuma habilidade. Definir config.skills do hook config do plugin também não corrige isso - o índice de habilidades é construído antes que os hooks config sejam executados, então nunca registra nada.

Se você preferir o servidor API stdio local com sua própria chave de API em vez do servidor OAuth remoto padrão, declare dodopayments-api você mesmo em opencode.json - sua entrada vence sobre o padrão do plugin:

{
    "plugin": ["@dodopayments/opencode-plugin"],
    "mcp": {
        "dodopayments-api": {
            "type": "local",
            "command": ["npx", "-y", "dodopayments-mcp@latest"],
            "environment": {
                "DODO_PAYMENTS_API_KEY": "dodo_test_...",
                "DODO_PAYMENTS_WEBHOOK_KEY": "whsec_...",
                "DODO_PAYMENTS_ENVIRONMENT": "test_mode"
            },
            "enabled": true
        }
    }
}

Habilidades Incluídas

Começando

HabilidadeDescrição
dodo-best-practicesConfiguração do SDK, ambientes, chaves de API e a arquitetura canônica de checkout para webhook
framework-adaptersHandlers oficiais de @dodopayments/* para Next.js, Express, Hono, Astro, Remix, SvelteKit, Nuxt, Fastify, TanStack, Bun, Convex
testing-and-go-liveModo de teste, métodos de pagamento de teste, teste de webhook, checklist de lançamento em produção

Aceitando pagamentos

HabilidadeDescrição
checkout-integrationSessões de checkout, links de pagamento e checkout sobreposto
subscription-integrationCiclo de vida de assinaturas, períodos de teste, mudanças de plano, rateio, cobranças sob demanda
mobile-checkoutCheckout no aplicativo para React Native, Flutter, iOS e Android
webhook-integrationReceber e verificar webhooks via especificação Standard Webhooks

Modelos de cobrança

HabilidadeDescrição
credit-based-billingDireitos de crédito, saldos, razão, rolagem, excedente, dedução baseada em medidor
usage-based-billingMedidores, ingestão de eventos, agregação e preço por unidade
license-keysAtivação de chave de licença, validação e gerenciamento de instâncias

Catálogo e preços

HabilidadeDescrição
product-catalog-managementProdutos, preços, complementos, coleções, imagens, entrega digital
discounts-and-promotionsCódigos de desconto, elegibilidade, empilhamento, limites de ciclo de assinatura
localized-pricingPreços localizados, moeda adaptativa e paridade de poder de compra

Clientes e operações

HabilidadeDescrição
customer-managementClientes, portal de autoatendimento, métodos de pagamento, carteiras
refunds-and-disputesReembolsos, disputas e estornos, reconciliação de acesso

UI e integrações

HabilidadeDescrição
billing-sdkComponentes React do BillingSDK para tabelas de preços e UI de cobrança
better-auth-integrationO plugin @dodopayments/better-auth para sincronização de clientes, checkout, portal

Fonte das habilidades: dodopayments/skills, fornecido em skills/ como arquivos reais. A proveniência (commit upstream e transformações aplicadas) é registrada em .skills-source.json.

Servidores MCP Incluídos

ServidorPropósitoAuth
dodopayments-apiAcesso à API ao vivo (pagamentos, assinaturas, clientes, produtos, reembolsos, licenças, uso)OAuth (navegador)
dodo-knowledgePesquisa semântica sobre a documentação da Dodo PaymentsNenhum

Ambos os servidores falam Streamable HTTP. O mcp.json canônico os declara nativamente (type: "streamable-http"), que é o que clientes nativos da spec, como Codex CLI e Cursor, usam. Os manifestos de compatibilidade gerados — .mcp.json, lidos por Claude Code, VS Code e o caminho legado do Cursor — conectam os mesmos dois endpoints via mcp-remote em vez disso, para que rodem em clientes que ainda não podem conectar-se diretamente ao Streamable HTTP.

Configurar (opcional, Claude Code)

Se você preferir executar o MCP da API localmente com uma chave de API em vez do servidor remoto, abra /plugins no Claude Code, selecione Dodo Payments e escolha Configurar opções. Preencha:

  • dodo_api_key - sua chave dodo_test_... ou dodo_live_...
  • dodo_webhook_key - seu segredo de assinatura de webhook
  • dodo_environment - test_mode ou live_mode

Depois edite .mcp.json para apontar dodopayments-api para o servidor stdio local:

{
    "mcpServers": {
        "dodopayments-api": {
            "type": "stdio",
            "command": "npx",
            "args": ["-y", "dodopayments-mcp@latest"],
            "env": {
                "DODO_PAYMENTS_API_KEY": "${user_config.dodo_api_key}",
                "DODO_PAYMENTS_WEBHOOK_KEY": "${user_config.dodo_webhook_key}",
                "DODO_PAYMENTS_ENVIRONMENT": "${user_config.dodo_environment}"
            }
        }
    }
}

Execute /reload-plugins para aplicar alterações à sua sessão atual.

Habilitar / desabilitar servidores MCP individuais

Ambos os MCPs vêm habilitados por padrão. Você pode desligar qualquer um deles independentemente.

OpenCode

O plugin npm lê duas variáveis de ambiente antes de registrar MCPs:

Variável de ambienteEfeito
DODO_DISABLE_API_MCP=1Pula o registro de dodopayments-api
DODO_DISABLE_KNOWLEDGE_MCP=1Pula o registro de dodo-knowledge

Valores truthy: 1, true, yes, on (insensível a maiúsculas/minúsculas). Exporte a variável no seu perfil de shell ou defina inline:

DODO_DISABLE_API_MCP=1 opencode

Claude Code, Codex CLI, Cursor

Esses clientes carregam MCPs do .mcp.json estático incluído no plugin. Para desabilitar um servidor, substitua sua entrada na sua própria configuração do nível do projeto e defina "enabled": false.

Claude Code - edite .mcp.json na raiz do seu projeto (ou execute claude mcp disable dodopayments-api):

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

Execute /reload-plugins para aplicar.

Codex CLI / Cursor - o mesmo padrão enabled: false funciona em qualquer .mcp.json do nível do projeto que substitui o arquivo agrupado do plugin. Reinicie o cliente após editar.

Alternativas por MCP dentro da UI /plugin do Claude Code são rastreadas upstream em anthropics/claude-code#27105 e #46373. Até que essas sejam implementadas, a substituição enabled: false acima é o caminho suportado.

Um prompt para tentar primeiro

Assim que o plugin estiver ativo, tente:

Set up Dodo Payments webhook handlers in my Next.js app for payment.succeeded and subscription.active events.

Seu agente carregará a habilidade webhook-integration, usará o MCP dodo-knowledge para buscar as formas de payload mais recentes e escreverá um handler com verificação de assinatura seguindo a especificação Standard Webhooks.

Desenvolvimento local

git clone https://github.com/dodopayments/dodo-agent-plugin.git
cd dodo-agent-plugin

Sem submódulos, sem etapa de build - skills/ é fornecido como arquivos reais.

Valide o plugin e marketplace do Claude Code:

claude plugin validate .

Carregue o plugin diretamente para uma sessão de desenvolvimento:

claude --plugin-dir ./dodo-agent-plugin

Verifique tudo antes de enviar:

npm run verify     # generated artifacts in sync + Agent Plugins conformance

Layout do repositório

CaminhoPapel
plugin.jsonCanônico. Manifesto Agent Plugins v1.0.0 e fonte de verdade da versão
mcp.jsonCanônico. Configuração MCP Agent Plugins v1.0.0
skills/Canônico. Dezessete habilidades, fornecidas como arquivos reais
overlays/*.jsonExtras de provedor escritos à mão que o schema fechado da spec não pode expressar
.claude-plugin/, .cursor-plugin/, .agents/, .mcp.json, plugins/dodopayments/Gerados. Não edite manualmente - execute npm run build
scripts/build.mjsO gerador único (--check para drift)
scripts/conformance.mjsValidador de conformidade Agent Plugins
.skills-source.jsonProveniência upstream para as habilidades fornecidas
As habilidades são criadas em dodopayments/skills e vendidas aqui. Um fluxo de trabalho semanal as re-sincroniza e abre um PR; execute-o sob demanda com o despacho de fluxo de trabalho Sync skills from upstream.

Para mantenedores

O repositório está configurado para publicar o pacote npm OpenCode em cada Release do GitHub.

Configuração única (já feita para este repositório):

  • O escopo npm @dodopayments existe e é de propriedade da Dodo Payments.
  • O segredo do GitHub Actions NPM_TOKEN é provisionado com direitos de publicação para o escopo @dodopayments.

Fluxo de trabalho de release:

  1. Atualize version em plugin.json (a fonte única da verdade).
  2. Execute npm run build para propagá-lo a cada manifesto gerado.
  3. Execute npm run verify, depois faça commit e tag.
  4. Crie um GitHub Release - o fluxo de trabalho Publish @dodopayments/opencode-plugin publica no npm com proveniência.

Execução de teste manual:

  • Despacho de fluxo de trabalho com dry_run: true para validar o pipeline de release sem publicar.

Verificações de CI:

  • Verify é executado em cada pull request e push para main: deriva de artefatos, conformidade com Agent Plugins, validação de JSON Schema ao vivo, uma asserção de "dezessete habilidades, zero symlinks" e uma verificação de payload npm.
  • O fluxo de trabalho de release reexecuta as mesmas verificações antes de publicar.

Recursos

Licença

MIT - veja LICENSE.