一个用于管理和编排LLM代理作为任务执行者的Model Context Protocol (MCP)服务器。
# 全局安装
npm install -g taskdriver-mcp
# 或使用npx/bunx直接运行
npx taskdriver-mcp --help
bunx taskdriver-mcp --help
# 创建一个新的项目
npx taskdriver-mcp create-project "my-project" "我的第一个项目"
# 列出项目
npx taskdriver-mcp list-projects
# 获取项目详情
npx taskdriver-mcp get-project "my-project"
# 创建任务类型模板
npx taskdriver-mcp create-task-type "my-project" "analysis"
# 创建任务
npx taskdriver-mcp create-task "my-project"
# 获取代理的下一个任务
npx taskdriver-mcp get-next-task "my-project" "my-agent"
# 完成任务
npx taskdriver-mcp complete-task "my-agent" "my-project" "task-id" "任务已完成"
以MCP服务器模式运行TaskDriver,用于标准I/O传输:
npx taskdriver-mcp mcp
以HTTP REST API服务器模式运行TaskDriver:
npx taskdriver-mcp server
适用于与支持模型上下文协议的LLM框架集成:
bun run mcp
MCP服务器提供了19个工具来实现完整的任务管理:
适用于Web应用和服务:
bun run http
访问API在http://localhost:3000,具有所有操作的完整REST端点。
适用于直接命令行使用和自动化:
taskdriver --help
项目为任务和代理提供了隔离环境:
# 创建一个项目
taskdriver create-project "ai-analysis" "AI驱动的代码分析项目" \\
--instructions "@project-instructions.md" \\
--max-retries 3 \\
--lease-duration 15
# 列出项目
taskdriver list-projects
# 获取项目详情
taskdriver get-project "ai-analysis"
任务类型是创建相似任务的模板:
# 使用模板创建任务类型
taskdriver create-task-type "ai-analysis" "code-review" \\
--template "@review-template.md" \\
--variables "repository_url" "branch_name" "focus_area"
# 列出任务类型
taskdriver list-task-types "ai-analysis"
任务是由代理执行的具体工作项:
# 创建一个任务
taskdriver create-task "ai-analysis" "task-type-id" "审查安全漏洞" \\
--variables '{"repository_url": "https://github.com/user/repo", "focus_area": "security"}'
# 列出任务
taskdriver list-tasks "ai-analysis" --status queued
# 获取任务详情
taskdriver get-task "task-id"
代理是执行任务的工作者:
# 注册一个代理
taskdriver register-agent "ai-analysis" "security-agent"
# 获取代理的下一个任务
taskdriver get-next-task "security-agent" "ai-analysis"
# 完成一个任务
taskdriver complete-task "security-agent" "ai-analysis" "task-id" \\
--result '{"status": "completed", "findings": ["vulnerability1", "vulnerability2"]}'
描述和模板都支持使用@前缀从文件中读取内容:
# 从文件中读取项目描述
taskdriver create-project "my-project" "@project-description.txt"
# 从文件中读取项目说明
taskdriver create-project "my-project" "简短描述" --instructions "@instructions.md"
# 从文件中读取任务模板
taskdriver create-task-type "my-project" "analysis" --template "@analysis-template.md"
# 服务器配置
TASKDRIVER_HOST=localhost # 服务器主机(默认:localhost)
TASKDRIVER_PORT=3000 # 服务器端口(默认:3000)
TASKDRIVER_MODE=auto # 服务器模式:自动、mcp、http、cli
# 存储提供者
TASKDRIVER_STORAGE_PROVIDER=file # 存储提供者:文件、mongodb、redis
TASKDRIVER_STORAGE_CONNECTION_STRING= # MongoDB/Redis连接字符串
TASKDRIVER_FILE_DATA_DIR=./data # 文件存储的数据目录
TASKDRIVER_FILE_LOCK_TIMEOUT=30000 # 文件锁超时时间(毫秒)
TASKDRIVER_MONGODB_DATABASE=taskdriver # MongoDB数据库名称
TASKDRIVER_MONGODB_OPTIONS={} # MongoDB连接选项(JSON)
TASKDRIVER_REDIS_DATABASE=0 # Redis数据库编号
TASKDRIVER_REDIS_KEY_PREFIX=taskdriver: # Redis键前缀
TASKDRIVER_REDIS_OPTIONS={} # Redis连接选项(JSON)
TASKDRIVER_LOG_LEVEL=info # 日志级别:调试、信息、警告、错误
TASKDRIVER_LOG_PRETTY=false # 是否美化打印日志(真/假)
TASKDRIVER_LOG_CORRELATION=true # 是否启用关联ID(真/假)
TASKDRIVER_ENABLE_AUTH=true # 是否启用身份验证(真/假)
TASKDRIVER_API_KEY_LENGTH=32 # API密钥长度(字符数)
TASKDRIVER_SESSION_TIMEOUT=3600 # 会话超时时间(秒)
TASKDRIVER_DEFAULT_MAX_RETRIES=3 # 任务默认最大重试次数
TASKDRIVER_DEFAULT_LEASE_DURATION=10 # 任务默认租约持续时间(分钟)
TASKDRIVER_REAPER_INTERVAL=1 # 清理间隔(分钟)
TASKDRIVER_STORAGE_PROVIDER=file
TASKDRIVER_FILE_DATA_DIR=./data
TASKDRIVER_STORAGE_PROVIDER=mongodb
TASKDRIVER_MONGODB_URI=mongodb://localhost:27017/taskdriver
TASKDRIVER_STORAGE_PROVIDER=redis
TASKDRIVER_REDIS_URI=redis://localhost:6379
当运行HTTP服务器时,在/api/docs处可以找到完整的REST API文档。
关键端点:
GET /api/projects - 列出项目POST /api/projects - 创建项目GET /api/projects/:id - 获取项目详情POST /api/projects/:id/tasks - 创建任务GET /api/projects/:id/tasks - 列出任务POST /api/agents/:name/tasks/assign - 分配任务给代理当以MCP服务器模式运行时,有19个可用工具:
项目管理:
create_project - 创建新项目list_projects - 列出所有项目get_project - 获取项目详情update_project - 更新项目属性任务管理:
create_task_type - 创建任务模板list_task_types - 列出任务类型create_task - 创建新任务list_tasks - 列出任务(带过滤)get_task - 获取任务详情代理操作:
register_agent - 注册新代理list_agents - 列出代理assign_task - 分配任务给代理complete_task - 标记任务已完成fail_task - 标记任务已失败监控:
get_project_stats - 获取项目统计信息health_check - 系统健康检查get_lease_stats - 获取租约统计信息extend_task_lease - 延长任务租约cleanup_expired_leases - 清理过期租约# 检查系统健康
taskdriver health-check
# 获取项目统计信息
taskdriver get-project-stats "my-project"
# 清理过期租约
taskdriver cleanup-leases "my-project"
当运行HTTP服务器时,Prometheus指标可在/metrics处获取。
# 运行所有测试
bun test
# 运行特定测试套件
bun test test/services/
bun test test/storage/
bun test test/integration/
# 运行带有覆盖率的测试
b
bun test --coverage
# 端到端测试
./test/e2e/run-all-tests.sh
# 开发模式,热重载
bun run dev
# 构建TypeScript
bun run build
# 清理构建产物
bun run clean
请参阅docs/examples/目录中的完整使用示例:
请阅读CONTRIBUTING.md,了解我们的行为准则以及提交拉取请求的过程。
本项目采用MIT许可证 - 详情见LICENSE文件。