modelcontextprotocol / modelcontextprotocol/java-sdk

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

Abierto Apto para principiantes
#1,067 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

enhancement good first issue P3
Lenguaje dominante
Java
Estrellas
3.7k
Forks
1.1k
Merge medio
1 d 15 h
PR fusionados (30 d)
9

Descripción

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

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

Lee mcp-core/src/main/java/io/modelcontextprotocol/server/McpAsyncServerExchange.java, especialmente la comprobación de capability existente alrededor de las líneas 141-151 y el punto de entrada listRoots alrededor de las líneas 227-230. Confirma que una capability roots no compatible se rechaza antes de enviar cualquier solicitud, con el comportamiento de error especificado, y después ejecuta las pruebas relevantes del proyecto.

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

Evaluación

Stack tecnológico
java
Área
api
Tipo de issue
Error
Dificultad
2/5
Tiempo estimado
1-3 horas
Estado de actividad
Tranquilo
Claridad
Bien especificado
Aptitud para principiantes
82/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.