返回市场
MCP代理编队

MCP代理编队

作者:aviz852 星标更新:2025-05-07

项目介绍

MCP代理编排系统

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

什么是MCP?

模型上下文协议(MCP)允许应用程序以标准化的方式为LLMs提供上下文,将提供上下文与实际LLM交互的责任分开。通过MCP,你可以构建暴露以下内容的服务器:

  • 资源:提供信息给LLMs的数据源
  • 工具:允许LLMs执行操作的功能
  • 提示:用于LLM交互的可重用模板

安装

先决条件

  • Python 3.10或更高版本
  • MCP Python SDK 1.2.0或更高版本

设置环境

使用uv(推荐)

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

# 创建项目的新目录
uv init mcp-agents-orchestra
cd mcp-agents-orchestra

# 创建虚拟环境并激活它
uv venv
source .venv/bin/activate  # 在Unix/macOS上
.venv\Scripts\activate     # 在Windows上

# 安装依赖项
uv add "mcp[cli]" httpx

使用pip

# 创建项目的新目录
mkdir mcp-agents-orchestra
cd m
cp-agents-orchestra

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # 在Unix/macOS上
venv\Scripts\activate     # 在Windows上

# 安装依赖项
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配置文件:

    macOS/Linux:

    # 创建或编辑配置文件
    code ~/Library/Application\ Support/Claude/claude_desktop_config.json
    

    Windows:

    # 路径可能因Windows版本而异
    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。

3. 在Claude中使用编排器

配置完成后,你可以:

  1. 打开桌面版Claude
  2. 点击侧边栏中的MCP服务器图标
  3. 从可用服务器列表中选择“agent-orchestrator”
  4. 开始与编排系统互动

Claude能够:

  • 在不同的代理状态之间切换
  • 存储和检索知识库中的信息
  • 在状态转换过程中维护对话上下文
  • 访问特定状态的提示

代理状态

编排系统实现了具有以下状态的状态机:

  • 空闲:等待指令
  • 规划:为任务创建结构化的计划
  • 研究:收集任务所需的信息
  • 执行:执行计划的动作
  • 审查:评估结果并确定下一步
  • 错误:处理错误或意外情况

自定义系统

添加新状态

  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:
    """描述此工具的作用
    
    参数:
        arg1: 描述arg1
        arg2: 描述arg2
    """
    # 实现代码
    return "结果"

开发和测试

使用MCP CLI

MCP CLI提供了开发和测试的工具:

# 如果尚未安装,请安装MCP CLI
pip install "mcp[cli]"

# 使用MCP Inspector测试你的服务器
mcp dev orchestrator.py

# 在桌面版Claude中安装
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()
        # 测试状态转换
        await session.call_tool("transition_state", arguments={"new_state": "PLANNING"})

资源

许可证

本项目根据MIT许可证发布 - 查看LICENSE文件获取详细信息。