支付处理MCP服务器

一个基于Model Context Protocol (MCP)的支付处理服务器,提供即时信用卡扣款和生成托管支付页面功能,适用于AI代理和自动化平台。

  • by zmarty
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 zmarty/authorize-net-mcp

使用说明

授权网络mcp

这个项目是 模型上下文协议(MCP)服务器 它与 授权.net节点SDK 提供两种主要支付操作:

  1. takePayment –立即从信用卡中扣款(AUTH_CAPTURE)。
  2. createInvoice –生成托管付款页面(发票),供客户在线支付。

通过将这些操作暴露为 MCP工具,AI代理和其他使用 MCP节点SDK 可以无缝调用Authorize.net功能,而无需直接处理信用卡或交易逻辑。

什么是模型上下文协议(MCP)?

模型上下文协议(MCP) 是一个规范和软件开发工具包(SDK),用于标准化人工智能模型(如大型语言模型)如何与外部工具和服务通信。MCP服务器提供AI助手或自动化平台可以通过编程发现和调用的“工具”(方法)。MCP的目标包括:

  • 可发现性:工具宣传其功能和输入/输出模式。
  • 标准化I/OAI模型或任何客户端都可以调用基于JSON模式的工具并接收结构化输出,使自动化工作流程更加可靠。
  • 安全性和兼容性:工具在隔离的进程中运行,并通过定义良好的通道(例如stdio)进行通信,这有助于将它们从AI模型环境中沙盒出来。

在这个项目中 takePayment 和 createInvoice 方法被定义为具有输入模式(金额、卡详细信息、发票信息)和结构化JSON输出的MCP工具。这意味着任何实现MCP协议的AI模型或系统都可以查询此服务器以了解可用的工具,然后使用正确的参数调用它们以通过Authorize.net处理支付。


运作原理

  1. MCP节点SDK –提供在Node.js中创建和运行MCP服务器的框架。我们使用类 Server, StdioServerTransport,以及模式定义(ListToolsRequestSchema, CallToolRequestSchema)注册工具并通过stdio响应请求。

  2. 授权.net节点SDK –管理低级支付交易调用。在我们的MCP工具处理程序中,我们导入 authorizenet 打包和构建请求(例如。, CreateTransactionRequest)使用您的Authorize.net凭据。

  3. MCP工具 –

    • takePayment:记下信用卡号、到期日期、CVV和金额,然后立即从卡中扣款。
    • createInvoice:准备一笔没有卡数据的交易(卡数据是通过托管的Authorize.net表单收集的),并返回一个URL,客户可以通过该URL安全地支付发票。

当服务器启动时,它会向任何连接的MCP客户端通告这两个工具(及其输入模式)。然后,客户可以根据需要给他们打电话。


项目结构

authorize-net-mcp/
├── package.json
├── tsconfig.json
├── src
│   ├── index.ts               # MCP server initialization
│   ├── models
│   │   └── authorizeNetModel.ts   # JSON schemas & tool specifications
│   └── handlers
│       └── authorizeNetHandlers.ts # Implementations of takePayment & createInvoice
└── README.md
  • src/index.ts:创建MCP Server,注册工具处理程序,并通过stdio监听请求。
  • src/models/authorizeNetModel.ts:以JSON模式格式定义两个工具的输入/输出模式(在MCP客户端调用时向其通告) ListTools).
  • src/handlers/authorizeNetHandlers.ts:包含与Authorize.net集成的核心逻辑(充值卡、创建托管发票)。

入门指南

1.安装

  1. 克隆 或下载此存储库。

  2. 安装 依赖关系:

    npm install
    

2.设置环境变量

您必须提供Authorize.net API凭据。对于测试,您可以使用 授权.net沙盒凭据。服务器将查找:

  • AUTHORIZE_NET_API_LOGIN_ID
  • AUTHORIZE_NET_TRANSACTION_KEY
  • AUTHORIZE_NET_SANDBOX (可选,沙盒模式设置为“true”)

在构建或启动服务器之前设置它们:

对于Linux/Mac:

export AUTHORIZE_NET_API_LOGIN_ID="YOUR_SANDBOX_LOGIN_ID"
export AUTHORIZE_NET_TRANSACTION_KEY="YOUR_SANDBOX_TRANSACTION_KEY"
export AUTHORIZE_NET_SANDBOX="true"

对于Windows(命令提示符):

set AUTHORIZE_NET_API_LOGIN_ID=YOUR_SANDBOX_LOGIN_ID
set AUTHORIZE_NET_TRANSACTION_KEY=YOUR_SANDBOX_TRANSACTION_KEY
set AUTHORIZE_NET_SANDBOX=true

对于Windows(PowerShell):

$env:AUTHORIZE_NET_API_LOGIN_ID="YOUR_SANDBOX_LOGIN_ID"
$env:AUTHORIZE_NET_TRANSACTION_KEY="YOUR_SANDBOX_TRANSACTION_KEY"
$env:AUTHORIZE_NET_SANDBOX="true"

对于Claude Desktop:

您可以在Claude Desktop设置中配置此MCP服务器,方法是将其添加到您的 config.json:

{
  "mcpServers": {
    "authorize-net-mcp": {
      "command": "node",
      "args": ["C:\\git\\authorize-net-mcp\\build\\index.js"],
      "env": {
        "DEBUG": "*",
        "AUTHORIZE_NET_API_LOGIN_ID": "YOUR-LOGIN-ID-HERE",
        "AUTHORIZE_NET_TRANSACTION_KEY": "YOUR-KEY-HERE",
        "AUTHORIZE_NET_SANDBOX": "true"
      }
    }
  }
}

确保用您实际的Authorize.net凭据替换占位符值。

3.构建和运行

# Build the TypeScript
npm run build

# Start the MCP server (listening on stdio)
npm start

服务器将运行并等待MCP请求。通常,理解MCP的AI助手或自动化工具会生成或连接到此流程并调用 takePayment 或 createInvoice 工具名称。


使用MCP工具

在MCP兼容的环境中(例如,支持MCP的AI聊天),工作流程可能是:

  1. 列出可用工具 (服务器返回 [takePayment, createInvoice] 加上它们的模式)。

  2. 呼叫 这 takePayment 带参数的工具:

    {
      "amount": 19.99,
      "cardNumber": "4242424242424242",
      "expirationDate": "0825",
      "cardCode": "123"
    }
    
    • 服务器返回支付是否成功,并在响应消息中包含交易详细信息。
  3. 呼叫 这 createInvoice 带参数的工具:

    {
      "amount": 50.0,
      "invoiceNumber": "INV-1001",
      "description": "T-shirt order"
    }
    
    • 服务器以托管支付页面的URL进行响应。引导客户访问该链接以安全地输入卡详细信息。

生产使用注意事项

  • 安全:永远不要将真正的API密钥提交到源代码管理。在生产中使用环境变量或秘密管理解决方案。
  • 超文本传输安全协议:在实际部署中,如果您计划在MCP主机之外调用它,请确保您对任何入站请求使用HTTPS端点或安全隧道。
  • 沙盒与生产:在中切换基本URL authorizeNetHandlers.ts 一旦您准备好上线,就可以将文件传输到生产端点。

进一步阅读


许可证

该项目在MIT许可证下发布。请查看存储库的 许可证 文件以获取详细信息。