Prototype · Preview: every server in the official registry, synced every 30 minutes. Sign in with Google to write reviews.
PopNx MCPMCP servers for people who use AI · explained in plain words

MCP Task Orchestrator

by jpicklykversion 4.0.0i★ 214iRuns on your computer
Registry nameio.github.jpicklyk/task-orchestrator

How to install

Overview

Description from the maker (original English)

Workflow discipline for AI agents: work items, gates, role-scoped tool profiles and runs

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Docs, sheets & office work

Install

Pick the AI app you use, then copy the settings.

Passed 2/2 checks · Runs on your computer

First: which AI do you use?

Pick your app and the steps appear below.

Works with Claude, with some setup first

You need a MCP Task Orchestrator key (sign up on the maker’s site, may cost money) · Install Docker on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone

  1. Install Docker

    One time only; it works for every server that needs Docker

    Open the Docker download page ↗

  2. Sign up and create a MCP Task Orchestrator key

    Open the maker’s site, sign up and create an API key for the next step. It may cost money.

    How to get a key is in the maker’s README below

  3. Open the Claude desktop app’s settings file

    SettingsDeveloperEdit Config

  4. Paste these settings and save the file

    {
      "mcpServers": {
        "task-orchestrator": {
          "command": "docker",
          "args": [
            "run",
            "-i",
            "--rm",
            "-e",
            "DATABASE_PATH",
            "-e",
            "AGENT_CONFIG_DIR",
            "-e",
            "MCP_TRANSPORT",
            "-e",
            "MCP_HTTP_PORT",
            "-e",
            "LOG_LEVEL",
            "-e",
            "LOG_FILE",
            "-e",
            "API_ALLOW_QUERY_TOKEN_FOR_SSE",
            "-e",
            "API_ALLOW_UNAUTHENTICATED",
            "-e",
            "API_AUTH_MODE",
            "-e",
            "API_ENABLED",
            "-e",
            "API_JWKS_ALGORITHMS",
            "-e",
            "API_JWKS_ALLOW_INSECURE_URL",
            "-e",
            "API_JWKS_AUDIENCE",
            "-e",
            "API_JWKS_CACHE_TTL_SECONDS",
            "-e",
            "API_JWKS_ISSUER",
            "-e",
            "API_JWKS_MAX_STALE_SECONDS",
            "-e",
            "API_JWKS_MAX_TOKEN_LIFETIME_SECONDS",
            "-e",
            "API_JWKS_URL",
            "-e",
            "API_REDACT_NOTE_ATTRIBUTION",
            "-e",
            "API_SSE_AUTH_CHECK_INTERVAL_SECONDS",
            "-e",
            "API_SSE_BUFFER_SIZE",
            "-e",
            "API_TOKENS_PATH",
            "-e",
            "CORS_ALLOWED_HEADERS",
            "-e",
            "CORS_ALLOWED_METHODS",
            "-e",
            "CORS_ALLOWED_ORIGINS",
            "-e",
            "CORS_EXPOSE_HEADERS",
            "-e",
            "CORS_MAX_AGE_SECONDS",
            "-e",
            "DATABASE_BUSY_TIMEOUT_MS",
            "-e",
            "DATABASE_MAX_CONNECTIONS",
            "-e",
            "DATABASE_SHOW_SQL",
            "-e",
            "DB_COMPACT_ON_UPGRADE",
            "-e",
            "FLYWAY_REPAIR",
            "-e",
            "FTS_INTEGRITY",
            "-e",
            "MCP_ALLOWED_HOSTS",
            "-e",
            "MCP_ALLOW_UNAUTHENTICATED",
            "-e",
            "MCP_HTTP_HOST",
            "-e",
            "MCP_SERVER_NAME",
            "-e",
            "MCP_TOOL_PROFILE",
            "-e",
            "READINESS_FILE",
            "-e",
            "RESOURCE_LEASES_ENFORCED",
            "-e",
            "RETENTION_AUDIT_EVENTS_DAYS",
            "-e",
            "RETENTION_CALL_LOG_DAYS",
            "-e",
            "RETENTION_EVENTS_DAYS",
            "-e",
            "RETENTION_LEASE_HISTORY_DAYS",
            "-e",
            "SCHEMA_MODE",
            "-e",
            "UPGRADE_BACKUP",
            "ghcr.io/jpicklyk/task-orchestrator:4.0.0"
          ],
          "env": {
            "DATABASE_PATH": "your-value",
            "AGENT_CONFIG_DIR": "your-value",
            "MCP_TRANSPORT": "your-value",
            "MCP_HTTP_PORT": "your-value",
            "LOG_LEVEL": "your-value",
            "LOG_FILE": "your-value",
            "API_ALLOW_QUERY_TOKEN_FOR_SSE": "your-value",
            "API_ALLOW_UNAUTHENTICATED": "your-value",
            "API_AUTH_MODE": "your-value",
            "API_ENABLED": "your-value",
            "API_JWKS_ALGORITHMS": "your-value",
            "API_JWKS_ALLOW_INSECURE_URL": "your-value",
            "API_JWKS_AUDIENCE": "your-value",
            "API_JWKS_CACHE_TTL_SECONDS": "your-value",
            "API_JWKS_ISSUER": "your-value",
            "API_JWKS_MAX_STALE_SECONDS": "your-value",
            "API_JWKS_MAX_TOKEN_LIFETIME_SECONDS": "your-value",
            "API_JWKS_URL": "your-value",
            "API_REDACT_NOTE_ATTRIBUTION": "your-value",
            "API_SSE_AUTH_CHECK_INTERVAL_SECONDS": "your-value",
            "API_SSE_BUFFER_SIZE": "your-value",
            "API_TOKENS_PATH": "your-value",
            "CORS_ALLOWED_HEADERS": "your-value",
            "CORS_ALLOWED_METHODS": "your-value",
            "CORS_ALLOWED_ORIGINS": "your-value",
            "CORS_EXPOSE_HEADERS": "your-value",
            "CORS_MAX_AGE_SECONDS": "your-value",
            "DATABASE_BUSY_TIMEOUT_MS": "your-value",
            "DATABASE_MAX_CONNECTIONS": "your-value",
            "DATABASE_SHOW_SQL": "your-value",
            "DB_COMPACT_ON_UPGRADE": "your-value",
            "FLYWAY_REPAIR": "your-value",
            "FTS_INTEGRITY": "your-value",
            "MCP_ALLOWED_HOSTS": "your-value",
            "MCP_ALLOW_UNAUTHENTICATED": "your-value",
            "MCP_HTTP_HOST": "your-value",
            "MCP_SERVER_NAME": "your-value",
            "MCP_TOOL_PROFILE": "your-value",
            "READINESS_FILE": "your-value",
            "RESOURCE_LEASES_ENFORCED": "your-value",
            "RETENTION_AUDIT_EVENTS_DAYS": "your-value",
            "RETENTION_CALL_LOG_DAYS": "your-value",
            "RETENTION_EVENTS_DAYS": "your-value",
            "RETENTION_LEASE_HISTORY_DAYS": "your-value",
            "SCHEMA_MODE": "your-value",
            "UPGRADE_BACKUP": "your-value"
          }
        }
      }
    }

    Paste the key only into the app’s field, never into a chat or to anyone

  5. Quit Claude and open it again

  6. Try it

    Use MCP Task Orchestrator and tell me what you can do for me, then show me one thing

    ✓ If Claude says it is using MCP Task Orchestrator or shows a MCP Task Orchestrator tool in the answer, you are connected

Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version

