Integrations
Uses Express to handle asynchronous callbacks from Twilio, processing payment stage notifications and updating payment session state.
Built on Node.js, allowing the server to maintain in-memory state stores for payment sessions and handle the MCP protocol communication.
Enables handling agent-assisted payments via the Twilio API, allowing secure processing of payment card information (card number, security code, expiration date) during voice calls, with support for tokenization, payment status tracking, and field re-entry.
Servidor MCP de pagos del agente Twilio
Un servidor MCP (Protocolo de contexto de modelo) que permite gestionar pagos asistidos por agente a través de la API de Twilio, con funciones mejoradas para devoluciones de llamadas asincrónicas y flujo de trabajo guiado a través de indicaciones contextuales.
Características
- Procesa pagos seguros durante llamadas de voz a través de Twilio
- Capturar información de pago (número de tarjeta, código de seguridad, fecha de vencimiento)
- Tokenizar la información de pago para el cumplimiento de PCI
- Devoluciones de llamadas asincrónicas a través de recursos MCP
- Flujo de trabajo guiado con indicaciones de MCP para cada paso del proceso de pago
- Soporte para reingreso de información de pago
- Se integra con clientes MCP como Claude Desktop
- Manejo seguro de credenciales
- Utiliza claves API de Twilio para mejorar la seguridad
- Arquitectura de registro basada en eventos
Instalación
Puedes utilizar este servidor directamente a través de npx:
O instálelo globalmente:
Parámetros ambientales
Al instalar el servidor, debe proporcionar los siguientes parámetros:
- Argumentos de la línea de comandos (obligatorios):
accountSid
: SID de su cuenta de TwilioapiKey
: Su clave API de TwilioapiSecret
: Tu secreto de API de Twilio
- Variables de entorno (establecidas antes de ejecutar el servidor):
TOKEN_TYPE
: Tipo de token a utilizar para pagos (por ejemplo, 'reutilizable', 'de un solo uso')CURRENCY
: Moneda para pagos (por ejemplo, 'USD', 'EUR')PAYMENT_CONNECTOR
: Conector de pago para usar con TwilioNGROK_AUTH_TOKEN
: Su token de autenticación de Ngrok (necesario para el manejo de devoluciones de llamadas)NGROK_CUSTOM_DOMAIN
: Dominio personalizado opcional para Ngrok
Ejemplo con variables de entorno:
Consulte la sección Configuración a continuación para obtener más detalles sobre estos parámetros.
Configuración
El servidor requiere los siguientes parámetros:
accountSid
: Su SID de cuenta de Twilio (debe comenzar con 'AC', se validará)apiKey
: su clave API de Twilio (comienza con 'SK')apiSecret
: Tu secreto de API de Twilio
Variables de entorno
Las siguientes variables de entorno se utilizan para la configuración:
TOKEN_TYPE
: Tipo de token a utilizar para pagos (por ejemplo, 'reutilizable', 'de un solo uso')CURRENCY
: Moneda para pagos (por ejemplo, 'USD', 'EUR')PAYMENT_CONNECTOR
: Conector de pago para usar con TwilioNGROK_AUTH_TOKEN
: Su token de autenticación de Ngrok (necesario para el manejo de devoluciones de llamadas)NGROK_CUSTOM_DOMAIN
: Dominio personalizado opcional para Ngrok
Nota: Las credenciales de Twilio (accountSid, apiKey, apiSecret) se proporcionan como argumentos de la línea de comandos, no como variables de entorno.
Nota de seguridad
Este servidor utiliza claves API y secretos en lugar de tokens de autenticación para mejorar la seguridad. Este enfoque proporciona un mejor control de acceso y la posibilidad de revocar credenciales si es necesario. Para más información, consulte la documentación sobre claves API de Twilio .
Uso con Claude Desktop
Desarrollo local
Para el desarrollo local (cuando el paquete no está publicado en npm), agregue lo siguiente a su archivo de configuración de Claude Desktop ( ~/Library/Application Support/Claude/claude_desktop_config.json
en macOS o %APPDATA%\Claude\claude_desktop_config.json
en Windows):
Reemplace los valores con sus credenciales y configuración reales de Twilio.
Después de publicar en npm
Una vez que el paquete se publica en npm, puedes usar la siguiente configuración:
Integración con aplicaciones host
Una de las principales ventajas del Protocolo de Contexto de Modelo (MCP) es que elimina la necesidad de una extensa configuración manual del contexto LLM. El servidor MCP proporciona automáticamente todas las definiciones de herramientas, plantillas de recursos y capacidades necesarias al cliente LLM.
Configuración de su aplicación host
Para integrar este servidor MCP en su propia aplicación host:
- Implementar un cliente MCP : utilice una biblioteca de cliente MCP existente o implemente el protocolo de cliente MCP en su aplicación.
- Conectarse al servidor MCP : configure su aplicación para conectarse al servidor MCP de Twilio Agent Payments.
- Deje que el protocolo se encargue del resto : el servidor MCP automáticamente:
- Registra sus herramientas y recursos con su cliente
- Proporcionar esquemas de entrada para todas las herramientas
- Proporcionar indicaciones contextuales para guiar al LLM a través del flujo de pago
No se requiere una definición manual de herramientas o recursos en el contexto de su LLM: el protocolo MCP maneja este descubrimiento automáticamente.
Código de integración de ejemplo
A continuación se muestra un ejemplo simplificado de cómo integrarse con un cliente MCP:
Contexto mínimo de LLM requerido
El LLM solo necesita saber que puede usar el servidor MCP de Twilio Agent Payments para gestionar los pagos. Una simple instrucción en el indicador del sistema es suficiente:
El propio servidor MCP proporciona todas las definiciones detalladas de herramientas, esquemas de entrada y indicaciones contextuales para guiar al LLM a través del flujo de pago.
Notas de implementación para desarrolladores
Esta sección explica cómo se organiza la implementación del servidor MCP en diferentes componentes y archivos, centrándose en los patrones de arquitectura utilizados.
Organización de componentes
La implementación del servidor se divide en varios directorios:
- src/index.ts : El punto de entrada principal que:
- Inicializa el servidor MCP
- Inicializa el singleton TwilioAgentPaymentServer
- Descubre y registra todos los componentes con el servidor MCP mediante descubrimiento automático
- Configura oyentes de eventos para el registro
- Conecta el servidor a la capa de transporte
- src/tools/ : Contiene implementaciones de herramientas individuales
- Cada herramienta se implementa como una función de fábrica que devuelve un objeto con nombre, descripción, forma y propiedades de ejecución.
- Las herramientas manejan operaciones de pago específicas (por ejemplo, StartPaymentCaptureTool, CaptureCardNumberTool)
- Cada herramienta define su esquema de entrada utilizando Zod e implementa un método de ejecución
- Las herramientas acceden al singleton TwilioAgentPaymentServer a través de getInstance()
- src/prompts/ : Contiene implementaciones de indicaciones
- Cada solicitud se implementa como una función de fábrica que devuelve un objeto con nombre, descripción y propiedades de ejecución.
- Las indicaciones brindan orientación contextual al LLM para cada paso del flujo de pago.
- Algunas indicaciones aceptan parámetros que pueden usarse para personalizar el contenido de la indicación.
- src/resources/ : Contiene implementaciones de recursos
- Los recursos proporcionan acceso a los datos (por ejemplo, PaymentStatusResource)
- Cada recurso se implementa como una función de fábrica que devuelve un objeto con nombre, plantilla, descripción y propiedades de lectura.
- Los recursos acceden al singleton TwilioAgentPaymentServer a través de getInstance()
- src/api-servers/ : Contiene la implementación del cliente API de Twilio
- Implementa TwilioAgentPaymentServer como un singleton
- Maneja la comunicación con la API de Twilio
- Gestiona el estado de la sesión de pago
- Proporciona métodos estáticos para acceder a la instancia singleton
- src/utils/ : Contiene funciones de utilidad
- El archivo autoDiscovery.ts maneja el descubrimiento y registro automático de herramientas, indicaciones y recursos.
Patrón Singleton para TwilioAgentPaymentServer
Un patrón arquitectónico clave en esta base de código es el uso del patrón Singleton para TwilioAgentPaymentServer:
Beneficios de este enfoque:
- Garantiza que solo haya una instancia de TwilioAgentPaymentServer en toda la aplicación
- Elimina la necesidad de pasar la instancia a través de múltiples funciones
- Proporciona una API más limpia con firmas de funciones más simples
- Facilita el acceso a TwilioAgentPaymentServer desde cualquier lugar del código base
Patrón de función de fábrica
Las herramientas, indicaciones y recursos se implementan utilizando el patrón de función de fábrica:
- En Herramientas :Copy
- En Recursos :Copy
- En indicaciones :Copy
Descubrimiento automático y registro
El servidor utiliza un mecanismo de descubrimiento automático para encontrar y registrar todos los componentes:
Este enfoque:
- Encuentra automáticamente todas las herramientas, indicaciones y recursos en sus respectivos directorios.
- Los importa dinámicamente y los registra con el servidor MCP
- Facilita la adición de nuevos componentes sin modificar el archivo principal
- Reduce el código repetitivo y mejora la capacidad de mantenimiento
Parámetros en los avisos
Algunos avisos aceptan parámetros que permiten personalizar su contenido. StartCapturePrompt es un buen ejemplo:
- Definición de parámetros :Copy
- La propiedad de esquema define el parámetro esquema usando Zod
- En este caso, se requiere un parámetro
callSid
de tipo cadena.
- Uso de parámetros en el mensaje :Copy
- El método de ejecución acepta los parámetros como su primer argumento.
- Puede validar los parámetros y usarlos para personalizar el contenido del mensaje.
- En este caso, callSid se utiliza en el texto del mensaje para proporcionar contexto.
Este patrón permite que los avisos sean dinámicos y contextuales, brindando orientación personalizada según el estado actual del flujo de pago.
Herramientas disponibles
iniciarCaptura de Pago
Inicia un proceso de captura de pago para una llamada activa.
Parámetros:
callSid
: El SID de llamada de Twilio para la llamada activa
IMPORTANTE: El archivo StartCapturePrompt.ts requiere que el usuario introduzca un SID de llamada desde el cliente MCP. Este parámetro es obligatorio y, si no se proporciona, el mensaje generará un error.
NOTA: Al gestionar llamadas de Twilio, es necesario comprender con qué segmento de llamada se está trabajando. Los pagos de Twilio deben estar vinculados al segmento de llamada del lado PSTN. Si se aplican al lado del cliente de Twilio, no se capturarán los dígitos DTMF. Por lo tanto, este servidor MCP asume que se está utilizando el segmento de llamada correcto. Normalmente, se verifica como se indica a continuación:
Devoluciones:
paymentSid
: El SID de pago de Twilio para la nueva sesión de pago
capturarNúmeroDeTarjeta
Inicia la captura del número de tarjeta de pago.
Parámetros:
callSid
: El SID de llamada de Twilio para la llamada activapaymentSid
: El SID de pago de Twilio para la sesión de pagocaptureType
: Establezca en 'número de tarjeta de pago'
Devoluciones:
- Estado de la operación de captura del número de tarjeta
capturarCódigoDeSeguridad
Inicia la captura del código de seguridad de la tarjeta.
Parámetros:
callSid
: El SID de llamada de Twilio para la llamada activapaymentSid
: El SID de pago de Twilio para la sesión de pagocaptureType
: Establecido en 'código de seguridad'
Devoluciones:
- Estado de la operación de captura del código de seguridad
Fecha de caducidad de la captura
Inicia la captura de la fecha de vencimiento de la tarjeta.
Parámetros:
callSid
: El SID de llamada de Twilio para la llamada activapaymentSid
: El SID de pago de Twilio para la sesión de pagocaptureType
: Establecido en 'fecha de caducidad'
Devoluciones:
- Estado de la operación de captura de fecha de vencimiento
Captura de pago completa
Completa una sesión de captura de pago.
Parámetros:
callSid
: El SID de llamada de Twilio para la llamada activapaymentSid
: El SID de pago de Twilio para la sesión de pago
Devoluciones:
- Estado de la operación de finalización del pago
Recursos disponibles
pago://{callSid}/{paymentSid}/estado
Obtenga el estado actual de una sesión de pago como un objeto JSON. Este recurso proporciona información detallada sobre el estado actual del proceso de captura de pagos, incluyendo:
- SID de pago
- Número de tarjeta de pago (enmascarado)
- Tipo de tarjeta de pago
- Estado del código de seguridad
- Fecha de expiración
- Código de confirmación de pago
- Resultado del pago
- Token de pago
Indicaciones de MCP
El servidor proporciona indicaciones contextuales para guiar al LLM a través de cada paso del flujo de pago:
Indicador de inicio de captura
Proporciona orientación sobre cómo iniciar el proceso de captura de pagos, incluyendo:
- Instrucciones para preguntar al cliente si está listo para proporcionar información de pago
- Explicación del procesamiento seguro y tokenización
- Pasos para utilizar la herramienta startPaymentCapture
- IMPORTANTE : Requiere que el usuario ingrese un SID de llamada desde el lado del cliente MCP, que es un parámetro obligatorio
Solicitud de número de tarjeta
Orienta al LLM sobre cómo manejar el proceso de captura de números de tarjeta, incluyendo:
- Instrucciones para explicar al cliente qué información necesita
- Consejos para gestionar las preguntas o inquietudes de los clientes
- Pasos para utilizar la herramienta captureCardNumber
Aviso de código de seguridad
Proporciona orientación sobre cómo capturar el código de seguridad de la tarjeta, que incluye:
- Instrucciones para explicar qué es el código de seguridad
- Consejos para gestionar las preguntas o inquietudes de los clientes
- Pasos para utilizar la herramienta captureSecurityCode
Aviso de fecha de vencimiento
Orienta al LLM sobre cómo capturar la fecha de vencimiento de la tarjeta, incluyendo:
- Instrucciones para explicar el formato necesario (MM/AA)
- Consejos para gestionar las preguntas o inquietudes de los clientes
- Pasos para utilizar la herramienta captureExpirationDate
Solicitud de finalización de captura
Proporciona orientación sobre cómo completar el proceso de captura de pagos, que incluye:
- Instrucciones para confirmar que se ha recopilado toda la información
- Pasos para utilizar la herramienta completePaymentCapture
Aviso de finalización
Orienta al LLM sobre qué hacer después de que el pago se haya procesado exitosamente, incluyendo:
- Instrucciones para confirmar que el pago fue exitoso
- Sugerencias para los próximos pasos en la conversación
Mensaje de error
Proporciona orientación sobre el manejo de errores durante el proceso de captura de pagos, incluyendo:
- Instrucciones para explicar el error al cliente
- Sugerencias para solucionar problemas comunes
- Pasos para reintentar el proceso de captura de pago
Arquitectura
Este servidor MCP implementa una arquitectura mejorada para gestionar los flujos de pago:
Arquitectura basada en eventos
El servidor utiliza una arquitectura basada en eventos con EventEmitter para la comunicación entre componentes:
- Cada herramienta, recurso y componente de servidor extiende EventEmitter
- Los componentes emiten eventos para registro y devoluciones de llamadas
- Los oyentes de eventos reenvían registros al sistema de registro del servidor MCP
Manejo de devoluciones de llamadas
El servidor utiliza el paquete @deshartman/mcp-status-callback para manejar devoluciones de llamadas asincrónicas de Twilio:
- Crea un túnel seguro usando Ngrok para recibir devoluciones de llamadas
- Procesa devoluciones de llamadas para diferentes etapas de pago
- Actualiza el almacén de estados en función de los datos de devolución de llamada
- Maneja condiciones de error y escenarios de reingreso
Gestión del Estado
El estado del pago se gestiona a través de una tienda basada en mapas:
- El statusCallbackMap almacena datos de la sesión de pago indexados por SID de pago
- Cada devolución de llamada actualiza el estado con la información más reciente
- PaymentStatusResource proporciona acceso a estos datos de estado
Integración MCP
El servidor se integra con el protocolo MCP a través de:
- Herramientas: definidas con esquemas Zod para la validación de entrada
- Recursos: Proporcionar acceso a los datos del estado de pago
- Indicaciones: Orientación contextual para cada paso del flujo de pago
- Registro: registro basado en eventos reenviado al servidor MCP
Desarrollo
Para construir el proyecto:
Prerrequisitos
- Node.js 18+
- Express (para el manejo de devoluciones de llamadas)
- Kit de desarrollo de software de Twilio
- Cuenta de Ngrok con token de autorización
Ejecutar el servidor manualmente
Para iniciar el servidor manualmente para realizar pruebas (fuera de Claude Desktop):
El servidor se iniciará y esperará conexiones de cliente MCP.
Al usar Claude Desktop, el servidor se inicia automáticamente cuando Claude carga el archivo de configuración. No es necesario iniciarlo manualmente.
Cumplimiento de PCI
Este servidor facilita el cumplimiento de PCI mediante la tokenización de la información de las tarjetas de pago. Twilio gestiona los datos de la tarjeta y nunca se almacenan en su sistema. Para obtener más información sobre el cumplimiento de PCI de Twilio, consulte la documentación de Twilio sobre pagos seguros .
Licencia
Instituto Tecnológico de Massachusetts (MIT)
Compatibilidad del inspector MCP
Al usar este servidor con el Inspector MCP, tenga en cuenta que todo el registro se realiza mediante la función de registro de MCP en lugar de console.log()
. Esto es intencional y necesario para la compatibilidad con el protocolo MCP, que utiliza la salida estándar para la comunicación JSON.
Si está ampliando este servidor o depurando problemas:
- Utilice el sistema de registro basado en eventos emitiendo eventos LOG_EVENT
- Evite usar
console.log()
ya que interferirá con los mensajes JSON del protocolo MCP en la salida estándar - Para depurar fuera del contexto MCP, puede usar
console.error()
que genera un error en stderr.
Arquitectura de registro basada en eventos
El servidor utiliza una arquitectura de registro basada en eventos:
- Emisores de eventos : todas las clases de herramientas y recursos extienden
EventEmitter
de Node.js y emiten eventos de 'registro' con datos de nivel y mensaje. - Reenvío de registros : estos eventos son capturados por los escuchas de eventos y reenviados al sistema de registro del servidor MCP:Copy
- Integración con MCP : la función
logToMcp
transforma estos eventos en mensajes de registro compatibles con MCP:Copy
Niveles de registro admitidos
El servidor admite los siguientes niveles de registro:
info
: Mensajes de información generalerror
: Mensajes de error y excepcionesdebug
: información de depuración detalladawarn
: Mensajes de advertencia (convertidos automáticamente a 'info' para compatibilidad con MCP)
Estructura de datos de devolución de llamada de pago
El servidor procesa dos tipos principales de datos de devolución de llamada de Twilio:
Datos iniciales del conector
Cuando se crea por primera vez una sesión de pago, Twilio envía datos del conector:
Capturar datos
A medida que se captura la información de pago, Twilio envía datos actualizados:
El servidor almacena estos datos en el statusCallbackMap, indexado por el SID de pago, y los pone a disposición a través de PaymentStatusResource.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Un servidor MCP que permite el procesamiento de pagos seguro y compatible con PCI durante llamadas de voz a través de la API de Twilio, proporcionando devoluciones de llamadas asincrónicas y un flujo de trabajo guiado para pagos asistidos por agente.
- Características
- Instalación
- Configuración
- Uso con Claude Desktop
- Integración con aplicaciones host
- Notas de implementación para desarrolladores
- Herramientas disponibles
- Recursos disponibles
- Indicaciones de MCP
- Arquitectura
- Desarrollo
- Cumplimiento de PCI
- Licencia
- Compatibilidad del inspector MCP
- Arquitectura de registro basada en eventos
- Estructura de datos de devolución de llamada de pago
Related MCP Servers
- AsecurityAlicenseAqualityThe Voyp MCP Server enables AI systems to integrate with VOYP's calling capabilities, allowing for secure telephony actions such as making calls, scheduling appointments, and tracking call statuses through the Model Context Protocol.Last updated -7114JavaScriptMIT License
- -securityFlicense-qualityAn MCP (Model Context Protocol) server that lets users send SMS messages through Twilio API directly from Claude Desktop via natural language commands.Last updated -1TypeScript
- -securityFlicense-qualityA server that connects Claude AI to Twilio through the Model Context Protocol, enabling prompt-assisted management of Twilio accounts, phone numbers, and regulatory compliance.Last updated -Python
- -securityFlicense-qualityAn MCP server that enables AI assistants to interact with Flutterwave payment services, providing tools for transaction management, payment link generation, and automated customer support.Last updated -TypeScript