LabscoMCP early access ↗
jpicklykMCP SERVER

MCP Task Orchestrator

A work-item graph for AI agents where the rules are enforced by the server — an agent that skips the required design note gets an error, not a warning.

by jpicklyk ↗Project & Task ManagementCommunity

LABSCO SUMMARY

The guardrails are in the server, so an agent cannot talk its way past them.

A prompt that says "write the requirements before you start" is advice; here it is a failed tool call that names the missing note. That difference matters most across sessions and across sub-agents, where nobody is reading the transcript — a new agent calls get_context once, gets the blocked items and the stalled ones with their gaps, and the record of who wrote what survives the conversation that produced it.

What it is

An MCP server holding a persistent, hierarchical work-item graph in SQLite, with 14 tools for building it, querying it, and moving items through phases. What separates it from a prompt-based framework is where the rules live: if a required note is empty or an upstream dependency is unfinished, the transition call fails at the server rather than relying on the model to comply.

What you get

  • A work breakdown created in one atomic call, with typed dependency edges between the children — when an item reaches terminal its dependents unblock automatically, and a parent cascades once its children are done — create_work_tree, manage_dependencies, complete_tree
  • Phase gates defined in YAML: each note carries required, a description, a guidance string surfaced at the moment the agent fills it, and an optional skill the agent must invoke first — advance_item returns exactly which notes are missing
  • Traits that attach cross-cutting note requirements to a schema or to a single item, so a task touching authentication picks up a security review that a CSS cleanup does not
  • Actor attribution on every transition and note, with an auditing mode that rejects writes from an agent that will not identify itself; query responses carry the full delegation chain
  • One-call session recovery returning active items, recent transitions, blocked items, stalled items with their missing notes, and ancestor chains — get_context
  • Relevance-ranked full-text search across items and notes, scopable to a subtree or filtered by status or tag — query_items, query_notes
  • Metadata-only note queries (includeBody=false) so an agent can check what documentation exists without paying to read it
  • Atomic find-and-claim for fleets of agents working the same queue — get_next_item, claim_item, get_blocked_items

Requirements

Docker, running. The image is ghcr.io/jpicklyk/task-orchestrator:latest; server.json publishes version 3.2.0 over stdio. The simplest path is a per-session container over stdio; the multi-project path runs one persistent container with MCP_TRANSPORT=http and API_ENABLED=true on port 3001, which the README insists you publish loopback-only (-p 127.0.0.1:3001:3001) because API_AUTH_MODE=none gives anyone who reaches the port full read/write/delete. DATABASE_PATH, AGENT_CONFIG_DIR, USE_FLYWAY and LOG_LEVEL are all optional. Without a schema file all 14 tools still work — schema-free, no gates.

Setup effort

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