子代理管理服务

一个轻量级的Rust MCP服务器,用于管理持久的cursor-agent子进程,实现异步生命周期控制和本地摘要生成。

  • by PatrickLaflamme
  • Rust
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 PatrickLaflamme/cursor-subagent-mcp

使用说明

光标-MCP子代理

轻量级Rust MCP服务器,用于管理持久化数据 cursor-agent 为独立子任务委托提供子进程。通过Ollama提供异步生命周期控制和本地摘要功能(具有抽取式回退机制)。

特点/特性

  • 创建多个持久代理(create_agent),发送输入,列出,重置,以及停止
  • `get_agent_progress` 返回缓冲区中代理输出的简洁摘要(<=1000个标记)
  • 摘要后端:Ollama(默认)、llama.cpp(功能中,待办事项)、抽取式备用方案
  • 异步I/O,有界环形缓冲区,尽力而为的停止/重置超时

安装

cargo build --release

作为光标MCP服务器运行

在你的Cursor MCP配置中添加:

{
  "mcpServers": {
    "cursor-subagents": {
      "command": "/absolute/path/to/target/release/cursor-mcp-subagents",
      "args": [],
      "env": {
        "CURSOR_AGENT_PATH": "/usr/local/bin/cursor-agent",
        "SUMMARY_BACKEND": "ollama",
        "SUMMARY_MODEL": "llama3.2:3b-instruct",
        "OLLAMA_HOST": "http://127.0.0.1:11434",
        "BUFFER_BYTES": "524288"
      }
    }
  }
}

工具

  • create_agent: 创建一个持久的游标-代理进程
  • send_agent_input: 向代理的标准输入发送一行内容
  • 获取代理进度:总结缓冲的代理输出(可选指令)
  • 重置代理:软重置(清除缓冲区)或硬重置(重启进程)
  • stop_agent:优雅地停止;按需终止
  • list_agents: 返回正在运行的代理的元数据
  • 指标:返回服务器指标快照
  • 健康检查:实时连接性检查

总结

推荐的Ollama模型:

  • 默认:llama3.2:3b-instruct
  • 超轻量:llama3.2:1b-instruct
  • CPU均衡版:qwen2.5:1.5b-instruct

通过 SUMMARY_MODEL 环境变量进行调整。

使用cursor-agent进行摘要生成(自动模型):

export SUMMARY_BACKEND=cursor_agent
export SUMMARY_MODEL=auto
export CURSOR_AGENT_PATH=/usr/local/bin/cursor-agent

要使用 llama.cpp 而不是 Ollama,请使用以下方式进行构建: summarizer-llama-cpp 功能和设置:

export SUMMARY_BACKEND=llama_cpp
export SUMMARY_MODEL=/absolute/path/to/model.gguf
# optionally override CLI path (defaults to llama-cli on PATH)
export LLAMA_CPP_CLI=/usr/local/bin/llama-cli

注释

  • 这个服务器通过标准输入输出(MCP 帧格式)使用 JSON-RPC 进行通信
  • 需要在 PATH 或 CURSOR_AGENT_PATH 环境变量中设置 cursor-agent

故障排除

  • Ollama连接错误:请确保 OLLAMA_HOST 可以到达;试试 curl $OLLAMA_HOST/api/tags。
  • llama.cpp 模型路径无效:已设置 SUMMARY_MODEL 到现有的 .gguf 文件。
  • 未找到 cursor-agent:请安装或设置它 CURSOR_AGENT_PATH。
  • 摘要过长:降低 max_tokens 在 get_agent_progress。

许可证

MIT 或 Apache-2.0(许可证)