Skip to content
github-actions[bot] edited this page Jul 16, 2026 · 12 revisions

MCP Task Orchestrator

Stop losing context. Start building faster.

MCP Task Orchestrator is an open-source MCP server that gives AI agents persistent, structured task tracking across sessions. Built around a unified WorkItem graph with Note attachments and Dependency edges, it keeps context lean while making complex project work visible. v3 is a ground-up rewrite with 14 tools, role-based workflow, and note schema gating.


What's New in v3

  • Unified WorkItem model — one entity type at flexible depth (0-3), replacing separate Project/Feature/Task distinctions
  • 14 tools with graph-aware queries (includeAncestors, includeChildren) that eliminate sequential parent-walk calls
  • Role-based workflow: queue -> work -> review -> terminal with named triggers (start, complete, block, hold, resume)
  • Note schemas — per-tag documentation requirements that gate phase transitions before an item can advance
  • Composable traits — orchestration signals that layer note requirements, guidance, and skill routing onto base schemas
  • Dependency patterns: linear, fan-out, fan-in with BLOCKS, IS_BLOCKED_BY, and RELATES_TO edge types
  • create_work_tree for atomic hierarchy creation; complete_tree for batch topological completion
  • Multi-agent claim mechanism (claim_item) with TTL-based ownership, selector mode for atomic find-and-claim, and ancestor-claim sub-tree protection — see Fleet Deployment for topology patterns

Quick Install

If you work across multiple projects, the recommended setup is a persistent local server with the REST API enabled (unauthenticated, loopback-only) — every project's .taskorchestrator/config.yaml then syncs into it automatically via config-sync, with no per-project container or manual config mounting:

docker pull ghcr.io/jpicklyk/task-orchestrator:latest

docker run -d --name mcp-task-orchestrator-http --restart unless-stopped \
  -v mcp-task-data:/app/data \
  -e MCP_TRANSPORT=http -e API_ENABLED=true -e API_AUTH_MODE=none -e API_ALLOW_UNAUTHENTICATED=true \
  -p 127.0.0.1:3001:3001 \
  ghcr.io/jpicklyk/task-orchestrator:latest

Register it in .mcp.json (HTTP shape — not an args array):

{
  "mcpServers": {
    "mcp-task-orchestrator": {
      "type": "http",
      "url": "http://localhost:3001/mcp"
    }
  }
}

And export the client-side env so config-sync can find the server (without this it silently no-ops):

export TASK_ORCHESTRATOR_API_URL=http://localhost:3001

SECURITY: unauthenticated REST means anyone who can reach the port has full read/write/delete access. This is only safe because the port is published loopback-only (-p 127.0.0.1:3001:3001). Never publish it on 0.0.0.0 or a wider interface.

Once the plugin is installed, run /task-orchestrator:configure-server to walk through this (and bearer-token or STDIO alternatives) interactively.

Simpler alternative — STDIO, no config-sync. If you don't want a persistent daemon, run this once in your terminal to register a per-session container instead:

claude mcp add-json mcp-task-orchestrator '{
  "command": "docker",
  "args": [
    "run", "--rm", "-i",
    "-v", "mcp-task-data:/app/data",
    "ghcr.io/jpicklyk/task-orchestrator:latest"
  ]
}'

After running, restart Claude Code and run /mcp to verify the connection. You should see mcp-task-orchestrator listed as connected with all 14 tools available.


Documentation

Guide Description
Quick Start Docker setup, first work item, note schemas, key concepts
API Reference All 14 MCP tools — parameters, response shapes, and examples
Workflow Guide Role lifecycle, triggers, note schemas, dependency patterns, cascade behavior
Fleet Deployment Multi-agent fleet operators: identity policy, SQLite tuning, capacity planning, claim disclosure, observability
Integration Guides Progressive tiers from bare MCP tools to self-improving orchestration

Links

Clone this wiki locally