apps/mcp, started as a stdio process. The published command is the taskgraph-ai bin. npx -y taskgraph-ai runs dist/mcp-server.js and speaks MCP on stdin and stdout. The same file is the taskgraph-mcp bin.
This page describes that process as a command, its arguments, and an environment. It does not describe Grok Bot screens or click-paths. Those were not verified. Put the object below into whatever form your bot uses for a local stdio MCP server.
Config sample
The ready-made sample isapps/docs/samples/grok-bot-connector.json:
<version> with the version taskgraph --version prints, so the connector runs the release you installed. The same fields on the shell:
core loads seven tools: get_tasks, next_task, get_task, set_task_status, add_note, parse_prd, and expand_task. For the daily loop, next_task is taskgraph next, get_task is taskgraph show, and set_task_status is taskgraph set-status. Each of those tool calls takes projectRoot, the absolute path of the project.
Where TASKGRAPH_TOOLS is set
Set TASKGRAPH_TOOLS in the connector env above, or in the shell that starts the server. The server reads it from its process environment when it starts (getToolsConfiguration in apps/mcp/src/tools/tool-registry.ts). Unset, it loads core. The sample sets core so the connector states the tier.
A project’s .env is not a source for TASKGRAPH_TOOLS. GHSA-gprw-26cx-5f4r passed a whole project .env into the Claude Code child process. A 0.61.10 allowlist was meant to stop that. GHSA-8m93-x6f3-3mfv found the CLI and the MCP server still copied the file into process.env, so the allowlist never held. The effective fix for both is 0.62.14. TaskGraph does not load a project .env into process.env, and it does not pass that file’s keys to Claude Code. It still reads the file, per project, only for TASKGRAPH_TAG, TASKGRAPH_RESPONSE_LANGUAGE, TASKGRAPH_MODEL_MAIN, TASKGRAPH_MODEL_RESEARCH, TASKGRAPH_MODEL_FALLBACK, and TASKGRAPH_ENABLE_CODEBASE_ANALYSIS. TASKGRAPH_TOOLS is not in that list. A cloned repository whose .env says TASKGRAPH_TOOLS=all leaves the server on core. See Environment variables.
Recorded loop
Checked on 2026-11-02 against commite53a2edbc8787ebba2963832ee42795f9132576c (package version 0.63.3). No model was called, and Claude Code was not signed in. The CLI and the server were started with TASKGRAPH_SKIP_AUTO_UPDATE=1. The checkout was /agent/repos/taskgraph-ai, already built (npm run build), so dist/taskgraph.js and dist/mcp-server.js were the processes below.
npm view taskgraph-ai version printed 0.63.2. npx -y taskgraph-ai@0.63.3 exited with:
node dist/mcp-server.js from this checkout. That is the file the taskgraph-ai bin executes. npx itself was not the server process.
Project
init exited 0. Stderr was empty. Stdout:
add-task exited 0. Stderr was empty. Stdout:
.taskgraph/tasks/tasks.json was pending.
The project’s .env was one line, TASKGRAPH_TOOLS=all, for the checks below. The connector env is what the server is supposed to honor.
next, then show, then set-status
The client was apps/mcp/tests/smoke/mcp-stdio.smoke.mjs. --tools core sets TASKGRAPH_TOOLS=core on the server process, which is the connector env. TASKGRAPH_TOOLS and TASKGRAPH_PROJECT_ROOT were unset in the shell first, so the only tier the server received was that core.
tools is the registered set (seven, sorted). calls is next_task, then get_task (show), then set_task_status. Each content[0].text is the tool reply:
next_task and get_task both reported task 1 as pending. set_task_status reported oldStatus pending and newStatus in-progress.
The task file after that call, .taskgraph/tasks/tasks.json, mtime 2026-11-02 22:39:17.815981290 +0000:
status is in-progress. The smoke client does not print the server’s stderr when the run succeeds, so that log is in the next section, from the same binary and TASKGRAPH_TOOLS=core.
A project .env left the tier at core
Same directory, .env still TASKGRAPH_TOOLS=all. A second stdio client, /tmp/tg-env-tier-check.mjs, spawned node /agent/repos/taskgraph-ai/dist/mcp-server.js with that directory as the working directory. It copied the shell environment, deleted TASKGRAPH_TOOLS and TASKGRAPH_PROJECT_ROOT, set TASKGRAPH_SKIP_AUTO_UPDATE=1 and NO_COLOR=1, and if PROOF_TIER was set wrote that value back to TASKGRAPH_TOOLS. It then sent initialize and tools/list.
TASKGRAPH_TOOLS absent from the process environment, the project .env value all did not register the full tool set. With the connector value core, the server still registered the seven core tools.
The client script from that check:
What this check did not verify
- A Grok Bot UI, the names of its connector fields, and a live Grok Bot session. The clients were the stdio smoke script and the script above.
npx -y taskgraph-ai@0.63.3as the server process. That version was not on the npm registry during the check (the registry’s current version was 0.63.2). The server was the builtdist/mcp-server.jsfrom this checkout.- Any tool that calls Claude Code.
parse_prdandexpand_taskwere registered and were not called. AI paths stay unverified until Stephen signs in to Claude Code. next_taskwithclaim: true. The status change wasset_task_statustoin-progress.

