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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.