Dodo Payments
API en vivo de Dodo Payments para agentes de IA — pagos, suscripciones, clientes, productos, reembolsos, claves de licencia y facturación basada en uso mediante OAuth en navegador (sin necesidad de clave API) más un servidor de búsqueda de documentación complementario.
Documentación
Complemento de Agente de Dodo Payments
El complemento oficial de Dodo Payments para agentes de IA de codificación. Instala diecisiete habilidades de integración y dos servidores MCP en Claude Code, Codex CLI, Cursor, VS Code / GitHub Copilot y OpenCode desde una única fuente de verdad.
Este complemento cumple con la especificación Agent Plugins 1.0.0: un plugin.json raíz, habilidades como hijos inmediatos de skills/ y servidores MCP en mcp.json. Los clientes con soporte nativo de Agent Plugins lo cargan directamente; los manifiestos específicos del proveedor en este repositorio son adaptadores de compatibilidad generados para clientes que no lo soportan.
Lo que obtienes
- Servidor MCP de API de Dodo Payments - Acceso a la API en vivo (pagos, suscripciones, clientes, productos, reembolsos, licencias, uso). Se autentica mediante OAuth del navegador, sin necesidad de credenciales locales.
- Servidor MCP de Conocimiento de Dodo - Sin credenciales. Búsqueda semántica sobre la documentación actual de Dodo Payments.
- Diecisiete habilidades de agente - Escritas como archivos
SKILL.mdcon frontmatter YAML. Tu agente carga la habilidad relevante por sí solo cuando una tarea lo requiere.
Instalación
Claude Code
claude plugins marketplace add dodopayments/dodo-agent-plugin
claude plugins install dodopayments@dodopayments
El servidor MCP de API usa OAuth del navegador por defecto, por lo que no se requieren claves al momento de la instalación. La primera vez que tu agente llame a una herramienta de Dodo, se te pedirá que inicies sesión.
Codex CLI
Registra el marketplace y luego instala el complemento:
codex plugin marketplace add dodopayments/dodo-agent-plugin
codex plugin add dodopayments@dodopayments
Verifica:
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
También puedes instalar desde la TUI: ejecuta codex, escribe /plugins, selecciona el marketplace Dodo Payments y el complemento dodopayments, luego elige Instalar complemento.
Si agregaste el marketplace anteriormente y el complemento no aparece, actualízalo:
codex plugin marketplace upgrade dodopayments
Cursor
Instalación manual:
git clone https://github.com/dodopayments/dodo-agent-plugin.git ~/.cursor/plugins/local/dodo-agent-plugin
Reinicia Cursor. El complemento carga las habilidades desde skills/ y los servidores MCP desde .mcp.json, como se declara en .cursor-plugin/plugin.json.
Cursor 3.14.27 también reconoce Agent Plugins 1.0.0 directamente: su host de agente incluye ambas URL de esquema de la especificación y la propia expresión regular
namede la especificación, y acepta.cursor-plugin/marketplace.jsono.claude-plugin/marketplace.jsoncomo fuente de marketplace. El.cursor-plugin/plugin.jsongenerado se mantiene como refuerzo para versiones anteriores.
Antes de v0.5.0, este clon producía un complemento sin habilidades funcionales:
skills/contenía enlaces simbólicos a un submódulo de git que ungit clonesimple no obtiene. Las habilidades ahora se incluyen como archivos reales, por lo que el comando anterior funciona como se documenta. Si instalaste una versión anterior, vuelve a clonar.
Kiro
Kiro lee el manifiesto de Agent Plugins de forma nativa y carga esto como un Power:
git clone https://github.com/dodopayments/dodo-agent-plugin.git
Apunta Kiro a la carpeta clonada. Las habilidades se cargan desde skills/, los servidores MCP desde mcp.json y la presentación específica de Kiro proviene del espacio de nombres de extensión dev.kiro en plugin.json.
Gemini CLI (solo MCP)
Gemini CLI no tiene una primitiva de habilidad de agente, por lo que solo los dos servidores MCP están disponibles - las diecisiete habilidades no lo están. dodo-knowledge aún cubre una buena parte de lo que proporcionan las habilidades y se mantiene actualizado automáticamente.
git clone https://github.com/dodopayments/dodo-agent-plugin.git \
~/.gemini/extensions/dodopayments
Reinicia Gemini CLI. gemini-extension.json en la raíz del repositorio es el manifiesto.
VS Code / GitHub Copilot
git clone https://github.com/dodopayments/dodo-agent-plugin.git
Luego abre la vista de Chat, ve a Complementos y agrega la carpeta clonada. Las habilidades se cargan desde skills/ y ambos servidores MCP se cargan desde .mcp.json.
VS Code 1.125.1 no se basa en el
$schemade Agent Plugins - la cadena no aparece en ningún lugar de su paquete. Su cargador elige un manifiesto probando, en orden,.plugin/plugin.json, luego.claude-plugin/plugin.json, luego unplugin.jsonraíz, y por defecto MCP a.mcp.jsonen lugar demcp.json. Debido a que este repositorio incluye un.claude-plugin/plugin.jsongenerado, VS Code lo carga a través de esa rama. Todo funciona - diecisiete habilidades y dos servidores MCP - pero a través de los manifiestos de compatibilidad en lugar de los de la especificación, por lo que VS Code obtiene el puentemcp-remoteen lugar de los transportes nativos enmcp.json.
OpenCode
OpenCode se distribuye a través de npm. Agrega el complemento a tu opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@dodopayments/opencode-plugin"]
}
Reinicia OpenCode. Ambos servidores MCP (dodopayments-api, dodo-knowledge) se registran automáticamente a través del hook config del complemento. No se requiere un bloque mcp manual.
Las habilidades necesitan el paquete instalado localmente más una línea adicional. OpenCode no escanea los paquetes instalados en busca de habilidades, así que apúntalo al directorio skills/ del paquete tú mismo. Las entradas de skills.paths se resuelven contra el directorio del proyecto, por lo que el paquete debe estar presente en el node_modules del proyecto - la caché de complementos propia de OpenCode no es la misma ubicación:
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"]
}
}
Una ruta absoluta también funciona y evita el requisito de instalación local.
Verifica con opencode run "List every skill available to you by name." - deberías ver las diecisiete. Una ruta de habilidades que no existe se ignora silenciosamente, así que verifica en lugar de asumir.
Las versiones anteriores a 0.5.0 documentaban estas habilidades como auto-descubiertas. No lo eran: nada en OpenCode escanea un paquete instalado, por lo que los usuarios de OpenCode tenían servidores MCP pero no habilidades. Establecer
config.skillsdesde el hookconfigdel complemento tampoco soluciona esto - el índice de habilidades se construye antes de que se ejecuten los hooks deconfig, por lo que nunca registra nada.
Si prefieres el servidor API local stdio con tu propia clave de API en lugar del servidor OAuth remoto predeterminado, declara dodopayments-api tú mismo en opencode.json - tu entrada gana sobre el valor predeterminado del complemento:
{
"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 Incluidas
Primeros pasos
| Habilidad | Descripción |
|---|---|
dodo-best-practices | Configuración del SDK, entornos, claves de API y la arquitectura canónica de checkout a webhook |
framework-adapters | Manejadores oficiales de @dodopayments/* para Next.js, Express, Hono, Astro, Remix, SvelteKit, Nuxt, Fastify, TanStack, Bun, Convex |
testing-and-go-live | Modo de prueba, métodos de pago de prueba, pruebas de webhook, lista de verificación de lanzamiento a producción |
Aceptación de pagos
| Habilidad | Descripción |
|---|---|
checkout-integration | Sesiones de checkout, enlaces de pago y checkout superpuesto |
subscription-integration | Ciclo de vida de suscripciones, pruebas, cambios de plan, prorrateo, cargos bajo demanda |
mobile-checkout | Checkout en la aplicación para React Native, Flutter, iOS y Android |
webhook-integration | Recepción y verificación de webhooks mediante la especificación Standard Webhooks |
Modelos de facturación
| Habilidad | Descripción |
|---|---|
credit-based-billing | Derechos de crédito, saldos, libro mayor, renovación, excedente, deducción basada en medidores |
usage-based-billing | Medidores, ingesta de eventos, agregación y precios por unidad |
license-keys | Activación de claves de licencia, validación y gestión de instancias |
Catálogo y precios
| Habilidad | Descripción |
|---|---|
product-catalog-management | Productos, precios, complementos, colecciones, imágenes, entrega digital |
discounts-and-promotions | Códigos de descuento, elegibilidad, acumulación, límites por ciclo de suscripción |
localized-pricing | Precios localizados, moneda adaptativa y paridad de poder adquisitivo |
Clientes y operaciones
| Habilidad | Descripción |
|---|---|
customer-management | Clientes, portal de autoservicio, métodos de pago, billeteras |
refunds-and-disputes | Reembolsos, disputas y contracargos, conciliación de accesos |
UI e integraciones
| Habilidad | Descripción |
|---|---|
billing-sdk | Componentes React de BillingSDK para tablas de precios y UI de facturación |
better-auth-integration | El complemento @dodopayments/better-auth para sincronización de clientes, checkout, portal |
Fuente de habilidades: dodopayments/skills, incluidas en skills/ como archivos reales. La procedencia (commit ascendente y transformaciones aplicadas) se registra en .skills-source.json.
Servidores MCP Incluidos
| Servidor | Propósito | Autenticación |
|---|---|---|
dodopayments-api | Acceso a la API en vivo (pagos, suscripciones, clientes, productos, reembolsos, licencias, uso) | OAuth (navegador) |
dodo-knowledge | Búsqueda semántica sobre la documentación de Dodo Payments | Ninguna |
Ambos servidores hablan Streamable HTTP. El mcp.json canónico los declara de forma nativa (type: "streamable-http"), que es lo que usan los clientes nativos de la especificación como Codex CLI y Cursor. Los manifiestos de compatibilidad generados - .mcp.json, leídos por Claude Code, VS Code y la ruta heredada de Cursor - conectan los mismos dos endpoints a través de mcp-remote en su lugar, para que se ejecuten en clientes que aún no pueden usar Streamable HTTP directamente.
Configuración (opcional, Claude Code)
Si prefieres ejecutar el MCP de API localmente con una clave de API en lugar del servidor remoto, abre /plugins en Claude Code, selecciona Dodo Payments y elige Opciones de configuración. Completa:
dodo_api_key- tu clavedodo_test_...ododo_live_...dodo_webhook_key- tu secreto de firma de webhookdodo_environment-test_modeolive_mode
Luego edita .mcp.json para apuntar dodopayments-api al servidor local stdio:
{
"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}"
}
}
}
}
Ejecuta /reload-plugins para aplicar los cambios a tu sesión actual.
Habilitar / deshabilitar servidores MCP individuales
Ambos MCP vienen habilitados por defecto. Puedes desactivar cualquiera de ellos de forma independiente.
OpenCode
El complemento npm lee dos variables de entorno antes de registrar los MCP:
| Variable de entorno | Efecto |
|---|---|
DODO_DISABLE_API_MCP=1 | Omite el registro de dodopayments-api |
DODO_DISABLE_KNOWLEDGE_MCP=1 | Omite el registro de dodo-knowledge |
Valores verdaderos: 1, true, yes, on (sin distinción de mayúsculas). Exporta la variable en tu perfil de shell o establécela en línea:
DODO_DISABLE_API_MCP=1 opencode
Claude Code, Codex CLI, Cursor
Estos clientes cargan los MCP desde el .mcp.json estático incluido con el complemento. Para deshabilitar un servidor, anula su entrada en tu propia configuración a nivel de proyecto y establece "enabled": false.
Claude Code - edita .mcp.json en la raíz de tu proyecto (o ejecuta claude mcp disable dodopayments-api):
{
"mcpServers": {
"dodopayments-api": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-remote@latest", "https://mcp.dodopayments.com/mcp"],
"enabled": false
}
}
}
Ejecuta /reload-plugins para aplicar.
Codex CLI / Cursor - el mismo patrón de enabled: false funciona en cualquier .mcp.json a nivel de proyecto que anule el archivo incluido del complemento. Reinicia el cliente después de editar.
Los interruptores por MCP dentro de la UI de
/pluginde Claude Code se rastrean upstream en anthropics/claude-code#27105 y #46373. Hasta que lleguen, la anulación deenabled: falseanterior es la ruta compatible.
Un prompt para probar primero
Una vez que el complemento esté activo, prueba:
Set up Dodo Payments webhook handlers in my Next.js app for payment.succeeded and subscription.active events.
Tu agente cargará la habilidad webhook-integration, usará el MCP dodo-knowledge para obtener las formas de payload más recientes y escribirá un manejador con verificación de firma siguiendo la especificación Standard Webhooks.
Desarrollo local
git clone https://github.com/dodopayments/dodo-agent-plugin.git
cd dodo-agent-plugin
Sin submódulos, sin paso de compilación - skills/ se incluye como archivos reales.
Valida el complemento y marketplace de Claude Code:
claude plugin validate .
Carga el complemento directamente para una sesión de desarrollo:
claude --plugin-dir ./dodo-agent-plugin
Verifica todo antes de enviar:
npm run verify # generated artifacts in sync + Agent Plugins conformance
Estructura del repositorio
| Ruta | Rol |
|---|---|
plugin.json | Canónico. Manifiesto de Agent Plugins v1.0.0 y fuente de verdad de la versión |
mcp.json | Canónico. Configuración MCP de Agent Plugins v1.0.0 |
skills/ | Canónico. Diecisiete habilidades, incluidas como archivos reales |
overlays/*.json | Extras de proveedor escritos a mano que el esquema cerrado de la especificación no puede expresar |
.claude-plugin/, .cursor-plugin/, .agents/, .mcp.json, plugins/dodopayments/ | Generados. No editar a mano - ejecuta npm run build |
scripts/build.mjs | El generador único (--check para desviaciones) |
scripts/conformance.mjs | Validador de conformidad de Agent Plugins |
.skills-source.json | Procedencia upstream para las habilidades incluidas |
Las habilidades se crean en dodopayments/skills y se distribuyen aquí. Un flujo de trabajo semanal las resincroniza y abre un PR; ejecútalo bajo demanda con el despacho de flujo de trabajo Sync skills from upstream. |
Para mantenedores
El repositorio está configurado para publicar el paquete npm de OpenCode en cada GitHub Release.
Configuración única (ya realizada para este repositorio):
- El ámbito npm
@dodopaymentsexiste y es propiedad de Dodo Payments. - El secreto de GitHub Actions
NPM_TOKENestá aprovisionado con derechos de publicación para el ámbito@dodopayments.
Flujo de trabajo de lanzamiento:
- Incrementa
versionenplugin.json(la única fuente de verdad). - Ejecuta
npm run buildpara propagarlo a cada manifiesto generado. - Ejecuta
npm run verify, luego haz commit y etiqueta. - Crea un GitHub Release: el flujo de trabajo
Publish @dodopayments/opencode-pluginpublica en npm con procedencia.
Prueba manual en seco:
- Despacho de flujo de trabajo con
dry_run: truepara validar el pipeline de lanzamiento sin publicar.
Comprobaciones de CI:
Verifyse ejecuta en cada pull request y push amain: desviación de artefactos, conformidad de Agent Plugins, validación de JSON Schema en vivo, una aserción de "diecisiete habilidades, cero enlaces simbólicos" y una verificación de carga útil de npm.- El flujo de trabajo de lanzamiento vuelve a ejecutar las mismas compuertas antes de publicar.
Recursos
- Documentación de Dodo Payments
- Documentación de Agent Skills
- Documentación del servidor MCP
- Repositorio fuente de habilidades
- Comunidad de Discord
Licencia
MIT - ver LICENSE.