Skip to content

v0.23.1

Choose a tag to compare

@lynnswap lynnswap released this 25 Oct 06:53
4552992

XcodeMCPKit v0.23.1

Breaking Changes

  • Remove the xcode-mcp-proxy STDIO adapter and XcodeMCPProxyStdioAdapter library API. Connect MCP clients directly to the Streamable HTTP endpoint, normally http://localhost:8765/mcp.
  • Replace XcodeMCPKitSelectHost and createsNewHost with XcodeOpenWorkspace({path, hostIdentifier}). One headless host is shared per Xcode installation. Use XcodeListWorkspaces and its workspaceIdentifier for GUI and headless operations; replace GUI tabIdentifier inputs and obtain fresh handles after a new MCP session or host restart.
  • Replace DeviceInteractionStartWorkspaceSession with DeviceInteractionStartSession({workspaceIdentifier: ...}), and use interactionSessionKey instead of interactSessionKey for device follow-up calls.
  • Embedded server status now reports Status.hosts, with each host's identifier, kind, state, and active request count, replacing upstream-slot health and aggregate readiness fields.

Improvements

  • Keep each MCP session's scheme, run destination, and test plan separate in shared headless workspaces. Restore that session's settings before each operation and report a restoration failure instead of using another session's selection.
  • Close unused headless workspace models once all session references and active requests are gone. Retire unused hosts for other Xcode installations after a five-minute grace period.
  • Send request progress on its POST response stream and keep slow responses and idle streams alive. Cancel owned work when a client disconnects; a slow progress consumer does not block other requests.
  • Report host processes through server snapshots and shut them down on SIGINT or SIGTERM.

Migration Notes

  • The proxy no longer imposes a request timeout by default. Set --request-timeout or the embedded requestTimeout when a server deadline is required. The Swift SDK still defaults to 600 seconds, and RenderPreview defaults to 300 seconds.
  • Debug endpoints are disabled by default. Enable them with --debug-endpoints or enablesDebugEndpoints on a loopback listener.
  • Shared-host initialization no longer forwards roots, sampling, or elicitation capabilities.
  • Update the required ABIBridge version to 0.13.0.
  • Restart the proxy and reconnect MCP clients to refresh tool definitions. See the migration guide for call and API replacements.

Full Changelog: v0.22.0...v0.23.1