-
Notifications
You must be signed in to change notification settings - Fork 22
Home
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.
- 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->terminalwith 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-inwithBLOCKS,IS_BLOCKED_BY, andRELATES_TOedge types -
create_work_treefor atomic hierarchy creation;complete_treefor 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
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:latestRegister 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:3001SECURITY: 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 on0.0.0.0or 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.
| 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 |
Getting Started
Integration Guides
- Overview
- Bare MCP
- CLAUDE.md-Driven
- Note Schemas
- Plugin: Skills & Hooks
- Output Styles
- Self-Improving Workflow
Reference
Operations
Project