达拉贾 MCP
模型上下文协议 (MCP) 服务器旨在将 AI 应用程序与 Safaricom 的 Daraja API 相集成,实现与 M-Pesa 服务的无缝交互。
⚠️警告:尚未准备好投入生产
该项目目前处于开发阶段,不建议用于生产环境。其设计用途如下:
学习和实验
开发和测试环境
概念验证实施
对于生产用途,请确保:
全面的安全测试
正确的错误处理
全面实施所有计划的功能
符合 Safaricom 的生产要求
什么是 MCP 服务器?
MCP(模型上下文协议)服务器为 LLM 提供与外部系统交互的功能。MCP 服务器可以提供三种主要类型的功能:
资源:客户端可以读取的类似文件的数据(如 API 响应)
工具:可由 LLM 调用的函数(经用户批准)
提示:预先编写的模板,帮助用户完成特定任务
Daraja MCP 专门利用这种架构将 AI 系统与 Safaricom 的 Daraja M-Pesa API 连接起来。
Related MCP server: Payments Developer Portal MCP Server
概述
Daraja MCP 是连接人工智能、金融科技和 M-Pesa 的桥梁,使人工智能驱动的财务自动化变得便捷高效。通过标准化 LLM(大型语言模型)与金融交易之间的连接,Daraja MCP 使人工智能驱动的应用程序能够轻松处理支付、检索交易数据并实现财务工作流程的自动化。
关键功能
✅人工智能驱动的 M-Pesa 交易– 使 LLM 能够处理 B2C、C2B 和 B2B 支付
✅标准化集成– MCP 确保与多种 AI 工具兼容
✅安全且可扩展– 实现 OAuth 身份验证并支持企业级交易处理
✅灵活的自动化——AI 代理可以查询账户余额、生成发票并自动进行对账
要求
Python 3.12
Safaricom Daraja API 凭证(消费者密钥和秘密)
安装
步骤 1:设置环境
安装 uv 包管理器
对于 Mac/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh对于 Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"克隆存储库
git clone https://github.com/jameskanyiri/DarajaMCP.git cd DarajaMCP创建并激活虚拟环境
uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate✅ 预期输出:您的终端提示应该发生变化,表明虚拟环境已激活。
安装依赖项
uv sync
第 2 步:设置环境变量
复制示例环境文件:
cp .env.example .env使用您的实际凭证和配置值更新
.env文件。
注意:开发时请使用沙盒环境。准备就绪后,请切换到生产 URL。
用法
使用 Claude Desktop 进行测试
安装 Claude Desktop
从Claude Desktop下载并安装最新版本
确保你运行的是最新版本
配置 Claude 桌面
打开您的 Claude Desktop 配置文件:
# On MacOS/Linux code ~/Library/Application\ Support/Claude/claude_desktop_config.json # On Windows code %APPDATA%\Claude\claude_desktop_config.json如果文件不存在,则创建该文件
添加服务器配置选择以下配置之一:
Anthropic 推荐的格式
工作配置(已测试)
笔记:
将
/ABSOLUTE/PATH/TO/PARENT替换为您的实际路径要查找
uv的完整路径,请运行:
验证配置
保存配置文件
重启Claude桌面
在界面中寻找锤子🔨图标
单击它即可查看可用的工具:
生成访问令牌
stk_push(未来实现)
query_transaction_status(未来实现)
b2c_payment(未来实施)
account_balance(未来实现)
工具和提示
支付工具
stk_push
发起 M-Pesa STK 推送请求,提示客户在其移动设备上授权付款。
输入:
amount(int):需要支付的金额phone_number(int):客户的电话号码
返回: JSON 格式的 M-PESA API 响应
生成二维码
为付款请求生成二维码,客户可以扫描该二维码进行付款。
输入:
merchant_name(str): 公司名称/M-Pesa 商户名称transaction_reference_no(str): 交易参考编号amount(int):销售/交易的总金额transaction_type(Literal["BG", "WA", "PB", "SM", "SB"]): 交易类型credit_party_identifier(str): 信用方标识符(手机号码、商业号码、代理收银机、付款单或商家购买商品)
**返回:**包含二维码数据的 JSON 格式的 M-PESA API 响应
付款提示
stk_push_prompt
生成启动 M-Pesa STK 推送支付请求的提示。
输入:
phone_number(str): 客户的电话号码amount(int):需要支付的金额purpose(str):付款目的
返回: STK推送请求的格式化提示字符串
生成二维码提示符
生成创建 M-Pesa QR 码付款请求的提示。
输入:
merchant_name(str): 商家/企业的名称amount(int):应付金额transaction_type(str): 交易类型(BG 代表购买商品,WA 代表钱包,PB 代表付款,SM 代表汇款,SB 代表汇至企业)identifier(str): 收件人标识符(收银机号、付款单、电话号码)reference(str, 可选): 交易参考编号。若未提供,则使用默认值。
**返回:**二维码生成的格式化提示字符串
文档处理工具
创建源
创建从数据源到非结构化服务器的连接器进行处理。
输入:
connector_name(str): 要创建的源连接器的名称
**返回:**源连接器详细信息,包括名称和 ID
创建目的地
创建从非结构化服务器到数据存储目的地的连接器。
输入:
connector_name(str): 要创建的目标连接器的名称
**返回:**目标连接器详细信息,包括名称和 ID
创建工作流
创建一个工作流来处理从源连接器到目标连接器的数据。
输入:
workflow_name(str): 要创建的工作流的名称source_id(str): 源连接器的IDdestination_id(str): 目标连接器的 ID
**返回:**工作流详细信息,包括名称、ID、状态、类型、来源、目的地和时间表
运行工作流
执行工作流程。
输入:
workflow_id(str): 要运行的工作流的 ID
**返回:**工作流执行状态
获取工作流详细信息
获取有关工作流程的详细信息。
输入:
workflow_id(str): 要获取详细信息的工作流的 ID
**返回:**工作流详细信息,包括名称、ID 和状态
获取文档
获取工作流执行期间分析的文档。
**输入:**无
**返回:**已分析文档的列表
提示
创建并运行工作流提示
生成提示以创建并运行文档处理工作流。
输入:
user_input(str): 用户的处理需求
**返回:**工作流创建和执行的格式化提示
例子:
资源
目前,没有可用资源。
执照
致谢
Safaricom 提供 Daraja API
人类学的 MCP 框架
项目贡献者
接触
如有任何疑问,请在 GitHub 存储库上打开问题。