PayPal MCP Server
oficialEl servidor del Protocolo de Contexto de Modelo de PayPal permite la integración con las APIs de PayPal mediante llamadas a funciones. Este protocolo admite diversas herramientas para interactuar con diferentes servicios de PayPal.
Documentación
PayPal Agent Toolkit
El PayPal Agent Toolkit permite que los frameworks de agentes más populares, como el SDK de Agentes de OpenAI, LangChain, el SDK de IA de Vercel y el Protocolo de Contexto de Modelo (MCP), se integren con las APIs de PayPal mediante la invocación de funciones. Incluye soporte para TypeScript y está construido sobre las APIs de PayPal y los SDKs de PayPal.
Herramientas disponibles
El PayPal Agent Toolkit proporciona las siguientes herramientas:
Facturas
create_invoice: Crear una nueva factura en el sistema de PayPallist_invoices: Listar facturas con paginación y filtrado opcionalesget_invoice: Recuperar los detalles de una factura específicasend_invoice: Enviar una factura a los destinatariossend_invoice_reminder: Enviar un recordatorio para una factura existentecancel_sent_invoice: Cancelar una factura enviadagenerate_invoice_qr_code: Generar un código QR para una factura
Pagos
create_order: Crear una orden en el sistema de PayPal basada en los detalles proporcionadosget_order: Recuperar los detalles de una ordenpay_order: Procesar el pago de una orden autorizadacreate_refund: Procesar un reembolso para un pago capturado.get_refund: Obtener los detalles de un reembolso específico.
Gestión de Disputas
list_disputes: Recuperar un resumen de todas las disputas abiertasget_dispute: Recuperar información detallada de una disputa específicaaccept_dispute_claim: Aceptar una reclamación de disputa
Seguimiento de Envíos
create_shipment_tracking: Crear un registro de seguimiento de envíoget_shipment_tracking: Recuperar información de seguimiento de envíoupdate_shipment_tracking: Actualizar información de seguimiento de envío
Gestión de Catálogo
create_product: Crear un nuevo producto en el catálogo de PayPallist_products: Listar productos con paginación y filtrado opcionalesshow_product_details: Recuperar los detalles de un producto específico
Gestión de Suscripciones
create_subscription_plan: Crear un nuevo plan de suscripciónlist_subscription_plans: Listar planes de suscripciónshow_subscription_plan_details: Recuperar los detalles de un plan de suscripción específicocreate_subscription: Crear una nueva suscripciónshow_subscription_details: Recuperar los detalles de una suscripción específicaupdate_subscription: Actualizar una suscripción existentecancel_subscription: Cancelar una suscripción activa
Informes y Analíticas
list_transactions: Listar transacciones con paginación y filtrado opcionalesget_merchant_insights: Recuperar métricas de inteligencia de negocio y analíticas para un comerciante
TypeScript
Instalación
No necesitas este código fuente a menos que quieras modificar el paquete. Si solo quieres usar el paquete, ejecuta:
npm install @paypal/agent-toolkit
Requisitos
- Node 18+
Uso
La biblioteca necesita ser configurada con el ID de cliente y el secreto de tu cuenta, disponibles en tu Panel de Desarrollador de PayPal.
El toolkit funciona con el SDK de IA de Vercel y puede pasarse como una lista de herramientas. Para más detalles, consulta nuestros ejemplos.
import { PayPalAgentToolkit } from '@paypal/agent-toolkit/ai-sdk';
const paypalToolkit = new PayPalAgentToolkit({
clientId: process.env.PAYPAL_CLIENT_ID,
clientSecret: process.env.PAYPAL_CLIENT_SECRET,
configuration: {
actions: {
invoices: {
create: true,
list: true,
send: true,
sendReminder: true,
cancel: true,
generateQRC: true,
},
products: { create: true, list: true, update: true },
subscriptionPlans: { create: true, list: true, show: true },
shipment: { create: true, show: true, cancel: true },
orders: { create: true, get: true },
disputes: { list: true, get: true },
},
},
});
Para usar el modo sandbox, añade contexto dentro de tu configuración.
configuration: {
context: {
sandbox: true,
}
}
Inicializando los Flujos de Trabajo
import { PayPalWorkflows, ALL_TOOLS_ENABLED } from '@paypal/agent-toolkit/ai-sdk';
const paypalWorkflows = new PayPalWorkflows({
clientId: process.env.PAYPAL_CLIENT_ID,
clientSecret: process.env.PAYPAL_CLIENT_SECRET,
configuration: {
actions: ALL_TOOLS_ENABLED,
},
});
Uso
Usando el toolkit
const llm: LanguageModelV1 = getModel(); // The model to be used with ai-sdk
const { text: response } = await generateText({
model: llm,
tools: paypalToolkit.getTools(),
maxSteps: 10,
prompt: `Create an order for $50 for custom handcrafted item and get the payment link.`,
});
Variables de Entorno
Se pueden usar las siguientes variables de entorno:
PAYPAL_ACCESS_TOKEN: Tu Token de Acceso de PayPalPAYPAL_ENVIRONMENT: Establecer aSANDBOXpara modo sandbox,PRODUCTIONpara producción (por defecto es modoSANDBOX)
Esta guía explica cómo generar un token de acceso para la integración con la API de PayPal, incluyendo cómo encontrar tu ID de cliente y secreto de cliente.
Prerrequisitos
- Cuenta de Desarrollador de PayPal (para Sandbox)
- Cuenta de Negocios de PayPal (para producción)
Encontrando tu ID de Cliente y Secreto de Cliente
-
Crear una Cuenta de Desarrollador de PayPal:
- Ve al Panel de Desarrollador de PayPal
- Regístrate o inicia sesión con tus credenciales de PayPal
-
Acceder a tus Credenciales:
- En el Panel de Desarrollador, haz clic en Apps y Credenciales en el menú
- Cambia entre los modos Sandbox y Live según tus necesidades
-
Crear o Ver una App:
- Para crear una nueva app, haz clic en Crear App
- Dale un nombre a tu app y selecciona una cuenta de Negocios para asociarla
- Para apps existentes, haz clic en el nombre de la app para ver los detalles
-
Recuperar Credenciales:
- Una vez que tu app esté creada o seleccionada, verás una pantalla con:
- ID de Cliente: Un identificador público para tu app
- Secreto de Cliente: Una clave privada (se muestra después de hacer clic en "Mostrar")
- Guarda estas credenciales de forma segura, ya que son necesarias para generar tokens de acceso
- Una vez que tu app esté creada o seleccionada, verás una pantalla con:
Generando un Token de Acceso
Usando cURL
curl -v https://api-m.sandbox.paypal.com/v1/oauth2/token \\
-H \"Accept: application/json\" \\
-H \"Accept-Language: en_US\" \\
-u \"CLIENT_ID:CLIENT_SECRET\" \\
-d \"grant_type=client_credentials\"
Reemplaza CLIENT_ID y CLIENT_SECRET con tus credenciales reales. Para producción, usa https://api-m.paypal.com en lugar de la URL de sandbox.
Usando Postman
- Crea una nueva solicitud a
https://api-m.sandbox.paypal.com/v1/oauth2/token - Establece el método en POST
- En Autorización, selecciona Autenticación Básica e ingresa tu ID de Cliente y Secreto de Cliente
- En Cuerpo, selecciona x-www-form-urlencoded y añade una clave
grant_typecon el valorclient_credentials - Envía la solicitud
Respuesta
Una respuesta exitosa se verá así:
{
"scope": "...",
"access_token": "Your Access Token",
"token_type": "Bearer",
"app_id": "APP-80W284485P519543T",
"expires_in": 32400,
"nonce": "..."
}
Copia el valor de access_token para usarlo en tu integración con Claude Desktop.
Detalles del Token
- Tokens de Sandbox: Válidos por 3-8 horas
- Tokens de Producción: Válidos por 8 horas
- Se recomienda implementar lógica de refresco de token antes de la expiración
Usando el Token con Claude Desktop
Una vez que tengas tu token de acceso, actualiza el valor de PAYPAL_ACCESS_TOKEN en la configuración de tu conector de Claude Desktop:
{
"env": {
"PAYPAL_ACCESS_TOKEN": "YOUR_NEW_ACCESS_TOKEN",
"PAYPAL_ENVIRONMENT": "SANDBOX"
}
}
Mejores Prácticas
- Almacena el ID de cliente y el secreto de cliente de forma segura
- Implementa lógica de refresco de token para manejar la expiración del token
- Usa tokens específicos del entorno (sandbox para pruebas, producción para transacciones reales)
- Evita incrustar tokens directamente en el código de la aplicación
Aviso Legal
El contenido generado por IA puede ser inexacto o estar incompleto. Los usuarios son responsables de verificar de forma independiente cualquier información antes de confiar en ella. PayPal no ofrece garantías sobre la precisión de los resultados y no se hace responsable de ninguna decisión, acción o consecuencia derivada de su uso.