Task Orchestrator MCP Server

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.

Category
访问服务器

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 stored
  • TASK_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 task
  • description (optional): Description of the task
  • dependencies (optional): Array of task IDs that this task depends on
  • metadata (optional): Additional metadata for the task
  • maxRetries (optional): Maximum number of retry attempts for this task

update_task

Update an existing task.

Parameters:

  • id (required): The ID of the task to update
  • name (optional): New name for the task
  • description (optional): New description
  • dependencies (optional): New dependencies
  • metadata (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 execute
  • result (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 fail
  • error (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 workflow
  • taskIds (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

  1. Create initial tasks with no dependencies:
{
  "name": "Install dependencies"
}
  1. Create dependent tasks:
{
  "name": "Run tests",
  "dependencies": ["task_1234567890_abc"]
}
  1. Check which tasks can be executed: (Use get_next_tasks tool)

  2. Execute a task:

{
  "id": "task_1234567890_abc",
  "result": {
    "status": "success",
    "duration": "30s"
  }
}
  1. Check if dependent task can now be executed: (Use can_execute tool)

Creating a Workflow

  1. Create multiple tasks with dependencies as needed

  2. 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 called
  • tool: Name of the tool
  • arguments: Arguments passed to the tool
  • result: 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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选