modelcontextprotocol / modelcontextprotocol/php-sdk

[Client] Implement Protected Resource Metadata discovery (RFC 9728)

Abierto
#317 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

auth Client enhancement improves spec compliance
Lenguaje dominante
PHP
Estrellas
1.6k
Forks
173
Merge medio
2 d 49 min
PR fusionados (30 d)
23

Descripción

Context

Per the MCP authorization spec (2025-06-18+), an unauthenticated client receiving a 401 MUST parse WWW-Authenticate: Bearer resource_metadata="<url>", fetch the indicated /.well-known/oauth-protected-resource document, and use it to locate the authorization server.

Scope

  • Mcp\Client\Auth\ProtectedResourceMetadataDiscoverer:
    • Parse WWW-Authenticate for resource_metadata.
    • GET the URL, parse JSON.
    • Resolve authorization_servers[], bearer_methods_supported, scopes_supported, resource (audience).
  • Validate resource matches the MCP server origin (defense-in-depth for auth/resource-mismatch, already passing).

Conformance scenarios unblocked

auth/metadata-default, auth/metadata-var1, auth/metadata-var2, auth/metadata-var3, auth/basic-cimd.

Dependencies

Blocked by: #316 (Bearer injection plumbs the 401 hook).

Acceptance

  • Unit + integration tests against fixtures from the conformance fixtures dir.
  • Conformance: 4 baseline scenarios above pass.

cc @soyuka

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con #316 para entender el hook 401 y, después, inspecciona Mcp\Client\Auth\ProtectedResourceMetadataDiscoverer y el directorio de fixtures de conformidad. Implementa el ámbito de descubrimiento de metadatos y añade cobertura de pruebas unitarias y de integración; se considera terminado cuando pasan los cuatro escenarios de referencia enumerados y la validación de resource-mismatch sigue pasando.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
php
Área
api, authentication
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
48/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.