OTel client span stays Unset when the tool result has isError: true
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 79/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- python
- Ambito
- backend-api-design, observability
Direzione di ricerca
Inizia da shared/jsonrpc_dispatcher.py e leggi la gestione esistente delle risposte di errore JSON-RPC, quindi confrontala con la gestione degli errori degli strumenti in server/_otel.py e con le indicazioni in docs/gen-ai/mcp.md. Verifica una risposta riuscita contenente un CallToolResult con isError impostato. Il lavoro è completato quando lo span del client riporta error.type=tool_error e lo stato ERROR, con un test che copre questo comportamento.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
With mcp==2.3.0, the client span created in shared/jsonrpc_dispatcher.py sets ERROR status and error.type for a JSON-RPC error response (the #3174 fix), but not for a successful response whose CallToolResult.isError is true. The server span for the same call does set error.type=tool_error (server/_otel.py), so the two ends of one call disagree.
The OTel GenAI semantic conventions for MCP (docs/gen-ai/mcp.md, note on error.type) say instrumentation SHOULD set error.type to tool_error when the tool result reports an error.
Reproduction (Python client and server, Streamable HTTP, default OTel setup):
git clone https://github.com/mkwitko/mcp-reliability && cd mcp-reliability
examples/python-sdk-streamable-http/run.sh # needs docker, uv, go
go run ./cmd/mcp-reliability doctor testdata/python-sdk-default.jsonl
Output includes:
[WARN] MCP-ERR-003: client and server spans for "tools/call fail" disagree on failure: the client span lacks error.type
Captured trace and write-up: https://github.com/mkwitko/mcp-reliability/blob/v0.1.0/docs/research/python-sdk-v2-validation.md
Suggested change: after the response is parsed in the dispatcher, if the result is a CallToolResult with isError, set error.type="tool_error" and status ERROR on the client span, matching server/_otel.py. Happy to send a PR if you agree with the direction.
- Lingua principale
- Python
- Stelle
- 24.7k
- Fork
- 4.1k
- Merge medio
- 18h 27m
- PR unite (30g)
- 15
Preparare l'ambiente
- 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/python-sdk
-
bug v2
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
modelcontextprotocol/python-sdk#3811 ·
I maintainer di solito rispondono entro 1 giorno
-
bug v1 v2
Difficoltà 2/5 1-3 ore Idoneità per principianti 79/100
modelcontextprotocol/python-sdk#3781 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: Inconsistent structured output wrapping and opt-out for typing.Dict and typing sequence generics in func_metadataForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Apertabug v1 v2
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
modelcontextprotocol/python-sdk#3771 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
bug v2
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
modelcontextprotocol/python-sdk#3769 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
2026 Streamable HTTP rejects whitespace-padded Mcp-Name valuesForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Apertabug spec-2026-07-28 v2
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
modelcontextprotocol/python-sdk#3763 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di modelcontextprotocol/python-sdk
Issue simili
-
DBFS append mode silently overwrites existing filesForse già presa @IlyaKhalafi l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
fsspec/filesystem_spec#2429 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: Retrieval rerank fallback statistics stay zero after provider failureForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
volcengine/OpenViking#7014 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
fedora-copr/copr#4600 ·
I maintainer di solito rispondono entro 2 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ansys/pydpf-core#3620 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno