Pi's CLI connects MCP servers and composes their tools in JavaScript
0.99.0 (2026-09-29) brings built-in MCP and codemode to the CLI; current stable is 1.2.0. Scripts compose registered tools without a private MCP bridge. Enabled MCP servers with default exposure can activate codemode; SDK sessions do not load these built-ins automatically. Nested tool calls traverse hooks, while script classifier and image-model operations use session credentials outside the individual tool-call hooks.
What this changes for operators
- CLI integrators: try a configured MCP server and one multi-tool script on 1.2.0 before maintaining an equivalent bridge. Compare accepted outcomes, setup and review time before removing it; no net time saving or current-version quality comparison was measured.
- Read global and trusted-project mcp.json before launch. Stdio servers inherit Pi’s environment and run beside the harness, so contain the whole process or scrub its environment. --no-mcp disables built-in MCP; autoEnableCodemode: false only prevents its automatic codemode activation.
- Keep authorization in hooks and govern script model credentials. Tool declarations and codemode-only presentation do not prove a callable-set restriction. Denial tests covering root calls, nested calls and model spend would settle a particular deployment’s boundary; watch for tagged repairs to issue 10426 before relying on only-mode enforcement.
Primary sources
- github_release 2026-10-13-pi-coding-agent-mcp-is-built-into-the-cli-from-0-99-0-project-servers-wait-for-trust-stdio-servers-inherit earendil-works/pi / v0.99.0
- commit 2026-10-13-pi-coding-agent-mcp-is-built-into-the-cli-from-0-99-0-project-servers-wait-for-trust-stdio-servers-inherit github.com/earendil-works/pi/commit/8562bcf66a8eeefdf75ddd231ca9d7aa7d64f86e
- tagged_commit_file 2026-10-13-pi-coding-agent-mcp-is-built-into-the-cli-from-0-99-0-project-servers-wait-for-trust-stdio-servers-inherit earendil-works/pi / packages/coding-agent/src/extensions/mcp/config.ts#L134-L148
- tagged_commit_file 2026-10-13-pi-coding-agent-mcp-is-built-into-the-cli-from-0-99-0-project-servers-wait-for-trust-stdio-servers-inherit earendil-works/pi / packages/coding-agent/src/extensions/mcp/runtime.ts#L98-L121
- tagged_commit_file 2026-10-13-pi-coding-agent-mcp-is-built-into-the-cli-from-0-99-0-project-servers-wait-for-trust-stdio-servers-inherit earendil-works/pi / packages/mcp/src/transports/stdio.ts#L94
- github_release 2026-10-13-pi-coding-agent-mcp-is-built-into-the-cli-from-0-99-0-project-servers-wait-for-trust-stdio-servers-inherit earendil-works/pi / v0.99.2
- tagged_commit_file 2026-10-13-pi-coding-agent-mcp-is-built-into-the-cli-from-0-99-0-project-servers-wait-for-trust-stdio-servers-inherit earendil-works/pi / packages/coding-agent/src/extensions/mcp/config.ts#L4-L12
- tagged_commit_file 2026-10-13-pi-coding-agent-mcp-is-built-into-the-cli-from-0-99-0-project-servers-wait-for-trust-stdio-servers-inherit earendil-works/pi / packages/coding-agent/docs/mcp.md
- tagged_commit_file 2026-10-13-pi-coding-agent-mcp-is-built-into-the-cli-from-0-99-0-project-servers-wait-for-trust-stdio-servers-inherit earendil-works/pi / packages/coding-agent/docs/security.md#L13-L17
- tagged_commit_file 2026-10-13-pi-coding-agent-codemode-lets-the-model-script-tool-calls-the-tool-calls-stay-gated-its-model-calls-do-not earendil-works/pi / packages/coding-agent/src/core/agent-session.ts#L730-L760
- tagged_commit_file 2026-10-13-pi-coding-agent-codemode-lets-the-model-script-tool-calls-the-tool-calls-stay-gated-its-model-calls-do-not earendil-works/pi / packages/coding-agent/src/core/agent-session.ts#L1562-L1571
- tagged_commit_file 2026-10-13-pi-coding-agent-codemode-lets-the-model-script-tool-calls-the-tool-calls-stay-gated-its-model-calls-do-not earendil-works/pi / packages/coding-agent/src/extensions/codemode/execute.ts#L740-L751
- tagged_commit_file 2026-10-13-pi-coding-agent-codemode-lets-the-model-script-tool-calls-the-tool-calls-stay-gated-its-model-calls-do-not earendil-works/pi / packages/coding-agent/src/extensions/mcp/index.ts#L501-L525
- official_docs 2026-10-13-pi-coding-agent-codemode-lets-the-model-script-tool-calls-the-tool-calls-stay-gated-its-model-calls-do-not github.com/earendil-works/pi/issues/10426
- tagged_commit_file 2026-10-13-pi-coding-agent-codemode-lets-the-model-script-tool-calls-the-tool-calls-stay-gated-its-model-calls-do-not earendil-works/pi / packages/coding-agent/src/core/agent-session.ts#L652-L674
- tagged_commit_file 2026-10-13-pi-coding-agent-codemode-lets-the-model-script-tool-calls-the-tool-calls-stay-gated-its-model-calls-do-not earendil-works/pi / packages/coding-agent/src/extensions/codemode/tool.ts#L371-L390
- tagged_commit_file 2026-10-13-pi-coding-agent-codemode-lets-the-model-script-tool-calls-the-tool-calls-stay-gated-its-model-calls-do-not earendil-works/pi / packages/coding-agent/src/extensions/codemode/index.ts#L14-L45
- github_release 2026-10-13-pi-coding-agent-codemode-lets-the-model-script-tool-calls-the-tool-calls-stay-gated-its-model-calls-do-not earendil-works/pi / v1.0.0
- github_release 2026-10-13-pi-coding-agent-tools-stopped-being-a-strict-allowlist-once-codemode-or-tool-search-is-in-the-list-1-0 earendil-works/pi / v1.0.4
- commit 2026-10-13-pi-coding-agent-tools-stopped-being-a-strict-allowlist-once-codemode-or-tool-search-is-in-the-list-1-0 github.com/earendil-works/pi/commit/04b97ef0007ad2d55615d0a545163387a701fc67
- tagged_commit_file 2026-10-13-pi-coding-agent-tools-stopped-being-a-strict-allowlist-once-codemode-or-tool-search-is-in-the-list-1-0 earendil-works/pi / packages/coding-agent/docs/cli.md#L111-L138
- tagged_commit_file 2026-10-13-pi-coding-agent-tools-stopped-being-a-strict-allowlist-once-codemode-or-tool-search-is-in-the-list-1-0 earendil-works/pi / packages/coding-agent/src/core/agent-session.ts#L1541-L1556
- tagged_commit_file 2026-10-13-pi-coding-agent-tools-stopped-being-a-strict-allowlist-once-codemode-or-tool-search-is-in-the-list-1-0 earendil-works/pi / packages/coding-agent/docs/settings.md#L303
- tagged_commit_file 2026-10-13-pi-coding-agent-tools-stopped-being-a-strict-allowlist-once-codemode-or-tool-search-is-in-the-list-1-0 earendil-works/pi / packages/coding-agent/src/core/mcp-servers.ts#L12-L40
- tagged_commit_file 2026-10-13-pi-coding-agent-tools-stopped-being-a-strict-allowlist-once-codemode-or-tool-search-is-in-the-list-1-0 earendil-works/pi / packages/coding-agent/src/extensions/mcp/index.ts#L466-L488
Signal metadata
Source findings
- 2026-10-13-pi-coding-agent-mcp-is-built-into-the-cli-from-0-99-0-project-servers-wait-for-trust-stdio-servers-inherit 2026-10-13-pi-coding-agent-mcp-is-built-into-the-cli-from-0-99-0-project-servers-wait-for-trust-stdio-servers-inherit
- 2026-10-13-pi-coding-agent-codemode-lets-the-model-script-tool-calls-the-tool-calls-stay-gated-its-model-calls-do-not 2026-10-13-pi-coding-agent-codemode-lets-the-model-script-tool-calls-the-tool-calls-stay-gated-its-model-calls-do-not
- 2026-10-13-pi-coding-agent-tools-stopped-being-a-strict-allowlist-once-codemode-or-tool-search-is-in-the-list-1-0 2026-10-13-pi-coding-agent-tools-stopped-being-a-strict-allowlist-once-codemode-or-tool-search-is-in-the-list-1-0
Featured in
- The Handoff Has an API / 2026-10-13
Run: 2026-10-13-profile-refresh-2026-09-21_2026-10-13-frontier-v0
Schema: bitter.frontier_signals.v0 / ID: 2026-10-13-pi-coding-agent-native-mcp-and-tool-scripting
Research evidence and publication history are open in the repository.