MCP ExplorerExplorer

Mcp Agents Orchestra

@aviz85on 22 days ago
1 MIT
FreeCommunity
AI Systems
A Python-based orchestration system for LLMs using the Model Context Protocol.

Overview

What is Mcp Agents Orchestra

MCP Agents Orchestra is a Python-based agent orchestration system that utilizes the Model Context Protocol (MCP) to manage the interaction between various agents and large language models (LLMs). It separates the context provision from LLM interactions, allowing for a more structured approach to agent orchestration.

Use cases

Use cases for MCP Agents Orchestra include developing intelligent chatbots that can manage complex conversations, creating virtual assistants that can perform tasks based on user input, and automating content generation workflows that require context-aware interactions.

How to use

To use MCP Agents Orchestra, first set up your environment by installing Python 3.10 or higher and the MCP Python SDK. You can initialize the project using ‘uv’ or ‘pip’, create a virtual environment, and install the necessary dependencies. After setting up, you can run the orchestration server and interact with the agents through the provided client.

Key features

Key features of MCP Agents Orchestra include the ability to define resources, tools, and prompts for LLM interactions, a state-based orchestration system, and a modular architecture that allows for easy integration and scalability.

Where to use

MCP Agents Orchestra can be used in various fields such as artificial intelligence, natural language processing, and any application that requires structured interactions with LLMs, including chatbots, virtual assistants, and automated content generation.

Content

MCP Agent Orchestration System

A Python implementation of a state-based agent orchestration system using the Model Context Protocol (MCP).

What is MCP?

The Model Context Protocol (MCP) allows applications to provide context for LLMs in a standardized way, separating the concerns of providing context from the actual LLM interaction. With MCP, you can build servers that expose:

  • Resources: Data sources that provide information to LLMs
  • Tools: Functions that allow LLMs to perform actions
  • Prompts: Reusable templates for LLM interactions

Installation

Prerequisites

  • Python 3.10 or higher
  • MCP Python SDK 1.2.0 or higher

Setting Up Your Environment

Using uv (recommended)

# 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

Using 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

Clone or Download Project Files

Place the project files in your directory:

  • orchestrator.py - The main MCP server implementing the state machine
  • orchestrator_client.py - Client demonstrating the orchestration flow
  • requirements.txt - Dependencies for the project
  • .gitignore - Git ignore file

Project Structure

  • orchestrator.py - The main MCP server implementing the state machine
  • orchestrator_client.py - Client demonstrating the orchestration flow
  • requirements.txt - Dependencies for the project

Running the Orchestration System

  1. Start the orchestration server directly for testing:
python orchestrator.py
  1. In a separate terminal, run the client to see the orchestration in action:
python orchestrator_client.py

Integrating with Claude for Desktop

1. Install Claude for Desktop

Make sure you have Claude for Desktop installed. You can download the latest version from Anthropic’s website.

2. Configure Claude for Desktop

  1. Open your Claude for Desktop configuration file:

    macOS/Linux:

    # Create or edit the configuration file
    code ~/Library/Application\ Support/Claude/claude_desktop_config.json
    

    Windows:

    # Path may vary depending on your Windows version
    code %APPDATA%\Claude\claude_desktop_config.json
    
  2. Add the orchestrator server configuration:

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

    Replace the path with the absolute path to your orchestrator.py file.

  3. Save the configuration file and restart Claude for Desktop.

3. Using the Orchestrator in Claude

Once configured, you can:

  1. Open Claude for Desktop
  2. Click on the MCP server icon in the sidebar
  3. Select “agent-orchestrator” from the list of available servers
  4. Start interacting with the orchestration system

Claude will be able to:

  • Transition between different agent states
  • Store and retrieve information from the knowledge base
  • Maintain conversation context across state transitions
  • Access state-specific prompts

Agent States

The orchestration system implements a state machine with the following states:

  • IDLE: Waiting for instructions
  • PLANNING: Creating a structured plan for a task
  • RESEARCHING: Gathering information needed for a task
  • EXECUTING: Carrying out planned actions
  • REVIEWING: Evaluating results and determining next steps
  • ERROR: Handling errors or unexpected situations

Customizing the System

Adding New States

  1. Add the state to the AgentState enum in orchestrator.py
  2. Create a prompt function for the new state
  3. Update the transition logic in _get_available_transitions()
  4. Add handlers for the new state in resource access functions

Creating Custom Tools

Add new tools by creating functions decorated with @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"

Development and Testing

Using the MCP CLI

The MCP CLI provides tools for development and testing:

# 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

Manual Testing with 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"})

Resources

License

This project is licensed under the MIT License - see the LICENSE file for details.

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers