Skip to content

Verify SEP-2207: OIDC refresh token handling (already implemented via #676) #882

Closed

Description

@alexhancock

SEP-2207: OIDC-flavored refresh token guidance — rust-sdk impact

Spec PR: modelcontextprotocol/modelcontextprotocol#2207
Track: Specification · Stage: final · Theme: Enterprise Readiness
Needs code changes: Already implemented (verify only) — None

Summary

Guidance for MCP clients talking to OIDC-flavored authorization servers about requesting refresh
tokens via the offline_access scope, and that MCP servers should not include
offline_access in their responses. Pure additive guidance, no behavior change required.

rust-sdk status

Already implemented. crates/rmcp/src/transport/auth.rs has
AuthorizationManager::add_offline_access_if_supported(..), called from select_scopes(..), with a
comment explicitly citing SEP-2207: "when the AS advertises offline_access in scopes_supported,
append it so OIDC-flavored Authorization Servers will issue refresh tokens."
It also guards against
duplicate/empty appends. The SEP itself lists rust-sdk#676 as the implementing PR.

Proposed work (verification only)

  • Confirm add_offline_access_if_supported is exercised on all token-request paths (initial auth + refresh + step-up re-auth), not just the initial one.
  • Confirm the server side does not advertise offline_access in its own scopes_supported.
  • If both hold, close as already-implemented (no new code).

Affected areas

crates/rmcp/src/transport/auth.rs (only if a gap is found on a token path).

Notes

  • Effectively a no-op beyond verification; included for release completeness.

Related work

This issue is verification-only: confirm the existing implementation satisfies the finalized SEP-2207 guidance across all token paths. Close as done if it does.

Activity

  1. added
    T-testTesting related changes
    T-securitySecurity-related changes
    T-transportTransport layer changes
    P3Low: nice-to-have, long-term, or exploratory
    on Jun 2, 2026
  2. michaelneale commented on Jun 9, 2026

    @michaelneale
    Contributor

    this is nearly implemented: #897 should have the missing piece now cc @localden @alexhancock

  3. added this to the 2026-07-28 spec milestone on Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    2026-07-28P3Low: nice-to-have, long-term, or exploratoryT-securitySecurity-related changesT-testTesting related changesT-transportTransport layer changes

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions