modelcontextprotocol / modelcontextprotocol/php-sdk

[Client] Extend conformance client.php with scenario context env vars

Aperta
#329 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

auth Client enhancement
Lingua principale
PHP
Stelle
1.6k
Fork
173
Merge medio
2g 49m
PR unite (30g)
23

Descrizione

Context

The conformance runner ships per-scenario context via --context JSON which it passes to the client command. The current tests/Conformance/client.php only reads MCP_CONFORMANCE_SCENARIO and the server URL — it ignores client_id, client_secret, private_key_pem, signing_algorithm, idp_id_token, idp_issuer, idp_token_endpoint, idp_client_id. Without these, auth scenarios cannot exercise the SDK even after auth flows are implemented.

Scope

  • Read context from the env var the runner sets (verify exact name; commonly MCP_CONFORMANCE_CONTEXT as JSON).
  • For each scenario, wire context into Client\Builder:
    • auth/pre-registrationsetOAuthClient(client_id, client_secret).
    • auth/client-credentials-basicsetOAuthClient(...) + force client_credentials grant.
    • auth/client-credentials-jwtsetOAuthClientWithKey(client_id, private_key_pem, signing_algorithm).
    • auth/cross-app-access-complete-flow → supply IdP id_token + IdP discovery params.
  • Land this before or in parallel with auth flow implementation so each PR can be validated against conformance immediately.

Conformance scenarios unblocked

Prerequisite for all auth scenarios requiring context.

Dependencies

Independent — can land first (harness-only).

Acceptance

  • tests/Conformance/client.php updated.
  • Documented context keys in the test file's docblock.

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia da tests/Conformance/client.php e ispeziona il conformance runner per verificare l’esatta variabile d’ambiente del contesto e le chiavi JSON. Leggi i metodi disponibili di Client\Builder, quindi segui gli scenari di auth elencati per collegare il loro contesto; il lavoro è completato quando il file documenta le chiavi e gli scenari di auth ricevono il contesto richiesto per la conformance validation.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
php
Ambito
authentication, testing-qa
Tipo di issue
Funzionalità
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
72/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.