MCP 级别
🚨 重要通知:存储库已移动 此项目已移动到新存储库。如果您希望贡献或访问最新版本,请访问:
模型上下文协议(MCP)服务器,旨在将人工智能应用程序与Safaricom的Daraja API集成,实现与M-Pesa服务的无缝交互。
⚠️ 警告:未准备好生产 该项目目前正在开发中,不建议用于生产。它的设计目的是: - 学习和实验 - 开发和测试环境 - 概念验证实施 对于生产使用,请确保: - 全面的安全测试 - 正确的错误处理 - 完成所有计划功能的实施 - 符合Safaricom的生产要求
什么是MCP服务器?
MCP(模型上下文协议)服务器为LLM提供了与外部系统交互的能力。MCP服务器可以提供三种主要功能:
- 资源:可以由客户端读取的类文件数据(如API响应)
- 工具:LLM可以调用的函数(经用户批准)
- 提示:帮助用户完成特定任务的预先编写的模板
Daraja MCP专门利用该架构将人工智能系统与Safaricom的Daraja M-Pesa API连接起来。
概述
Daraja MCP是人工智能、金融科技和M-Pesa之间的桥梁,使人工智能驱动的金融自动化变得容易和高效。通过标准化LLM(大型语言模型)和金融交易之间的连接,Daraja MCP允许人工智能驱动的应用程序轻松处理支付、检索交易数据并自动化金融工作流程。
关键能力
- ✅ 人工智能驱动的M-Pesa交易 –使LLM能够处理B2C、C2B和B2B支付
- ✅ 标准化集成 MCP确保与多种AI工具的兼容性
- ✅ 安全且可扩展 –实现OAuth身份验证并支持企业级事务处理
- ✅ 柔性自动化 –AI代理可以查询账户余额、生成发票并自动对账
需求
- Python 3.12
- Safaricom Daraja API凭证(消费者密钥和秘密)
安装
第一步:设置环境
- 安装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桌面
- 打开您的Claude Desktop配置文件:
# On MacOS/Linux
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
# On Windows
code %APPDATA%\Claude\claude_desktop_config.json- 如果文件不存在,则创建该文件
- 添加服务器配置
选择以下配置之一:
#### Anthropic推荐格式
{
"mcpServers": {
"daraja": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/DarajaMCP",
"run",
"main.py"
]
}
}
}#### 工作配置(已测试)
{
"mcpServers": {
"DarajaMCP": {
"command": "/ABSOLUTE/PATH/TO/PARENT/.local/bin/uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/DarajaMCP",
"run",
"main.py"
]
}
}
}> 注: > > - 替换 /ABSOLUTE/PATH/TO/PARENT 与你的实际路径 > - 找到完整的路径 uv,运行:
# On MacOS/Linux
which uv
# On Windows
where uv- 验证配置
- 保存配置文件 - 重新启动克劳德桌面 - 寻找锤子🔨 界面中的图标 - 单击它查看可用工具: - generate_access_token - stk_push(未来实现) - query_transaction_status(未来实现) - b2c_支付(未来实施) - account_balance(未来实施)
工具和提示
支付工具
stk_push
发起M-Pesa STK推送请求,提示客户在其移动设备上授权付款。
输入:
amount(int):应支付的金额phone_number(int):客户的电话号码
退货: JSON格式的M-PESA API响应
generate_qr_code
为付款请求生成二维码,客户可以扫描二维码进行付款。
输入:
merchant_name(str):公司名称/M-Pesa商户名称transaction_reference_no(str):交易参考号amount(int):销售/交易的总金额transaction_type(字面意思\[“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推送请求的格式化提示字符串
generate_qr_code_prompt
生成创建M-Pesa二维码支付请求的提示。
输入:
merchant_name(str):商家/企业名称amount(int):待支付金额transaction_type(str):交易类型(BG代表购买商品,WA代表钱包,PB代表付款单,SM代表汇款,SB代表汇款业务)identifier(str):收件人标识符(收款号码、付款单、电话号码)reference(str,可选):交易参考号。如果没有提供,将使用默认值。
退货: 用于生成二维码的格式化提示字符串
文档处理工具
create_source
创建从数据源到非结构化服务器的连接器以进行处理。
输入:
connector_name(str):要创建的源连接器的名称
退货: 源连接器详细信息,包括名称和ID
create_destination
创建从非结构化服务器到数据存储目标的连接器。
输入:
connector_name(str):要创建的目标连接器的名称
退货: 目标连接器详细信息,包括名称和ID
创建工作流
创建工作流以处理从源连接器到目标连接器的数据。
输入:
workflow_name(str):要创建的工作流的名称source_id(str):源连接器的IDdestination_id(str):目标连接器的ID
退货: 工作流详细信息,包括名称、ID、状态、类型、来源、目的地和计划
运行工作流
执行工作流。
输入:
workflow_id(str):要运行的工作流的ID
退货: 工作流执行状态
get_workflow_details
获取有关工作流的详细信息。
输入:
workflow_id(str):获取详细信息的工作流ID
退货: 工作流详细信息,包括名称、ID和状态
fetch_documents
获取工作流执行过程中分析的文档。
输入: 无
退货: 分析文件清单
提示
create_and_run_workflow_prompt
生成一个提示,以创建和运行文档处理的工作流。
输入:
user_input(str):用户的处理要求
退货: 工作流创建和执行的格式化提示
例子:
# Example usage
prompt = await create_and_run_workflow_prompt(
user_input="Process all PDF invoices from the invoices folder and store them in the processed folder"
)
# Returns: "The user wants to achieve Process all PDF invoices from the invoices folder and store them in the processed folder. Assist them by creating a source connector and a destination connector, then setting up the workflow and executing it."资源
目前,没有可用的资源。
许可证
致谢
- Safaricom提供Daraja API
- MCP框架的拟人化
- 项目贡献者
联系
如有任何疑问,请在GitHub存储库上打开一个问题。

