2Pay MCP服务器
](https://www.npmjs.com/package/@mcsacca/2pay-mcp-server) 
用于2Checkout/Verifone2Pay.js支付API的模型上下文协议(MCP)服务器。该服务器使像Claude这样的人工智能助手能够通过自然语言与支付处理、订阅管理和订单操作进行交互。
目录
特性
- 订单管理:使用2Pay.js令牌下订单,检索订单详细信息,搜索订单,处理退款
- 订阅管理:全生命周期管理,包括续订、升级、付款更新
- 客户管理:创建、更新和管理客户记录及其订阅
- 产品目录:查询和管理产品、定价配置和价格选项
- 促销:创建折扣、生成优惠券代码、管理促销活动
先决条件
- Node.js 18或更高版本
- 2结账/Verifone商户账户
- API凭证(商户代码和密钥)
- 生产:PCI DSS合规意识
安装
选项1:npm(推荐)
npm install -g @mcsacca/2pay-mcp-server
选项2:使用npx(无需安装)
您可以直接使用npx运行-请参阅 配置 在......下面
选项3:来源
git clone https://github.com/mcsacca/2pay-mcp-server.git
cd 2pay-mcp-server
npm install
npm run build
配置
克劳德桌面
添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json
使用npx(推荐)
{
"mcpServers": {
"2pay": {
"command": "npx",
"args": ["-y", "@mcsacca/2pay-mcp-server"],
"env": {
"TWOCHECKOUT_MERCHANT_CODE": "your_merchant_code",
"TWOCHECKOUT_SECRET_KEY": "your_secret_key",
"TWOCHECKOUT_SANDBOX": "true"
}
}
}
}
使用全局安装
{
"mcpServers": {
"2pay": {
"command": "2pay-mcp-server",
"env": {
"TWOCHECKOUT_MERCHANT_CODE": "your_merchant_code",
"TWOCHECKOUT_SECRET_KEY": "your_secret_key",
"TWOCHECKOUT_SANDBOX": "true"
}
}
}
}
使用本地构建
{
"mcpServers": {
"2pay": {
"command": "node",
"args": ["/path/to/2pay-mcp-server/dist/index.js"],
"env": {
"TWOCHECKOUT_MERCHANT_CODE": "your_merchant_code",
"TWOCHECKOUT_SECRET_KEY": "your_secret_key",
"TWOCHECKOUT_SANDBOX": "true"
}
}
}
}
可用工具
订购工具(7)
| 工具 | 说明 |
|---|
place_order | 使用2Pay.js支付令牌下新订单 |
get_order | 按参考号检索订单详细信息 |
search_orders | 使用过滤器(日期、状态、客户)搜索订单 |
refund_order | 处理全额或部分退款 |
get_payment_methods | 获取一个国家的可用付款方式 |
validate_order_reference | 验证一键购买的订单参考 |
get_invoice | 获取订单的发票详细信息 |
订阅工具(22)
| 工具 | 说明 |
|---|
get_subscription | 通过引用检索订阅详细信息 |
search_subscriptions | 使用筛选器搜索订阅 |
enable_subscription | 启用已禁用的订阅 |
disable_subscription | 禁用活动订阅 |
cancel_subscription | 取消订阅 |
update_subscription_payment | 使用2Pay.js令牌更新支付方式 |
get_next_renewal_price | 预览下一个账单金额 |
get_subscription_history | 获取交易历史记录 |
upgrade_subscription | 升级到更高级别的产品/计划 |
downgrade_subscription | 降级到较低级别的产品/计划 |
place_renewal_order | 手动触发续订 |
convert_trial | 将试用订阅转换为付费 |
pause_subscription | 暂时暂停订阅 |
resume_subscription | 恢复暂停的订阅 |
set_grace_period | 为付款失败设置宽限期天数 |
enable_recurring_billing | 启用自动重复计费 |
disable_recurring_billing | 禁用自动重复计费 |
get_subscription_payment_info | 获取当前付款方式详细信息 |
assign_subscription_to_customer | 将订阅转移给不同的客户 |
get_upgrade_options | 获取可用的升级/降级路径 |
set_next_renewal_price | 覆盖下一个续订价格 |
import_subscription | 导入迁移订阅 |
客户工具(6)
| 工具 | 说明 |
|---|
create_customer | 创建新的客户记录 |
get_customer | 通过参考ID获取客户 |
get_customer_by_email | 通过电子邮件地址获取客户 |
update_customer | 更新客户信息 |
get_customer_subscriptions | 列出客户的所有订阅 |
delete_customer | 删除客户记录 |
产品工具(7)
| 工具 | 说明 |
|---|
get_product | 按代码获取产品详细信息 |
get_product_by_id | 按ID获取产品详细信息 |
search_products | 搜索产品目录 |
enable_product | 启用产品 |
disable_product | 禁用产品 |
get_product_pricing | 获取定价配置 |
get_price_options | 获取产品的价格选项 |
促销工具(7)
| 工具 | 说明 |
|---|
create_promotion | 创建新的促销/折扣 |
get_promotion | 按代码获取促销详情 |
update_promotion | 更新促销活动 |
delete_promotion | 删除促销 |
search_promotions | 搜索促销 |
generate_coupons | 为促销活动生成优惠券代码 |
get_coupons | 获取促销优惠券代码 |
使用工具(5)
| 工具 | 说明 |
|---|
report_usage | 报告计量计费订阅的使用/消耗情况 |
get_usage | 检索订阅的使用记录 |
delete_usage | 删除使用记录 |
trigger_usage_billing | 在正常周期之前触发即时计费 |
import_usage | 批量导入多条使用记录 |
铅工具(5)
| 工具 | 说明 |
|---|
create_lead | 创建购物车放弃跟踪线索 |
get_lead | 通过代码获取线索 |
update_lead | 更新现有潜在客户 |
search_leads | 使用过滤器搜索潜在客户 |
mark_leads_as_used | 将线索标记为已使用,并停止跟进 |
活动工具(8)
| 工具 | 说明 |
|---|
create_cross_sell_campaign | 创建交叉销售活动 |
get_cross_sell_campaign | 按代码获取交叉销售活动 |
update_cross_sell_campaign | 更新交叉销售活动 |
search_cross_sell_campaigns | 搜索交叉销售活动 |
create_upsell_campaign | 创建追加销售活动 |
update_upsell_campaign | 更新追加销售活动 |
delete_upsell_campaign | 删除追加销售活动 |
search_upsell_campaigns | 搜索追加销售活动 |
运输工具(3)
| 工具 | 说明 |
|---|
mark_order_shipped | 将订单标记为已发货并跟踪 |
search_shipping_methods | 搜索可用的配送方式 |
get_shipping_price | 获取产品的运费 |
SKU工具(4)
| 工具 | 说明 |
|---|
set_sku_code | 为产品设置SKU代码 |
search_sku_codes | 搜索SKU代码 |
delete_sku_code | 删除SKU代码 |
generate_sku_schema | 为产品生成SKU架构 |
账户工具(5)
| 工具 | 说明 |
|---|
get_account_balance | 获取当前账户余额 |
search_payouts | 搜索历史支出 |
get_countries | 获取可用国家列表 |
get_currencies | 获取可用货币列表 |
get_account_timezone | 获取帐户时区 |
SSO工具(4)
| 工具 | 说明 |
|---|
sso_cart | 为购物车生成SSO令牌 |
sso_by_customer_reference | 客户参考SSO |
sso_by_subscription_reference | 按订阅参考进行SSO |
get_customer_info_by_sso_token | 从SSO令牌获取客户信息 |
国际化工具(5)
| 工具 | 说明 |
|---|
add_promotion_translation | 为促销添加翻译 |
remove_promotion_translations | 删除促销翻译 |
set_cross_sell_campaign_text | 为交叉销售活动设置本地化文本 |
get_cross_sell_campaign_texts | 获取活动的所有翻译 |
set_sso_language | 为SSO设置myAccount UI语言 |
资源和提示
资源
2pay://config -当前配置状态和API终结点2pay://error-codes -常见错误代码及其含义
提示
create-order -使用2Pay.js令牌创建订单的指导工作流程manage-subscription -订阅管理操作的指导性工作流程troubleshoot-payment -诊断并解决付款问题
使用示例
使用2Pay.js令牌下订单
{
"token": "190f2d9c-0bbc-4ad0-a902-770adb8e7f90",
"currency": "USD",
"country": "US",
"customerIP": "192.168.1.1",
"items": [
{
"code": "PRODUCT_CODE",
"quantity": 1
}
],
"billingDetails": {
"firstName": "John",
"lastName": "Doe",
"email": "john@example.com",
"phone": "+1234567890",
"address1": "123 Main St",
"city": "New York",
"state": "NY",
"zip": "10001",
"countryCode": "US"
},
"externalReference": "ORDER-12345"
}
订购动态产品
{
"token": "your-2pay-token",
"currency": "USD",
"country": "US",
"items": [
{
"name": "Custom Service",
"quantity": 1,
"price": 99.99,
"isDynamic": true
}
],
"billingDetails": {
"firstName": "Jane",
"lastName": "Smith",
"email": "jane@example.com",
"address1": "456 Oak Ave",
"city": "Los Angeles",
"zip": "90001",
"countryCode": "US"
}
}
搜索订单
{
"startDate": "2024-01-01",
"endDate": "2024-12-31",
"customerEmail": "customer@example.com",
"status": "COMPLETE",
"page": 1,
"limit": 50
}
搜索订阅
{
"customerEmail": "customer@example.com",
"status": "Active",
"recurringEnabled": true,
"page": 1,
"limit": 10
}
更新订阅付款方式
{
"subscriptionReference": "SUB123456789",
"eesToken": "new-2pay-token-from-frontend",
"holderName": "John Doe"
}
创建促销
{
"name": "Summer Sale 2024",
"description": "20% off all products",
"startDate": "2024-06-01",
"endDate": "2024-08-31",
"discountType": "PERCENT",
"discountValue": 20,
"couponType": "SINGLE",
"couponCode": "SUMMER20",
"productCodes": ["PROD1", "PROD2"],
"maximumOrders": 1000,
"applyRecurring": false
}
报告计量计费的使用情况
{
"subscriptionReference": "SUB123456789",
"optionCode": "API_CALLS",
"units": 1500,
"usageStart": "2024-01-01",
"usageEnd": "2024-01-31",
"description": "January API usage"
}
暂停订阅
{
"subscriptionReference": "SUB123456789",
"pauseDays": 30
}
导入订阅(迁移)
{
"customerEmail": "customer@example.com",
"productCode": "PREMIUM_PLAN",
"startDate": "2024-01-01",
"expirationDate": "2025-01-01",
"recurringEnabled": true,
"quantity": 1,
"externalCustomerReference": "LEGACY-CUST-123"
}
设置下一个续订价格
{
"subscriptionReference": "SUB123456789",
"price": 19.99,
"currency": "USD"
}
建筑
src/
├── index.ts # MCP server entry point & tool handlers
├── auth/
│ └── authentication.ts # REST header & JSON-RPC session auth
├── tools/
│ ├── orders.ts # Order management tools
│ ├── subscriptions.ts # Subscription management tools
│ ├── customers.ts # Customer management tools
│ ├── products.ts # Product catalog tools
│ ├── promotions.ts # Promotion management tools
│ ├── usage.ts # Usage/metered billing tools
│ ├── leads.ts # Lead management tools
│ ├── campaigns.ts # Cross-sell/upsell campaigns
│ ├── shipping.ts # Shipping management tools
│ ├── sku.ts # SKU code management
│ ├── account.ts # Account info tools
│ ├── sso.ts # Single sign-on tools
│ └── i18n.ts # Internationalization tools
├── types/
│ └── 2checkout.ts # TypeScript type definitions
└── utils/
└── api-client.ts # REST & JSON-RPC API client
认证
服务器支持两种身份验证方法:
- REST API:用途
X-Avangate-Authentication 带有HMAC-SHA256哈希的标头 - JSON-RPC API:用途
login 获取会话ID的方法(缓存30分钟)
默认情况下,这两种方法都使用SHA-256(MD5已弃用)。
环境变量
| 变量 | 必填 | 描述 |
|---|
TWOCHECKOUT_MERCHANT_CODE | 是 | 您的2Checkout商家代码 |
TWOCHECKOUT_SECRET_KEY | 是 | 您2检查API密钥 |
TWOCHECKOUT_SANDBOX | 否 | 设置为 true 用于沙盒环境 |
TWOCHECKOUT_BASE_URL | 否 | 覆盖API基础URL |
安全
重要安全注意事项
- 永远不要暴露密钥 在客户端代码或日志中
- 使用环境变量 对于凭据,切勿对其进行硬编码
- 令牌在30分钟后过期 -为每笔交易生成新的代币
- EES_TOKEN_PAYMENT没有测试模式 -令牌必须由有效的卡数据生成
- PCI DSS合规性 -在处理付款数据时,请注意您的合规要求
最佳实践
- 始终使用HTTPS端点
- 实施适当的错误处理
- 记录交易参考,而不是付款详细信息
- 在开发过程中使用沙盒模式
- 定期旋转API键
故障排除
常见错误
| 错误 | 原因 | 解决方案 |
|---|
TOKEN_EXPIRED | 2Pay.js令牌超过30分钟 | 生成新令牌 |
INVALID_PAYMENT | 付款详细信息无效 | 验证令牌和付款类型 |
SUBSCRIPTION_NOT_FOUND | 无效的订阅引用 | 检查引用ID |
CARD_DECLINED | 银行拒绝交易 | 客户应联系银行 |
INSUFFICIENT_FUNDS | 余额不足 | 客户需要不同的付款方式 |
调试模式
对于开发,请检查配置资源:
Use the 2pay://config resource to verify your setup
会话问题
如果遇到与会话相关的错误,客户端会自动处理会话刷新。如果问题仍然存在,请重新启动MCP服务器。
API 文档
贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
与 模型上下文协议 SDK。