mcp: client returns an input_required result that has only requestState instead of retrying
I maintainer di solito rispondono entro 1 giorno
Una pull request collegata è già stata integrata.
- #1365 di @SergeevDmitry — integrata
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- Mezza giornata
- Idoneità per principianti
- 62/100
Direzione di ricerca
The early return is in clientMultiRoundTripMiddleware in mcp/mrtr.go, around lines 81-84, which exits when InputRequests is nil before checking the result type. Read that middleware and the MRTR section of client.md, then write a test where the server answers with an input_required result carrying only requestState. Done when ClientSession.CallTool retries with requestState echoed until NeedsInput() is false, and the existing MRTR tests still pass.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What did you do?
Called a tool on a server that answers the first tools/call with an InputRequiredResult carrying only requestState:
{"resultType":"input_required","requestState":"continue"}
SEP-2322 allows this. Servers "MUST include at least one of inputRequests or requestState", and without inputRequests "the client MAY retry the original request immediately" (MRTR). The TypeScript SDK server sends such results from inputRequired({ requestState }).
What did you see?
ClientSession.CallTool returns that result to the caller (NeedsInput() is true, no content), with the multi-round-trip middleware enabled. clientMultiRoundTripMiddleware returns as soon as InputRequests is nil, before it looks at the result type (mrtr.go L81-L84).
What did you expect to see?
The middleware retries the call with the requestState echoed. The client docs say it retries while NeedsInput() is true, "repeating until the result no longer needs input" (client.md). The TypeScript client retries these results as load-shedding rounds.
What version of the Go MCP SDK are you using?
main at 71fd646, also v1.8.0.
What version of Go are you using (go version)?
go1.27.1 darwin/arm64
I have a fix with tests and will open a PR.
AI assistance: I used Claude Code to help investigate this.
- Lingua principale
- Go
- Stelle
- 5.2k
- Fork
- 583
- Merge medio
- 2g 1h
- PR unite (30g)
- 55
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
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 modelcontextprotocol/go-sdk
-
Session-lifecycle bookkeeping logs at info, spamming multiple log lines per request on stateless streamable HTTPForse già presa @anneheartrecord l’ha presa 51 giorni fa. ApertaP3
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
modelcontextprotocol/go-sdk#1204 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Expose generic `SendNotification` on `ServerSession` for custom protocol extensionsForse già presa @ajuijas l’ha presa 217 giorni fa. Apertaneeds investigation
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
modelcontextprotocol/go-sdk#745 · 13 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
mcp: a property with an array "type" (any pointer field from jsonschema.For) disables x-mcp-header handling for the whole toolForse già presa @jay23606 l’ha presa 1 giorno fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 50/100
modelcontextprotocol/go-sdk#1406 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
jsonrpc: decimal and exponent integer IDs still lose precision after #1401Forse già presa @skosovsky l’ha presa 2 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
modelcontextprotocol/go-sdk#1404 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
mcp: rejected request IDs receive no JSON-RPC error envelopeForse già presa @skosovsky l’ha presa 5 giorni fa. Aperta
Difficoltà 4/5 1-2 giorni Idoneità per principianti 68/100
modelcontextprotocol/go-sdk#1391 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di modelcontextprotocol/go-sdk
Issue simili
-
agent-butler-finding chore
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
jordansmall/spindrift#5575 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
JakeChampion/lang#12684 ·
I maintainer di solito rispondono entro 1 giorno
-
goose sub-agent runs are never indexed: blame finds no session for any file a `delegate` child wroteApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
C-bug O-community X-blathers-triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
cockroachdb/cockroach#176150 · 1 commento ·
I maintainer di solito rispondono entro 12 giorni
-
triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
wakatime/wakatime-cli#1649 ·
I maintainer di solito rispondono entro 1 giorno