Servidor MCP de PayPal
Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona una integración completa con las API de PayPal. Este servidor permite una interacción fluida con el procesamiento de pagos, la facturación, la gestión de suscripciones y las operaciones comerciales de PayPal mediante una interfaz estandarizada.
Características
Procesamiento de pagos
Gestión de pedidos : crear, actualizar y realizar un seguimiento de pedidos
Procesamiento de pagos : procese pagos con varios métodos
Tokens de pago : crea y administra tokens de pago para uso futuro
Gestión de disputas : gestionar disputas de pago y resoluciones
Operaciones comerciales
Gestión de productos : crear y gestionar catálogos de productos
Facturación : Genera y envía facturas profesionales
Pagos : procese pagos por lotes a múltiples destinatarios
Gestión de suscripciones : cree y administre la facturación recurrente
Gestión de usuarios
Verificación de identidad : verificar la identidad de los usuarios
Información del usuario : recuperar y administrar datos del usuario
Gestión de perfiles web : personaliza las experiencias de pago
Related MCP server: PayPal MCP Server
Arquitectura
graph TB
subgraph "MCP Environment"
Client[MCP Client]
Server[PayPal MCP Server]
Validation[Input Validation]
Auth[OAuth Authentication]
Cache[Token Cache]
ErrorHandler[Error Handler]
end
subgraph "PayPal APIs"
Orders[Orders API]
Payments[Payments API]
Payouts[Payouts API]
Invoicing[Invoicing API]
Products[Products API]
Subscriptions[Subscriptions API]
Disputes[Disputes API]
Identity[Identity API]
end
Client --> |Request| Server
Server --> |Response| Client
Server --> Validation
Server --> Auth
Auth --> Cache
Auth --> |Access Token| PayPal
Server --> ErrorHandler
Server --> Orders
Server --> Payments
Server --> Payouts
Server --> Invoicing
Server --> Products
Server --> Subscriptions
Server --> Disputes
Server --> Identity
style Client fill:#f9f,stroke:#333,stroke-width:2px
style Server fill:#bbf,stroke:#333,stroke-width:2px
style Auth fill:#bfb,stroke:#333,stroke-width:2px
style Validation fill:#bfb,stroke:#333,stroke-width:2px
style Cache fill:#fbb,stroke:#333,stroke-width:2px
style ErrorHandler fill:#fbb,stroke:#333,stroke-width:2pxInstalación
Prerrequisitos
Node.js 16.x o posterior
Cuenta de desarrollador de PayPal con credenciales de API
Instalación manual
Clonar el repositorio
git clone https://github.com/arbuthnot-eth/PayPal-MCP.git cd PayPal-MCPInstalar dependencias
npm installConstruir el proyecto
npm run buildConfigure las credenciales de PayPal en su archivo de configuración de MCP:
{ "mcpServers": { "paypal": { "command": "node", "args": ["path/to/paypal-mcp/build/index.js"], "env": { "PAYPAL_CLIENT_ID": "your_client_id", "PAYPAL_CLIENT_SECRET": "your_client_secret", "PAYPAL_ENVIRONMENT": "sandbox" // or "live" }, "disabled": false, "autoApprove": [] } } }
Herramientas disponibles
Operaciones de pago
crear_token_de_pago
Crea un token de pago para uso futuro.
{
customer: {
id: string;
email_address?: string;
};
payment_source: {
card?: {
name: string;
number: string;
expiry: string;
security_code: string;
};
paypal?: {
email_address: string;
};
};
}crear_orden
Crear un nuevo pedido en PayPal.
{
intent: 'CAPTURE' | 'AUTHORIZE';
purchase_units: Array<{
amount: {
currency_code: string;
value: string;
};
description?: string;
reference_id?: string;
items?: Array<{
name: string;
quantity: string;
unit_amount: {
currency_code: string;
value: string;
};
}>;
}>;
application_context?: {
brand_name?: string;
shipping_preference?: 'GET_FROM_FILE' | 'NO_SHIPPING' | 'SET_PROVIDED_ADDRESS';
user_action?: 'CONTINUE' | 'PAY_NOW';
};
}orden de captura
Capturar el pago de un pedido autorizado.
{
order_id: string;
payment_source?: {
token?: {
id: string;
type: string;
};
};
}crear_suscripción
Cree una suscripción para facturación recurrente.
{
plan_id: string;
subscriber: {
name: {
given_name: string;
surname: string;
};
email_address: string;
};
application_context?: {
brand_name?: string;
shipping_preference?: 'GET_FROM_FILE' | 'NO_SHIPPING' | 'SET_PROVIDED_ADDRESS';
user_action?: 'CONTINUE' | 'SUBSCRIBE_NOW';
payment_method?: {
payer_selected?: string;
payee_preferred?: string;
};
};
}Operaciones comerciales
crear_producto
Crear un nuevo producto en el catálogo.
{
name: string;
description: string;
type: 'PHYSICAL' | 'DIGITAL' | 'SERVICE';
category: string;
image_url?: string;
home_url?: string;
}crear_factura
Generar una nueva factura.
{
invoice_number: string;
reference: string;
currency_code: string;
recipient_email: string;
items: Array<{
name: string;
quantity: string;
unit_amount: {
currency_code: string;
value: string;
};
description?: string;
tax?: {
name: string;
percent: string;
};
}>;
note?: string;
terms_and_conditions?: string;
memo?: string;
payment_term?: {
term_type: 'DUE_ON_RECEIPT' | 'DUE_ON_DATE' | 'NET_10' | 'NET_15' | 'NET_30' | 'NET_45' | 'NET_60' | 'NET_90';
due_date?: string;
};
}crear_pago
Procesar un pago por lotes.
{
sender_batch_header: {
sender_batch_id: string;
email_subject?: string;
recipient_type?: string;
};
items: Array<{
recipient_type: string;
amount: {
value: string;
currency: string;
};
receiver: string;
note?: string;
}>;
}Manejo de errores
El servidor implementa un manejo integral de errores:
Validación de entrada : errores de validación detallados con mensajes específicos
Errores de la API de PayPal : Respuestas de error estructuradas con detalles de error de PayPal
Errores de red : Lógica de reintento para problemas de red transitorios
Errores de autenticación : actualización automática del token y borrado de mensajes de error
Limitación de velocidad : estrategias de retroceso para los límites de velocidad de la API
Consideraciones de seguridad
Todos los datos sensibles son validados y desinfectados.
Autenticación OAuth 2.0 con PayPal
Gestión segura de credenciales mediante variables de entorno
Validación de entrada para todos los parámetros de API
Los mensajes de error no exponen información confidencial
Desarrollo
Edificio
npm run buildEjecutando en modo de desarrollo
npm run devPruebas
npm testPelusa
npm run lintFormato
npm run formatContribuyendo
Bifurcar el repositorio
Crear una rama de características
Confirme sus cambios
Empujar hacia la rama
Crear una solicitud de extracción
Licencia
Licencia MIT