modelcontextprotocol / modelcontextprotocol/python-sdk

Introduce typed error classes with metadata

Offen
#1,742 1 Kommentar 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

breaking change enhancement P2 v2
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) with fault, is_retryable, http_status_code, response_body
  • McpTransportError for connection/network issues
  • McpProtocolError for invalid JSON-RPC responses
  • McpAuthError for 401/403 responses

AI Disclaimer

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Ö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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.