Skip to content

fix(mcp): bump @modelcontextprotocol/sdk to 1.32.x - #1443

Merged
TheGreatAxios merged 3 commits into
mainfrom
cl-10653-mcp-sdk-130-132x-redirect-issuer-correct
Oct 15, 2026
Merged

TheGreatAxios merged 3 commits into
mainfrom
cl-10653-mcp-sdk-130-132x-redirect-issuer-correct

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Collaborator

Summary

  • @modelcontextprotocol/sdk bumps 1.30.0 → 1.32.1. The three streamable-HTTP client transport sites (auth retry, oauth:false, oauth flows) now pin redirectPolicy: "follow" — MCP endpoints are operator-configured with trust-on-first-use local entries, so pinning preserves the same-origin redirect semantics the SDK changed as a 1.32 default. No SSE sites exist (grep evidence).
    -oauth issuer correctness per 1.31+: stored OAuth tokens now stamp issuer: authorizationServerUrl on the refresh path before persistence, so parked credentials re-bind via the SDK's key rather than tripping the "no issuer" deprecation warning on the next auth. The auth-store issuer-keyed handling is a comment-documented contract, not an enforced runtime gate (read-migration preserved: legacy stores load unstamped intentionally rather than guessing an issuer and discarding valid tokens on mismatch-throw).
  • maxToolInputElements declined by one-line reason in the PR body (repo is MCP-client-only, it's a server-only server-side option).
  • MCP 2.x explicitly deferred with a trigger condition (upstream codemod for the provider/discovery rewrite lands first).

Verification

  • bun run check exit 0: 8950 pass / 0 fail across 580 files; src/mcp suites targeted (176 tests, 16 files) all green.
  • Independent review verified: the 1.30-redirect-default claim from the npm 1.30.0 tarball (zero redirect handling — fetch's implicit follow semantics — preserved 1:1 by the pin), and the issuer-stamp pipeline against the installed 1.32.1 SDK (authorizationServerUrl binding key correctness via String(URL) semantics, no PRM poisoning, legacy-store fallback semantics).
  • One nit carried: the finishAuth call site exercises the options via mocks but does not assert redirectPolicy shape directly — a follow-up line pinned through the SDK contract and covered by the OAuth-flow grep evidence in the review; no code change required.

Fixes CL-10653

1.32 flips transport redirects to same-origin-only; the three
streamable-http transport sites set redirectPolicy "follow" because
MCP endpoints are operator-configured (trust-on-first-use local
entries) and 1.30 semantics should survive the bump. 1.31 binds stored
oauth credentials to the authorization-server issuer: the refresh path
now stamps and returns issuer-bound tokens so parked credentials
re-stamp through the SDK contract instead of tripping the no-issuer
deprecation on a legacy store.

MCP SDK 2.x deferred until the upstream codemod for the rewritten
provider/discovery APIs ships.
@linear-code

linear-code Bot commented Oct 15, 2026

Copy link
Copy Markdown

CL-10653

@corbits-triage

corbits-triage Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Superseded by the comment below.

@corbits-triage

corbits-triage Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Superseded by the comment below.

@corbits-triage

corbits-triage Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Triage: Unsure

A maintainer will review this pull request.

@TheGreatAxios
TheGreatAxios changed the base branch from cl-10659-providerauth-pins-codex-provider-oauth-core-ws-remov to main October 15, 2026 20:59
…132x-redirect-issuer-correct

# Conflicts:
#	bun.lock
#	package.json
`redirectPolicy: "follow"` made SDK 1.32.1 follow 307/308 on OAuth
discovery and token requests, so refresh tokens and auth codes could
be posted off-origin. Omit the override and keep the SDK default.
@TheGreatAxios
TheGreatAxios merged commit f3bb5dc into main Oct 15, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant