ダラジャ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: 環境の設定
uvパッケージマネージャーをインストールする
Mac/Linuxの場合:
curl -LsSf https://astral.sh/uv/install.sh | shWindows (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レスポンス
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): ソースコネクタのIDdestination_id(str): 宛先コネクタのID
**戻り値:**名前、ID、ステータス、タイプ、ソース、宛先、スケジュールなどのワークフローの詳細
ワークフローの実行
ワークフローを実行します。
入力:
workflow_id(str): 実行するワークフローのID
**戻り値:**ワークフロー実行ステータス
ワークフローの詳細を取得する
ワークフローに関する詳細情報を取得します。
入力:
workflow_id(str): 詳細を取得するワークフローのID
**戻り値:**名前、ID、ステータスなどのワークフローの詳細
ドキュメントの取得
ワークフロー実行中に分析されたドキュメントを取得します。
**入力:**なし
**戻り値:**分析された文書のリスト
プロンプト
ワークフロープロンプトの作成と実行
ドキュメント処理のワークフローを作成して実行するためのプロンプトを生成します。
入力:
user_input(str): ユーザーの処理要件
**戻り値:**ワークフローの作成と実行のためのフォーマットされたプロンプト
例:
リソース
現在、利用できるリソースはありません。
ライセンス
謝辞
Daraja APIを提供してくれたSafaricom
MCPフレームワークのAnthropic
プロジェクトへの貢献者
接触
お問い合わせの場合は、GitHub リポジトリで問題を開いてください。