Skip to main content
Glama

MCP Agent Orchestration System

by aviz85

MCP代理编排系统

使用模型上下文协议 (MCP) 的基于状态的代理编排系统的 Python 实现。

什么是 MCP?

模型上下文协议 (MCP) 允许应用程序以标准化的方式为 LLM 提供上下文,从而将提供上下文的关注点与实际的 LLM 交互分离开来。使用 MCP,您可以构建服务器来公开:

  • 资源:为法学硕士提供信息的数据源
  • 工具:允许 LLM 执行操作的功能
  • 提示:可重复使用的 LLM 交互模板

安装

先决条件

  • 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 桌面版集成

1. 安装 Claude 桌面版

确保已安装 Claude 桌面版。您可以从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. 添加 Orchestrator 服务器配置:
    { "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 :等待指令
  • 规划:为任务创建结构化计划
  • 研究:收集任务所需的信息
  • 执行:执行计划的行动
  • 审查:评估结果并确定下一步行动
  • ERROR :处理错误或意外情况

定制系统

添加新州

  1. 将状态添加到orchestrator.py中的AgentState枚举中
  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

local-only server

The server can only run on the client's local machine because it depends on local resources.

基于状态的代理编排系统,允许在不同状态(IDLE、PLANNING、REVIEWING、EXECUTING、REVIEWING、ERROR)之间转换,同时保持对话上下文并提供特定于状态的提示。

  1. 什么是 MCP?
    1. 安装
      1. 先决条件
      2. 设置您的环境
      3. 克隆或下载项目文件
    2. 项目结构
      1. 运行编排系统
        1. 与 Claude 桌面版集成
          1. 安装 Claude 桌面版
          2. 配置 Claude 桌面版
          3. 在 Claude 中使用 Orchestrator
        2. 代理状态
          1. 定制系统
            1. 添加新州
            2. 创建自定义工具
          2. 开发和测试
            1. 使用 MCP CLI
            2. 使用 Python 进行手动测试
          3. 资源
            1. 执照

              Related MCP Servers

              • -
                security
                A
                license
                -
                quality
                A server for task orchestration and coordination, facilitating task management with dependencies, multi-instance collaboration, and persistent task tracking.
                Last updated -
                7
                17
                JavaScript
                MIT License
              • -
                security
                A
                license
                -
                quality
                A Model Context Protocol server that enables AI agents to interact with ClickUp workspaces, allowing task creation, management, and workspace organization through natural language commands.
                Last updated -
                313
                MIT License
              • -
                security
                F
                license
                -
                quality
                A Model Context Protocol server that enables role-based context management for AI agents, allowing users to establish specific instructions, maintain partitioned memory, and adapt tone for different agent roles in their system.
                Last updated -
                TypeScript
              • -
                security
                A
                license
                -
                quality
                An MCP server that extends AI agents' context window by providing tools to store, retrieve, and search memories, allowing agents to maintain history and context across long interactions.
                Last updated -
                5
                TypeScript
                MIT License

              View all related MCP servers

              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