Fixed
oauth_clientscache is now keyed by(server_id, redirect_uri)instead ofserver_idalone. Twomcp_http_oauthproviders pointing at the same MCP server but with differentOAUTH_PUBLIC_URLvalues (e.g. agents sharing a database, or a single agent whose tunnel hostname rotates) used to collide on the cached client registration; the second one would reuse a row whoseredirect_urithe IdP no longer accepted, producingInvalid parameter: redirect_urifrom the IdP.mcp_http_oauth.Provider.call_toolnow detects an IdPInvalid parameter: redirect_uri(orredirect_uri_mismatch) rejection, deletes the stale cached client registration and the user's cached tokens, and surfaces a structuredsystem_errorwithcode="redirect_uri_mismatch"so the LLM can explain the situation. The next call re-registers a fresh client and prompts for re-auth.
Migration
The oauth_clients table primary key changed from (server_id) to (server_id, redirect_uri). There is no automatic migration: any rows from 0.8.0 will be re-created on demand the first time each (server_id, redirect_uri) pair is used, leaving harmless orphan rows behind. Operators who want a clean slate can DELETE FROM oauth_clients; before upgrading.
Full Changelog: 0.8.0...0.8.1