支付处理服务器

Paystack MCP Server 是一个模型上下文协议服务器,用于处理 Paystack 支付操作,提供交易管理、客户管理、订阅计划和银行集成等功能。

  • by Johnmiicheal
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 johnmiicheal/paystack-mcp

使用说明

Paystack MCP服务器

用于Paystack支付处理的模型上下文协议(MCP)服务器。该服务器为人工智能助手提供了通过标准化工具与Paystack支付API交互的能力。

特性

🚀 支付操作

  • 初始化交易
  • 验证付款状态
  • 列出交易历史记录
  • 处理退款

👥 客户管理

  • 创建和管理客户
  • 列出客户
  • 更新客户信息

📋 订阅计划

  • 创建订阅计划
  • 列出并管理计划

🏦 银行业一体化

  • 列出支持的银行
  • 验证银行账户详细信息

安装

  1. 克隆存储库:
git clone <your-repo-url>
cd paystack-mcp
  1. 安装依赖项:
pip install -r requirements.txt
  1. 设置环境变量:
cp example.env .env
# Edit .env with your Paystack credentials

所需的环境变量:

  • PAYSTACK_SECRET_KEY:您的Paystack密钥(必填)
  • PAYSTACK_PUBLIC_KEY:您的Paystack公钥(可选)
  • PAYSTACK_ENVIRONMENT:设置为“测试”或“实时”(默认值:“测试”)

用法

运行服务器

MCP服务器可以直接运行:

python -m paystack_mcp.server

或者使用已安装的脚本:

paystack-mcp

JavaScript客户端集成

这个Python MCP服务器可以很容易地与JavaScript客户端集成。这里有一个例子:

// Using the MCP client in Node.js
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";

// Create transport to the Python server
const transport = new StdioClientTransport({
  command: "python",
  args: ["-m", "paystack_mcp.server"]
});

// Create and connect client
const client = new Client(
  {
    name: "paystack-client",
    version: "1.0.0",
  },
  {
    capabilities: {},
  }
);

await client.connect(transport);

// Use Paystack tools
const result = await client.callTool({
  name: "initialize_transaction",
  arguments: {
    email: "customer@example.com",
    amount: 50000, // 500 NGN in kobo
    currency: "NGN"
  }
});

console.log(result);

可用工具

事务管理

initialize_transaction

创建新的支付交易。

参数:

  • email (字符串,必填):客户电子邮件
  • amount (整数,必填):金额单位为kobo/cents
  • currency (字符串,可选):货币代码(默认:“NGN”)
  • reference (字符串,可选):唯一交易参考
  • callback_url (字符串,可选):付款后的回调URL
  • metadata (对象,可选):其他交易数据

verify_transaction

通过引用验证交易。

参数:

  • reference (字符串,必填):要验证的交易引用

list_transactions

列出具有可选筛选器的交易。

参数:

  • per_page (整数,可选):每页结果数(默认值:50)
  • page (整数,可选):页码(默认值:1)
  • customer (字符串,可选):按客户ID筛选
  • status (字符串,可选):按交易状态筛选
  • from_date (字符串,可选):开始日期(YYYY-MM-DD)
  • to_date (字符串,可选):结束日期(YYYY-MM-DD)

客户管理

create_customer

创建新客户。

参数:

  • email (字符串,必填):客户电子邮件
  • first_name (字符串,可选):客户名字
  • last_name (字符串,可选):客户姓氏
  • phone (字符串,可选):客户电话号码
  • metadata (对象,可选):其他客户数据

list_customers

列出客户。

参数:

  • per_page (整数,可选):每页结果数(默认值:50)
  • page (整数,可选):页码(默认值:1)

订阅计划

create_plan

创建订阅计划。

参数:

  • name (字符串,必填):计划名称
  • amount (整数,必填):计划金额,单位为kobo/cents
  • interval (字符串,必填):计费间隔(每日、每周、每月、每季度、每两年、每年)
  • description (字符串,可选):计划描述
  • currency (字符串,可选):货币代码(默认:“NGN”)

list_plans

列出订阅计划。

参数:

  • per_page (整数,可选):每页结果数(默认值:50)
  • page (整数,可选):页码(默认值:1)

银行业

list_banks

列出支持的银行。

参数:

  • country (字符串,可选):获取银行的国家(默认值:“尼日利亚”)

resolve_account

解决并验证银行账户详细信息。

参数:

  • account_number (字符串,必填):要验证的帐号
  • bank_code (字符串,必填):银行代码

退款

create_refund

为交易创建退款。

参数:

  • transaction (字符串,必填):交易ID或引用
  • amount (整数,可选):退款金额,单位为kobo/cents(如果未指定,则为全额)
  • currency (字符串,可选):货币代码
  • customer_note (字符串,可选):客户注意事项
  • merchant_note (字符串,可选):内部商户备注

发展

测试

使用pytest运行测试:

pytest tests/

运行覆盖率测试:

pytest tests/ --cov=paystack_mcp

代码质量

格式代码:

black paystack_mcp/

棉绒编码:

ruff check paystack_mcp/

类型检查:

mypy paystack_mcp/

项目结构

paystack-mcp/
├── paystack_mcp/           # Main package
│   ├── __init__.py        # Package initialization
│   ├── server.py          # Main MCP server
│   ├── client.py          # Paystack API client
│   ├── models.py          # Pydantic models
│   └── config.py          # Configuration
├── tests/                 # Test files
│   ├── __init__.py
│   └── test_server.py
├── pyproject.toml         # Project configuration
├── requirements.txt       # Dependencies
├── example.env           # Environment variables example
└── README.md             # This file

配置

服务器使用环境变量进行配置:

  • PAYSTACK_SECRET_KEY:您的Paystack密钥(sk_test_…或sk_live_…)
  • PAYSTACK_PUBLIC_KEY:您的Paystack公钥(可选)
  • PAYSTACK_ENVIRONMENT:环境设置(“测试”或“实时”)
  • PAYSTACK_BASE_URL:API基本URL(通常不需要)

错误处理

服务器提供全面的错误处理:

  • PaystackAPI错误:因Paystack API错误而引发
  • 验证错误:输入参数无效
  • 网络错误:用于连接问题

所有错误都已正确格式化,并将描述性消息返回给客户端。

安全

  • 永远不要承诺你的 .env 文件或实际API密钥
  • 在开发过程中使用测试密钥
  • 仅在生产环境中使用实时密钥
  • 验证所有输入参数
  • 遵循Paystack的安全最佳实践

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 添加新功能的测试
  5. 运行测试套件
  6. 提交拉取请求

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

支持

有关此MCP服务器的问题:

  • 在GitHub上打开一个问题
  • 查看Paystack API文档
  • 审查MCP规范

对于Paystack API问题: