Skip to main content
Glama

ダラジャMCP

AI アプリケーションを Safaricom の Daraja API と統合し、M-Pesa サービスとのシームレスなやり取りを可能にするように設計されたモデル コンテキスト プロトコル (MCP) サーバー。

⚠️警告: 本番環境には対応していません

このプロジェクトは現在開発中であり、本番環境での使用は推奨されません。以下の用途を想定して設計されています。

  • 学習と実験

  • 開発およびテスト環境

  • 概念実証の実装

実稼働環境で使用する場合は、次の点を確認してください。

  • 徹底したセキュリティテスト

  • 適切なエラー処理

  • 計画されたすべての機能の完全な実装

  • Safaricomの生産要件への準拠

MCP サーバーとは何ですか?

MCP(モデルコンテキストプロトコル)サーバーは、LLMが外部システムと対話するための機能を提供します。MCPサーバーは主に3種類の機能を提供できます。

  • リソース: クライアントが読み取ることができるファイルのようなデータ(API レスポンスなど)

  • ツール: LLM から呼び出せる関数 (ユーザーの承認が必要)

  • プロンプト: ユーザーが特定のタスクを達成するのに役立つ、事前に作成されたテンプレート

Daraja MCP は特にこのアーキテクチャを活用して、AI システムを Safaricom の Daraja M-Pesa API に接続します。

Related MCP server: Payments Developer Portal MCP Server

概要

Daraja MCPは、AI、フィンテック、M-Pesaをつなぐ架け橋であり、AI主導の金融自動化を容易に、かつ効率的に実現します。LLM(大規模言語モデル)と金融取引間の接続を標準化することで、Daraja MCPはAI駆動型アプリケーションによる支払い処理、取引データの取得、そして金融ワークフローの自動化を容易に実現します。

主な機能

  • AIを活用したM-Pesa取引– LLMがB2C、C2B、B2Bの支払いを処理できるようにします

  • 標準化された統合– MCPは複数のAIツールとの互換性を保証します

  • 安全でスケーラブル– OAuth認証を実装し、エンタープライズグレードのトランザクション処理をサポートします

  • 柔軟な自動化– AIエージェントは口座残高の照会、請求書の作成、照合の自動化を行うことができます

要件

  • Python 3.12

  • Safaricom Daraja API 認証情報 (コンシューマーキーとシークレット)

インストール

ステップ1: 環境の設定

  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"
  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

ステップ2: 環境変数の設定

  1. サンプル環境ファイルをコピーします。

    cp .env.example .env
  2. 実際の資格情報と構成値で.envファイルを更新します。

注: 開発にはサンドボックス環境を使用してください。準備ができたら本番環境のURLに切り替えてください。

使用法

Claude Desktop によるテスト

  1. Claude Desktopをインストールする

    • Claude Desktopから最新バージョンをダウンロードしてインストールします

    • 最新バージョンを実行していることを確認してください

  2. Claudeデスクトップの設定

    • Claude Desktop 構成ファイルを開きます。

      # On MacOS/Linux code ~/Library/Application\ Support/Claude/claude_desktop_config.json # On Windows code %APPDATA%\Claude\claude_desktop_config.json
    • ファイルが存在しない場合は作成する

  3. サーバー構成の追加次のいずれかの構成を選択します。

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
  1. 構成の確認

    • 設定ファイルを保存する

    • Claudeデスクトップを再起動します

    • インターフェースでハンマー🔨アイコンを探します

    • クリックすると利用可能なツールが表示されます。

      • アクセストークンを生成する

      • stk_push (将来の実装)

      • query_transaction_status (将来の実装)

      • b2c_payment(将来の実装)

      • account_balance (将来の実装)

ツールとプロンプト

支払いツール

stk_push

M-Pesa STK プッシュ リクエストを開始して、顧客にモバイル デバイスで支払いを承認するよう促します。

入力:

  • amount (int): 支払う金額

  • phone_number (int): 顧客の電話番号

戻り値: JSON形式のM-PESA APIレスポンス

QRコードを生成する

顧客が支払いをする際にスキャンできる支払いリクエストの QR コードを生成します。

入力:

  • merchant_name (str): 会社名/M-Pesa加盟店名

  • transaction_reference_no (str): トランザクション参照番号

  • amount (int): 売上/取引の合計金額

  • transaction_type (リテラル["BG", "WA", "PB", "SM", "SB"]): トランザクションの種類

  • credit_party_identifier (str): クレジットパーティ識別子 (携帯電話番号、会社番号、代理店レジ、請求書、または加盟店購入商品)

戻り値: QRコードデータを含むJSON形式のM-PESA APIレスポンス

支払いプロンプト

stk_push_prompt

M-Pesa STK プッシュ支払いリクエストを開始するためのプロンプトを生成します。

入力:

  • phone_number (str): 顧客の電話番号

  • amount (int): 支払う金額

  • purpose (str): 支払いの目的

戻り値: STKプッシュ要求のフォーマットされたプロンプト文字列

QRコードプロンプトを生成する

M-Pesa QR コード支払いリクエストを作成するためのプロンプトを生成します。

入力:

  • merchant_name (str): 商人/ビジネスの名前

  • amount (int): 支払う金額

  • transaction_type (str): 取引の種類 (BG は商品購入、WA はウォレット、PB は請求書支払い、SM は送金、SB はビジネスへの送金)

  • identifier (str): 受取人識別子 (レジ番号、支払請求書、電話番号)

  • reference (str, オプション): トランザクション参照番号。指定されていない場合はデフォルトが使用されます。

戻り値: QRコード生成用のフォーマットされたプロンプト文字列

ドキュメント処理ツール

作成ソース

処理のために、データ ソースから非構造化サーバーへのコネクタを作成します。

入力:

  • connector_name (str): 作成するソースコネクタの名前

**戻り値:**名前とIDを含むソースコネクタの詳細

宛先の作成

非構造化サーバーからデータ保存先へのコネクタを作成します。

入力:

  • connector_name (str): 作成する宛先コネクタの名前

**戻り値:**名前とIDを含む宛先コネクタの詳細

ワークフローの作成

ソース コネクタから宛先コネクタまでのデータを処理するワークフローを作成します。

入力:

  • workflow_name (str): 作成するワークフローの名前

  • source_id (str): ソースコネクタのID

  • destination_id (str): 宛先コネクタのID

**戻り値:**名前、ID、ステータス、タイプ、ソース、宛先、スケジュールなどのワークフローの詳細

ワークフローの実行

ワークフローを実行します。

入力:

  • workflow_id (str): 実行するワークフローのID

**戻り値:**ワークフロー実行ステータス

ワークフローの詳細を取得する

ワークフローに関する詳細情報を取得します。

入力:

  • workflow_id (str): 詳細を取得するワークフローのID

**戻り値:**名前、ID、ステータスなどのワークフローの詳細

ドキュメントの取得

ワークフロー実行中に分析されたドキュメントを取得します。

**入力:**なし

**戻り値:**分析された文書のリスト

プロンプト

ワークフロープロンプトの作成と実行

ドキュメント処理のワークフローを作成して実行するためのプロンプトを生成します。

入力:

  • 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."

リソース

現在、利用できるリソースはありません。

ライセンス

MITライセンス

謝辞

  • Daraja APIを提供してくれたSafaricom

  • MCPフレームワークのAnthropic

  • プロジェクトへの貢献者

接触

お問い合わせの場合は、GitHub リポジトリで問題を開いてください。

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jameskanyiri/DarajaMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server