多代理开发协调服务器

Cursor Subagent MCP Server 是一个用于协调多代理开发的服务器,允许主代理通过CLI调用专业化子代理,实现任务分解和并行处理。

  • by madprofessor42
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 madprofessor42/cursor-subagent-mcp

使用说明

游标子代理MCP服务器

MCP服务器,用于在Cursor中组织多代理开发。允许UI Cursor中的主代理通过 cursor-agent CLI。

为什么?

🧠 上下文不膨胀

在处理一个大任务时,主代理的上下文很快就会饱和。多代理方法:

  • 每个子代理在 孤立的环境
  • 主代理仅存储 结果 代理工作
  • 您可以在不失去上下文的情况下执行任何复杂的任务

🛠️ 灵活性和定制

您完全控制您的代理:

  • 代理是通过项目中的Markdown文件定义的
  • 您可以更改工业应用程序,创建新角色和自定义行为
  • 易于根据您的项目或堆栈定制代理

📝 默认代理(Default Agents)

不要从零开始。您可以初始化一组标准的已验证代理:

  • 9专业角色 (分析师、建筑师、开发人员等)
  • 每个开发阶段的精密工业零件
  • 现成的相互作用结构

🔄 运行良好的Workflow

开发过程是结构化和可预测的:

  • 分析→架构→规划→开发
  • 每个阶段包括迭代限制的审查
  • 关键问题自动停止

⚡ 并行工作

子代理通过单独的过程运行 cursor-agent:

  • 不阻止主代理
  • 可以为不同的任务使用不同的模型
  • 结果缓存并重新使用

建筑

flowchart TB
    subgraph CursorUI ["Cursor UI"]
        User["👤 User<br/><i>Задача...</i>"]
        Orchestrator["🎯 Orchestrator Agent<br/><i>Claude в UI</i>"]
    end
    
    subgraph MCPServer ["cursor-subagent MCP Server"]
        subgraph ServerLayer ["server.py<br/>Точка входа"]
            Server["FastMCP<br/>Регистрация тулов"]
        end
        
        subgraph ToolsLayer ["tools/<br/>MCP-тулы"]
            GetGuide["orchestration.py<br/>get_orchestration_guide()"]
            InvokeSubagent["invoke.py<br/>invoke_subagent()"]
            CheckStatus["status.py<br/>check_status()"]
            SetupCLI["setup.py<br/>setup_cursor_cli()"]
            InitAgents["create_agent.py<br/>init_default_agents()"]
        end
        
        subgraph ExecutorLayer ["executor/<br/>Выполнение CLI"]
            Runner["runner.py<br/>invoke_cursor_agent()"]
            CLI["cli.py<br/>find_cursor_agent()"]
            Installer["installer.py<br/>install_cursor_cli()"]
        end
        
        subgraph ConfigLayer ["config.py<br/>Конфигурация"]
            Config["get_config()<br/>load_agents()"]
        end
    end
    
    subgraph Files ["Файлы пользователя"]
        AgentsDir["agents/<br/><i>.md файлы агентов</i>"]
        OrchestratorMD["orchestrator.md"]
    end
    
    subgraph CLIAgents ["cursor-agent CLI"]
        Executor["executor"]
        Analyst["analyst"]
        Developer["developer"]
        Other["..."]
    end

    User -->|"задача"| Orchestrator
    
    Orchestrator -->|"MCP"| Server
    Server -->|"регистрирует"| GetGuide
    Server -->|"регистрирует"| InvokeSubagent
    Server -->|"регистрирует"| CheckStatus
    Server -->|"регистрирует"| SetupCLI
    Server -->|"регистрирует"| InitAgents
    
    GetGuide -->|"использует"| Config
    InvokeSubagent -->|"использует"| Config
    InvokeSubagent -->|"использует"| Runner
    CheckStatus -->|"использует"| Config
    CheckStatus -->|"использует"| CLI
    SetupCLI -->|"использует"| Installer
    InitAgents -->|"создает"| AgentsDir
    
    Config -.->|"читает"| AgentsDir
    Config -.->|"читает"| OrchestratorMD
    
    Runner -->|"subprocess<br/>cursor-agent --output-format stream-json"| CLIAgents
    CLIAgents -->|"NDJSON stream<br/>(events)"| Runner
    Runner -->|"обработка событий<br/>(assistant messages, tool calls)"| Runner
    Runner -->|"результат<br/>{success, output, session_id}"| InvokeSubagent
    InvokeSubagent -->|"результат"| Orchestrator
    Orchestrator -->|"context"| Orchestrator
    Orchestrator -->|"итог"| User

