agentic-mcp-gateway は何をしますか?
LangGraphベースのゲートウェイで、マルチMCPエージェントワークフローにインテントルーティング、可観測性、OpenClaw互換のスキルエクスポートを提供します。
概要
sinhphamvj/agentic-mcp-gateway は、複数のModel Context Protocol (MCP) サービスを連携させるための強力なゲートウェイです。LangGraphのグラフベースのワークフローエンジンを活用し、ユーザーの意図(インテント)を解析して適切なMCPツールやリソースへリクエストをルーティングします。これにより、複雑なマルチエージェントシナリオをシームレスに構築・実行できます。
主な機能
- インテントルーティング: ユーザー入力から意図を抽出し、最適なMCPサービスにルーティングします。
- 可観測性: ワークフローのトレーシング、ログ、メトリクスを提供し、実行状況の可視化を支援します。
- OpenClaw互換スキルエクスポート: ワークフローをOpenClaw形式のスキルファイルとしてエクスポートし、他のAIエージェントプラットフォーム(Claude Code、Cursor、Codexなど)で再利用可能にします。
- 拡張性: 新しいMCPサービスやワークフローノードを容易に追加可能なプラグインアーキテクチャを採用しています。
使用方法
インストール
pip install agentic-mcp-gateway
クイックスタート
from agentic_mcp_gateway import Gateway
from agentic_mcp_gateway.mcp import MCPClient
# ゲートウェイの初期化
gateway = Gateway()
# MCPクライアントの登録
mcp_client = MCPClient("http://localhost:8000/mcp")
gateway.register_mcp_service("my-service", mcp_client)
# ワークフローの実行
result = gateway.run("ユーザーのクエリをここに入力")
print(result)
インテントルーティングの設定
ルーティングルールはYAMLファイルで定義します。
# routing.yaml
intents:
- name: "データクエリ"
patterns:
- "データを取得"
- "情報を検索"
target_service: "search-service"
- name: "計算"
patterns:
- "計算して"
- "演算"
target_service: "compute-service"
可観測性の有効化
gateway.enable_observability(
tracing=True,
logging=True,
metrics=True
)
OpenClawスキルのエクスポート
gateway.export_skill("my-skill", output_format="openclaw")
# outputs/my-skill.skill が生成されます
アーキテクチャ
+------------------+ +------------------+
| ユーザー入力 | ----> | インテント |
+------------------+ | ルーター |
+--------+---------+
|
+---------------+---------------+
| |
+-------v-------+ +---------v-------+
| MCP サービス A | | MCP サービス B |
+-------+-------+ +---------+-------+
| |
+-------+-------+---------------+
| |
+-------v-------v----+
| レスポンス集約 |
+--------------------+
設定オプション
| オプション | 説明 | デフォルト値 |
|---|---|---|
log_level | ログレベル | INFO |
trace_enabled | トレーシングの有効/無効 | false |
max_retries | MCPサービス呼び出しの最大リトライ回数 | 3 |
timeout | サービスタイムアウト(秒) | 30 |
トラブルシューティング
- MCPサービスに接続できない: サービスが起動しているか、URLが正しいか確認してください。ファイアウォール設定も確認しましょう。
- ルーティングが期待通りに動作しない:
routing.yamlのインテントパターンを見直し、必要に応じてトレーシングを有効にしてログを確認してください。 - OpenClawスキルが認識されない: エクスポートされたスキルファイルの形式がOpenClaw仕様に準拠しているか、公式ドキュメントを参照してください。
貢献
バグ報告や機能リクエストは、GitHub Issues までお願いします。プルリクエストも歓迎します。
ライセンス
MIT License