CLI and mcpdo JSON error envelopes drop the structured Retry-After data from a 429
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 72/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
Direzione di ricerca
Start in core/cli/error-handler.ts and read how it builds the shared JSON error envelope, then trace AnnotatedRateLimitData in core/mcp/rateLimit.ts. Follow each CLI's output path and add or update tests for both clients, including parsed, malformed, and missing Retry-After values. Done means both envelopes preserve the structured data consistently and the issue's open decision about a dedicated code and exit code is resolved.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Found during the v2.12.0 release smoke (#2764), while verifying #2442 / PR #2737.
Problem
#2737 annotates a throttled request's error with structured rate-limit data on error.data (AnnotatedRateLimitData in core/mcp/rateLimit.ts: method, retryAfter, retryAfterMs). That is so "any consumer that wants a countdown or JSON output" can act on it. The CLIs' JSON error envelopes drop it, so a script driving them can only scrape the prose message:
# one-shot CLI, tools/list answered with 429 + Retry-After: 30
{"error":{"code":"error","message":"Rate limited by the server (HTTP 429) on tools/list. The server asked to retry after 30s. Error POSTing to endpoint: slow down","cause":"Error POSTing to endpoint: slow down","status":429}}
# mcpdo, same server
{"error":{"code":"error","message":"Rate limited by the server (HTTP 429) on tools/list. The server asked to retry after 30s. Error POSTing to endpoint: slow down"}}
The envelope is built in core/cli/error-handler.ts, which both CLIs share (#2461).
Expected
When the error carries rate-limit data, the envelope adds the structured fields alongside the existing ones, for example:
{"error":{"code":"rate_limited","message":"…","status":429,"method":"tools/list","retryAfter":"30","retryAfterMs":30000}}
retryAfteris the header as sent, whichAnnotatedRateLimitDataalready preserves verbatim for a malformed value.retryAfterMsis present only when the header parsed.- A missing header omits both fields rather than emitting
null, or emitsnullconsistently, whichever the envelope's existing conventions favor. - Whether a dedicated
code(and exit code) is worth adding for rate limiting is part of this issue to decide. The current"error"/ exit 1 is the fallback.
Both CLIs need tests, since the envelope is shared but each client's output path is separate.
- Lingua principale
- TypeScript
- Stelle
- 11.1k
- Fork
- 1.6k
- Merge medio
- 4h 56m
- PR unite (30g)
- 155
Preparare l'ambiente
- Include un Dockerfile o un 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/inspector
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
modelcontextprotocol/inspector#2810 ·
I maintainer di solito rispondono entro 1 giorno
-
local:gate cannot pass on Windows — pre-existing failures in test:scripts, coverage:web and coverage:mcpdoForse già presa @olaservo l’ha presa 1 giorno fa. Apertabug v2
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
modelcontextprotocol/inspector#2748 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
blocked chore v2
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
modelcontextprotocol/inspector#2548 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
blocked chore v2
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
modelcontextprotocol/inspector#2547 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Create the GitHub App for board writes and security-alert reads, and store its credentials as org secretsForse già presa @cliffhall l’ha presa 6 giorni fa. Apertachore v2
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
modelcontextprotocol/inspector#2544 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di modelcontextprotocol/inspector
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
Merit-Systems/x402scan#1312 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Native Web
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
digitalfabrik/integreat-app#4517 ·
I maintainer di solito rispondono entro 2 giorni
-
TLS guide repeats certs/ in the certificate directoryForse già presa @maheshrijal l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
prometheus/docs#3156 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
medusajs/dtc-starter#90 ·
I maintainer di solito rispondono entro 1 giorno