子代理工作树MCP服务器
一个模型上下文协议(MCP)服务器,用于使用git工作树生成子代理。此工具允许您为不同的任务创建独立的开发环境,同时保持适当的git工作流。
特性
- Git工作树管理:为独立开发创建和管理git工作树
- 多代理支持:生成不同类型的代理(游标cli、VS Code、vim等)
- 过程监控:跟踪运行代理及其状态
- 可扩展架构:易于添加新的代理类型
- MCP协议:AI代理通信的标准化接口
快速开始
先决条件
- 铁锈1.90.0+(2024年版)
- Git
- 一个或多个受支持的代理(游标cli、VS Code等)
- MCP兼容的AI代理(克劳德桌面、光标等)
安装
git clone
cd subagent-worktree-mcp
cargo build --releaseMCP集成
- 配置您的MCP客户端 (例如Claude Desktop)使用此服务器:
{
"mcpServers": {
"subagent-worktree": {
"command": "cargo",
"args": ["run", "--release"],
"cwd": "/path/to/subagent-worktree-mcp"
}
}
}- 使用工具 通过MCP客户端生成子代理并管理工作树。
直接测试(开发)
# Run the MCP server directly for testing
cargo run
# Or build and run the release version
cargo build --release
./target/release/subagent-worktree-mcp建筑
核心组件
- GitWorktreeManager:处理git工作树的创建和管理
- 子代理Spawner:管理不同代理类型的生成
- AgentMonitor 的:监视正在运行的代理进程
- 代理人典当人特征:不同代理类型的可扩展接口
支持的代理
- 游标cli:Cursor AI驱动编辑器
- VS Code:Visual Studio代码
- Vim/Neov:基于终端的编辑器
- 可扩展:易于添加新的代理类型
MCP协议使用
该服务器实现了模型上下文协议(MCP),并为AI代理提供了管理git工作树和生成子代理的工具。
MCP服务器配置
{
"mcpServers": {
"subagent-worktree": {
"command": "cargo",
"args": ["run", "--release"],
"cwd": "/path/to/subagent-worktree-mcp"
}
}
}MCP工具调用示例
生成一个子代理
{
"method": "tools/call",
"params": {
"name": "spawn_subagent",
"arguments": {
"branch_name": "feature/new-feature",
"prompt": "Implement user authentication system",
"base_branch": "main",
"agent_type": "cursor-cli",
"agent_options": {
"new_window": true,
"detach": false
}
}
}
}监视正在运行的代理
{
"method": "tools/call",
"params": {
"name": "monitor_agents",
"arguments": {
"only_our_agents": true,
"only_waiting_agents": false
}
}
}MCP工具
spawn_subagent
用git工作树生成一个新的子代理。
参数:
branch_name(必填):要创建的分支的名称prompt(必填):子代理的初始提示base_branch(可选):要创建的基础分支worktree_dir(可选):自定义工作树目录名称agent_type(可选):要生成的代理类型(默认值:“cursor-cli”)agent_options(可选):特定于代理的选项
monitor_agents
监视正在运行的代理进程。
参数:
only_our_agents(可选):仅显示我们生成的代理only_waiting_agents(可选):仅显示等待输入的代理agent_types(可选):按代理类型筛选worktree_paths(可选):按工作台路径筛选
cleanup_worktree ⚠️ 破坏性的
清理工作台,可以选择杀死正在运行的代理并删除分支。
参数:
worktree_name(必填):要清理的工作台/分支的名称force(可选):强制清理,即使代理仍在运行remove_branch(可选):清理后删除git分支kill_agents(可选):在清理之前杀死正在运行的代理
⚠️ 警告: 此工具具有破坏性,将:
- 终止正在运行的代理进程
- 删除工作树目录
- 可选择删除git分支
- 无法撤消
list_worktrees
列出所有工作树及其当前状态。
参数: 无
退货: 关于所有工作树的信息,包括路径、分支和提交
发展
项目结构
src/
├── main.rs # Main MCP server implementation
├── git_operations.rs # Git worktree management
├── subagent_spawner.rs # Agent spawning and management
└── agent_monitor.rs # Process monitoring
tests/
└── integration_tests.rs # Comprehensive test suite运行测试
# Run all tests
cargo test
# Run with output
cargo test -- --nocapture
# Run specific test
cargo test test_create_worktree_basic代码质量
本项目使用:
- Rust 2024版:最新语言功能
- Clippy:过梁和代码质量
- Rustfmt:代码格式
- 预提交挂钩:自动质量检查
贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature-name - 进行更改
- 运行测试:
cargo test - 运行clippy:
cargo clippy - 格式代码:
cargo fmt - 以常规方式承诺:
git commit -m "feat: add new feature" - 推送并创建拉取请求
约定式提交
该项目如下 约定式提交:
feat:新功能fix:错误修正docs:文档更改style:代码样式更改refactor:代码重构test:测试添加/更改chore:维护任务
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
路线图
- \[\]完整的MCP服务器实现
- \[\]用于代理管理的Web UI
- \[\]代理通信协议
- \[\]资源使用监控
- \[\]代理模板和预设
- \[\]与流行的IDE集成
故障排除
常见问题
- Git工作树创建失败:确保你在git存储库中
- 未找到代理:检查代理是否已安装并位于PATH中
- 权限不足:确保工作树目录的文件权限正确
调试模式
运行调试日志:
RUST_LOG=debug cargo run支持
- 为错误报告创建问题
- 开始讨论问题
- 检查现有问题的解决方案
______________________________________________________________________
内置❤️ 使用Rust和MCP协议。
