modelcontextprotocol / modelcontextprotocol/php-sdk

[Client][Auth] SEP-2207: Request offline_access scope against OIDC-flavored AS for refresh tokens

Open
#363 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

2026-07-28 auth Client enhancement improves spec compliance
Dominant language
PHP
Stars
1.6k
Forks
173
Avg merge
2d 49m
Merged PRs (30d)
23

Description

Implements the client-side portion of SEP-2207 for the MCP Spec 2026-07-28 release.

Tracked by umbrella #338.

Spec summary

Clients SHOULD request the offline_access scope when needing refresh tokens from OIDC-style servers. Additive, non-breaking.

PHP SDK changes

  • When initiating the auth-code flow, detect OIDC-flavored AS (e.g., presence of openid in scopes_supported, or userinfo_endpoint in AS metadata) and conditionally add offline_access.
  • Tie into #319 (Auth Code + PKCE) and #323 (refresh_token grant) — without it, the refresh-token grant is moot against OIDC servers.

Related

  • Umbrella #338
  • Server-side PRM audit in companion sub-issue
  • Extends #319 and #323

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No file or test path is named. Trace the auth-code initiation entry point and authorization-server metadata handling, then check the existing work for #319 and #323. Done means OIDC-flavored servers request offline_access when refresh tokens are needed, while other flows remain unchanged and focused coverage verifies both metadata signals.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
authentication
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.