MCP: OpenApiSchemaConverter drops types from OpenAPI 3.1 type arrays
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 30/100
Línea de trabajo
Start with OpenApiSchemaConverter.buildInputSchema(...) in the springdoc-openapi-starter-common-mcp module and inspect how it handles Schema#getTypes(). Check the existing converter tests for multi-type OpenAPI 3.1 schemas. Done means emitted JSON Schema preserves all declared types while single-type schemas and OpenAPI 3.0 nullable: true still work; linked pull request #3428 is already open.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
OpenApiSchemaConverter in springdoc-openapi-starter-common-mcp converts a multi-type OpenAPI 3.1 schema into a single JSON Schema type. It reads only one entry from Schema#getTypes(). This narrows the published MCP tool input schema, so a client can reject a value that the REST API contract permits.
To Reproduce
- Springdoc: 3.2.0, module
springdoc-openapi-starter-common-mcp - Convert an operation with this OpenAPI 3.1 request body using
OpenApiSchemaConverter.buildInputSchema(...):
requestBody:
content:
application/json:
schema:
type: object
properties:
content:
type: [string, 'null']
The emitted body.properties.content.type is a string containing only one declared type. If the converter retains "string", a tool call with content: null fails input validation.
Expected behavior
The emitted property schema retains the complete type array:
{ "type": ["string", "null"] }
This also applies to type arrays without null, for example ["integer", "string"]. Existing single-type schemas and OpenAPI 3.0 nullable: true should continue to work.
- Lenguaje dominante
- Java
- Estrellas
- 3.7k
- Forks
- 605
- Merge medio
- 2 d 11 h
- PR fusionados (30 d)
- 17
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de springdoc/springdoc-openapi
-
Spring Data REST: non-exported association schemas renamed to <Name>Response since 3.1.1 (breaking), applied inconsistentlyPosiblemente ocupada @wn1331 la tomó hoy. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
springdoc/springdoc-openapi#3429 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Add support for OpenAPI spec 3.2Abiertoenhancement upstream
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
springdoc/springdoc-openapi#3324 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
enhancement upstream
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
springdoc/springdoc-openapi#3309 · 4 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
Todos los issues de springdoc/springdoc-openapi
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
line/centraldogma#1397 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
vert-x3/vertx-mail-client#268 ·
-
Startup can freeze while MigLayout's component wrapper runs its static initializer on the EDTAbiertodesktop edt not responding
Dificultad 1/5 1-3 horas Aptitud para principiantes 86/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
physical
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
antonyrag/ragleap-core#1339 ·