Ressourcen in MCP ermöglichen es deinem Server, Daten bereitzustellen, die direkt in Prompts einbezogen werden können, anstatt Tool-Aufrufe zu erfordern, um auf Informationen zuzugreifen. Dies schafft eine effizientere Möglichkeit, Kontext für KI-Modelle wie Claude bereitzustellen.
Den Ressourcenfluss verstehen

Wenn ein Nutzer auf Ressourceninhalte zugreifen möchte, funktioniert der Ablauf wie folgt:
- Der Nutzer fordert Informationen zu einer Ressource an (wie „@report.pdf")
- Dein Code benötigt eine Liste von Dokumentnamen für die Autovervollständigung
- Der MCP-Client sendet eine ReadResourceRequest an den MCP-Server
- Der Server antwortet mit einem ReadResourceResult, das die Ressourcendaten enthält
- Dein Code kann diese Daten dann direkt in Prompts einfügen
Implementierung des Ressourcenlesens
Um Ressourcen von deinem MCP-Client zu lesen, 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 deine MCP-Sitzung und verarbeitet die Antwort:
async def read_resource(self, uri: str) -> Any:
result = await self.session().read_resource(AnyUrl(uri))
resource = result.contents[0]Umgang mit verschiedenen Ressourcentypen
Ressourcen können unterschiedliche Arten von Inhalten zurückgeben, daher musst du den MIME-Typ prüfen und entsprechend parsen:
if isinstance(resource, types.TextResourceContents):
if resource.mimeType == "application/json":
return json.loads(resource.text)
return resource.textDieser Ansatz behandelt zwei Hauptszenarien:
- JSON-Ressourcen, die geparst werden müssen
- Plain-Text-Ressourcen, die unverändert zurückgegeben werden können
Testen des Ressourcenzugriffs

Du kannst überprüfen, ob deine Ressourcenimplementierung funktioniert, indem du sie in deiner Anwendung testest. Wenn du „@" gefolgt von einem Ressourcennamen eingibst, solltest du eine Autovervollständigungsliste der verfügbaren Ressourcen sehen. Die Auswahl einer Ressource fügt ihren Inhalt direkt in deinen Prompt ein.
Der entscheidende Vorteil dieses Ansatzes ist die Effizienz - Claude erhält den Dokumentinhalt sofort, ohne zusätzliche Tool-Aufrufe tätigen zu müssen, um auf die Informationen zuzugreifen.
Ressourcen- vs. Tool-Nutzung
Ressourcen sind besonders nützlich, wenn:
- Du statische oder semi-statische Inhalte hast, auf die häufig verwiesen wird
- Du die Anzahl der API-Aufrufe reduzieren möchtest
- Der Inhalt sofort im Prompt-Kontext verfügbar sein sollte
Dies unterscheidet sich von Tools, die besser für dynamische Operationen geeignet sind oder wenn die KI basierend auf dem Gesprächskontext entscheiden soll, ob sie auf bestimmte Informationen zugreift.