🚀 Daraja API Documentation Scraper & MCP Server
このプロジェクトは、ウェブスクレイピングとModel Context Protocol (MCP) の統合を通じて、SafaricomのDaraja APIドキュメントにアクセスする包括的なツールキットです。強力なスクレイパーでドキュメントを最新に保ち、AIアシスタントとの統合に最適なMCPサーバーを提供します。

🚀 クイックスタート
オプション1: Dockerデプロイ(推奨)
git clone https://github.com/JacksCodeVault/mpesa-daraja-mcp.git
cd mpesa-daraja-mcp
cd mpesa-daraja-mcp
pnpm run docker:build
pnpm run docker:start
オプション2: ネイティブインストール
git clone https://github.com/JacksCodeVault/mpesa-daraja-mcp.git
cd mpesa-daraja-mcp
cd mpesa-daraja-mcp
pnpm install
pnpm run build
オプション3: 新規スクレイピング + MCPセットアップ
git clone https://github.com/JacksCodeVault/mpesa-daraja-mcp.git
cd mpesa-daraja-mcp
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python scraper.py
cd mpesa-daraja-mcp
pnpm install
pnpm run build
✨ 主な機能
- 完全なドキュメントスクレイパー:22のDaraja APIのドキュメントと画像を自動的にスクレイピング
- プロフェッショナルなMCPサーバー:AIアシスタントとの統合に対応した標準準拠のサーバー
- Dockerサポート:すべてのプラットフォームで一貫したデプロイメントが可能
- マルチプラットフォームサポート:Windows、macOS、Linuxで動作
- エディタ統合:Kiro、VSCode、Cursor、Windsurf、Claude Desktopなどと互換性がある
- オフライン対応:すぐに使用できる完全なドキュメントデータセットを含む
- 自動検出:シームレスなセットアップのためのスマートなパス検出
⚠️ 重要な法的通知と免責事項
データソースと使用権
- ドキュメントソース:このプロジェクトはSafaricomのDaraja APIポータルからドキュメントをスクレイピングします。
- 認証が必要:スクレイパーはSafaricomの開発者ポータルにアクセスするためのログイン資格情報が必要です。
- サービス利用規約:ユーザーはスクレイパーを使用する際に、Safaricomのサービス利用規約に準拠する必要があります。
- データ所有権:すべてのスクレイピングされたドキュメントはSafaricom PLCの知的財産です。
法的遵守
- 個人利用:このツールは個人開発および学習目的で使用することを想定しています。
- 商用利用:商用アプリケーションで使用する場合は、Safaricomから適切なライセンスを取得してください。
- レート制限:スクレイパーにはSafaricomのサーバーを尊重するための遅延が含まれています - これを変更しないでください。
- アカウント責任:ユーザーは自分自身のSafaricom開発者アカウントの資格情報に責任があります。
免責事項
- 保証なし:このソフトウェアは「現状のまま」提供され、いかなる保証もありません。
- データの正確性:スクレイピングされたドキュメントは古くなる可能性があります - 常に公式ソースで確認してください。
- サービスの可用性:Safaricomはポータルの構造を変更する可能性があり、スクレイパーが機能しなくなる可能性があります。
- 法的責任:ユーザーはこのツールの使用に関するすべての法的責任を負います。
倫理的な使用ガイドライン
- レート制限を尊重:過度のリクエストでSafaricomのサーバーを圧迫しないでください。
- 有効な資格情報:自分自身の正当なSafaricom開発者アカウントのみを使用してください。
- データ共有:スクレイピングされたデータを共有する際は注意してください - Safaricomの知的財産を尊重してください。
- 更新:スクレイピングされたドキュメントを最新の状態に保ち、古い情報を再配布しないでください。
このソフトウェアを使用することにより、あなたはこれらの条件とSafaricomのサービス利用規約を読み、理解し、遵守することに同意したことになります。
📦 インストール
前提条件
- Docker(推奨)または
- Python 3.8以上(スクレイパー用)+ Node.js 18以上(MCPサーバー用)
- Git(クローン用)
プラットフォーム固有のセットアップ
Windows
git clone https://github.com/JacksCodeVault/mpesa-daraja-mcp.git
cd mpesa-daraja-mcp\mpesa-daraja-mcp
pnpm run docker:build
git clone https://github.com/JacksCodeVault/mpesa-daraja-mcp.git
cd mpesa-daraja-mcp
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
cd mpesa-daraja-mcp
pnpm install
pnpm run build
macOS
brew install git
git clone https://github.com/JacksCodeVault/mpesa-daraja-mcp.git
cd mpesa-daraja-mcp/mpesa-daraja-mcp
pnpm run docker:build
brew install python node git pnpm
git clone https://github.com/JacksCodeVault/mpesa-daraja-mcp.git
cd mpesa-daraja-mcp
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cd mpesa-daraja-mcp
pnpm install
pnpm run build
Linux (Ubuntu/Debian)
sudo apt update
sudo apt install docker.io docker-compose git
sudo usermod -aG docker $USER
git clone https://github.com/JacksCodeVault/mpesa-daraja-mcp.git
cd mpesa-daraja-mcp/mpesa-daraja-mcp
pnpm run docker:build
sudo apt update
sudo apt install python3 python3-venv nodejs npm git
npm install -g pnpm
git clone https://github.com/JacksCodeVault/mpesa-daraja-mcp.git
cd mpesa-daraja-mcp
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cd mpesa-daraja-mcp
pnpm install
pnpm run build
🐳 Dockerデプロイ
Dockerは、すべてのプラットフォームで最も信頼性が高く一貫したデプロイメント方法を提供します。
簡単なDockerセットアップ
cd mpesa-daraja-mcp
pnpm run docker:build
pnpm run docker:start
pnpm run docker:status
pnpm run docker:logs
Docker管理コマンド
pnpm run docker:build
pnpm run docker:start
pnpm run docker:stop
pnpm run docker:restart
pnpm run docker:status
pnpm run docker:logs
pnpm run docker:shell
pnpm run docker:clean
Docker構成
Dockerのセットアップには以下が含まれます:
- マルチステージビルド:最適化されたイメージサイズ
- 非ルートユーザー:セキュリティのため
- ボリュームマウント:ドキュメントへのアクセス
- ヘルスチェック:信頼性のため
- リソース制限:本番環境での使用
Docker Compose構成
services:
daraja-mcp:
build: .
container_name: daraja-mcp-server
restart: unless-stopped
volumes:
- ../daraja_docs_v3:/app/daraja_docs_v3:ro
environment:
- NODE_ENV=production
stdin_open: true
tty: true
Docker用のMCP構成
Dockerを使用する場合、エディタのMCP構成を更新してください:
{
"mcpServers": {
"daraja-docs": {
"command": "docker",
"args": ["exec", "-i", "daraja-mcp-server", "node", "dist/index.js"],
"disabled": false,
"autoApprove": [
"search_daraja_apis",
"get_daraja_api_doc",
"list_apis_by_category",
"get_api_summary",
"get_server_stats",
"compare_apis"
]
}
}
}
💻 使用例
スクレイパーの使用
⚠️ 重要: スクレイパーを使用する前に、以下のことを確認してください:
- 有効なSafaricom開発者アカウントを持っていること
- Safaricomのサービス利用規約に同意していること
- プログラムでドキュメントにアクセスする許可があること
- Safaricomのポリシーに準拠する責任があることを理解していること
スクレイパーは、22のDaraja APIのドキュメントと画像を自動的にダウンロードします。
初回セットアップ
- Python環境をアクティブ化:
source venv/bin/activate
venv\Scripts\activate
- スクレイパーを実行:
python scraper.py
- ログインプロセス:
- ブラウザウィンドウが自動的に開きます。
- プロンプトが表示されたら、手動でDarajaポータルにログインします。
- ログインに成功したら、ターミナルでENTERキーを押します。
- スクレイパーは将来の使用のためにセッションを保存します。
ドキュメントの更新
最新のAPIドキュメントを取得するには:
source venv/bin/activate
python scraper.py
出力構造
daraja_docs_v3/
├── data_index.json # APIメタデータとインデックス
├── docs/ # Markdownドキュメント
│ ├── Authorization.md
│ ├── MpesaExpressSimulate.md
│ └── ... (22 APIファイル)
└── images/ # ダウンロードされた画像
├── Authorization_img_0.svg
└── ... (200+ 画像)
MCPサーバーのセットアップ
MCPサーバーは、6つの強力なツールを通じて、AIアシスタントにDarajaドキュメントへのアクセスを提供します。
ネイティブビルドとテスト
cd mpesa-daraja-mcp
pnpm install
pnpm run build
pnpm test
pnpm run dev
利用可能なMCPツール
MCPサーバーは6つの包括的なツールを提供します:
search_daraja_apis - カテゴリフィルタリングを備えた高度な検索
get_daraja_api_doc - 完全なAPIドキュメントの取得
list_apis_by_category - カテゴリ別に整理されたAPIのリスト
get_api_summary - エンドポイントを含む拡張された要約
get_server_stats - 使用統計と監視
compare_apis - APIの並列比較
サーバー構成
サーバーは、以下の場所のドキュメントを自動的に検出します:
../daraja_docs_v3(サーバーからの相対パス)
./daraja_docs_v3(現在のディレクトリ)
/app/daraja_docs_v3(Dockerコンテナ)
- 環境変数を使用したカスタムパス
📚 ドキュメント
エディタ統合
Kiro IDE
- MCP構成ファイルを作成:
mkdir -p .kiro/settings
- Docker構成(推奨):
{
"mcpServers": {
"daraja-docs": {
"command": "docker",
"args": ["exec", "-i", "daraja-mcp-server", "node", "dist/index.js"],
"disabled": false,
"autoApprove": [
"search_daraja_apis",
"get_daraja_api_doc",
"list_apis_by_category",
"get_api_summary",
"get_server_stats",
"compare_apis"
]
}
}
}
- ネイティブ構成:
{
"mcpServers": {
"daraja-docs": {
"command": "node",
"args": ["mpesa-daraja-mcp/dist/index.js"],
"disabled": false,
"autoApprove": [
"search_daraja_apis",
"get_daraja_api_doc",
"list_apis_by_category",
"get_api_summary",
"get_server_stats",
"compare_apis"
]
}
}
}
VSCode with MCP Extensions
- MCP拡張機能をインストール(利用可能な場合)
- settings.jsonで構成:
{
"mcp.servers": {
"daraja-docs": {
"command": "docker",
"args": ["exec", "-i", "daraja-mcp-server", "node", "dist/index.js"]
}
}
}
Cursor IDE
- Cursor設定を開く
- MCPサーバー構成を追加:
{
"mcp": {
"servers": {
"daraja-docs": {
"command": "docker",
"args": ["exec", "-i", "daraja-mcp-server", "node", "dist/index.js"]
}
}
}
}
Windsurf
- Windsurf MCP設定にアクセス
- サーバー構成を追加:
{
"mcpServers": {
"daraja-docs": {
"command": "docker",
"args": ["exec", "-i", "daraja-mcp-server", "node", "dist/index.js"]
}
}
}
Claude Desktop
- Claude構成ファイルを編集:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- サーバー構成を追加:
{
"mcpServers": {
"daraja-docs": {
"command": "docker",
"args": ["exec", "-i", "daraja-mcp-server", "node", "dist/index.js"]
}
}
}
汎用MCPクライアント
Dockerを使用する任意のMCP互換クライアントの場合:
{
"servers": {
"daraja-docs": {
"command": "docker",
"args": ["exec", "-i", "daraja-mcp-server", "node", "dist/index.js"],
"env": {}
}
}
}
ネイティブインストールの場合:
{
"servers": {
"daraja-docs": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/absolute/path/to/mpesa-daraja-mcp",
"env": {}
}
}
}
APIドキュメント
利用可能なAPI
このプロジェクトには、6つのカテゴリに分類された22のDaraja APIの包括的なドキュメントが含まれています:
コア支払いAPI
- Authorization - OAuthトークンの生成と管理
- MpesaExpressSimulate - STK Push支払いの開始
- MpesaExpressQuery - STK Pushトランザクションのステータス照会
支払い処理
- CustomerToBusiness - C2B支払い処理
- BusinessToCustomer - B2C支払いの支給
- CustomerToBusinessRegisterURL - C2B URLの登録
トランザクション管理
- TransactionStatus - トランザクションのステータス検証
- AccountBalance - アカウント残高照会
- Reversal - トランザクションの取消し操作
- PullTransaction - トランザクションの詳細取得
ビジネスオペレーション
- BusinessPayBill - 請求書支払い処理
- BusinessBuyGoods - 商品購入の支払い
- B2BExpressCheckout - 企業間取引
- BusinessToPochi - 企業からPochiウォレットへの送金
高度な機能
- DynamicQRCode - 動的QRコードの生成
- BillManager - 請求書の管理と処理
- TaxRemittance - 税支払い処理
- MpesaRatiba - 予定された支払いの管理
特殊サービス
- B2CAccountTopUp - アカウントのチャージサービス
- Swap - 通貨交換操作
- IMSI - SIMカード管理サービス
- IotSimManagement - IoT SIMカード管理
MCPツールの使用
高度なAPI検索
search_daraja_apisツールを使用して強力なフィルタリングを行います:
- クエリ: "payment" + カテゴリ: "core" → コア支払いAPI
- クエリ: "balance" → アカウント残高関連のAPI
- カテゴリ: "business" → すべてのビジネスオペレーションAPI
- パラメータなし → カテゴリ付きのすべての22のAPI
完全なドキュメントアクセス
get_daraja_api_docツールを使用して完全なドキュメントにアクセスします:
- api_name: "Authorization" → 完全なOAuth実装ガイド
- api_name: "MpesaExpressSimulate" → 完全なSTK Pushドキュメント
- コード例、パラメータ、レスポンス形式が含まれます。
拡張されたAPI要約
get_api_summaryツールを使用して迅速な概要を取得します:
- api_name: "BusinessToCustomer" → 主要なエンドポイントを含む要約
- include_endpoints: true → エンドポイントURLが含まれます。
- 迅速な参照と比較に最適です。
API比較
compare_apisツールを使用して並列分析を行います:
- api_names: ["Authorization", "MpesaExpressSimulate"] → 認証と支払いの比較
- comparison_aspects: ["endpoints", "authentication"] → 特定の側面に焦点を当てる
- 同時に2 - 4つのAPIをサポートします。
使用統計
get_server_statsツールを使用して監視します:
- 総API数とカテゴリ
- 最もアクセスされたAPI
- リクエスト統計
- サーバーのヘルス情報
カテゴリ別ブラウジング
list_apis_by_categoryツールを使用して整理されたアクセスを行います:
- カテゴリ: "payments" → すべての支払い関連のAPI
- カテゴリなし → カウント付きのすべてのカテゴリのリスト
- 関連するAPIを見つけるのに最適です。
🔧 技術詳細
トラブルシューティング
Dockerの問題
コンテナが起動しない場合
docker --version
docker-compose --version
pnpm run docker:logs
pnpm run docker:clean
pnpm run docker:build
コンテナ内でドキュメントが見つからない場合
docker inspect daraja-mcp-server
ls -la ../daraja_docs_v3/data_index.json
pnpm run docker:shell
ls -la /app/daraja_docs_v3/
DockerでMCP接続に問題がある場合
pnpm run docker:status
docker exec -i daraja-mcp-server node dist/index.js
pnpm run docker:logs
ネイティブインストールの問題
MCPサーバーの問題
サーバーが起動しない場合:
node --version
cd mpesa-daraja-mcp
pnpm run clean
pnpm install
pnpm run build
ドキュメントが見つからない場合:
pnpm test
ls -la ../daraja_docs_v3/data_index.json
TypeScriptエラーが発生する場合:
pnpm update
pnpm run build
pnpm run dev
スクレイパーの問題
ブラウザが開かない場合:
playwright install chromium
python --version
ログインセッションが期限切れの場合:
rm auth.json
python scraper.py
権限エラーが発生する場合:
chmod +x scraper.py
python scraper.py
エディタ統合の問題
MCPサーバーに接続できない場合
- Dockerコンテナが実行中か確認:
pnpm run docker:status
- MCP構成の構文を確認:
- JSONが有効であることを確認
- コマンドと引数が正しいことを確認
- ネイティブインストールの場合は絶対パスを使用することを確認
- サーバーを手動でテスト:
docker exec -i daraja-mcp-server node dist/index.js
cd mpesa-daraja-mcp
node dist/index.js
- 構成を変更した後にエディタを再起動
ツールが表示されない場合
- エディタのMCPパネルでサーバーのログを確認
- autoApproveリストに必要なツールが含まれていることを確認
- サーバーが正常にビルドされることを確認:
pnpm run build
- 最初に最小限の構成でテスト
プラットフォーム固有の問題
Windowsプラットフォームの問題
- Dockerパスではスラッシュを使用:
C:/path/to/project
- Dockerの権限問題がある場合は、PowerShellを管理者として実行
- Windows DefenderがDockerまたはNode.jsをブロックしていないことを確認
- より良いDockerパフォーマンスのためにWSL2を使用
macOSプラットフォームの問題
- Xcodeコマンドラインツールをインストール:
xcode-select --install
- 依存関係の管理にHomebrewを使用:
brew install docker
- Docker Desktopが実行中で構成されていることを確認
- ファイルの権限を確認:
chmod +x docker-scripts.sh
Linuxプラットフォームの問題
- ユーザーをdockerグループに追加:
sudo usermod -aG docker $USER
- ビルドエッセンシャルをインストール:
sudo apt install build-essential
- Dockerサービスを確認:
sudo systemctl status docker
- Node.jsのインストールを確認:
which node
パフォーマンス最適化
Dockerのパフォーマンス
docker update --memory=512m --cpus="0.5" daraja-mcp-server
docker system prune -a
MCPサーバーのパフォーマンス
NODE_ENV=production pnpm run docker:start
ヘルプの取得
- 最初にログを確認:Dockerとネイティブインストールの両方が詳細なエラーメッセージを提供します。
- コンポーネントを個別にテスト:
pnpm testを使用してMCPサーバーのセットアップを検証します。
- パスと権限を確認:すべてのファイルパスが正しくアクセス可能であることを確認します。
- 依存関係を更新:Docker、Node.js、Pythonパッケージを最新の状態に保ちます。
- 一貫性のためにDockerを使用:Dockerはほとんどのプラットフォーム固有の問題を解消します。
コントリビューション
⚠️ コントリビューターのためのデータ取り扱いガイドライン:
- PRにスクレイピングされたデータを含めない:プルリクエストにスクレイピングされたドキュメントを含めないでください。
- 知的財産権を尊重:コントリビューションがSafaricomの知的財産を侵害しないことを確認してください。
- コードのみ:スクレイパーとMCPサーバーのコードの改善に貢献してください。データではなく。
- ドキュメント:READMEとコードのコメントを更新してください。スクレイピングされたAPIドキュメントではなく。
開発セットアップ
- リポジトリをフォーク
- 機能ブランチを作成:
git checkout -b feature/amazing-feature
- 開発環境をセットアップ:
cd mpesa-daraja-mcp
pnpm run docker:build
pnpm run docker:start
pip install -r requirements-dev.txt
cd mpesa-daraja-mcp
pnpm install
pnpm run dev
新しいAPIの追加
- スクレイパーのURLを更新:
URLS = [
"https://developer.safaricom.co.ke/apis/NewAPI",
]
- スクレイピングをテスト:
python scraper.py
- APIのカテゴリ分けを更新:
API_CATEGORIES: {
new_category: ["NewAPI"],
}
- MCPサーバーを確認:
cd mpesa-daraja-mcp
pnpm test
pnpm run docker:build
コードスタイル
- Python:PEP 8に従い、
blackフォーマッターを使用
- TypeScript:Prettierフォーマット、ESLintルールを使用
- Docker:マルチステージビルドのベストプラクティスに従う
- コミット:コンベンショナルコミットフォーマットを使用
テスト
python scraper.py --test-mode
cd mpesa-daraja-mcp
pnpm test
pnpm run build
pnpm run docker:build
pnpm run docker:start
pnpm run docker:logs
ドキュメント
- 新機能についてREADMEを更新
- インラインコードコメントを追加
- APIドキュメントを更新
- Docker固有の手順を含める
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています - 詳細についてはLICENSEファイルを参照してください。
⚠️ 重要なライセンスの解釈:
- ソフトウェアライセンス:MITライセンスはスクレイパーとMCPサーバーのコードにのみ適用されます。
- ドキュメントの権利:スクレイピングされたDaraja APIドキュメントはSafaricom PLCの財産です。
- 別の条件:Safaricomのドキュメントの使用は、彼らのサービス利用規約に従う必要があります。
- 移転なし:このライセンスはSafaricomの知的財産に対する権利を付与しません。
これが意味すること
- ✅ 商用利用 - このプロジェクトを商用アプリケーションで使用することができます。
- ✅ 変更 - ソースコードを自分のニーズに合わせて変更することができます。
- ✅ 配布 - ソフトウェアのコピーを配布することができます。
- ✅ 個人利用 - ソフトウェアを個人目的で使用することができます。
- ❌ 責任 - 著者はいかなる損害に対しても責任を負いません。
- ❌ 保証 - ソフトウェアは「現状のまま」提供され、保証はありません。
帰属
このプロジェクトを使用する場合は、以下を検討してください:
- ⭐ GitHubでリポジトリにスターを付ける
- 📝 あなたのドキュメントでこのプロジェクトを言及する
- 🔗 元のリポジトリへのリンクを張る
謝辞
- Safaricom:Daraja APIプラットフォームを提供してくれた
- Model Context Protocolチーム:MCP標準を提供してくれた
- Playwrightチーム:優れた自動化フレームワークを提供してくれた
- Dockerコミュニティ:コンテナ化のベストプラクティスを提供してくれた
- オープンソースコントリビューター:このようなプロジェクトを可能にしてくれた
リポジトリ情報
サポート
このプロジェクトが役に立った場合は、以下を検討してください:
- ⭐ リポジトリにスターを付ける
- 🐛 遭遇した問題を報告する
- 💡 改善提案をする
- 🤝 プロジェクトにコントリビュートする
- 📢 役に立つと思われる人に共有する
Daraja APIドキュメントをあなたのAIアシスタントと統合する準備はできましたか?
Dockerでクイックスタート: cd mpesa-daraja-mcp && pnpm run docker:build && pnpm run docker:start
ドキュメントを閲覧する: MCPツールを使用して22の包括的なDaraja APIを探索します。
ヘルプが必要な場合:トラブルシューティングセクションを確認するか、問題を報告してください。
クイックスタートガイドから始めて、数分でAIアシスタントがDarajaドキュメントにアクセスできるようにしましょう!