ChatGPT cannot connect MCP Task Orchestrator yet

MCP Task Orchestrator runs on your computer, but ChatGPT can only connect servers that run on the web

What you can do instead

A · Use an app that can connect MCP Task Orchestrator

  • You need a MCP Task Orchestrator key (sign up on the maker’s site, may cost money) · Install Docker on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone
  • You need a MCP Task Orchestrator key (sign up on the maker’s site, may cost money) · Install Docker on your computer first (one time)
  • You need a MCP Task Orchestrator key (sign up on the maker’s site, may cost money) · Install Docker on your computer first (one time)
  • You need a MCP Task Orchestrator key (sign up on the maker’s site, may cost money) · Install Docker on your computer first (one time)

B · Others in Docs, sheets & office work that work with ChatGPT

Picked from the most used in the same category, only ones that connect by address with no key

Works with Claude Code, with some setup first

You need a MCP Task Orchestrator key (sign up on the maker’s site, may cost money) · Install Docker on your computer first (one time)

  1. Install Docker

    One time only; it works for every server that needs Docker

    Open the Docker download page ↗

  2. Sign up and create a MCP Task Orchestrator key

    Open the maker’s site, sign up and create an API key for the next step. It may cost money.

    How to get a key is in the maker’s README below

  3. Open Terminal

    Mac: press Command+Space and type Terminal · Windows: open PowerShell

  4. Paste this command and press Enter

    claude mcp add task-orchestrator --env DATABASE_PATH=your-value --env AGENT_CONFIG_DIR=your-value --env MCP_TRANSPORT=your-value --env MCP_HTTP_PORT=your-value --env LOG_LEVEL=your-value --env LOG_FILE=your-value --env API_ALLOW_QUERY_TOKEN_FOR_SSE=your-value --env API_ALLOW_UNAUTHENTICATED=your-value --env API_AUTH_MODE=your-value --env API_ENABLED=your-value --env API_JWKS_ALGORITHMS=your-value --env API_JWKS_ALLOW_INSECURE_URL=your-value --env API_JWKS_AUDIENCE=your-value --env API_JWKS_CACHE_TTL_SECONDS=your-value --env API_JWKS_ISSUER=your-value --env API_JWKS_MAX_STALE_SECONDS=your-value --env API_JWKS_MAX_TOKEN_LIFETIME_SECONDS=your-value --env API_JWKS_URL=your-value --env API_REDACT_NOTE_ATTRIBUTION=your-value --env API_SSE_AUTH_CHECK_INTERVAL_SECONDS=your-value --env API_SSE_BUFFER_SIZE=your-value --env API_TOKENS_PATH=your-value --env CORS_ALLOWED_HEADERS=your-value --env CORS_ALLOWED_METHODS=your-value --env CORS_ALLOWED_ORIGINS=your-value --env CORS_EXPOSE_HEADERS=your-value --env CORS_MAX_AGE_SECONDS=your-value --env DATABASE_BUSY_TIMEOUT_MS=your-value --env DATABASE_MAX_CONNECTIONS=your-value --env DATABASE_SHOW_SQL=your-value --env DB_COMPACT_ON_UPGRADE=your-value --env FLYWAY_REPAIR=your-value --env FTS_INTEGRITY=your-value --env MCP_ALLOWED_HOSTS=your-value --env MCP_ALLOW_UNAUTHENTICATED=your-value --env MCP_HTTP_HOST=your-value --env MCP_SERVER_NAME=your-value --env MCP_TOOL_PROFILE=your-value --env READINESS_FILE=your-value --env RESOURCE_LEASES_ENFORCED=your-value --env RETENTION_AUDIT_EVENTS_DAYS=your-value --env RETENTION_CALL_LOG_DAYS=your-value --env RETENTION_EVENTS_DAYS=your-value --env RETENTION_LEASE_HISTORY_DAYS=your-value --env SCHEMA_MODE=your-value --env UPGRADE_BACKUP=your-value -- docker run -i --rm -e DATABASE_PATH -e AGENT_CONFIG_DIR -e MCP_TRANSPORT -e MCP_HTTP_PORT -e LOG_LEVEL -e LOG_FILE -e API_ALLOW_QUERY_TOKEN_FOR_SSE -e API_ALLOW_UNAUTHENTICATED -e API_AUTH_MODE -e API_ENABLED -e API_JWKS_ALGORITHMS -e API_JWKS_ALLOW_INSECURE_URL -e API_JWKS_AUDIENCE -e API_JWKS_CACHE_TTL_SECONDS -e API_JWKS_ISSUER -e API_JWKS_MAX_STALE_SECONDS -e API_JWKS_MAX_TOKEN_LIFETIME_SECONDS -e API_JWKS_URL -e API_REDACT_NOTE_ATTRIBUTION -e API_SSE_AUTH_CHECK_INTERVAL_SECONDS -e API_SSE_BUFFER_SIZE -e API_TOKENS_PATH -e CORS_ALLOWED_HEADERS -e CORS_ALLOWED_METHODS -e CORS_ALLOWED_ORIGINS -e CORS_EXPOSE_HEADERS -e CORS_MAX_AGE_SECONDS -e DATABASE_BUSY_TIMEOUT_MS -e DATABASE_MAX_CONNECTIONS -e DATABASE_SHOW_SQL -e DB_COMPACT_ON_UPGRADE -e FLYWAY_REPAIR -e FTS_INTEGRITY -e MCP_ALLOWED_HOSTS -e MCP_ALLOW_UNAUTHENTICATED -e MCP_HTTP_HOST -e MCP_SERVER_NAME -e MCP_TOOL_PROFILE -e READINESS_FILE -e RESOURCE_LEASES_ENFORCED -e RETENTION_AUDIT_EVENTS_DAYS -e RETENTION_CALL_LOG_DAYS -e RETENTION_EVENTS_DAYS -e RETENTION_LEASE_HISTORY_DAYS -e SCHEMA_MODE -e UPGRADE_BACKUP ghcr.io/jpicklyk/task-orchestrator:4.0.0

    Replace “your-value” with your key before pressing Enter

    Paste the key only into the app’s field, never into a chat or to anyone

  5. Type /mcp in Claude Code

    You should see MCP Task Orchestrator listed as connected

  6. Try it

    Use MCP Task Orchestrator and tell me what you can do for me, then show me one thing

    ✓ If Claude Code says it is using MCP Task Orchestrator or shows a MCP Task Orchestrator tool in the answer, you are connected

Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Works with Cursor, with some setup first

