Task Orchestrator MCP Server
Enables task management with dependency tracking and workflow orchestration, allowing sequential and parallel execution of tasks with automatic progression and retry logic.
README
⚡ Task Orchestrator MCP Server
Task Orchestrator MCP is a task orchestration server that helps AI agents execute complex workflows with proper dependency management. Think of it as a smart task scheduler—define your tasks, set up dependencies between them, and let the system handle execution order, retries, and progress tracking. Perfect for CI/CD pipelines, multi-step processes, and any workflow that needs tasks to run in the right sequence.
Whether you're building deployment pipelines, running test suites, or coordinating multi-stage processes, Task Orchestrator MCP provides structured task execution with automatic dependency resolution, retry logic, and persistent storage for tracking progress over time.
✨ Features
- 📋 Task Management - Create, update, delete, and track tasks with different statuses (pending, in_progress, completed, failed)
- 🔗 Dependency Tracking - Define task dependencies to ensure tasks execute in the correct order
- 🔄 Workflow Support - Group tasks into workflows for organized execution
- 🚀 Workflow Execution - Orchestrate workflow runs with automatic task progression
- ⏱️ Execution Time Tracking - Track task start and completion times with duration calculation
- 🔁 Retry Logic - Configure automatic retry limits for failed tasks
- 💾 Persistent Storage - All tasks and workflows are saved to JSON file storage
- 📊 Execution Tracking - Track task execution results and errors
- 📝 Activity Logging - All tool calls are logged to the output directory for debugging and auditing
🚀 Installation
npm install
npm run build
⚙️ Configuration
The MCP server is configured via environment variables in mcp.json:
{
"mcpServers": {
"task-orchestrator": {
"command": "node",
"args": ["/path/to/task-orchestrator-mcp/dist/index.js"],
"env": {
"TASK_ORCHESTRATOR_STORAGE_PATH": "/path/to/task-orchestrator-mcp/task-orchestrator-storage.json",
"TASK_ORCHESTRATOR_OUTPUT_DIR": "/path/to/task-orchestrator-mcp/output"
}
}
}
}
TASK_ORCHESTRATOR_STORAGE_PATH: Path to the JSON file where tasks and workflows are storedTASK_ORCHESTRATOR_OUTPUT_DIR: Directory where activity logs are stored
🎯 Quick Start
Basic Example
Create a task:
{
"name": "Build frontend",
"description": "Build the React frontend application",
"dependencies": ["task_123"],
"metadata": {
"priority": "high",
"estimated_time": "5m"
},
"maxRetries": 3
}
Create a workflow:
{
"name": "CI Pipeline",
"taskIds": ["task_1_id", "task_2_id", "task_3_id"]
}
Start workflow execution:
{
"workflowId": "workflow_abc123"
}
🛠️ Available Tools
Task Management
create_task
Create a new task with optional dependencies.
Parameters:
name(required): The name of the taskdescription(optional): Description of the taskdependencies(optional): Array of task IDs that this task depends onmetadata(optional): Additional metadata for the taskmaxRetries(optional): Maximum number of retry attempts for this task
update_task
Update an existing task.
Parameters:
id(required): The ID of the task to updatename(optional): New name for the taskdescription(optional): New descriptiondependencies(optional): New dependenciesmetadata(optional): New metadata
delete_task
Delete a task by ID.
Parameters:
id(required): The ID of the task to delete
get_task
Get a specific task by ID.
Parameters:
id(required): The ID of the task to retrieve
list_tasks
List all tasks or filter by status.
Parameters:
status(optional): Filter by status ('pending', 'in_progress', 'completed', 'failed')
Task Execution
execute_task
Mark a task as completed with a result.
Parameters:
id(required): The ID of the task to executeresult(optional): The result of the task execution
fail_task
Mark a task as failed with an error message.
Parameters:
id(required): The ID of the task to failerror(required): The error message
mark_in_progress
Mark a task as in progress.
Parameters:
id(required): The ID of the task to mark as in progress
reset_task
Reset a task back to pending status.
Parameters:
id(required): The ID of the task to reset
retry_task
Retry a failed task, incrementing retry count.
Parameters:
id(required): The ID of the task to retry
Note: Task will only be retried if it hasn't exceeded its maxRetries limit.
Dependency Management
get_next_tasks
Get tasks that are ready to execute (all dependencies completed).
can_execute
Check if a task can be executed based on its dependencies.
Parameters:
id(required): The ID of the task to check
Workflow Management
create_workflow
Create a workflow (group of tasks in sequence).
Parameters:
name(required): The name of the workflowtaskIds(required): Array of task IDs in the workflow
get_workflow
Get a workflow by ID.
Parameters:
id(required): The ID of the workflow to retrieve
list_workflows
List all workflows.
delete_workflow
Delete a workflow by ID.
Parameters:
id(required): The ID of the workflow to delete
Workflow Execution
start_workflow_execution
Start execution of a workflow, creating a workflow run.
Parameters:
workflowId(required): The ID of the workflow to execute
advance_workflow_run
Advance a workflow run to the next task.
Parameters:
runId(required): The ID of the workflow run to advance
get_workflow_run
Get a workflow run by ID.
Parameters:
runId(required): The ID of the workflow run to retrieve
list_workflow_runs
List all workflow runs.
get_next_workflow_tasks
Get tasks that are ready to execute within a specific workflow (dependency-aware).
Parameters:
workflowId(required): The ID of the workflow to get ready tasks for
System
get_stats
Get statistics about tasks and workflows.
clear_all
Clear all tasks and workflows.
save_state
Manually save the current state to storage.
get_version
Get the version information of this task orchestrator MCP server.
📖 Usage Example
Creating a Sequential Task Chain
- Create initial tasks with no dependencies:
{
"name": "Install dependencies"
}
- Create dependent tasks:
{
"name": "Run tests",
"dependencies": ["task_1234567890_abc"]
}
-
Check which tasks can be executed: (Use
get_next_taskstool) -
Execute a task:
{
"id": "task_1234567890_abc",
"result": {
"status": "success",
"duration": "30s"
}
}
- Check if dependent task can now be executed: (Use
can_executetool)
Creating a Workflow
-
Create multiple tasks with dependencies as needed
-
Create a workflow:
{
"name": "CI Pipeline",
"taskIds": ["task_1_id", "task_2_id", "task_3_id"]
}
Dependency-Aware Workflow Orchestration
The task-orchestrator-mcp supports true dependency-aware workflow execution that respects the full task dependency graph (not just linear execution). This enables parallel execution of independent tasks within a workflow.
Key Benefits
- 🚀 Parallel Execution - Independent tasks can run simultaneously (e.g., frontend and backend builds)
- 🔗 Dependency Graph - Full DAG support, not just linear sequences
- ⏭️ Automatic Progression - System automatically finds newly unlocked tasks after dependencies complete
- 📊 State Tracking - Workflow runs track completed, active, and blocked tasks
- 🛡️ Error Handling - Failed tasks with retry limits are handled gracefully
- 🤖 Agent-Friendly - Clear responses showing exactly what tasks to work on next
- ✅ Backward Compatible - Existing linear workflows continue to work seamlessly
📝 Logging
All tool calls are automatically logged to the output directory specified by SEQUENTIAL_OUTPUT_DIR. Logs are organized by date:
output/
├── task-orchestrator-log-2024-06-22.json
├── task-orchestrator-log-2024-06-23.json
└── ...
Each log entry contains:
timestamp: When the tool was calledtool: Name of the toolarguments: Arguments passed to the toolresult: Result returned by the tool
🛠️ Development
# Build
npm run build
# Watch mode
npm run dev
# Start server
npm start
💾 Storage
Tasks and workflows are stored in a JSON file at the path specified by SEQUENTIAL_STORAGE_PATH. The file contains:
{
"tasks": {
"task_id": {
"id": "task_id",
"name": "Task name",
"description": "Task description",
"status": "pending",
"dependencies": [],
"createdAt": "2024-06-22T10:00:00.000Z",
"updatedAt": "2024-06-22T10:00:00.000Z",
"result": null,
"error": null,
"metadata": {}
}
},
"workflows": {
"workflow_id": ["task_id_1", "task_id_2"]
}
}
📄 License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。