modelcontextprotocol / modelcontextprotocol/java-sdk

Reject listRoots if not supported by client, without sending any request

Aperta Adatta ai principianti
#1,067 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

enhancement good first issue P3
Lingua principale
Java
Stelle
3.7k
Fork
1.1k
Merge medio
1g 15h
PR unite (30g)
9

Descrizione

Some requests in McpAsyncServerExchange make a point of failing fast if functionality not supported, such the condition on line 146

https://github.com/modelcontextprotocol/java-sdk/blob/fd004989b9484c9b81be6b03463396797b354804/mcp-core/src/main/java/io/modelcontextprotocol/server/McpAsyncServerExchange.java#L141-L151

listRoots does not do the same

https://github.com/modelcontextprotocol/java-sdk/blob/fd004989b9484c9b81be6b03463396797b354804/mcp-core/src/main/java/io/modelcontextprotocol/server/McpAsyncServerExchange.java#L227-L230

For example, add this

if (this.clientCapabilities.roots() == null) { 
    return Mono.error(new IllegalStateException("Client must be configured with root listing capabilities")); 
} 

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

Leggi mcp-core/src/main/java/io/modelcontextprotocol/server/McpAsyncServerExchange.java, in particolare il controllo della capability esistente intorno alle righe 141-151 e l’entry point listRoots intorno alle righe 227-230. Conferma che una capability roots non supportata venga rifiutata prima dell’invio di qualsiasi richiesta, con il comportamento di errore specificato, quindi esegui i test pertinenti del progetto.

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

Valutazione

Stack tecnologico
java
Ambito
api
Tipo di issue
Bug
Difficoltà
2/5
Tempo stimato
1-3 ore
Stato di attività
Tranquilla
Chiarezza
Specificata chiaramente
Idoneità per principianti
82/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.