Skip to main content
Glama
aviz85

MCP Agent Orchestration System

by aviz85

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の使用(推奨)

# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# Create a new directory for our project
uv init mcp-agents-orchestra
cd mcp-agents-orchestra

# Create virtual environment and activate it
uv venv
source .venv/bin/activate  # On Unix/macOS
.venv\Scripts\activate     # On Windows

# Install dependencies
uv add "mcp[cli]" httpx

pipの使用

# Create a new directory for our project
mkdir mcp-agents-orchestra
cd mcp-agents-orchestra

# Create a virtual environment
python -m venv venv
source venv/bin/activate  # On Unix/macOS
venv\Scripts\activate     # On Windows

# Install dependencies
pip install "mcp[cli]" httpx

プロジェクトファイルの複製またはダウンロード

プロジェクト ファイルをディレクトリに配置します。

  • orchestrator.py - ステートマシンを実装するメインの MCP サーバー

  • orchestrator_client.py - オーケストレーションフローを示すクライアント

  • requirements.txt - プロジェクトの依存関係

  • .gitignore - Git 無視ファイル

プロジェクト構造

  • orchestrator.py - ステートマシンを実装するメインの MCP サーバー

  • orchestrator_client.py - オーケストレーションフローを示すクライアント

  • requirements.txt - プロジェクトの依存関係

オーケストレーションシステムの実行

  1. テストのためにオーケストレーション サーバーを直接起動します。

python orchestrator.py
  1. 別のターミナルでクライアントを実行し、オーケストレーションの動作を確認します。

python orchestrator_client.py

Claude for Desktopとの統合

1.デスクトップ版Claudeをインストールする

Claude for Desktopがインストールされていることを確認してください。最新バージョンはAnthropicのウェブサイトからダウンロードできます。

2. デスクトップ用にClaudeを設定する

  1. 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
  2. オーケストレータ サーバーの構成を追加します。

    {
        "mcpServers": {
            "agent-orchestrator": {
                "command": "python",
                "args": [
                    "/ABSOLUTE/PATH/TO/YOUR/PROJECT/orchestrator.py"
                ]
            }
        }
    }

    パスを、orchestrator.py ファイルへの絶対パスに置き換えます。

  3. 設定ファイルを保存し、Claude for Desktop を再起動します。

3. ClaudeでのOrchestratorの使用

設定が完了すると、次のことが可能になります。

  1. デスクトップ版Claudeを開く

  2. サイドバーのMCPサーバーアイコンをクリックします

  3. 利用可能なサーバーのリストから「agent-orchestrator」を選択します

  4. オーケストレーションシステムとのやり取りを開始する

クロードは次のことができるようになります:

  • 異なるエージェント状態間の遷移

  • ナレッジベースから情報を保存および取得する

  • 状態遷移を通じて会話のコンテキストを維持する

  • 州固有のプロンプトにアクセスする

エージェント国家

オーケストレーション システムは、次の状態を持つステート マシンを実装します。

  • IDLE : 指示を待っています

  • 計画:タスクの構造化された計画を作成する

  • リサーチ:タスクに必要な情報を収集する

  • 実行:計画された行動を実行する

  • レビュー:結果を評価し、次のステップを決定する

  • エラー: エラーや予期しない状況の処理

システムのカスタマイズ

新しい州の追加

  1. 状態をorchestrator.pyAgentState列挙型に追加します。

  2. 新しい状態のためのプロンプト関数を作成する

  3. _get_available_transitions()の遷移ロジックを更新します

  4. リソースアクセス関数に新しい状態のハンドラーを追加する

カスタムツールの作成

@mcp.tool()で装飾された関数を作成して新しいツールを追加します。

@mcp.tool()
def my_custom_tool(arg1: str, arg2: int, ctx: Context) -> str:
    """Description of what this tool does
    
    Args:
        arg1: Description of arg1
        arg2: Description of arg2
    """
    # Implementation here
    return "Result"

開発とテスト

MCP CLIの使用

MCP CLI は開発とテストのためのツールを提供します。

# Install MCP CLI if you haven't already
pip install "mcp[cli]"

# Test your server with the MCP Inspector
mcp dev orchestrator.py

# Install in Claude Desktop
mcp install orchestrator.py

Pythonによる手動テスト

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async with stdio_client(StdioServerParameters(command="python", args=["orchestrator.py"])) as (read, write):
    async with ClientSession(read, write) as session:
        await session.initialize()
        # Test state transitions
        await session.call_tool("transition_state", arguments={"new_state": "PLANNING"})

リソース

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。

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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/aviz85/mcp-agents-orchestra'

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