授权网络mcp
这个项目是 模型上下文协议(MCP)服务器 它与 授权.net节点SDK 提供两种主要支付操作:
takePayment–立即从信用卡中扣款(AUTH_CAPTURE)。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处理支付。
______________________________________________________________________
运作原理
- MCP节点SDK –提供在Node.js中创建和运行MCP服务器的框架。我们使用类
Server,StdioServerTransport,以及模式定义(ListToolsRequestSchema,CallToolRequestSchema)注册工具并通过stdio响应请求。
- 授权.net节点SDK –管理低级支付交易调用。在我们的MCP工具处理程序中,我们导入
authorizenet打包和构建请求(例如。,CreateTransactionRequest)使用您的Authorize.net凭据。
- 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.mdsrc/index.ts:创建MCPServer,注册工具处理程序,并通过stdio监听请求。src/models/authorizeNetModel.ts:以JSON模式格式定义两个工具的输入/输出模式(在MCP客户端调用时向其通告)ListTools).src/handlers/authorizeNetHandlers.ts:包含与Authorize.net集成的核心逻辑(充值卡、创建托管发票)。
______________________________________________________________________
入门指南
1.安装
- 克隆 或下载此存储库。
- 安装 依赖关系:
npm install2.设置环境变量
您必须提供Authorize.net API凭据。对于测试,您可以使用 授权.net沙盒凭据。服务器将查找:
AUTHORIZE_NET_API_LOGIN_IDAUTHORIZE_NET_TRANSACTION_KEYAUTHORIZE_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聊天),工作流程可能是:
- 列出可用工具 (服务器返回
[takePayment, createInvoice]加上它们的模式)。
- 呼叫 这
takePayment带参数的工具:
{
"amount": 19.99,
"cardNumber": "4242424242424242",
"expirationDate": "0825",
"cardCode": "123"
}- 服务器返回支付是否成功,并在响应消息中包含交易详细信息。
- 呼叫 这
createInvoice带参数的工具:
{
"amount": 50.0,
"invoiceNumber": "INV-1001",
"description": "T-shirt order"
}- 服务器以托管支付页面的URL进行响应。引导客户访问该链接以安全地输入卡详细信息。
______________________________________________________________________
生产使用注意事项
- 安全:永远不要将真正的API密钥提交到源代码管理。在生产中使用环境变量或秘密管理解决方案。
- 超文本传输安全协议:在实际部署中,如果您计划在MCP主机之外调用它,请确保您对任何入站请求使用HTTPS端点或安全隧道。
- 沙盒与生产:在中切换基本URL
authorizeNetHandlers.ts一旦您准备好上线,就可以将文件传输到生产端点。
______________________________________________________________________
进一步阅读
- –如何创建和托管模型上下文协议工具。
- –使用Authorize.net节点SDK的示例。
- Authorize.net开发人员文档 –关于构建交易、创建托管发票以及管理生产与沙盒凭据的官方文档。
______________________________________________________________________
许可证
该项目在MIT许可证下发布。请查看存储库的 许可证 文件以获取详细信息。
