modelcontextprotocol / modelcontextprotocol/python-sdk
Introduce typed error classes with metadata
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 24.3k
- Forks
- 4k
- Ø Merge
- 1 T. 1 Std.
- Gemergte PRs (30 T.)
- 31
Beschreibung
Summary
Replace generic exceptions with SDK-native error classes that include useful metadata like fault attribution, retryability, and HTTP details.
Problem
The SDK currently raises generic exceptions from various layers (httpx, anyio, task groups) with no context about:
- Whether the error is retryable
- Who is at fault (client, server, network, protocol violation)
- HTTP status codes and response bodies (often discarded)
This makes it hard for users to build robust error handling.
Goal
A hierarchy of typed errors like:
McpError(base) withfault,is_retryable,http_status_code,response_bodyMcpTransportErrorfor connection/network issuesMcpProtocolErrorfor invalid JSON-RPC responsesMcpAuthErrorfor 401/403 responses
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit nachzuverfolgen, wo das SDK derzeit generische Exceptions aus httpx, anyio und Task Groups offenlegt. Lege den Umfang und die Metadatenanforderungen für die vorgeschlagene McpError-Hierarchie fest, einschließlich Fehlerzuordnung, Wiederholbarkeit, HTTP-Statuscodes und Response-Bodies. Erledigt ist die Aufgabe, wenn das Design geklärt ist und die betroffenen Fehlerpfade durchgängig typisierte, SDK-native Fehler offenlegen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- api, backend
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Ruhig
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 35/100