orchestrator server

Local 2025-09-01 00:22:38 0

A server for task orchestration and coordination, facilitating task management with dependencies, multi-instance collaboration, and persistent task tracking.


Version

The MCP Orchestrator Server provides task management and coordination capabilities across MCP enabled LLM instances like Claude Desktop or Cline. In simpler terms it allows for AI agents to create, share and execute tasks across instances

Orchestrator Server MCP server

Features

Version 1.1.0

  • Task Updates: Modify pending tasks
  • Safe Deletion: Delete tasks with dependency checks
  • Cycle Detection: Prevent dependency cycles
  • Tool Listing: Comprehensive tool documentation
  • Enhanced State Management: Improved task state transitions

Core Features

  • Task creation with dependencies
  • Multi-instance coordination
  • Persistent task storage
  • Dependency enforcement
  • Task status tracking

Installation

npm install
npm run build

Usage

Create a Task

await create_task({
  id: 'setup',
  description: 'Initial setup'
});

Get Next Task

const task = await get_next_task({
  instance_id: 'worker-1'
});

Complete Task

await complete_task({
  task_id: 'setup',
  instance_id: 'worker-1',
  result: 'System initialized'
});

Documentation

Roadmap

Version 1.2.0

  • Task priorities
  • Timeouts
  • Instance management

Version 1.3.0

  • Task groups
  • Analytics
  • Dashboard

License

MIT

[
  {
    "description": "Create a new task",
    "inputSchema": {
      "properties": {
        "dependencies": {
          "description": "IDs of tasks that must be completed first",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "description": "Description of the task",
          "type": "string"
        },
        "id": {
          "description": "Unique identifier for the task",
          "type": "string"
        }
      },
      "required": [
        "id",
        "description"
      ],
      "type": "object"
    },
    "name": "create_task"
  },
  {
    "description": "Update an existing pending task",
    "inputSchema": {
      "properties": {
        "dependencies": {
          "description": "New list of dependency task IDs",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "description": "New description for the task",
          "type": "string"
        },
        "task_id": {
          "description": "ID of the task to update",
          "type": "string"
        }
      },
      "required": [
        "task_id"
      ],
      "type": "object"
    },
    "name": "update_task"
  },
  {
    "description": "Delete a task if it has no dependents",
    "inputSchema": {
      "properties": {
        "task_id": {
          "description": "ID of the task to delete",
          "type": "string"
        }
      },
      "required": [
        "task_id"
      ],
      "type": "object"
    },
    "name": "delete_task"
  },
  {
    "description": "Get the next available task",
    "inputSchema": {
      "properties": {
        "instance_id": {
          "description": "ID of the instance requesting work",
          "type": "string"
        }
      },
      "required": [
        "instance_id"
      ],
      "type": "object"
    },
    "name": "get_next_task"
  },
  {
    "description": "Mark a task as completed",
    "inputSchema": {
      "properties": {
        "instance_id": {
          "description": "ID of the instance completing the task",
          "type": "string"
        },
        "result": {
          "description": "Result or output from the task",
          "type": "string"
        },
        "task_id": {
          "description": "ID of the task to complete",
          "type": "string"
        }
      },
      "required": [
        "task_id",
        "instance_id",
        "result"
      ],
      "type": "object"
    },
    "name": "complete_task"
  },
  {
    "description": "Get status of all tasks",
    "inputSchema": {
      "properties": {},
      "required": [],
      "type": "object"
    },
    "name": "get_task_status"
  },
  {
    "description": "Get details of a specific task",
    "inputSchema": {
      "properties": {
        "task_id": {
          "description": "ID of the task to get details for",
          "type": "string"
        }
      },
      "required": [
        "task_id"
      ],
      "type": "object"
    },
    "name": "get_task_details"
  }
]