modelcontextprotocol / modelcontextprotocol/java-sdk

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

Offen Anfängerfreundlich
#1,067 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

enhancement good first issue P3
Vorherrschende Sprache
Java
Sterne
3.7k
Forks
1.1k
Ø Merge
1 T. 15 Std.
Gemergte PRs (30 T.)
9

Beschreibung

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")); 
} 

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Lies mcp-core/src/main/java/io/modelcontextprotocol/server/McpAsyncServerExchange.java, insbesondere die vorhandene Capability-Prüfung um die Zeilen 141-151 und den Einstiegspunkt listRoots um die Zeilen 227-230. Bestätige, dass eine nicht unterstützte roots-Capability abgelehnt wird, bevor irgendeine Anfrage gesendet wird, und zwar mit dem angegebenen Fehlerverhalten. Führe anschließend die relevanten Projekttests aus.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
api
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Ruhig
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
82/100

Neue Issues direkt in Ihr Postfach

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