Pi reverses its anti-MCP stance and builds MCP into the core via Codemode

Earendil explains why its minimalist Pi coding agent now ships MCP in core, run through a JavaScript sandbox called Codemode.

Pi, Earendil's minimal terminal coding agent, used to declare proudly that it did not support MCP. It now ships MCP in its core. In "You Said No MCP!", published 29 September 2026, the team explains the reversal, and its reasons are useful to anyone who builds MCP servers or chooses an agent harness.

Earendil gives three reasons. It says "the MCP of today is not the MCP of yesteryear." It also says the changes MCP required were useful elsewhere in Pi, because what Pi needs is "a sandbox to play with in the form of an interpreter." The third reason is tool metadata: an ordinary extension could not mark tools as deferred or as available only to Codemode. Earendil does not say which protocol changes made the difference.

The team is also candid about what has not improved. It says MCP "continues to be" hard to compose. It mostly blames servers that return token-tuned text for harnesses that dump every tool into context. Its advice to server authors is to treat MCP more like OpenAPI, returning structured data and making tools discoverable through their descriptions.

Codemode is Earendil's answer to the composition problem. The model writes JavaScript that runs on the harness side and combines tool calls. According to AI/TLDR, the code runs in a QuickJS sandbox, and MCP first landed in v0.99.0 with support for stdio and streamable HTTP plus OAuth. Codemode was then headlined in Pi 1.0 on 1 October. The v1.0.1 release notes add per-project MCP overrides through .pi/mcp.json. The Register also covered the reversal.

Pi is MIT licensed. The .pi/mcp.json file controls project overrides, and the Developers Digest upgrade notes flag that stored MCP credentials are now keyed by server name and URL.

Sources