Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Multi-provider Pi agent teams: parallel delegates, coordination, steering, optional recovery.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"pi-durabletask": {
"command": "npx",
"args": [
"-y",
"pi-durabletask-mcp"
]
}
}
}Run this in your terminal
claude mcp add pi-durabletask -- npx -y pi-durabletask-mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"pi-durabletask": {
"command": "npx",
"args": [
"-y",
"pi-durabletask-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"pi-durabletask": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"pi-durabletask-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
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 7, 2026
The registry name was verified with the GitHub account Nyarlathoteppppp, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 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.
The registry does not list a required key, though some servers ask you to sign in on first use.
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).
The GitHub repo last changed –, and the latest version (0.7.12) reached the registry 19 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Excaliself
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Find, read, create, edit, and organize Excalidraw drawings in your self-hosted Excaliself instance.
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.
English · 简体中文
A team of Pi agents for Claude Code and Codex, on any provider, with runs built to finish.
Quick start · Team · MCP tools · Dura · Reference
Renamed from
pi-durabletask-mcp: installpi-durateam. The old command still works; configuration,PI_DELEGATE_*variables, stored state and tool names are unchanged.
Your main agent plans, picks the models and judges the results. The reading, searching and cross-checking run on Pi delegates — Gemini, Grok, GPT, DeepSeek or any other provider Pi supports — and spend those quotas instead of your Claude Code or Codex one; what comes back is a compact status and the final report, or just a file path. In our own pre-release review, four agents read about two million tokens of this codebase on Gemini, Grok and a GPT model, and our Claude session received about 7 KB of reports.
maxToolCalls adds an optional tool-call cap. Opt in to a soft deadline, model fallback on provider errors, and sessions that survive a server restart.For example, ask your agent: *"Use Pi to review the attached diff with Gemini, Grok and GPT in parallel. Don't edit files. Report only real defects with file:line."* It calls spawn_batch with one shared prompt and three models, collects with wait, and gets three independent reports with token usage and cost.
Requires macOS or Linux, Node.js 22.19+ and Pi. CI runs Node.js 22 and 24 against Pi 1.0.0, 1.0.4, 1.1.0, 1.3.0 and 1.4.0. Model calls use your own provider credentials.
1 · Install Pi (skip if you have it) and log in to a provider:
curl -fsSL https://pi.dev/install.sh | sh
pi # then /login, or configure a provider
2 · Install pi-durateam:
npm install -g pi-durateam@latest
Or install from source
git clone https://github.com/Nyarlathoteppppp/pi-durateam.git
cd pi-durateam && npm ci && npm run build
node /absolute/path/pi-durateam/dist/index.js instead of pi-durateam
3 · Connect. Claude Code:
claude mcp add --scope user pi -- pi-durateam
Codex (~/.codex/config.toml):
[mcp_servers.pi]
command = "pi-durateam"
The Codex desktop app starts MCP servers with a minimal PATH (no Homebrew or nvm directories), so it may find neither pi-durateam nor the node it runs on. The server then never starts and the session simply has no Pi tools. Use absolute paths there:
[mcp_servers.pi]
command = "/opt/homebrew/bin/node" # output of which node args = ["/opt/homebrew/lib/node_modules/pi-durateam/dist/index.js"] # under npm root -g [mcp_servers.pi.env] PATH = "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin" # inherited by what the server starts
Reconnect the MCP server after updating pi-durateam or Pi. Other clients →
4 · Try it: "Use Pi to check the auth module for missing permission checks. Read only." init shows models, provider credentials and settings; models lists what delegates may use.
Optional: install the Agent Skill
The skill teaches your agent the workflow. Put SKILL.md in your client's skills directory:
dir="$HOME/.claude/skills/pi-durateam" # Claude Code
mkdir -p "$dir" curl -fsSL https://raw.githubusercontent.com/Nyarlathoteppppp/pi-durateam/main/skills/pi-durateam/SKILL.md \ -o "$dir/SKILL.md"
spawn starts one task in the background and returns a sessionId at once. spawn_batch starts up to 4 per call by default (PI_DELEGATE_BATCH_MAX) and checks every task first, so nothing starts if one is bad. run blocks, for quick questions. Collect with wait and until: "settled".prompt goes to every task; each task names its model, and its own prompt is appended. Different model families miss different things, but agreement is not proof: verify findings before acting.forkFrom starts new tasks from a finished session's transcript, including the files it already read; each fork gets fresh budgets.steer a running delegate, answer its questions, follow_up a finished one (it keeps what it read), abort when needed. status reports idleMs and phase, which tell slow reasoning from a hung request.attachments passes a diff or notes by absolute path; saveTo / saveDir write long reports to files and return the path; usage gives tokens and cost.coordinator plan to spawn: a Pi coordinator dispatches your members, can ask one a targeted follow-up, and writes one synthesis that cites the original reports. Requires codemode in PI_DELEGATE_ALLOW_TOOLS. For most work spawn_batch and your own judgment are simpler. Workflow →A delegate can use MCP servers from Pi's mcp.json — read-only GitHub, Serena, a browser, web search — selected per task; nothing is on by default. Add the server to ~/.pi/agent/mcp.json, permit its exact tool names in pi-durateam's environment (PI_DELEGATE_ALLOW_TOOLS="mcp__github__get_file_contents,mcp__github__search_code") and reconnect. Then select them per call:
{
"cwd": "/absolute/repo", "nativeMcp": true, "mcpServers": ["github"], "tools": ["mcpgithubget_file_contents"], "prompt": "Read package.json of OWNER/REPO with GitHub MCP and report its version." }
mcpServers are connected. Of their tools, the delegate gets only the mcp__ __ names listed in tools and permitted by PI_DELEGATE_ALLOW_TOOLS; selecting a server never grants all of its tools.tools omitted (the read-only default), or with only codemode or tool_search, which reach only tools named in tools. Granting only tools hidden in mcp.json is refused too. tools: [] remains a tool-free run.exposure in mcp.json does not matter to delegates: every tool named in tools is declared to the delegate directly, so you can keep servers deferred or codemode there for interactive Pi. Tools set to hidden stay unreachable. Add codemode to tools only for scripted loops; scripts reach the same named tools.extensions can stay false. Batch tasks inherit nativeMcp and mcpServers; coordinator members select their own.cwd, and the secret-path guard does not cover external servers. Grant capabilities deliberately.Setup for GitHub, Serena and agent-browser: optional tools. Web search: research. Details and recovery: native MCP.
Always on
spawn and spawn_batch default to 30 turns and 10 minutes, run to 12 turns and 5 minutes; the ceilings are PI_DELEGATE_MAX_TURNS (default 50) and PI_DELEGATE_MAX_DURATION_MS (default 15 minutes). maxToolCalls optionally caps the delegate's own calls.maxToolCalls is set), or after 2/3 of the time, the delegate is told to wrap up; its last turn has no tools and is reserved for the answer.answerState flags an empty (missing) or cut-off (partial) answer. A run that ends without an answer (aborted, error) returns its latest substantial text as salvagedText. Finished results name the model that answered.Opt-in
PI_DELEGATE_DEADLINE_GRACE_MS): at the deadline the tools go, no new tool call starts, and the delegate has this long to answer; only a run still without an answer is aborted.PI_DELEGATE_FALLBACK_MODELS, or fallbackModels per call): after a provider error that outlasts Pi's retries, the run continues in the same session on the next model listed, e.g. "xai/*:high,antigravity/gemini-*". In our use, a Codex quota error now continues on Grok within seconds.PI_DELEGATE_ANSWER_GRACE=1 gives one more tool-free turn, PI_DELEGATE_TOOL_CHOICE_NONE sends toolChoice: "none" on that turn, PI_DELEGATE_FINISH_THINKING lowers the thinking level once a run is wrapping up.durable: true): SQLite checkpoints; after a server restart the session resumes with its id, history and budgets, and a tool call whose outcome is unknown is never blindly replayed. Finished ones are kept for 7 days by default (retentionDays, PI_DELEGATE_RETENTION_DAYS).handoff: save a note in one Claude/Codex window, read it in another to continue the same durable session.tools gets the read-only set (read, grep, find, ls, or your PI_DELEGATE_DEFAULT_TOOLS); anything more must be permitted with PI_DELEGATE_ALLOW_TOOLS. This is not a sandbox: a delegate given bash can do anything you can..env, ~/.ssh, credentials) are refused for attachments, reads and searches; PI_DELEGATE_SECRET_GUARD=0 turns this off.PI_DELEGATE_MAX_CONCURRENT). A model name that does not resolve is refused, never replaced by the default.MIT · Built on howznguyen/pi-delegate-mcp and Pi Durable.