任务驱动程序MCP
一种模型上下文协议(MCP)服务器,用于将LLM代理作为任务运行器进行管理和编排。
安装
# Install globally
npm install -g taskdriver-mcp
# Or use directly with npx/bunx
npx taskdriver-mcp --help
bunx taskdriver-mcp --help快速开始
CLI使用情况
# Create a new project
npx taskdriver-mcp create-project "my-project" "My first project"
# List projects
npx taskdriver-mcp list-projects
# Get project details
npx taskdriver-mcp get-project "my-project"
# Create a task type template
npx taskdriver-mcp create-task-type "my-project" "analysis"
# Create tasks
npx taskdriver-mcp create-task "my-project"
# Get next task for an agent
npx taskdriver-mcp get-next-task "my-project" "my-agent"
# Complete a task
npx taskdriver-mcp complete-task "my-agent" "my-project" "task-id" "Task completed"MCP服务器模式
将TaskDriver作为MCP服务器运行以进行stdio传输:
npx taskdriver-mcp mcpHTTP服务器模式
将TaskDriver作为HTTP REST API服务器运行:
npx taskdriver-mcp server特性
- 多模式部署:MCP服务器(stdio)、HTTP REST API和CLI接口
- 项目型组织:按项目隔离任务、代理和配置
- 基于模板的任务类型:使用变量替换创建可重用的任务模板
- 原子任务分配:将无竞赛条件的任务分配给代理
- 租赁管理:自动清理过期的任务和失败的代理
- 多个存储后端:文件、MongoDB和Redis存储提供程序
- 综合监控:健康检查、指标和详细的项目统计数据
- 批处理:分组相关任务并跟踪批处理完成情况
- 重试逻辑:失败任务的可配置重试策略
部署模式
1.MCP服务器(stdio)
非常适合与支持模型上下文协议的LLM框架集成:
bun run mcpMCP服务器提供19个工具用于完成任务管理:
- 项目管理(创建、列出、更新、删除)
- 任务生命周期(创建、分配、完成、失败)
- 代理操作(注册、状态)
- 监控(状态、指标、健康状况)
2.HTTP REST API
对于web应用程序和服务:
bun run http访问API http://localhost:3000 所有操作都有完整的REST端点。
3.CLI界面
对于直接命令行使用和自动化:
taskdriver --help核心概念
项目
项目为任务和代理提供了隔离的环境:
# Create a project
taskdriver create-project "ai-analysis" "AI-powered code analysis project" \\
--instructions "@project-instructions.md" \\
--max-retries 3 \\
--lease-duration 15
# List projects
taskdriver list-projects
# Get project details
taskdriver get-project "ai-analysis"任务类型
任务类型是用于创建类似任务的模板:
# Create a task type with template
taskdriver create-task-type "ai-analysis" "code-review" \\
--template "@review-template.md" \\
--variables "repository_url" "branch_name" "focus_area"
# List task types
taskdriver list-task-types "ai-analysis"任务
任务是由代理执行的特定工作项:
# Create a task
taskdriver create-task "ai-analysis" "task-type-id" "Review security vulnerabilities" \\
--variables '{"repository_url": "https://github.com/user/repo", "focus_area": "security"}'
# List tasks
taskdriver list-tasks "ai-analysis" --status queued
# Get task details
taskdriver get-task "task-id"代理
代理是执行任务的工作人员:
# Register an agent
taskdriver register-agent "ai-analysis" "security-agent"
# Get next task for agent
taskdriver get-next-task "security-agent" "ai-analysis"
# Complete a task
taskdriver complete-task "security-agent" "ai-analysis" "task-id" \\
--result '{"status": "completed", "findings": ["vulnerability1", "vulnerability2"]}'文件读取支持
描述和模板都支持使用 @ 前缀:
# Project description from file
taskdriver create-project "my-project" "@project-description.txt"
# Project instructions from file
taskdriver create-project "my-project" "Short description" --instructions "@instructions.md"
# Task template from file
taskdriver create-task-type "my-project" "analysis" --template "@analysis-template.md"配置
环境变量
核心配置
# Server Configuration
TASKDRIVER_HOST=localhost # Server host (default: localhost)
TASKDRIVER_PORT=3000 # Server port (default: 3000)
TASKDRIVER_MODE=auto # Server mode: auto, mcp, http, cli
# Storage Provider
TASKDRIVER_STORAGE_PROVIDER=file # Storage provider: file, mongodb, redis
TASKDRIVER_STORAGE_CONNECTION_STRING= # Connection string for mongodb/redis文件存储配置
TASKDRIVER_FILE_DATA_DIR=./data # Data directory for file storage
TASKDRIVER_FILE_LOCK_TIMEOUT=30000 # File lock timeout in millisecondsMongoDB配置
TASKDRIVER_MONGODB_DATABASE=taskdriver # MongoDB database name
TASKDRIVER_MONGODB_OPTIONS={} # MongoDB connection options (JSON)Redis配置
TASKDRIVER_REDIS_DATABASE=0 # Redis database number
TASKDRIVER_REDIS_KEY_PREFIX=taskdriver: # Redis key prefix
TASKDRIVER_REDIS_OPTIONS={} # Redis connection options (JSON)日志记录配置
TASKDRIVER_LOG_LEVEL=info # Log level: debug, info, warn, error
TASKDRIVER_LOG_PRETTY=false # Pretty print logs (true/false)
TASKDRIVER_LOG_CORRELATION=true # Enable correlation IDs (true/false)安全配置
TASKDRIVER_ENABLE_AUTH=true # Enable authentication (true/false)
TASKDRIVER_API_KEY_LENGTH=32 # API key length in characters
TASKDRIVER_SESSION_TIMEOUT=3600 # Session timeout in seconds默认任务配置
TASKDRIVER_DEFAULT_MAX_RETRIES=3 # Default maximum retries for tasks
TASKDRIVER_DEFAULT_LEASE_DURATION=10 # Default lease duration in minutes
TASKDRIVER_REAPER_INTERVAL=1 # Reaper interval in minutes存储提供商
文件存储(开发)
TASKDRIVER_STORAGE_PROVIDER=file
TASKDRIVER_FILE_DATA_DIR=./dataMongoDB(生产)
TASKDRIVER_STORAGE_PROVIDER=mongodb
TASKDRIVER_MONGODB_URI=mongodb://localhost:27017/taskdriverRedis(高性能)
TASKDRIVER_STORAGE_PROVIDER=redis
TASKDRIVER_REDIS_URI=redis://localhost:6379api参考
REST API
完整的REST API文档可在 /api/docs 当运行HTTP服务器时。
关键端点:
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工具
当作为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-清理过期任务
监控和操作
健康检查
# Check system health
taskdriver health-check
# Get project statistics
taskdriver get-project-stats "my-project"
# Clean up expired leases
taskdriver cleanup-leases "my-project"指标
运行HTTP服务器时,Prometheus指标可在以下网址获得 /metrics.
发展
测试
# Run all tests
bun test
# Run specific test suites
bun test test/services/
bun test test/storage/
bun test test/integration/
# Run with coverage
bun test --coverage
# E2E testing
./test/e2e/run-all-tests.sh开发命令
# Development mode with hot reload
bun run dev
# Build TypeScript
bun run build
# Clean build artifacts
bun run clean例子
请参阅 文档/示例/ 完整使用示例目录:
文档
贡献
请阅读 贡献.md 有关我们的行为准则和提交pull请求流程的详细信息。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
