You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added MCP prompts support as Pi slash commands under the mcp__<server>__<prompt> namespace, with capability-gated discovery, cache-backed startup registration, argument validation, lazy dispatch, and /mcp prompts listing. Thanks to Egor Egorov (@ee92) for PR #203.
Hot-loaded refreshed direct MCP tools after metadata reconnects, lazy connects, direct-tool panel changes, and MCP list-change notifications. Thanks Devin Bost (@devinbost) for PR #72.
Migrated the MCP client and interactive visualizer to the exact-pinned MCP SDK v2 beta.5 packages, with automatic protocol negotiation and client conformance coverage. Thanks Matt Carey (@mattzcarey) for PR #210.
Added disabled MCP server definitions plus /mcp disable and /mcp enable project-local overrides that preserve visibility while preventing execution. Thanks Ömer Ulusoy (@ulusoyomer) for PR #61.
Added argument completions for /mcp subcommands and reconnect/logout server names. Thanks @sting8k for PR #8.
Surfaced MCP connection failure reasons from bounded stdio diagnostics in status output and the /mcp panel, with a shortcut to copy the selected failure. Thanks @parkuman for PR #197.
Added Codex MCP imports from .codex/config.toml, with fallback to the existing JSON config. Thanks @npo-mmenke for PR #31.
Added explicit OpenCode V1 MCP imports from global and project opencode.json files, including nested config merging and environment interpolation. Thanks @NicoAvanzDev for PR #25.
Added environment-variable interpolation for HTTP MCP server URLs, with missing URL variables failing closed before requests are sent. Thanks @ozeias for PR #206.
Added settings.oauthDir to store MCP OAuth credentials in a project-specific directory, with MCP_OAUTH_DIR still taking precedence. Thanks @Termina1 for PR #105.
Added lazy-keep-alive lifecycle mode for MCP servers that should start on first use and then stay resident with health-check reconnects. Thanks @ricardoraposo for PR #143.
Added MCP_UI_VIEWER=none / off / disabled to suppress MCP UI browser or Glimpse windows while keeping inline tool results available. Thanks @stevekrouse for PR #172.
Surfaced MCP server instructions from the initialize handshake: captured at connect time, cached alongside tool metadata, shown as a truncated head in the mcp proxy tool description, previewed in mcp({ server: "name" }) listings, and available in full via the new mcp({ instructions: "name" }) mode. Thanks @JeongJuhyeon for issue #188 and PR #189.
Added createMcpAdapter({ config, configPath }) for isolated SDK configuration and file-path overrides. Thanks @Cansiny0320 for PR #86.
Changed
Removed stale hot-loaded direct tools from Pi's registry when pi.unregisterTool() is available, while preserving active-tool deactivation fallback for older Pi hosts.
Deferred loading the regex safety checker until regex search is used, improving startup time. Thanks @kaushikgopal for PR #175.
Declared Pi host packages as optional peer dependencies with exact development pins, reducing extension install footprint and avoiding host version conflicts. Thanks @t0dorakis for PR #200.
Fixed
Started MCP initialization at extension load when any server is configured with lifecycle: "eager" or "keep-alive", so hosts that drive Pi programmatically without session_start still connect startup servers. Thanks Brian Gebel (@ductiletoaster) for PR #170.
Enforced normalized standard _meta.ui.csp and OpenAI-compatible _meta["openai/widgetCSP"] metadata with response headers while preserving provider HTML. Thanks @IdoHadar for PR #195.
Avoided MCP renderer crashes without a TUI theme and preserved status-bar updates with plain fallback text. Thanks @fankangsong for PR #183.
Abandoned MCP initialization quietly when a session is disposed during eager or keep-alive connection setup. Thanks @luisfontes for PR #192.
Fenced MCP runtime ownership across Pi reloads so stale callbacks and late connections cannot outlive their session. Thanks @uuunk (Paul Lorsbach) for PR #202.
Added toolPrefix: "mcp" support for mcp__<server>_<tool> names across direct and proxy MCP tool paths. Thanks @riicodespretty for PR #99.
Sanitized dotted MCP tool names before registering them with Pi. Thanks @benjaminrickels for PR #190.
Reconnected OAuth MCP servers automatically after successful panel or /mcp-auth authorization, and made panel reconnect force a fresh connection like /mcp reconnect. Thanks @mightymatth for issue #171.
Recovered stale Streamable HTTP MCP sessions that report -32000 Server not initialized after a server restart. Thanks @vicary for issue #184.
Kept npm cache lookups working on Windows by resolving npm through cross-spawn. Thanks @zeyadhost for PR #201.
Kept direct MCP tool registration working when a host TypeBox shim does not expose Type.Unsafe. Thanks @RaviTharuma for PR #198.
Kept exact npx package specs from reusing a different same-name package version from npm's _npx cache. Thanks @danhrahal for issue #178.
Kept POST-only Streamable HTTP servers on the Streamable HTTP transport when the optional GET stream returns 405. Thanks @ramhaidar for issue #204.
Kept manual OAuth auth-start / auth-complete flows from being invalidated by keep-alive health checks, and made reserved manual callback states show a manual completion page instead of a CSRF error. Thanks @oozle for issue #207.
Accepted object-valued mcp.args in addition to JSON strings, avoiding double-encoded tool arguments while preserving provider-compatible string calls. Thanks @johnny-smitherson for issue #205.
Collapsed long single-line MCP results according to terminal-wrapped visual lines. Thanks @xz-dev for PR #181 and @maxpaulus43 for PR #177.
Recovered Streamable HTTP MCP sessions after a server restart invalidates the previous session ID. Thanks @damselem for PR #194.
Used server-advertised OAuth protected-resource metadata during authorization so resource servers can point Pi at the correct authorization server. Thanks @jameswarren for issue #173 and PR #174.
Dropped inherited HTTP auth when a higher-precedence MCP config repoints a server URL, while preserving explicit OAuth disable flags. Thanks @ductiletoaster for PR #182.