Skip to main content
Glama

pi-delegate-mcp

Delegate bounded coding tasks from MCP clients (Cursor) to Pi Coding Agent over stdio via the official SDK (@earendil-works/pi-coding-agent).

The MCP surface follows the Codex-style subagent tools (spawn / wait / list / read / send / interrupt). Child settings come from agent templates under ~/.cursor/pi-delegate/, not from review/implement roles.

Breaking change: delegate_review, delegate_verify, delegate_implement, delegate_judge, delegate_manual, delegate_batch, delegate_roles, get_run, get_batch, cancel_run, cancel_batch, and MCP smoke_test are removed. Use spawn_agent plus wait_agent (or wait_all_agents). CLI pi-delegate-mcp smoke remains.

Requirements

  • Node.js 22.19+

  • Existing ~/.pi/agent/auth.json (Codex OAuth) is reused — no separate Pi binary is required

  • A GitHub token with read:packages (GitHub Packages install)

Related MCP server: peer-cli-mcp

Install

Point only the @sotola122 scope at GitHub Packages (do not set a global --registry):

# ~/.npmrc
@sotola122:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=<GITHUB_TOKEN with read:packages>
npm install -g @sotola122/pi-delegate-mcp
pi-delegate-mcp install cursor --scope global
pi-delegate-mcp doctor
pi-delegate-mcp auth status

Then restart Cursor. The server registers as pi-delegate in ~/.cursor/mcp.json. install cursor seeds ~/.cursor/pi-delegate/ (AGENTS.md, config.toml, empty agents/) and does not overwrite files that already exist.

Update

pi-delegate-mcp update              # npm install -g @sotola122/pi-delegate-mcp@latest
pi-delegate-mcp update --check      # compare installed vs registry latest
pi-delegate-mcp update 0.2.1        # pin a version

Does not modify ~/.cursor/mcp.json. Restart Cursor afterward so the MCP server reloads.

Tools

Tool

Purpose

spawn_agent

Start a Pi subagent. Returns immediately {name,status:"running"}.

wait_agent

Wait briefly for one agent. Still running → compact status + wait seconds.

wait_all_agents

Same short wait until targeted agents are terminal.

list_agents

List agents in this MCP process / workspace (name + status).

read_agent_response

Latest final text only (no intermediate tool calls).

send_message

Steer a running agent (queued next turn) or start another turn when settled.

interrupt_agent

Abort the current turn. The session remains for send_message.

spawn_agent inputs: task_name and message (required); optional prompt, skills, agent_type, model, provider, effort, workspace. When workspace is omitted, the MCP client root from that call is used (several roots → the one containing the server cwd, else the first; no roots → cwd). The same default applies to wait_* / list / read / send / interrupt. Settings resolve per key: spawn args → agents/*.tomlconfig.toml [agents] → app defaults. tools has no role default — the template or [agents] must list them, or spawn fails. The parent cannot pass a tool allowlist.

Cursor MCP clients time out on long blocking calls, so wait_* never wait forever. Default budget is limits.waitBudgetMs (1500ms). Poll again using the returned wait seconds.

Responses are minified JSON with short keys (name, status, text, wait). Final text is head-truncated; the full artifact path is in full when truncated.

Identity is task_name. send_message reuses that session. Parallel work is multiple spawn_agent calls plus wait_all_agents.

CLI (sync, for a terminal): pi-delegate-mcp run --message <text> [--agent-type <name>] [--prompt …] [--skill …]. Resume with --session-id <uuid>. Connectivity check: pi-delegate-mcp smoke [--mode planned-tuple|provider-auth].

Sessions live under <workspace>/.pi-delegate/sessions/ (gitignored, 0700 / 0600). Disable with sessions.enabled: false. Concurrent follow-ups on the same id fail with session_busy.

Agent home (Codex-format templates)

Layout (agents.home, default ~/.cursor/pi-delegate):

  • config.toml[agents] defaults (provider / model / reasoning / tools / skills)

  • AGENTS.md — always-on child context. AGENTS.override.md wins if present. Repository AGENTS.md is not auto-loaded

  • agents/*.toml — named agent types (agent_type is the TOML name or file stem)

name = "reviewer"
description = "Focused read-only review"
provider = "openai-codex"
model = "gpt-5.6-sol"
model_reasoning_effort = "xhigh"
tools = ["read", "grep", "find", "ls"]
developer_instructions = """
Return concise findings with file paths.
"""

[[skills.config]]
path = "~/.agents/skills/code-review"
enabled = true

Allowed tools: read, bash, edit, write, grep, find, ls. Unknown names are rejected. An empty list is no-tools. bash / edit / write take the existing writable workspace lock. Work is in-place (no default worktree). sandbox_mode and mcp_servers in TOML are ignored.

Effort

med | high | xhigh | max → Pi thinking medium | high | xhigh | max.

When spawn omits model / provider / effort, the selected agent TOML then [agents] then app defaults (pi.provider, pi.defaultModel) apply. TOML may use model_reasoning_effort, thinking, or reasoning.

Child skills

spawn_agent.skills (paths or names under ~/.cursor/skills / ~/.agents/skills) are added to skills declared on the template. Ambient Pi skill discovery stays off. Disable with childSkills.enabled: false.

Validated packages are passed through as Pi skill paths; the delegation policy allows reading those selected packages only.

Safety

  • SDK tool allowlist is a model tool allowlist, not an OS sandbox. Policy extensions additionally block dangerous commands.

  • Child tools come from templates / [agents], not from MCP arguments.

  • Default execution is in-place. Writable tools take the workspace lock.

  • Ambient Pi skills / extensions / prompt templates / repo AGENTS.md are not loaded. Home AGENTS.md is injected on purpose.

  • No auto commit, push, PR, or deploy.

  • Read-only attachments may include files under built-in trusted roots such as ~/.cursor/plans (Cursor Plan Mode), ~/.cursor/skills, ~/.agents/skills, and staged delegate-pi / run artifact dirs. These are not writable workspaces.

Config

pi-delegate-mcp config path prints the JSONC config location (version 3). profiles / manual keys are ignored if still present.

Auth:

pi-delegate-mcp auth status
pi-delegate-mcp auth login openai-codex
pi-delegate-mcp auth logout openai-codex

Development

bun install
bun run test
bun run build
bun run check:delegate-pi-assets
A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    C
    quality
    B
    maintenance
    Bridges MCP clients with local Codex CLI to execute autonomous coding tasks, manage threads, and inspect history via SQLite state.
    13
    765
    4
    Apache 2.0
  • A
    license
    C
    quality
    B
    maintenance
    Enables MCP hosts to delegate coding tasks to Pi CLI as a programmable sub-agent with session tracking and process management.
    7
    2
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Delegates coding tasks to the local Claude Code CLI via MCP, offering run, review, and status tools for MCP-compatible agents.
    21

View all related MCP servers

Related MCP Connectors

  • A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage

  • Project management MCP for AI agents with safe task reads and writes.

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sotola122/pi-delegate-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server