MCP エージェント オーケストレーション システム
モデル コンテキスト プロトコル (MCP) を使用した状態ベースのエージェント オーケストレーション システムの Python 実装。
MCPとは何ですか?
モデルコンテキストプロトコル(MCP)は、アプリケーションがLLMに標準化された方法でコンテキストを提供することを可能にし、コンテキスト提供の懸念をLLMとの実際のやり取りから分離します。MCPを使用すると、以下の情報を公開するサーバーを構築できます。
リソース: LLMに情報を提供するデータソース
ツール: LLMがアクションを実行できるようにする機能
プロンプト: LLMインタラクション用の再利用可能なテンプレート
Related MCP server: MCP-RAG
インストール
前提条件
Python 3.10以上
MCP Python SDK 1.2.0 以上
環境の設定
uvの使用(推奨)
pipの使用
プロジェクトファイルの複製またはダウンロード
プロジェクト ファイルをディレクトリに配置します。
orchestrator.py- ステートマシンを実装するメインの MCP サーバーorchestrator_client.py- オーケストレーションフローを示すクライアントrequirements.txt- プロジェクトの依存関係.gitignore- Git 無視ファイル
プロジェクト構造
orchestrator.py- ステートマシンを実装するメインの MCP サーバーorchestrator_client.py- オーケストレーションフローを示すクライアントrequirements.txt- プロジェクトの依存関係
オーケストレーションシステムの実行
テストのためにオーケストレーション サーバーを直接起動します。
別のターミナルでクライアントを実行し、オーケストレーションの動作を確認します。
Claude for Desktopとの統合
1.デスクトップ版Claudeをインストールする
Claude for Desktopがインストールされていることを確認してください。最新バージョンはAnthropicのウェブサイトからダウンロードできます。
2. デスクトップ用にClaudeを設定する
Claude for Desktop の構成ファイルを開きます。
macOS/Linux:
# Create or edit the configuration file code ~/Library/Application\ Support/Claude/claude_desktop_config.jsonウィンドウズ:
# Path may vary depending on your Windows version code %APPDATA%\Claude\claude_desktop_config.jsonオーケストレータ サーバーの構成を追加します。
{ "mcpServers": { "agent-orchestrator": { "command": "python", "args": [ "/ABSOLUTE/PATH/TO/YOUR/PROJECT/orchestrator.py" ] } } }パスを、orchestrator.py ファイルへの絶対パスに置き換えます。
設定ファイルを保存し、Claude for Desktop を再起動します。
3. ClaudeでのOrchestratorの使用
設定が完了すると、次のことが可能になります。
デスクトップ版Claudeを開く
サイドバーのMCPサーバーアイコンをクリックします
利用可能なサーバーのリストから「agent-orchestrator」を選択します
オーケストレーションシステムとのやり取りを開始する
クロードは次のことができるようになります:
異なるエージェント状態間の遷移
ナレッジベースから情報を保存および取得する
状態遷移を通じて会話のコンテキストを維持する
州固有のプロンプトにアクセスする
エージェント国家
オーケストレーション システムは、次の状態を持つステート マシンを実装します。
IDLE : 指示を待っています
計画:タスクの構造化された計画を作成する
リサーチ:タスクに必要な情報を収集する
実行:計画された行動を実行する
レビュー:結果を評価し、次のステップを決定する
エラー: エラーや予期しない状況の処理
システムのカスタマイズ
新しい州の追加
状態を
orchestrator.pyのAgentState列挙型に追加します。新しい状態のためのプロンプト関数を作成する
_get_available_transitions()の遷移ロジックを更新しますリソースアクセス関数に新しい状態のハンドラーを追加する
カスタムツールの作成
@mcp.tool()で装飾された関数を作成して新しいツールを追加します。
開発とテスト
MCP CLIの使用
MCP CLI は開発とテストのためのツールを提供します。
Pythonによる手動テスト
リソース
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。