You need a MCP Task Orchestrator key (sign up on the maker’s site, may cost money) · Install Docker on your computer first (one time)

  1. Install Docker

    One time only; it works for every server that needs Docker

    Open the Docker download page ↗

  2. Sign up and create a MCP Task Orchestrator key

    Open the maker’s site, sign up and create an API key for the next step. It may cost money.

    How to get a key is in the maker’s README below

  3. Click this button to open Cursor

    Open in Cursor

    Cursor asks you to confirm; click Install

  4. Fill in your key

    In the MCP Task Orchestrator settings, DATABASE_PATH, AGENT_CONFIG_DIR, MCP_TRANSPORT, MCP_HTTP_PORT, LOG_LEVEL, LOG_FILE, API_ALLOW_QUERY_TOKEN_FOR_SSE, API_ALLOW_UNAUTHENTICATED, API_AUTH_MODE, API_ENABLED, API_JWKS_ALGORITHMS, API_JWKS_ALLOW_INSECURE_URL, API_JWKS_AUDIENCE, API_JWKS_CACHE_TTL_SECONDS, API_JWKS_ISSUER, API_JWKS_MAX_STALE_SECONDS, API_JWKS_MAX_TOKEN_LIFETIME_SECONDS, API_JWKS_URL, API_REDACT_NOTE_ATTRIBUTION, API_SSE_AUTH_CHECK_INTERVAL_SECONDS, API_SSE_BUFFER_SIZE, API_TOKENS_PATH, CORS_ALLOWED_HEADERS, CORS_ALLOWED_METHODS, CORS_ALLOWED_ORIGINS, CORS_EXPOSE_HEADERS, CORS_MAX_AGE_SECONDS, DATABASE_BUSY_TIMEOUT_MS, DATABASE_MAX_CONNECTIONS, DATABASE_SHOW_SQL, DB_COMPACT_ON_UPGRADE, FLYWAY_REPAIR, FTS_INTEGRITY, MCP_ALLOWED_HOSTS, MCP_ALLOW_UNAUTHENTICATED, MCP_HTTP_HOST, MCP_SERVER_NAME, MCP_TOOL_PROFILE, READINESS_FILE, RESOURCE_LEASES_ENFORCED, RETENTION_AUDIT_EVENTS_DAYS, RETENTION_CALL_LOG_DAYS, RETENTION_EVENTS_DAYS, RETENTION_LEASE_HISTORY_DAYS, SCHEMA_MODE, UPGRADE_BACKUP is empty; add your key and save

    Paste the key only into the app’s field, never into a chat or to anyone

  5. Open the AI chat in Cursor in Agent mode

  6. Try it

    Use MCP Task Orchestrator and tell me what you can do for me, then show me one thing

    ✓ If Cursor says it is using MCP Task Orchestrator or shows a MCP Task Orchestrator tool in the answer, you are connected

Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Works with VS Code, with some setup first

You need a MCP Task Orchestrator key (sign up on the maker’s site, may cost money) · Install Docker on your computer first (one time)

  1. Install Docker

    One time only; it works for every server that needs Docker

    Open the Docker download page ↗

  2. Sign up and create a MCP Task Orchestrator key

    Open the maker’s site, sign up and create an API key for the next step. It may cost money.

    How to get a key is in the maker’s README below

  3. Click this button to open VS Code

    Open in VS Code

    VS Code asks you to confirm; click Install

  4. Fill in your key

    In the MCP Task Orchestrator settings, DATABASE_PATH, AGENT_CONFIG_DIR, MCP_TRANSPORT, MCP_HTTP_PORT, LOG_LEVEL, LOG_FILE, API_ALLOW_QUERY_TOKEN_FOR_SSE, API_ALLOW_UNAUTHENTICATED, API_AUTH_MODE, API_ENABLED, API_JWKS_ALGORITHMS, API_JWKS_ALLOW_INSECURE_URL, API_JWKS_AUDIENCE, API_JWKS_CACHE_TTL_SECONDS, API_JWKS_ISSUER, API_JWKS_MAX_STALE_SECONDS, API_JWKS_MAX_TOKEN_LIFETIME_SECONDS, API_JWKS_URL, API_REDACT_NOTE_ATTRIBUTION, API_SSE_AUTH_CHECK_INTERVAL_SECONDS, API_SSE_BUFFER_SIZE, API_TOKENS_PATH, CORS_ALLOWED_HEADERS, CORS_ALLOWED_METHODS, CORS_ALLOWED_ORIGINS, CORS_EXPOSE_HEADERS, CORS_MAX_AGE_SECONDS, DATABASE_BUSY_TIMEOUT_MS, DATABASE_MAX_CONNECTIONS, DATABASE_SHOW_SQL, DB_COMPACT_ON_UPGRADE, FLYWAY_REPAIR, FTS_INTEGRITY, MCP_ALLOWED_HOSTS, MCP_ALLOW_UNAUTHENTICATED, MCP_HTTP_HOST, MCP_SERVER_NAME, MCP_TOOL_PROFILE, READINESS_FILE, RESOURCE_LEASES_ENFORCED, RETENTION_AUDIT_EVENTS_DAYS, RETENTION_CALL_LOG_DAYS, RETENTION_EVENTS_DAYS, RETENTION_LEASE_HISTORY_DAYS, SCHEMA_MODE, UPGRADE_BACKUP is empty; add your key and save

    Paste the key only into the app’s field, never into a chat or to anyone

  5. Open the AI chat in VS Code in Agent mode

  6. Try it

    Use MCP Task Orchestrator and tell me what you can do for me, then show me one thing

    ✓ If VS Code says it is using MCP Task Orchestrator or shows a MCP Task Orchestrator tool in the answer, you are connected

Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.

See every app that uses MCP →

JSON settings are under “For developers” below

Stuck? Ask people who use MCP Task Orchestrator💬 Discussion →
For developers: Terminal commands and JSON settings

Installed on your computer

Claude Code

