MCP Agent Orchestration System
MCP代理编排系统
使用模型上下文协议 (MCP) 的基于状态的代理编排系统的 Python 实现。
什么是 MCP?
模型上下文协议 (MCP) 允许应用程序以标准化的方式为 LLM 提供上下文,从而将提供上下文的关注点与实际的 LLM 交互分离开来。使用 MCP,您可以构建服务器来公开:
资源:为法学硕士提供信息的数据源
工具:允许 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- 项目依赖项
运行编排系统
直接启动编排服务器进行测试:
python orchestrator.py在单独的终端中,运行客户端以查看实际的编排过程:
python orchestrator_client.py与 Claude 桌面版集成
1. 安装 Claude 桌面版
确保已安装 Claude 桌面版。您可以从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添加 Orchestrator 服务器配置:
{ "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 :等待指令
规划:为任务创建结构化计划
研究:收集任务所需的信息
执行:执行计划的行动
审查:评估结果并确定下一步行动
ERROR :处理错误或意外情况
定制系统
添加新州
将状态添加到
orchestrator.py中的AgentState枚举中为新状态创建提示函数
更新
_get_available_transitions()中的转换逻辑在资源访问函数中添加新状态的处理程序
创建自定义工具
通过创建用@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 文件。
This server cannot be installed
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