Workflow如何工作

  1. 用户 给Cursor UI中的Orchestrator Agent任务
  2. 编排器 引起 get_orchestration_guide() -获取说明和可用代理列表(从文件夹) agents/)
  3. 编排器 制定计划,轮流呼叫合适的代理
  4. 每个代理的结果通过参数传递给下一个代理 context
  5. 编排器 返回最终结果给用户

快速启动

1.安装

git clone https://github.com/your-repo/cursor-subagent-mcp
cd cursor-subagent-mcp
uv sync

2.MCP配置

添加到您的 ~/.cursor/mcp.json (或项目设置):

{
  "mcpServers": {
    "cursor-subagent": {
      "command": "/Users/<user>/.local/bin/uv",
      "args": [
        "--directory",
        "/path/to/cursor-subagent-mcp",
        "run",
        "cursor-subagent-mcp"
      ],
      "env": {
        "CURSOR_AGENTS_DIR": "/absolute/path/to/your/agents/dir",
        "CURSOR_AGENT_LOG_FILE": "true"
      }
    }
  }
}

重要的是:

  1. 替换 /path/to/cursor-subagent-mcp 去存储库。
  2. CURSOR_AGENTS_DIR 指定在哪里查找代理定义。默认情况下,搜索文件夹 agents 在项目的根。
  3. CURSOR_AGENT_LOG_FILE 将日志文件。
    • 如果未指定:禁用文件登录(建议)。
    • true / 1:写日志在 ./logs/ 在工作目录中。
    • /absolute/path/to/file.log:将日志写入指定的文件。

3.代理初始化

第一次在项目?请代理创建标准文件:

Вызови init_default_agents для создания базовых агентов

这将创建一个文件夹 agents/ 文件 .md 对于每个代理(Analyst、Developer等)。现在你可以编辑他们的应用程序!

4.安装Cursor Agent CLI

问代理:

Вызови setup_cursor_cli для установки cursor-agent

或手动:

curl -L https://cursor.com/install | gunzip | bash

# Добавление в PATH (для bash)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

# Или для zsh
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

4.核查

Вызови check_status

预期答复:

{
  "cursor_agent_available": true,
  "cursor_agent_message": "cursor-agent found at: /Users/.../.local/bin/cursor-agent",
  "config_loaded": true,
  "agent_count": 9
}

使用

给代理一个任务:

Разработай REST API для управления пользователями с авторизацией через JWT.

代理自动:

  1. 引起 get_orchestration_guide()
  2. 读取您的代理配置 agents/
  3. 启动Workflow调用代理

MCP工具

tool描述 |------|----------| | get_orchestration_guide() | ⭐ 呼叫第一! 返回说明+可用代理列表› | invoke_subagent(agent_role, task, context) ≫根据子代理的角色(文件名)调用子代理≫ | create_agent_scaffold(path, name) 为新代理做准备 | init_default_agents(force) 将标准代理复制到您的项目中。 | check_status() 检查状态和配置。 | setup_cursor_cli() 安装CLI。

代理

代理只是文件夹中的Markdown文件 agents/. 文件名(无扩展名)成为 role 代理。

例子 agents/developer.md:

---
name: Developer
description: Реализует код по плану
default_model: composer-1
---

# Invocation Rules
Вызывай этого агента, когда нужно написать код...

# Prompt
Ты опытный разработчик...

标准集(在initu defaultu agents之后)

角色描述档案 |------|----------|------| | executor 简单的任务,研究。 executor.md | | analyst 他创造了TZ。 analyst.md | | tz_reviewer 检查TZ tz_reviewer.md | | architect 设计建筑。 architect.md | | developer 写代码。 developer.md | | ... | ... | ... |

技术细节

配置

代理配置从中指定的文件夹动态加载。 CURSOR_AGENTS_DIR (或) ./agents). agents.yaml 不再使用-每个代理在FrontMatter(文件开头的YAML标题)中描述自己的元数据。

流处理

服务器使用 cursor-agent CLI旗帜 --approve-mcps 在子代理运行期间自动批准对MCP服务器的请求。

许可证

麻省理工学院