github nicobailon/pi-mcp-adapter v2.12.0

latest release: v2.12.1
5 hours ago

Added

  • 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.

Don't miss a new pi-mcp-adapter release

NewReleases is sending notifications on new releases.