MCP: OpenApiSchemaConverter drops types from OpenAPI 3.1 type arrays
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 30/100
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Java
- Stelle
- 3.7k
- Fork
- 605
- Merge medio
- 2g 11h
- PR unite (30g)
- 17
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di springdoc/springdoc-openapi
-
Spring Data REST: non-exported association schemas renamed to <Name>Response since 3.1.1 (breaking), applied inconsistentlyForse già presa @wn1331 l’ha presa oggi. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
springdoc/springdoc-openapi#3429 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement upstream
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
springdoc/springdoc-openapi#3324 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement upstream
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
springdoc/springdoc-openapi#3309 · 4 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di springdoc/springdoc-openapi
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
line/centraldogma#1397 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
vert-x3/vertx-mail-client#268 ·
-
Startup can freeze while MigLayout's component wrapper runs its static initializer on the EDTApertadesktop edt not responding
Difficoltà 1/5 1-3 ore Idoneità per principianti 86/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
physical
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
antonyrag/ragleap-core#1339 ·