Follow Discord
Sweep 27 Oct 2026 · 19:04Z Build v2.1.312 531 read Stable v2.1.308 Latest v2.1.312 Next v2.1.312 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.311 ·

MCP servers using cross-app access (XAA) now pin their authorization server

For XAA MCP servers, Claude Code remembers the sign-in authorization server and errors if the server later points somewhere else

Group of 3 You'll notice No documentation found Improvements
JSON All of v2.1.311
You'll noticeTier: how much it should matter to you
2Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
MCPArea: what it touches
ImprovementsKind: in v2.1.311,
ImprovementsSection of the release

What

MCP servers are outside programs that give Claude Code extra tools, and some of them require you to sign in with OAuth, a standard way of granting access through a separate sign-in service called an authorization server. For MCP servers that use XAA (cross-app access, set with oauth.xaa in the server's configuration), Claude Code now remembers, or pins, the authorization server used when you signed in.

  • If the server's published details later name a different authorization server, sign-in stops with the error "XAA: authorization server changed" instead of following the new one.
  • Silent token refresh and discovery, the step where Claude Code looks up where to sign in, reuse the pinned server. Token refresh skips discovery when a pinned server exists.
  • Before using a configured metadata address or saved discovery details, Claude Code looks up the pinned server. For an oauth.xaa server with no pin, this now fails with an error.
  • Clearing stored MCP credentials keeps the pin (keepXaaPin). The pin also survives cleanup of placeholder entries.
  • Discovery details are no longer saved for XAA servers (saveDiscoveryState returns early when oauth.xaa is set).
  • If stored credentials cannot be read, the flow stops.

In the same change, the options used to start an MCP server replace a fromOrganization true-or-false value with a readEnvAsStarts callback.

Why

A server can no longer quietly switch the service you sign in through after you have trusted it once. If an XAA server legitimately changes its authorization server, expect the error above. Signing out does not clear the pin, so the members point to removing and re-adding the server as the way through.

Read from
Names in the bundleoauth.xaa

See this entry in the whole of v2.1.311 →

Feedback