Database · MODEL CONTEXT PROTOCOL
deshartman twilio agent payments mcp server
deshartman twilio agent payments mcp server is a community-listed Model Context Protocol server. Review the source repository before installation.
WHAT IT CONNECTS
deshartman twilio agent payments mcp server 为 AI Agent 提供什么
- Process secure payments during voice calls via Twilio
- Capture payment information (card number, security code, expiration date)
- Tokenize payment information for PCI compliance
- Asynchronous callbacks via MCP Resources
- Guided workflow with MCP Prompts for each step of the payment process
- Support for re-entry of payment information
- Integrates with MCP clients like Claude Desktop
- Secure credential handling
- Uses Twilio API Keys for improved security
- Event-based logging architecture
- **Command-line arguments** (required):
- `accountSid`: Your Twilio Account SID
- `apiKey`: Your Twilio API Key
- `apiSecret`: Your Twilio API Secret
- **Environment variables** (set before running the server):
- `TOKEN_TYPE`: Type of token to use for payments (e.g., 'reusable', 'one-time')
- `CURRENCY`: Currency for payments (e.g., 'USD', 'EUR')
- `PAYMENT_CONNECTOR`: Payment connector to use with Twilio
- `NGROK_AUTH_TOKEN`: Your Ngrok authentication token (required for callback handling)
- `NGROK_CUSTOM_DOMAIN`: Optional custom domain for Ngrok
- `accountSid`: Your Twilio Account SID (must start with 'AC', will be validated)
- `apiKey`: Your Twilio API Key (starts with 'SK')
- `apiSecret`: Your Twilio API Secret
- `TOKEN_TYPE`: Type of token to use for payments (e.g., 'reusable', 'one-time')
- `CURRENCY`: Currency for payments (e.g., 'USD', 'EUR')
- `PAYMENT_CONNECTOR`: Payment connector to use with Twilio
- `NGROK_AUTH_TOKEN`: Your Ngrok authentication token (required for callback handling)
- `NGROK_CUSTOM_DOMAIN`: Optional custom domain for Ngrok
- **Implement an MCP Client**: Use an existing MCP client library or implement the MCP client protocol in your application.
- **Connect to the MCP Server**: Configure your application to connect to the Twilio Agent Payments MCP server.
- **Let the Protocol Handle the Rest**: The MCP server will automatically:
- Register its tools and resources with your client
- Provide input schemas for all tools
- Supply contextual prompts to guide the LLM through the payment flow
- **src/index.ts**: The main entry point that:
- Initializes the MCP server
- Initializes the TwilioAgentPaymentServer singleton
- Discovers and registers all components with the MCP server via auto-discovery
- Sets up event listeners for logging
- Connects the server to the transport layer
- **src/tools/**: Contains individual tool implementations
- Each tool is implemented as a factory function that returns an object with name, description, shape, and execute properties
- Tools handle specific payment operations (e.g., StartPaymentCaptureTool, CaptureCardNumberTool)
- Each tool defines its input schema using Zod and implements an execute method
- Tools access the TwilioAgentPaymentServer singleton via getInstance()
- **src/prompts/**: Contains prompt implementations
- Each prompt is implemented as a factory function that returns an object with name, description, and execute properties
- Prompts provide contextual guidance to the LLM for each step of the payment flow
- Some prompts accept parameters that can be used to customize the prompt content
- **src/resources/**: Contains resource implementations
- Resources provide access to data (e.g., PaymentStatusResource)
- Each resource is implemented as a factory function that returns an object with name, template, description, and read properties
- Resources access the TwilioAgentPaymentServer singleton via getInstance()
- **src/api-servers/**: Contains the implementation of the Twilio API client
- Implements the TwilioAgentPaymentServer as a singleton
- Handles communication with the Twilio API
- Manages payment session state
- Provides static methods for accessing the singleton instance
- **src/utils/**: Contains utility functions
- The autoDiscovery.ts file handles automatic discovery and registration of tools, prompts, and resources
- Static method to get the instance
- Static method to initialize the instance
- Ensures there's only one instance of TwilioAgentPaymentServer throughout the application
- Eliminates the need to pass the instance through multiple functions
- Provides a cleaner API with simpler function signatures
- Makes it easier to access the TwilioAgentPaymentServer from anywhere in the codebase
- **In Tools**:
- **In Resources**:
- **In Prompts**:
- Automatically finds all tools, prompts, and resources in their respective directories
- Dynamically imports and registers them with the MCP server
- Makes it easy to add new components without modifying the main file
- Reduces boilerplate code and improves maintainability
- **Parameter Definition**:
- The schema property defines the parameter schema using Zod
- In this case, it requires a `callSid` parameter of type string
- **Parameter Usage in the Prompt**:
- The execute method accepts the parameters as its first argument
- It can validate the parameters and use them to customize the prompt content
- In this case, the callSid is used in the prompt text to provide context
- `callSid`: The Twilio Call SID for the active call
- `paymentSid`: The Twilio Payment SID for the new payment session
- `callSid`: The Twilio Call SID for the active call
- `paymentSid`: The Twilio Payment SID for the payment session
- `captureType`: Set to 'payment-card-number'
- Status of the card number capture operation
- `callSid`: The Twilio Call SID for the active call
- `paymentSid`: The Twilio Payment SID for the payment session
- `captureType`: Set to 'security-code'
- Status of the security code capture operation
- `callSid`: The Twilio Call SID for the active call
- `paymentSid`: The Twilio Payment SID for the payment session
- `captureType`: Set to 'expiration-date'
- Status of the expiration date capture operation
- `callSid`: The Twilio Call SID for the active call
- `paymentSid`: The Twilio Payment SID for the payment session
- Status of the payment completion operation
- Payment SID
- Payment card number (masked)
- Payment card type
- Security code status
- Expiration date
- Payment confirmation code
- Payment result
- Payment token
- Instructions for asking the customer if they're ready to provide payment information
- Explanation of the secure processing and tokenization
- Steps to use the startPaymentCapture tool
- **IMPORTANT**: Requires the user to enter a Call SID from the MCP Client side, which is a mandatory parameter
- Instructions for explaining to the customer what information is needed
- Tips for handling customer questions or concerns
- Steps to use the captureCardNumber tool
- Instructions for explaining what the security code is
- Tips for handling customer questions or concerns
- Steps to use the captureSecurityCode tool
- Instructions for explaining the format needed (MM/YY)
- Tips for handling customer questions or concerns
- Steps to use the captureExpirationDate tool
- Instructions for confirming all information has been collected
- Steps to use the completePaymentCapture tool
- Instructions for confirming the payment was successful
- Suggestions for next steps in the conversation
- Instructions for explaining the error to the customer
- Suggestions for troubleshooting common issues
- Steps to retry the payment capture process
- Each tool, resource, and server component extends EventEmitter
- Components emit events for logging and callbacks
- Event listeners forward logs to the MCP server's logging system
- Creates a secure tunnel using Ngrok for receiving callbacks
- Processes callbacks for different payment stages
- Updates the state store based on callback data
- Handles error conditions and re-entry scenarios
- The statusCallbackMap stores payment session data indexed by payment SID
- Each callback updates the state with the latest information
- The PaymentStatusResource provides access to this state data
- Tools: Defined with Zod schemas for input validation
- Resources: Providing access to payment state data
- Prompts: Contextual guidance for each step of the payment flow
- Logging: Event-based logging forwarded to the MCP server
- Node.js 18+
- Express (for callback handling)
- Twilio SDK
- Ngrok account with auth token
- Use the event-based logging system by emitting LOG_EVENT events
- Avoid using `console.log()` as it will interfere with the MCP protocol's JSON messages on stdout
- For debugging outside the MCP context, you can use `console.error()` which outputs to stderr
- **Event Emitters**: All tool and resource classes extend Node.js's `EventEmitter` and emit 'log' events with level and message data.
- **Log Forwarding**: These events are captured by event listeners and forwarded to the MCP server's logging system:
- **MCP Integration**: The `logToMcp` function transforms these events into MCP-compatible log messages:
- `info`: General information messages
- `error`: Error messages and exceptions
- `debug`: Detailed debugging information
- `warn`: Warning messages (automatically converted to 'info' for MCP compatibility)
SECURITY
MCP 收录不等于安全审核
MCP 服务器可能获得模型上下文、凭据、本地文件或调用外部系统的权限。连接 Agent 前,请检查代码、环境变量、网络行为、软件包来源与维护状态。