Pi 1.0.4 lets you pick MCP tools with a pattern

Pi 1.0.4 lets --tools and --exclude-tools match MCP tools with *, adds --no-mcp, and keeps MCP tools unless a pattern starts with mcp__.

Pi 1.0.4, released at 22:03 UTC on 2026-10-05, adds * patterns to --tools and --exclude-tools. You can keep one MCP server with mcp__radius__*, remove MCP tools with --exclude-tools 'mcp__*', or disable Pi's built-in MCP support for one run with --no-mcp. When you use --tools, Pi keeps MCP tools unless one entry starts with mcp__.

Pi 1.0.4 key facts

  • --tools and --exclude-tools accept * patterns for built-in, extension, custom, and MCP tools.
  • Pi names an MCP server tool mcp__<server>__<tool>. Characters outside letters, digits, and _ become _ in the generated name.
  • --tools replaces the default tool selection, but it keeps MCP tools unless an entry starts with mcp__.
  • --exclude-tools applies after the other tool-selection options and can exclude MCP tools.
  • --no-mcp stops Pi's built-in MCP servers from connecting and removes MCP tools, resource tools, and /mcp for that run.
  • Pi treats list_mcp_resources, list_mcp_resource_templates, and read_mcp_resource as MCP tools for selection.

How Pi 1.0.4 selects MCP tools

Pi's --tools flag replaces the default selection, so list the built-in tools you want to keep. MCP tools are the exception: --tools read,bash,codemode still leaves MCP tools callable from codemode scripts. Pi 1.0.4 fixed the regression where that kind of command removed every MCP tool.

An entry that starts with mcp__ changes the rule. Pi then filters MCP tools against the names and patterns in the list. This command keeps the named built-in tools and tools from the radius server:

pi --tools read,bash,codemode,'mcp__radius__*'

Use --exclude-tools when the allowlist should stay broad and a server or tool family should be removed:

pi --exclude-tools 'mcp__*'

Pi applies exclusions after the other selection options. The mcp__* pattern therefore removes MCP tools, including the MCP resource tools, while leaving unrelated built-in tools available.

Pi 1.0.4 MCP isolation with --no-mcp

--no-mcp is stronger than a tool filter. It disables Pi's built-in MCP support for one run. No configured stdio or HTTP MCP server connects, no MCP or resource tools are declared, and interactive /mcp commands are unavailable. An extension that replaces Pi's built-in MCP support is outside this flag's scope.

Pi 1.0.4 fixes for MCP and codemode

Pi 1.0.4 also fixes four behaviors that affect tool use:

  • tools.read() returns an image file as an image block with type, data, mimeType, and note, which the codemode image() helper can display.
  • Pi freezes JavaScript built-ins before a codemode script runs. A script that assigns to a prototype such as Array.prototype.toJSON no longer crashes Pi or leaves the tool call unsettled.
  • MCP OAuth dynamic registration uses a native client, fixing the invalid_redirect_uri error reported by servers with OpenID Connect client registration.
  • MCP shutdown waits for a connecting server before returning, so its transport is not left open until a timeout.

Pi 1.0.3 Azure provider migration

Pi 1.0.3, released at 08:38 UTC on 2026-10-05, renamed the Azure provider from azure-openai-responses to azure. The change added Azure Foundry Chat Completions deployments, starting with azure/deepseek-v4-pro.

Rename the provider key in auth.json and models.json, then update the provider references in settings.json:

{
  "defaultProvider": "azure",
  "enabledModels": ["azure/*"],
  "modelThinkingLevels": {
    "azure/deepseek-v4-pro": "high"
  }
}

The environment variables AZURE_OPENAI_API_KEY, AZURE_OPENAI_BASE_URL, and AZURE_OPENAI_RESOURCE_NAME stay unchanged. A session that used azure-openai-responses falls back to another model when resumed, and Pi does not reuse its prompt cache. Migrate the provider keys before resuming sessions that must stay on Azure.

Sources

Last verified: 2026-10-06.

Spotted an outdated or wrong claim? Agents can report it with evidence throughPOST /api/feedback; an editor checks every report. See llms.txt for the agent API.