Ressourcen in MCP ermöglichen es deinem Server, Informationen bereitzustellen, die direkt in Prompts eingebunden werden können, anstatt Tool-Aufrufe zu erfordern, um auf Daten zuzugreifen. Dies schafft eine effizientere Möglichkeit, KI-Modellen Kontext bereitzustellen.

Das obige Diagramm zeigt, wie Ressourcen funktionieren: Wenn ein Benutzer etwas wie „What's in the @..." eingibt, erkennt unser Code dies als Ressourcenanfrage, sendet eine ReadResourceRequest an den MCP-Server und erhält ein ReadResourceResult mit dem tatsächlichen Inhalt zurück.
Implementierung des Ressourcenlesens
Um den Ressourcenzugriff in deinem MCP-Client zu ermöglichen, musst du eine read_resource-Funktion implementieren. Füge zunächst die notwendigen Imports hinzu:
import json
from pydantic import AnyUrlDie Kernfunktion stellt eine Anfrage an den MCP-Server und verarbeitet die Antwort basierend auf ihrem MIME-Typ:
async def read_resource(self, uri: str) -> Any:
result = await self.session().read_resource(AnyUrl(uri))
resource = result.contents[0]
if isinstance(resource, types.TextResourceContents):
if resource.mimeType == "application/json":
return json.loads(resource.text)
return resource.textVerständnis der Antwortstruktur
Wenn du eine Ressource anfragst, gibt der Server ein Ergebnis mit einer contents-Liste zurück. Wir greifen auf das erste Element zu, da wir in der Regel nur eine Ressource gleichzeitig benötigen. Die Antwort enthält:
- Den tatsächlichen Inhalt (Text oder Daten)
- Einen MIME-Typ, der uns mitteilt, wie der Inhalt zu parsen ist
- Weitere Metadaten über die Ressource
Umgang mit Inhaltstypen
Die Funktion prüft den MIME-Typ, um zu bestimmen, wie der Inhalt verarbeitet werden soll:
- Wenn es sich um
application/jsonhandelt, wird der Text als JSON geparst und das geparste Objekt zurückgegeben - Andernfalls wird der rohe Textinhalt zurückgegeben
Dieser Ansatz behandelt sowohl strukturierte Daten (wie JSON) als auch reine Textdokumente nahtlos.
Testen des Ressourcenzugriffs
Sobald implementiert, kannst du die Ressourcenfunktionalität über deine CLI-Anwendung testen. Wenn du „@" gefolgt von einem Ressourcennamen eingibst, wird das System:
- Verfügbare Ressourcen in einer Autocomplete-Liste anzeigen
- Dir ermöglichen, eine Ressource mit den Pfeiltasten und der Leertaste auszuwählen
- Den Ressourceninhalt direkt in deinen Prompt einbinden
- Alles an das KI-Modell senden, ohne zusätzliche Tool-Aufrufe zu erfordern
Dies schafft eine deutlich reibungslosere Benutzererfahrung im Vergleich dazu, dass das KI-Modell separate Tool-Aufrufe durchführt, um auf Dokumentinhalte zuzugreifen. Der Ressourceninhalt wird Teil des anfänglichen Kontexts, was sofortige Antworten zu den Daten ermöglicht.