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

License Version npm Discord

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.md con 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 name de la especificación, y acepta .cursor-plugin/marketplace.json o .claude-plugin/marketplace.json como fuente de marketplace. El .cursor-plugin/plugin.json generado 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 un git clone simple 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 $schema de 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 un plugin.json raíz, y por defecto MCP a .mcp.json en lugar de mcp.json. Debido a que este repositorio incluye un .claude-plugin/plugin.json generado, 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 puente mcp-remote en lugar de los transportes nativos en mcp.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.skills desde el hook config del complemento tampoco soluciona esto - el índice de habilidades se construye antes de que se ejecuten los hooks de config, 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

HabilidadDescripción
dodo-best-practicesConfiguración del SDK, entornos, claves de API y la arquitectura canónica de checkout a webhook
framework-adaptersManejadores oficiales de @dodopayments/* para Next.js, Express, Hono, Astro, Remix, SvelteKit, Nuxt, Fastify, TanStack, Bun, Convex
testing-and-go-liveModo de prueba, métodos de pago de prueba, pruebas de webhook, lista de verificación de lanzamiento a producción

Aceptación de pagos

HabilidadDescripción
checkout-integrationSesiones de checkout, enlaces de pago y checkout superpuesto
subscription-integrationCiclo de vida de suscripciones, pruebas, cambios de plan, prorrateo, cargos bajo demanda
mobile-checkoutCheckout en la aplicación para React Native, Flutter, iOS y Android
webhook-integrationRecepción y verificación de webhooks mediante la especificación Standard Webhooks

Modelos de facturación

HabilidadDescripción
credit-based-billingDerechos de crédito, saldos, libro mayor, renovación, excedente, deducción basada en medidores
usage-based-billingMedidores, ingesta de eventos, agregación y precios por unidad
license-keysActivación de claves de licencia, validación y gestión de instancias

Catálogo y precios

HabilidadDescripción
product-catalog-managementProductos, precios, complementos, colecciones, imágenes, entrega digital
discounts-and-promotionsCódigos de descuento, elegibilidad, acumulación, límites por ciclo de suscripción
localized-pricingPrecios localizados, moneda adaptativa y paridad de poder adquisitivo

Clientes y operaciones

HabilidadDescripción
customer-managementClientes, portal de autoservicio, métodos de pago, billeteras
refunds-and-disputesReembolsos, disputas y contracargos, conciliación de accesos

UI e integraciones

HabilidadDescripción
billing-sdkComponentes React de BillingSDK para tablas de precios y UI de facturación
better-auth-integrationEl 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

ServidorPropósitoAutenticación
dodopayments-apiAcceso a la API en vivo (pagos, suscripciones, clientes, productos, reembolsos, licencias, uso)OAuth (navegador)
dodo-knowledgeBúsqueda semántica sobre la documentación de Dodo PaymentsNinguna

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 clave dodo_test_... o dodo_live_...
  • dodo_webhook_key - tu secreto de firma de webhook
  • dodo_environment - test_mode o live_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 entornoEfecto
DODO_DISABLE_API_MCP=1Omite el registro de dodopayments-api
DODO_DISABLE_KNOWLEDGE_MCP=1Omite 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 /plugin de Claude Code se rastrean upstream en anthropics/claude-code#27105 y #46373. Hasta que lleguen, la anulación de enabled: false anterior 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

RutaRol
plugin.jsonCanónico. Manifiesto de Agent Plugins v1.0.0 y fuente de verdad de la versión
mcp.jsonCanónico. Configuración MCP de Agent Plugins v1.0.0
skills/Canónico. Diecisiete habilidades, incluidas como archivos reales
overlays/*.jsonExtras 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.mjsEl generador único (--check para desviaciones)
scripts/conformance.mjsValidador de conformidad de Agent Plugins
.skills-source.jsonProcedencia 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 @dodopayments existe y es propiedad de Dodo Payments.
  • El secreto de GitHub Actions NPM_TOKEN está aprovisionado con derechos de publicación para el ámbito @dodopayments.

Flujo de trabajo de lanzamiento:

  1. Incrementa version en plugin.json (la única fuente de verdad).
  2. Ejecuta npm run build para propagarlo a cada manifiesto generado.
  3. Ejecuta npm run verify, luego haz commit y etiqueta.
  4. Crea un GitHub Release: el flujo de trabajo Publish @dodopayments/opencode-plugin publica en npm con procedencia.

Prueba manual en seco:

  • Despacho de flujo de trabajo con dry_run: true para validar el pipeline de lanzamiento sin publicar.

Comprobaciones de CI:

  • Verify se ejecuta en cada pull request y push a main: 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

Licencia

MIT - ver LICENSE.