Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Implement server-side support for Client ID Metadata Documents (CIMD)

Offen
#1,801 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
35/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
python

Rechercherichtung

Beginne mit der Überprüfung der clientseitigen CIMD-Unterstützung in PR #1652 sowie der OAuth-Metadaten des SDK und der serverseitigen Autorisierungsverarbeitung. Ordne die Erkennung des fehlenden URL client_id, das Abrufen von Dokumenten, die Validierung, das Caching und den SSRF-Schutz den vorhandenen Einstiegspunkten zu. Als abgeschlossen gilt die Aufgabe, wenn Autorisierungsserver CIMD-Unterstützung bekanntgeben und die aufgeführten CIMD- und MCP-Anforderungen erfüllen, ohne Fehler zu cachen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

auth enhancement needs decision P2

Summary

PR #1652 implemented client-side support for Client ID Metadata Documents (CIMD) per SEP-991, but the server-side implementation is missing. Authorization servers built with the Python SDK cannot currently support CIMD.

Background

CIMD (draft-ietf-oauth-client-id-metadata-document-00) allows OAuth clients to use HTTPS URLs as client identifiers, where the URL points to a JSON document containing client metadata. This is the recommended registration approach per the MCP spec (ahead of DCR).

From the MCP Authorization spec:

Authorization servers and MCP clients SHOULD support OAuth Client ID Metadata Documents

Current State

Client-side (implemented in #1652)
  • is_valid_client_metadata_url() - validates HTTPS URLs with path component
  • should_use_client_metadata_url() - checks if server advertises CIMD support
  • create_client_info_from_metadata_url() - uses URL as client_id
  • ✅ OAuth flow integration with DCR fallback
Server-side (missing)
  • ❌ Never advertises client_id_metadata_document_supported=true in OAuth metadata
  • ❌ No detection of URL-formatted client_ids
  • ❌ No metadata document fetching
  • ❌ No validation (client_id matching, redirect_uri verification, document structure)
  • ❌ No caching infrastructure
  • ❌ No SSRF protection for fetching

Spec Requirements for Authorization Servers

From the MCP spec and CIMD RFC:

Requirement Level
Fetch metadata documents when encountering URL-formatted client_ids SHOULD
Validate that fetched document's client_id matches the URL exactly MUST
Validate redirect URIs against those in the metadata document MUST
Validate document structure is valid JSON with required fields MUST
Cache metadata respecting HTTP cache headers SHOULD
Protect against SSRF attacks SHOULD
Limit document size (~5KB recommended) SHOULD
Display client_id hostname during consent SHOULD
Never cache error responses MUST NOT

References

AI Disclaimer

Vorherrschende Sprache
Python
Sterne
24.3k
Forks
4k
Ø Merge
1 T. 11 Std.
Gemergte PRs (30 T.)
30

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus modelcontextprotocol/python-sdk

Alle Issues in modelcontextprotocol/python-sdk

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.