github nicobailon/pi-mcp-adapter v2.38.0

4 hours ago

pi-mcp-adapter 2.38.0 makes lazy and runtime-registered MCP tools more dependable. Search-mode tools can promote themselves to full direct tools after a successful call, while keep-alive servers registered later now work even when Pi starts with no enabled servers. Compact mcpScript results are easier to understand, and configuration compatibility is broader across stdio paths, OpenCode v2, and Rust MCP schemas. OAuth and MCP UI behavior are also less fragile.

Highlights

  • Search-mode tools become full direct tools after a successful proxy call.
  • Runtime-registered keep-alive servers work from an empty MCP startup.
  • Compact mcpScript results show called tools, repeat counts, and failures.
  • Stdio paths support ~/…, and MCP UI windows can open in Orca.
  • OpenCode v2 imports, OAuth access, and Rust MCP schemas are more reliable.

Full changelog

Highlights

  • Search-mode tools become full direct tools after a successful proxy call, without requiring a separate search first.
  • Runtime-registered keep-alive servers now publish their tools even when Pi starts with no enabled MCP servers.
  • Compact mcpScript results show which tools ran, how often they ran, and how many calls failed.
  • Stdio configurations support home-relative paths, and MCP UI windows can open in Orca.
  • OpenCode v2 imports, OAuth credential access, and Rust MCP schemas are more reliable.

Added

  • A successful mcp({ tool }) call now activates a held directTools: "search" tool, so later calls use its full schema even if the model skipped search. Thanks to @chiptoe-svg for PR #670.
  • MCP stdio server commands, arguments, and working directories now support home-relative paths. Thanks to @FRFlo for PR #655.
  • Set MCP_UI_VIEWER=orca to open MCP UI windows in Orca. Thanks to @jaesimio for PR #654.

Fixed

  • Keep-alive servers registered at runtime now connect and publish their tools even when no configured servers are enabled at startup. Thanks to @ahodges22 for issue #671.
  • Valid ancestorConfigRoots entries that do not contain the current working directory are ignored without warnings. Invalid entries still warn. Thanks to @TheEdgeOfRage for issue #668 and PR #669.
  • Collapsed mcpScript results now show the tools called, repeat counts, and a visible failure count instead of only the first output line. Unsafe or ambiguous tool names are quoted and escaped, and script code remains hidden. Thanks to @sargismarkosyan for PR #666.
  • Metadata refreshes no longer reactivate an mcp gateway tool removed by the host. On hosts without unregisterTool, the adapter can still hide the gateway when direct tools cover the server and restore it when needed. Thanks to @xulongwu4 for PR #665.
  • mcpScript no longer asks models to load its intentionally hidden manual skill. Thanks to @k03mad for #659.
  • OAuth credential reads now reuse a healthy keyring Entry without retaining secret values, avoiding repeated native sessions while still observing external updates. Thanks to @mmarabel for #657.
  • Suppressing MCP UI windows with MCP_UI_VIEWER=none / off / disabled no longer prints raw output into the TUI. Thanks to @andreafspeziale for #656.
  • The published package now includes the OAuth guide linked from the README. Thanks to @dajiaohuang for PR #653.
  • OpenCode v2 configs now import. Servers under mcp.servers are picked up, disabled: true servers are skipped, and the snake_case OAuth fields client_id, client_secret, and auth_server_metadata_url are mapped. OpenCode v1 configs keep working. Thanks to @sleroq for PR #650.
  • Tools from Rust MCP servers, such as DBX, no longer print Ajv unknown format "uint64" ignored warnings on every call. Number formats like uint64, uint32, uint, and uint8 are now recognized, and type/minimum still validate the values. Thanks to @nightlitten for #649.

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

NewReleases is sending notifications on new releases.