pi-subagent-mcp
This MCP server exposes pi as a sub-agent for coding assistants, letting you spawn, drive, monitor, and attach to pi sessions.
Run tasks:
pi_dispatchspawns a pi session on a task in a given cwd, with optional model override, project approval, and interactive dialog handling.Send messages:
pi_sendmessages a task in auto/prompt/steer/followUp modes.Monitor progress:
pi_statusgives lightweight state;pi_readdoes incremental event-buffer reads;pi_waitblocks until finish, dialog, or timeout and returns a summary.Handle dialogs: With interactive sessions, UI dialogs appear as
pendingRequest; answer them withpi_respond(value/confirm/cancel).Control sessions:
pi_abortcancels the current operation,pi_closekills the process, andpi_listenumerates all tasks.Attach to terminal pi:
pi_bridgesfinds bridge-enabled pi sessions;pi_attachattaches to one,pi_notifypushes text to its TUI, andpi_detachdisconnects while leaving it alive.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pi-subagent-mcpAsk pi to review the current code and report any issues"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
pi-subagent-mcp
MCP server that exposes pi (pi --mode rpc)
as a sub-agent for MCP-capable coding assistants (e.g. Kimi CLI).
Build
npm install
npm run buildRelated MCP server: pi-sylvan
Tools
Tool | Purpose |
| Spawn a pi session on a task ( |
| Message a task ( |
| State, streaming flag, last assistant text, current tool, |
| Incremental event buffer read ( |
| Block until the run finishes or a dialog needs answering; returns last assistant text + progress snapshot ( |
| Answer a |
| Abort current operation; session stays alive |
| Kill the process, drop the task |
| All tasks |
| List pi sessions running elsewhere (e.g. in a terminal) that have the bridge extension and can be attached |
| Attach to a bridge session ( |
| Disconnect an attached task; the pi session stays alive |
| Push text onto an attached pi's TUI console ( |
Extension UI dialogs (bidirectional interaction)
pi extensions can block on select/confirm/input/editor dialogs
(extension_ui_request). By default (interactive: true) the server surfaces these as
pendingRequest in pi_status/pi_wait — which returns early — and the caller answers
with pi_respond. With interactive: false (unattended runs) dialogs are auto-cancelled,
preserving the original behavior.
Note: project-local pi extensions (.pi/extensions/) only load when the project is
trusted — pass approve: true to pi_dispatch to grant that for the run. Also, pi
delays the command response for extension commands that block on a dialog; the server
therefore treats dialog activity as command acceptance so pi_dispatch/pi_send
return instead of deadlocking.
Attaching to terminal pi sessions (bridge)
pi's RPC mode is stdio-only, so a pi already running in your terminal cannot be
attached retroactively. The bridge extension solves this: installed once, every pi
session started afterwards (interactive TUI included) exposes a Unix socket at
~/.pi/bridge/<sessionId>.sock that this server can attach to.
Install (user scope, loads in every pi session):
pi install /absolute/path/to/extensions/bridge.tsThen from any MCP client:
pi_bridges → discover running sessions
pi_attach { sessionId } → get a taskId; pi_send / pi_wait / pi_read /
pi_status / pi_abort work as usual
pi_notify { taskId, message } → text appears on that pi's TUI console
pi_detach { taskId } → disconnect; the terminal session stays aliveLimitations: sessions started before the install can never be attached; attached
sessions answer their own extension dialogs in their terminal (no pendingRequest);
session replacement (/new, /resume) ends the attachment (re-attach via
pi_bridges); Unix sockets only (no Windows named pipes). See
docs/design/terminal-bridge.md.
Configuration
Environment variables:
PI_SUBAGENT_SESSION_DIR— where pi session files are stored (default:.pi-subagent/sessions/next to the package).PI_SUBAGENT_PI_PATH— override the pi binary path (default:pi).
MCP registration (example): point your client at node /path/to/dist/src/server.js.
Test
npm test # unit + smoke + (if pi is installed and logged in) integrationAdditional end-to-end scripts in scripts/ (acceptance-test.mjs,
mcp-e2e-test.mjs, dialog-e2e-test.mjs, bridge-e2e-test.mjs). Issues found during development are
logged in docs/issues/; design notes in
docs/design/.
Maintenance
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
- AlicenseCqualityBmaintenanceEnables MCP hosts to delegate coding tasks to Pi CLI as a programmable sub-agent with session tracking and process management.72MIT
- FlicenseNot gradedqualityCmaintenanceExposes Sylvan's MCP tools to a Pi coding agent, enabling management of spaces and developer shells.
- AlicenseNot gradedqualityBmaintenanceDelegates bounded coding tasks from MCP clients to the Pi Coding Agent over stdio. Supports review, verification, implementation, and batch operations with long-running task polling.MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP bridge for the Pi coding agent running in WSL, enabling task execution, research, review, and session management through MCP.MIT
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Give AI agents real phone numbers, messages, and voice calls via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/turbin/pi-subagent-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server