claude mcp add task-orchestrator --env DATABASE_PATH=your-value --env AGENT_CONFIG_DIR=your-value --env MCP_TRANSPORT=your-value --env MCP_HTTP_PORT=your-value --env LOG_LEVEL=your-value --env LOG_FILE=your-value --env API_ALLOW_QUERY_TOKEN_FOR_SSE=your-value --env API_ALLOW_UNAUTHENTICATED=your-value --env API_AUTH_MODE=your-value --env API_ENABLED=your-value --env API_JWKS_ALGORITHMS=your-value --env API_JWKS_ALLOW_INSECURE_URL=your-value --env API_JWKS_AUDIENCE=your-value --env API_JWKS_CACHE_TTL_SECONDS=your-value --env API_JWKS_ISSUER=your-value --env API_JWKS_MAX_STALE_SECONDS=your-value --env API_JWKS_MAX_TOKEN_LIFETIME_SECONDS=your-value --env API_JWKS_URL=your-value --env API_REDACT_NOTE_ATTRIBUTION=your-value --env API_SSE_AUTH_CHECK_INTERVAL_SECONDS=your-value --env API_SSE_BUFFER_SIZE=your-value --env API_TOKENS_PATH=your-value --env CORS_ALLOWED_HEADERS=your-value --env CORS_ALLOWED_METHODS=your-value --env CORS_ALLOWED_ORIGINS=your-value --env CORS_EXPOSE_HEADERS=your-value --env CORS_MAX_AGE_SECONDS=your-value --env DATABASE_BUSY_TIMEOUT_MS=your-value --env DATABASE_MAX_CONNECTIONS=your-value --env DATABASE_SHOW_SQL=your-value --env DB_COMPACT_ON_UPGRADE=your-value --env FLYWAY_REPAIR=your-value --env FTS_INTEGRITY=your-value --env MCP_ALLOWED_HOSTS=your-value --env MCP_ALLOW_UNAUTHENTICATED=your-value --env MCP_HTTP_HOST=your-value --env MCP_SERVER_NAME=your-value --env MCP_TOOL_PROFILE=your-value --env READINESS_FILE=your-value --env RESOURCE_LEASES_ENFORCED=your-value --env RETENTION_AUDIT_EVENTS_DAYS=your-value --env RETENTION_CALL_LOG_DAYS=your-value --env RETENTION_EVENTS_DAYS=your-value --env RETENTION_LEASE_HISTORY_DAYS=your-value --env SCHEMA_MODE=your-value --env UPGRADE_BACKUP=your-value -- docker run -i --rm -e DATABASE_PATH -e AGENT_CONFIG_DIR -e MCP_TRANSPORT -e MCP_HTTP_PORT -e LOG_LEVEL -e LOG_FILE -e API_ALLOW_QUERY_TOKEN_FOR_SSE -e API_ALLOW_UNAUTHENTICATED -e API_AUTH_MODE -e API_ENABLED -e API_JWKS_ALGORITHMS -e API_JWKS_ALLOW_INSECURE_URL -e API_JWKS_AUDIENCE -e API_JWKS_CACHE_TTL_SECONDS -e API_JWKS_ISSUER -e API_JWKS_MAX_STALE_SECONDS -e API_JWKS_MAX_TOKEN_LIFETIME_SECONDS -e API_JWKS_URL -e API_REDACT_NOTE_ATTRIBUTION -e API_SSE_AUTH_CHECK_INTERVAL_SECONDS -e API_SSE_BUFFER_SIZE -e API_TOKENS_PATH -e CORS_ALLOWED_HEADERS -e CORS_ALLOWED_METHODS -e CORS_ALLOWED_ORIGINS -e CORS_EXPOSE_HEADERS -e CORS_MAX_AGE_SECONDS -e DATABASE_BUSY_TIMEOUT_MS -e DATABASE_MAX_CONNECTIONS -e DATABASE_SHOW_SQL -e DB_COMPACT_ON_UPGRADE -e FLYWAY_REPAIR -e FTS_INTEGRITY -e MCP_ALLOWED_HOSTS -e MCP_ALLOW_UNAUTHENTICATED -e MCP_HTTP_HOST -e MCP_SERVER_NAME -e MCP_TOOL_PROFILE -e READINESS_FILE -e RESOURCE_LEASES_ENFORCED -e RETENTION_AUDIT_EVENTS_DAYS -e RETENTION_CALL_LOG_DAYS -e RETENTION_EVENTS_DAYS -e RETENTION_LEASE_HISTORY_DAYS -e SCHEMA_MODE -e UPGRADE_BACKUP ghcr.io/jpicklyk/task-orchestrator:4.0.0

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "task-orchestrator": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DATABASE_PATH",
        "-e",
        "AGENT_CONFIG_DIR",
        "-e",
        "MCP_TRANSPORT",
        "-e",
        "MCP_HTTP_PORT",
        "-e",
        "LOG_LEVEL",
        "-e",
        "LOG_FILE",
        "-e",
        "API_ALLOW_QUERY_TOKEN_FOR_SSE",
        "-e",
        "API_ALLOW_UNAUTHENTICATED",
        "-e",
        "API_AUTH_MODE",
        "-e",
        "API_ENABLED",
        "-e",
        "API_JWKS_ALGORITHMS",
        "-e",
        "API_JWKS_ALLOW_INSECURE_URL",
        "-e",
        "API_JWKS_AUDIENCE",
        "-e",
        "API_JWKS_CACHE_TTL_SECONDS",
        "-e",
        "API_JWKS_ISSUER",
        "-e",
        "API_JWKS_MAX_STALE_SECONDS",
        "-e",
        "API_JWKS_MAX_TOKEN_LIFETIME_SECONDS",
        "-e",
        "API_JWKS_URL",
        "-e",
        "API_REDACT_NOTE_ATTRIBUTION",
        "-e",
        "API_SSE_AUTH_CHECK_INTERVAL_SECONDS",
        "-e",
        "API_SSE_BUFFER_SIZE",
        "-e",
        "API_TOKENS_PATH",
        "-e",
        "CORS_ALLOWED_HEADERS",
        "-e",
        "CORS_ALLOWED_METHODS",
        "-e",
        "CORS_ALLOWED_ORIGINS",
        "-e",
        "CORS_EXPOSE_HEADERS",
        "-e",
        "CORS_MAX_AGE_SECONDS",
        "-e",
        "DATABASE_BUSY_TIMEOUT_MS",
        "-e",
        "DATABASE_MAX_CONNECTIONS",
        "-e",
        "DATABASE_SHOW_SQL",
        "-e",
        "DB_COMPACT_ON_UPGRADE",
        "-e",
        "FLYWAY_REPAIR",
        "-e",
        "FTS_INTEGRITY",
        "-e",
        "MCP_ALLOWED_HOSTS",
        "-e",
        "MCP_ALLOW_UNAUTHENTICATED",
        "-e",
        "MCP_HTTP_HOST",
        "-e",
        "MCP_SERVER_NAME",
        "-e",
        "MCP_TOOL_PROFILE",
        "-e",
        "READINESS_FILE",
        "-e",
        "RESOURCE_LEASES_ENFORCED",
        "-e",
        "RETENTION_AUDIT_EVENTS_DAYS",
        "-e",
        "RETENTION_CALL_LOG_DAYS",
        "-e",
        "RETENTION_EVENTS_DAYS",
        "-e",
        "RETENTION_LEASE_HISTORY_DAYS",
        "-e",
        "SCHEMA_MODE",
        "-e",
        "UPGRADE_BACKUP",
        "ghcr.io/jpicklyk/task-orchestrator:4.0.0"
      ],
      "env": {
        "DATABASE_PATH": "your-value",
        "AGENT_CONFIG_DIR": "your-value",
        "MCP_TRANSPORT": "your-value",
        "MCP_HTTP_PORT": "your-value",
        "LOG_LEVEL": "your-value",
        "LOG_FILE": "your-value",
        "API_ALLOW_QUERY_TOKEN_FOR_SSE": "your-value",
        "API_ALLOW_UNAUTHENTICATED": "your-value",
        "API_AUTH_MODE": "your-value",
        "API_ENABLED": "your-value",
        "API_JWKS_ALGORITHMS": "your-value",
        "API_JWKS_ALLOW_INSECURE_URL": "your-value",
        "API_JWKS_AUDIENCE": "your-value",
        "API_JWKS_CACHE_TTL_SECONDS": "your-value",
        "API_JWKS_ISSUER": "your-value",
        "API_JWKS_MAX_STALE_SECONDS": "your-value",
        "API_JWKS_MAX_TOKEN_LIFETIME_SECONDS": "your-value",
        "API_JWKS_URL": "your-value",
        "API_REDACT_NOTE_ATTRIBUTION": "your-value",
        "API_SSE_AUTH_CHECK_INTERVAL_SECONDS": "your-value",
        "API_SSE_BUFFER_SIZE": "your-value",
        "API_TOKENS_PATH": "your-value",
        "CORS_ALLOWED_HEADERS": "your-value",
        "CORS_ALLOWED_METHODS": "your-value",
        "CORS_ALLOWED_ORIGINS": "your-value",
        "CORS_EXPOSE_HEADERS": "your-value",
        "CORS_MAX_AGE_SECONDS": "your-value",
        "DATABASE_BUSY_TIMEOUT_MS": "your-value",
        "DATABASE_MAX_CONNECTIONS": "your-value",
        "DATABASE_SHOW_SQL": "your-value",
        "DB_COMPACT_ON_UPGRADE": "your-value",
        "FLYWAY_REPAIR": "your-value",
        "FTS_INTEGRITY": "your-value",
        "MCP_ALLOWED_HOSTS": "your-value",
        "MCP_ALLOW_UNAUTHENTICATED": "your-value",
        "MCP_HTTP_HOST": "your-value",
        "MCP_SERVER_NAME": "your-value",
        "MCP_TOOL_PROFILE": "your-value",
        "READINESS_FILE": "your-value",
        "RESOURCE_LEASES_ENFORCED": "your-value",
        "RETENTION_AUDIT_EVENTS_DAYS": "your-value",
        "RETENTION_CALL_LOG_DAYS": "your-value",
        "RETENTION_EVENTS_DAYS": "your-value",
        "RETENTION_LEASE_HISTORY_DAYS": "your-value",
        "SCHEMA_MODE": "your-value",
        "UPGRADE_BACKUP": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "task-orchestrator": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DATABASE_PATH",
        "-e",
        "AGENT_CONFIG_DIR",
        "-e",
        "MCP_TRANSPORT",
        "-e",
        "MCP_HTTP_PORT",
        "-e",
        "LOG_LEVEL",
        "-e",
        "LOG_FILE",
        "-e",
        "API_ALLOW_QUERY_TOKEN_FOR_SSE",
        "-e",
        "API_ALLOW_UNAUTHENTICATED",
        "-e",
        "API_AUTH_MODE",
        "-e",
        "API_ENABLED",
        "-e",
        "API_JWKS_ALGORITHMS",
        "-e",
        "API_JWKS_ALLOW_INSECURE_URL",
        "-e",
        "API_JWKS_AUDIENCE",
        "-e",
        "API_JWKS_CACHE_TTL_SECONDS",
        "-e",
        "API_JWKS_ISSUER",
        "-e",
        "API_JWKS_MAX_STALE_SECONDS",
        "-e",
        "API_JWKS_MAX_TOKEN_LIFETIME_SECONDS",
        "-e",
        "API_JWKS_URL",
        "-e",
        "API_REDACT_NOTE_ATTRIBUTION",
        "-e",
        "API_SSE_AUTH_CHECK_INTERVAL_SECONDS",
        "-e",
        "API_SSE_BUFFER_SIZE",
        "-e",
        "API_TOKENS_PATH",
        "-e",
        "CORS_ALLOWED_HEADERS",
        "-e",
        "CORS_ALLOWED_METHODS",
        "-e",
        "CORS_ALLOWED_ORIGINS",
        "-e",
        "CORS_EXPOSE_HEADERS",
        "-e",
        "CORS_MAX_AGE_SECONDS",
        "-e",
        "DATABASE_BUSY_TIMEOUT_MS",
        "-e",
        "DATABASE_MAX_CONNECTIONS",
        "-e",
        "DATABASE_SHOW_SQL",
        "-e",
        "DB_COMPACT_ON_UPGRADE",
        "-e",
        "FLYWAY_REPAIR",
        "-e",
        "FTS_INTEGRITY",
        "-e",
        "MCP_ALLOWED_HOSTS",
        "-e",
        "MCP_ALLOW_UNAUTHENTICATED",
        "-e",
        "MCP_HTTP_HOST",
        "-e",
        "MCP_SERVER_NAME",
        "-e",
        "MCP_TOOL_PROFILE",
        "-e",
        "READINESS_FILE",
        "-e",
        "RESOURCE_LEASES_ENFORCED",
        "-e",
        "RETENTION_AUDIT_EVENTS_DAYS",
        "-e",
        "RETENTION_CALL_LOG_DAYS",
        "-e",
        "RETENTION_EVENTS_DAYS",
        "-e",
        "RETENTION_LEASE_HISTORY_DAYS",
        "-e",
        "SCHEMA_MODE",
        "-e",
        "UPGRADE_BACKUP",
        "ghcr.io/jpicklyk/task-orchestrator:4.0.0"
      ],
      "env": {
        "DATABASE_PATH": "your-value",
        "AGENT_CONFIG_DIR": "your-value",
        "MCP_TRANSPORT": "your-value",
        "MCP_HTTP_PORT": "your-value",
        "LOG_LEVEL": "your-value",
        "LOG_FILE": "your-value",
        "API_ALLOW_QUERY_TOKEN_FOR_SSE": "your-value",
        "API_ALLOW_UNAUTHENTICATED": "your-value",
        "API_AUTH_MODE": "your-value",
        "API_ENABLED": "your-value",
        "API_JWKS_ALGORITHMS": "your-value",
        "API_JWKS_ALLOW_INSECURE_URL": "your-value",
        "API_JWKS_AUDIENCE": "your-value",
        "API_JWKS_CACHE_TTL_SECONDS": "your-value",
        "API_JWKS_ISSUER": "your-value",
        "API_JWKS_MAX_STALE_SECONDS": "your-value",
        "API_JWKS_MAX_TOKEN_LIFETIME_SECONDS": "your-value",
        "API_JWKS_URL": "your-value",
        "API_REDACT_NOTE_ATTRIBUTION": "your-value",
        "API_SSE_AUTH_CHECK_INTERVAL_SECONDS": "your-value",
        "API_SSE_BUFFER_SIZE": "your-value",
        "API_TOKENS_PATH": "your-value",
        "CORS_ALLOWED_HEADERS": "your-value",
        "CORS_ALLOWED_METHODS": "your-value",
        "CORS_ALLOWED_ORIGINS": "your-value",
        "CORS_EXPOSE_HEADERS": "your-value",
        "CORS_MAX_AGE_SECONDS": "your-value",
        "DATABASE_BUSY_TIMEOUT_MS": "your-value",
        "DATABASE_MAX_CONNECTIONS": "your-value",
        "DATABASE_SHOW_SQL": "your-value",
        "DB_COMPACT_ON_UPGRADE": "your-value",
        "FLYWAY_REPAIR": "your-value",
        "FTS_INTEGRITY": "your-value",
        "MCP_ALLOWED_HOSTS": "your-value",
        "MCP_ALLOW_UNAUTHENTICATED": "your-value",
        "MCP_HTTP_HOST": "your-value",
        "MCP_SERVER_NAME": "your-value",
        "MCP_TOOL_PROFILE": "your-value",
        "READINESS_FILE": "your-value",
        "RESOURCE_LEASES_ENFORCED": "your-value",
        "RETENTION_AUDIT_EVENTS_DAYS": "your-value",
        "RETENTION_CALL_LOG_DAYS": "your-value",
        "RETENTION_EVENTS_DAYS": "your-value",
        "RETENTION_LEASE_HISTORY_DAYS": "your-value",
        "SCHEMA_MODE": "your-value",
        "UPGRADE_BACKUP": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "task-orchestrator": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DATABASE_PATH",
        "-e",
        "AGENT_CONFIG_DIR",
        "-e",
        "MCP_TRANSPORT",
        "-e",
        "MCP_HTTP_PORT",
        "-e",
        "LOG_LEVEL",
        "-e",
        "LOG_FILE",
        "-e",
        "API_ALLOW_QUERY_TOKEN_FOR_SSE",
        "-e",
        "API_ALLOW_UNAUTHENTICATED",
        "-e",
        "API_AUTH_MODE",
        "-e",
        "API_ENABLED",
        "-e",
        "API_JWKS_ALGORITHMS",
        "-e",
        "API_JWKS_ALLOW_INSECURE_URL",
        "-e",
        "API_JWKS_AUDIENCE",
        "-e",
        "API_JWKS_CACHE_TTL_SECONDS",
        "-e",
        "API_JWKS_ISSUER",
        "-e",
        "API_JWKS_MAX_STALE_SECONDS",
        "-e",
        "API_JWKS_MAX_TOKEN_LIFETIME_SECONDS",
        "-e",
        "API_JWKS_URL",
        "-e",
        "API_REDACT_NOTE_ATTRIBUTION",
        "-e",
        "API_SSE_AUTH_CHECK_INTERVAL_SECONDS",
        "-e",
        "API_SSE_BUFFER_SIZE",
        "-e",
        "API_TOKENS_PATH",
        "-e",
        "CORS_ALLOWED_HEADERS",
        "-e",
        "CORS_ALLOWED_METHODS",
        "-e",
        "CORS_ALLOWED_ORIGINS",
        "-e",
        "CORS_EXPOSE_HEADERS",
        "-e",
        "CORS_MAX_AGE_SECONDS",
        "-e",
        "DATABASE_BUSY_TIMEOUT_MS",
        "-e",
        "DATABASE_MAX_CONNECTIONS",
        "-e",
        "DATABASE_SHOW_SQL",
        "-e",
        "DB_COMPACT_ON_UPGRADE",
        "-e",
        "FLYWAY_REPAIR",
        "-e",
        "FTS_INTEGRITY",
        "-e",
        "MCP_ALLOWED_HOSTS",
        "-e",
        "MCP_ALLOW_UNAUTHENTICATED",
        "-e",
        "MCP_HTTP_HOST",
        "-e",
        "MCP_SERVER_NAME",
        "-e",
        "MCP_TOOL_PROFILE",
        "-e",
        "READINESS_FILE",
        "-e",
        "RESOURCE_LEASES_ENFORCED",
        "-e",
        "RETENTION_AUDIT_EVENTS_DAYS",
        "-e",
        "RETENTION_CALL_LOG_DAYS",
        "-e",
        "RETENTION_EVENTS_DAYS",
        "-e",
        "RETENTION_LEASE_HISTORY_DAYS",
        "-e",
        "SCHEMA_MODE",
        "-e",
        "UPGRADE_BACKUP",
        "ghcr.io/jpicklyk/task-orchestrator:4.0.0"
      ],
      "env": {
        "DATABASE_PATH": "your-value",
        "AGENT_CONFIG_DIR": "your-value",
        "MCP_TRANSPORT": "your-value",
        "MCP_HTTP_PORT": "your-value",
        "LOG_LEVEL": "your-value",
        "LOG_FILE": "your-value",
        "API_ALLOW_QUERY_TOKEN_FOR_SSE": "your-value",
        "API_ALLOW_UNAUTHENTICATED": "your-value",
        "API_AUTH_MODE": "your-value",
        "API_ENABLED": "your-value",
        "API_JWKS_ALGORITHMS": "your-value",
        "API_JWKS_ALLOW_INSECURE_URL": "your-value",
        "API_JWKS_AUDIENCE": "your-value",
        "API_JWKS_CACHE_TTL_SECONDS": "your-value",
        "API_JWKS_ISSUER": "your-value",
        "API_JWKS_MAX_STALE_SECONDS": "your-value",
        "API_JWKS_MAX_TOKEN_LIFETIME_SECONDS": "your-value",
        "API_JWKS_URL": "your-value",
        "API_REDACT_NOTE_ATTRIBUTION": "your-value",
        "API_SSE_AUTH_CHECK_INTERVAL_SECONDS": "your-value",
        "API_SSE_BUFFER_SIZE": "your-value",
        "API_TOKENS_PATH": "your-value",
        "CORS_ALLOWED_HEADERS": "your-value",
        "CORS_ALLOWED_METHODS": "your-value",
        "CORS_ALLOWED_ORIGINS": "your-value",
        "CORS_EXPOSE_HEADERS": "your-value",
        "CORS_MAX_AGE_SECONDS": "your-value",
        "DATABASE_BUSY_TIMEOUT_MS": "your-value",
        "DATABASE_MAX_CONNECTIONS": "your-value",
        "DATABASE_SHOW_SQL": "your-value",
        "DB_COMPACT_ON_UPGRADE": "your-value",
        "FLYWAY_REPAIR": "your-value",
        "FTS_INTEGRITY": "your-value",
        "MCP_ALLOWED_HOSTS": "your-value",
        "MCP_ALLOW_UNAUTHENTICATED": "your-value",
        "MCP_HTTP_HOST": "your-value",
        "MCP_SERVER_NAME": "your-value",
        "MCP_TOOL_PROFILE": "your-value",
        "READINESS_FILE": "your-value",
        "RESOURCE_LEASES_ENFORCED": "your-value",
        "RETENTION_AUDIT_EVENTS_DAYS": "your-value",
        "RETENTION_CALL_LOG_DAYS": "your-value",
        "RETENTION_EVENTS_DAYS": "your-value",
        "RETENTION_LEASE_HISTORY_DAYS": "your-value",
        "SCHEMA_MODE": "your-value",
        "UPGRADE_BACKUP": "your-value"
      }
    }
  }
}

