Use MCP tools from pi through one stable tool (mcporter), powered by MCPorter.
- pi is fundamentally CLI-first.
- Prefer native CLIs whenever available (
gh,git,kubectl,aws, etc.). - Use MCP via
mcporterwhen it adds clear value (for example: Linear, Slack, hosted auth-heavy integrations, cross-tool workflows). - This package is intentionally a thin bridge, not a replacement for pi’s normal tool-driven workflow.
- Keeps context small: one stable
mcportertool instead of exposing many MCP tools - Uses your MCPorter config/runtime as source of truth
- Supports discovery (
search), schema help (describe), and execution (call) - Returns useful error hints for auth/offline/http/stdio failures
You need MCPorter installed and configured with at least one MCP server:
npm install -g mcporter
npx mcporter list # verify your servers are visibleInstall as a pi package:
pi install npm:pi-mcporterTry it once without installing:
pi -e npm:pi-mcporter- Confirm MCPorter sees your servers:
npx mcporter list- Start pi:
pi- Ask for what you need — pi picks the right MCP tools automatically:
What are my open Linear issues this sprint?Catch me up on #engineering in Slack from today.Find the onboarding runbook in Notion and summarize the setup steps.
Tool name: mcporter
action:"search" | "describe" | "call"selector?:"server.tool"(required fordescribeandcall)query?: free-text query forsearchlimit?: result limit (default 20, max 100)args?: object arguments forcallargsJson?: JSON-object-string fallback forcalltimeoutMs?: per-call timeout override
Configure the extension in ~/.pi/agent/mcporter.json:
{
"configPath": "/absolute/path/to/mcporter.json",
"timeoutMs": 30000,
"mode": "lazy"
}MCPORTER_CONFIG=/absolute/path/to/mcporter.jsonstill overridesconfigPathfrom the settings file.configPath: optional explicit MCPorter config path. If omitted, MCPorter uses its normal default resolution.timeoutMs: optional default call timeout in milliseconds. Tool-leveltimeoutMsstill overrides this per call.mode: optional default MCP tool visibility mode.lazy: only the stablemcporterproxy tool is visible and MCP metadata loads on demandpreload: still only exposesmcporter, but preloads MCP tool metadata before agent start so the agent can skip unnecessary discovery more often
Legacy extension flags --mcporter-config and --mcporter-timeout-ms are no longer supported. Use ~/.pi/agent/mcporter.json, MCPORTER_CONFIG, and per-call timeoutMs instead.
Tool output follows pi's native expand/collapse behavior:
- Collapsed view shows a compact summary
- Expanded view shows the full rendered output
- Collapsed call headers may preview tool arguments, but sensitive fields such as tokens, passwords, API keys, authorization headers, and cookies are redacted
- Use pi's
expandToolskeybinding (defaultCtrl+O) to toggle expansion
- Unknown server/tool: run
npx mcporter listandnpx mcporter list <server>to verify names. - Auth issues: run
npx mcporter auth <server>. - Slow calls: increase
timeoutMsin~/.pi/agent/mcporter.jsonor overridetimeoutMsper tool call. - Config not found: set
configPathin~/.pi/agent/mcporter.jsonor exportMCPORTER_CONFIG=<path>. - Truncated output: the response includes a temp file path with full output.