项目简介

Daraja MCP Server 充当 AI 应用(如 Claude Desktop)和 Safaricom Daraja M-Pesa API 之间的桥梁,使 AI 应用能够安全、高效地与 M-Pesa 服务进行交互。它通过 MCP 协议标准化了 LLM 与外部系统的连接方式,让 AI 驱动的应用可以处理支付、查询交易数据,并自动化金融工作流程。此外,该服务器还集成了文档处理功能,扩展了其应用场景。

主要功能点:

  • M-Pesa 交易集成: 支持 AI 应用通过工具调用 M-Pesa API,实现 B2C、C2B 和 B2B 支付等金融交易功能。
  • 文档处理工作流: 提供创建、运行和管理文档处理工作流的能力,例如从 S3 存储桶读取文档,使用 Unstructured API 进行分析,并将结果存储到 MongoDB 数据库。
  • 工具和 Prompt 管理: 实现了 MCP 服务器的核心功能,包括工具注册和 Prompt 模板定义,方便 LLM 客户端调用和使用。
  • OAuth 认证: 使用 OAuth 认证机制,确保与 Daraja API 交互的安全性。
  • 环境管理和自动刷新: 支持使用 '.env' 文件配置环境变量,并能自动刷新 Daraja API 的 access token,保证服务的持续可用性。

安装步骤:

  1. 安装 uv 包管理器 (推荐): uv 是一个快速的 Python 包安装和虚拟环境管理工具,可以显著加速依赖安装过程。根据您的操作系统,运行相应的安装命令:

    • 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"
  2. 克隆仓库:

    git clone https://github.com/jameskanyiri/DarajaMCP.git
    cd DarajaMCP
  3. 创建并激活虚拟环境:

    uv venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  4. 安装依赖:

    uv sync
  5. 配置环境变量:

    • 复制示例环境变量文件并重命名为 '.env':
      cp .env.example .env
    • 编辑 '.env' 文件,填入您的 Safaricom Daraja API 凭据、Unstructured API 密钥、MongoDB 连接 URI、AWS S3 存储配置等必要的配置信息。请务必根据 '.env.example' 文件中的说明进行配置。

服务器配置 (Claude Desktop 客户端配置示例):

要将 Daraja MCP 服务器连接到 Claude Desktop,您需要编辑 Claude Desktop 的配置文件 'claude_desktop_config.json'。

  1. 打开配置文件:

    • MacOS/Linux: 'code ~/Library/Application\ Support/Claude/claude_desktop_config.json'
    • Windows: 'code %APPDATA%\Claude\claude_desktop_config.json'
    • 如果文件不存在,请手动创建。
  2. 添加 MCP 服务器配置: 在 'claude_desktop_config.json' 文件中,添加 'mcpServers' 字段,并配置 Daraja MCP 服务器。以下是两种配置格式,推荐使用 "Working Configuration (Tested)" 格式,并根据您的实际 uv 安装路径和仓库路径进行调整。

    Anthropic 推荐格式 (可能需要根据实际情况调整):

    {
      "mcpServers": {
        "daraja": {  //  服务器名称,在 Claude Desktop 中显示为工具分组名
          "command": "uv",  //  启动服务器的命令,这里使用 uv 包管理器
          "args": [
            "--directory",  //  指定工作目录参数
            "/ABSOLUTE/PATH/TO/PARENT/FOLDER/DarajaMCP",  //  请替换为 DarajaMCP 仓库的绝对路径
            "run",         //  uv run 命令,用于运行 Python 脚本
            "main.py"      //  服务器主程序文件名
          ]
        }
      }
    }

    Working Configuration (Tested) (推荐):

    {
      "mcpServers": {
        "DarajaMCP": {  // 服务器名称,在 Claude Desktop 中显示为工具分组名
          "command": "/ABSOLUTE/PATH/TO/PARENT/.local/bin/uv", //  请替换为 uv 包管理器的绝对路径,可以使用 'which uv' (Mac/Linux) 或 'where uv' (Windows) 命令查找
          "args": [
            "--directory",  // 指定工作目录参数
            "/ABSOLUTE/PATH/TO/PARENT/FOLDER/DarajaMCP",  // 请替换为 DarajaMCP 仓库的绝对路径
            "run",         // uv run 命令,用于运行 Python 脚本
            "main.py"      // 服务器主程序文件名
          ]
        }
      }
    }

    注意:

    • 请将 '/ABSOLUTE/PATH/TO/PARENT/FOLDER/DarajaMCP' 替换为您 DarajaMCP 仓库的实际绝对路径。
    • 请将 '/ABSOLUTE/PATH/TO/PARENT/.local/bin/uv' 替换为 'uv' 包管理器的实际绝对路径。您可以使用 'which uv' (Mac/Linux) 或 'where uv' (Windows) 命令在终端中查找 'uv' 的安装路径。
  3. 保存并重启 Claude Desktop: 保存 'claude_desktop_config.json' 文件,并重启 Claude Desktop 应用。

  4. 验证配置: 重启后,Claude Desktop 界面中应该会出现一个锤子 🔨 图标。点击该图标,您应该能看到名为 "DarajaMCP" (或您在配置中设置的服务器名称) 的工具分组,以及该服务器提供的工具列表,例如 'stk_push', 'create_source' 等。

基本使用方法:

  1. 启动 Daraja MCP 服务器: 服务器在配置 Claude Desktop 时指定的命令中已经包含,当 Claude Desktop 尝试连接 MCP 服务器时会自动启动。您也可以在仓库目录下手动运行 'uv run main.py' 命令来启动服务器。

  2. 在 Claude Desktop 中调用工具和 Prompt: 通过 Claude Desktop 的聊天界面,您可以指示 Claude 调用 Daraja MCP 服务器提供的工具或使用 Prompt。例如,您可以指示 Claude "使用 stk_push 工具向电话号码 2547xxxxxxxx 发起 100 肯尼亚先令的支付" 或 "使用 create_and_run_workflow_prompt Prompt 来处理 invoices 文件夹中的 PDF 发票"。 Claude 会根据您的指令,调用相应的工具或 Prompt,并与 Daraja MCP 服务器交互,完成 M-Pesa 支付或文档处理等任务。

注意: 请确保您已经正确配置了 '.env' 文件中的环境变量,特别是 Safaricom Daraja API 和 Unstructured API 的凭据,以及 MongoDB 和 AWS S3 的连接信息。

信息

分类

商业系统