Values you fill in

  • DATABASE_PATH env
    SQLite database file path (default: data/current-tasks.db)
  • AGENT_CONFIG_DIR env
    Directory containing .taskorchestrator/config.yaml for workflow schemas (default: working dir)
  • MCP_TRANSPORT env
    Transport mode: stdio (default) or http
  • MCP_HTTP_PORT env
    HTTP port when using http transport (default: 3001)
  • LOG_LEVEL env
    Logging level: DEBUG, INFO, WARN, ERROR (default: INFO)
  • LOG_FILE env
    Optional log file path. Unset (default) disables file logging; logs are always JSON on stderr.
  • API_ALLOW_QUERY_TOKEN_FOR_SSE env
    Allow ?token= auth for SSE (browser EventSource workaround) (default: false)
  • API_ALLOW_UNAUTHENTICATED env
    Confirm flag required alongside API_AUTH_MODE=none (default: false)
  • API_AUTH_MODE env
    REST API auth mode: bearer, jwks, or none (with API_ALLOW_UNAUTHENTICATED=true). Required when API_ENABLED=true
  • API_ENABLED env
    Master REST API switch; set true to register /api/v1/* routes (default: false)
  • API_JWKS_ALGORITHMS env
    Comma-separated JWT algorithm allowlist for jwks mode (e.g. RS256,EdDSA)
  • API_JWKS_ALLOW_INSECURE_URL env
    Loopback-only opt-in to fetch API_JWKS_URL over plaintext http (default: false)
  • API_JWKS_AUDIENCE env
    Expected aud claim value in JWTs (jwks mode)
  • API_JWKS_CACHE_TTL_SECONDS env
    JWKS key cache TTL in seconds (default: 300)
  • API_JWKS_ISSUER env
    Expected iss claim value in JWTs (jwks mode)
  • API_JWKS_MAX_STALE_SECONDS env
    Oldest a cached key set may be and still be served after a failed refresh (default: max(3600, TTL))
  • API_JWKS_MAX_TOKEN_LIFETIME_SECONDS env
    Maximum accepted token lifetime in seconds (default: 86400)
  • API_JWKS_URL env
    JWKS endpoint URL (jwks mode); must be https and resolve to public addresses
  • API_REDACT_NOTE_ATTRIBUTION env
    Redact actor/verification on notes for non-admin callers (default: true)
  • API_SSE_AUTH_CHECK_INTERVAL_SECONDS env
    Interval for token-expiry checks on open SSE connections (default: 30)
  • API_SSE_BUFFER_SIZE env
    Last-Event-ID replay window in event ids (default: 1000; 0 = no replay)
  • API_TOKENS_PATH env
    Path to the bearer token YAML secret file (default: /run/secrets/api-tokens.yaml)
  • CORS_ALLOWED_HEADERS env
    Comma-separated CORS request headers allowlist
  • CORS_ALLOWED_METHODS env
    Comma-separated CORS methods allowlist
  • CORS_ALLOWED_ORIGINS env
    Comma-separated allowed CORS origins; empty means no cross-origin access
  • CORS_EXPOSE_HEADERS env
    Comma-separated response headers browser clients may read
  • CORS_MAX_AGE_SECONDS env
    CORS preflight cache duration in seconds (default: 3600)
  • DATABASE_BUSY_TIMEOUT_MS env
    SQLite busy timeout for startup paths in milliseconds (default: 5000, floor 100)
  • DATABASE_MAX_CONNECTIONS env
    Read-pool connection count (default: 10, clamped to 1-64)
  • DATABASE_SHOW_SQL env
    Log every SQL statement at DEBUG (default: false)
  • DB_COMPACT_ON_UPGRADE env
    Run the one-time post-upgrade startup compaction (default: true; false opts out)
  • FLYWAY_REPAIR env
    Run Flyway repair and exit (default: false)
  • FTS_INTEGRITY env
    FTS5 integrity check at startup: startup (default) or off
  • MCP_ALLOWED_HOSTS env
    Comma-separated Host header allowlist extending the loopback defaults (HTTP transport)
  • MCP_ALLOW_UNAUTHENTICATED env
    Opt in to MCP_TRANSPORT=http with API_ENABLED=false, serving /mcp as the local principal (default: false)
  • MCP_HTTP_HOST env
    Bind address when using http transport (default: 0.0.0.0)
  • MCP_SERVER_NAME env
    Service name reported in MCP identity and REST service metadata (default: mcp-task-orchestrator-current)
  • MCP_TOOL_PROFILE env
    Tool profile over stdio: orchestration (default), knowledge, or director
  • READINESS_FILE env
    Readiness marker file touched once startup succeeds (default: /tmp/mcp-task-orchestrator.ready)
  • RESOURCE_LEASES_ENFORCED env
    Deployment-wide kill switch for the resource-lease gate (default: true)
  • RETENTION_AUDIT_EVENTS_DAYS env
    Days to keep audit-class events rows (default: 0 = forever)
  • RETENTION_CALL_LOG_DAYS env
    Days to keep folded call_log rows (default: 90)
  • RETENTION_EVENTS_DAYS env
    Days to keep activity-class events rows (default: 180)
  • RETENTION_LEASE_HISTORY_DAYS env
    Days to keep closed resource_lease_history intervals (default: 365)
  • SCHEMA_MODE env
    Schema phase: migrate (default) applies pending migrations; validate refuses pending or future versions
  • UPGRADE_BACKUP env
    Verified pre-upgrade copy of a 3.x database ( .pre-4.0. .bak) taken before its first 4.0 migration; a failed copy fails startup. Set false to skip (default: true)

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

At a glance

Downloads per weeki
Not on npm/PyPI
Licencei
No licence stated
Connection
Runs on your computer
Latest versioni
4.0.0
Published to registryi
Nov 10, 2026
Code last changedi
Nov 10, 2026
Maker
jpicklyk
Packages
oci: ghcr.io/jpicklyk/task-orchestrator:4.0.0
Registry status
Active

Which apps can use it

Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.

Run on your computer in

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

All apps, with pros and cons →

Related guides

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 11, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account jpicklyk, which owns the repo

  • ✓ Pass

    Still maintained

    Code last changed yesterday

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Discussion

Ask, share a tip or report that it does not work. Sorted by what people marked helpful.

No posts yet. Be the first to ask or share.

Posts here are written by users, not the PopNx team.

Sign in with Google to post

User reviews

No reviews yet

Sign in with Google to write a review

Compared with others in Docs, sheets & office worki

  • More stars than 99% of the other 3738 servers in this category
  • Published to the registry more recently than 92% of the other 3738 servers in this category
  • Basic checks equal to or better than 100% of the other 3738 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is MCP Task Orchestrator safe?

It passed 2 of 2 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed yesterday, and the latest version (4.0.0) reached the registry yesterday.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Docker on your computer.

What can I use instead?

In the same category: Puter MCP, XcodeBuildMCP, XcodeBuildMCP

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Puter MCP

Puter MCP enables AI tools to interact with Puter: manage files, websites, workers, and more

by HeyPuterWidely used★ 44.1KUpdated 5 months ago

Runs in the cloud✓ puter.com

XcodeBuildMCP

XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.

by getsentryWidely used↓ 130.5K/wk★ 6.6KUpdated 4 months ago

Runs on your computer✓ xcodebuildmcp.com

XcodeBuildMCP

XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.

by cameroncookeWidely used↓ 130.5K/wk★ 6.6KUpdated 14 months ago

Runs on your computer

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

MCP Task Orchestrator

Server-enforced workflow discipline for AI agents.

Prompt-based frameworks hope the LLM follows instructions. This one blocks the call if it doesn't.

Task Orchestrator is an MCP server that gives AI coding agents a persistent work item graph with quality gates enforced by the server, not the prompt. It is built for developers running multi-agent or multi-session coding workflows: an orchestrator dispatching sub-agents, a fresh session picking up yesterday's work, or an autonomous loop draining a backlog. It ships as a Docker image, works with any MCP client, and has an optional Claude Code plugin that adds skills and hooks on top.

New here? Start with the [illustrated field guide](https://jpicklyk.github.io/task-orchestrator/field-guide/). It explains the ideas on this page in short visual pages, several of them interactive: fire triggers at a phase gate, click a work breakdown through its dependencies, and watch a schema resolve.


The Problem

Multi-agent workflows need infrastructure the model doesn't provide. When an orchestrator dispatches sub-agents across sessions, there's no built-in way to enforce what documentation must exist before work starts, track which agent made which change, or guarantee dependency ordering across a work breakdown. These are structural concerns — they belong in the server, not in prompts.

Task Orchestrator puts them in the server. If a required design note isn't filled, advance returns an error naming the missing note. If an upstream dependency isn't complete, the transition is blocked. Every transition and note records who made it. A new session recovers the full state in one call instead of replaying a conversation. And the rules are YAML config, not hardcoded prompts - change them without changing code.

What It Looks Like

Morning — new session, new agent, zero context:

Agent: items_read(select="context") → 2 items in work, 1 blocked, 1 stalled (missing implementation-notes) Agent: items_read(select="history", since="2026-01-14T17:00:00Z") → Recent transitions show orchestrator-1 dispatched 3 sub-agents yesterday

Agent: advance(ops=[{ op: "transition", itemId: "a3f28c01", trigger: "start" }]) -> gate_blocked: "Item a3f28c01-... is missing 1 required notes." (detail.missing: requirements)

Agent: notes_write(ops=[{ op: "upsert", itemId: "a3f28c01", key: "requirements", role: "queue", body: "Validate email format, enforce password complexity..." }]) -> results[0]: { ok: true, id: "...", version: 1, created: true }

Agent: advance(ops=[{ op: "transition", itemId: "a3f28c01", trigger: "start" }]) → queue → work. Caller recorded. No context rebuilding.


Quick Start

Prerequisite: Docker installed and running.

1. Register the server

The simplest setup is a per-session STDIO container: no port, no daemon, no REST API. Add it to your project's .mcp.json:

{

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

Claude Code users can register the same shape from the CLI 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"] }'

Restart your client. The server creates its SQLite database on first run. Without a config file every tool works in schema-free mode: no gates, no required notes. Add schemas when you want enforcement.

2. Enable workflow schemas

Create .taskorchestrator/config.yaml in your project (see Workflow Enforcement for an example, or use the plugin's /task-orchestrator:manage-schemas skill) and mount that folder into the container:

{

"mcpServers": { "mcp-task-orchestrator": { "command": "docker", "args": [ "run", "--rm", "-i", "-v", "mcp-task-data:/app/data", "-v", "/absolute/path/to/your/project/.taskorchestrator:/project/.taskorchestrator:ro", "-e", "AGENT_CONFIG_DIR=/project", "ghcr.io/jpicklyk/task-orchestrator:latest" ] } } }

At every start the server imports the mounted file into its database (the server-config-import boot step) and then serves the stored copy; editing the file takes effect on the next restart. If several containers share one data volume but mount different files, the last one to boot wins; use step 3 for multi-project setups.

Use an absolute host path. Claude Code's .mcp.json expands only environment variables (${VAR} and ${VAR:-default}), so editor-style placeholders such as ${workspaceFolder} are not substituted. Only the .taskorchestrator/ folder is exposed; the server has no access to the rest of your project.

3. Multi-project setup (HTTP + config-sync)

If you work across several repositories, run one persistent server with the REST API enabled. Each project's .taskorchestrator/config.yaml then syncs into it automatically through the plugin's config-sync hook: no per-project container, no manual mount, and config changes hot-reload without a restart. The plugin's /task-orchestrator:configure-server skill renders this setup interactively; the manual equivalent is:

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 using the HTTP shape:

{

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

And export the client-side variable that tells config-sync where the server is (without it, config-sync silently does nothing):

export TASK_ORCHESTRATOR_API_URL=http://localhost:3001

Alternatively, a client.json (apiUrl only, no token) supplies the URL. Project-mode /task-orchestrator:init writes it beside the project config, only for a loopback server and only as a bare origin with no path, query or fragment (add .taskorchestrator/client.json to .gitignore, the URL is machine-specific); /task-orchestrator:init --user writes the user-level file, which works for any host. The order is the environment variable, then the project-level file, then the user-level file. /task-orchestrator:init sets up a project root for the current directory, and /task-orchestrator:init --user creates a personal root that serves every directory without its own config.

SECURITY: unauthenticated mode (REST and /mcp alike) means anyone who can reach the port has full

read/write/delete access, as the single local principal. 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. For shared or networked deployments use bearer

tokens or JWKS auth — see Fleet Deployment.

Prefer to run without Docker? CONTRIBUTING.md covers building the fat JAR from source.


Core Capabilities

The Phase Model

Every work item has a role: queue (not started), work (in progress), review (optional, opt-in per schema), blocked (an upstream dependency is unmet), and terminal (done or cancelled). Each role maps to one or more configurable statuses. Agents move items with the advance tool's transition op rather than editing status directly, and that call is where every gate is checked. Schemas attach note requirements to roles: a note declared with role: queue must exist before the item can leave the queue phase.

Illustrated: Phase Gates draws the roles and triggers as a track and includes a gate simulator.

Workflow Enforcement

Schemas define what agents must produce at each phase, and the server blocks progression until it's done. They also set a planning floor: when an agent enters plan mode, the schema tells it what documentation must exist before implementation can start, shaping the plan itself.

# .taskorchestrator/config.yaml

work_item_schemas: feature-task: notes:

  • key: requirements role: queue required: true description: "Acceptance criteria before starting" guidance: "Cover: problem statement, acceptance criteria, alternatives considered, test strategy." skill: "spec-quality"
  • key: implementation-notes role: work required: true description: "What was built and why"

With this schema, advance transition with trigger: "start" from queue requires requirements to be filled. The server returns a gate_blocked error listing exactly which notes are missing.

The guidance field provides authoring instructions surfaced at the right moment: when an agent is about to fill that note, the response names it as guidanceKey (with the skillPointer when the note names a skill), and items_read schema returns the text. The skill field goes further, naming a skill the agent should invoke before filling the note so the evaluation follows a defined framework rather than freeform prose.

Composable Traits

Traits add cross-cutting note requirements to any schema without duplicating definitions. Define a trait once, apply it to any item type:

traits:

needs-security-review: notes:

  • key: security-assessment role: review required: true description: "Security review of auth, data handling, and access control" skill: "security-review"

work_item_schemas: feature-task: default_traits:

  • needs-security-review notes:

... base notes

Every feature-task item automatically inherits the security-assessment requirement. Traits can also be applied per item via the traits array of an items_write create or update, so a task touching authentication gets needs-security-review while a CSS cleanup doesn't.

Illustrated: Schemas and Traits shows how a type, its default traits and per-item traits resolve into one gate. Seats covers splitting a phase between several agents.

Persistent Work Item Graph

Everything is a WorkItem in a hierarchical graph. Items nest to any depth and are connected by typed dependency edges. Create an entire work breakdown atomically:

{ "ops": [{

"op": "create_tree", "root": { "title": "User Authentication", "type": "feature-task" }, "children": [ { "ref": "schema", "title": "Database schema", "type": "feature-task" }, { "ref": "api", "title": "Login API", "type": "feature-task" }, { "ref": "tests", "title": "Integration tests", "type": "feature-task" } ], "deps": [ { "from": "schema", "

Only the beginning is shown; read the rest in the repo