Ressourcen in MCP ermöglichen es deinem Server, Daten bereitzustellen, die direkt in Prompts eingebunden werden können, anstatt Tool-Aufrufe zu erfordern, um auf Informationen zuzugreifen. Dies schafft eine effizientere Möglichkeit, KI-Modellen wie Claude Kontext bereitzustellen.
Ressourcenanfragen verstehen
Wenn du Ressourcen auf deinem MCP-Server definiert hast, benötigt dein Client eine Möglichkeit, diese anzufordern und zu nutzen. Der Client fungiert als Brücke zwischen deiner Anwendung und dem MCP-Server und übernimmt automatisch die Kommunikation und das Daten-Parsing.

Der Ablauf ist unkompliziert: Wenn ein Nutzer auf ein Dokument verweisen möchte (z. B. durch Eingabe von „@report.pdf"), verwendet deine Anwendung den MCP-Client, um diese Ressource vom Server abzurufen und ihren Inhalt direkt in den an Claude gesendeten Prompt einzubinden.
Implementierung des Ressourcen-Lesens
Die Kernfunktionalität erfordert eine read_resource-Funktion in deinem MCP-Client. Diese Funktion nimmt einen URI-Parameter entgegen, der angibt, welche Ressource abgerufen werden soll:
async def read_resource(self, uri: str) -> Any:
result = await self.session().read_resource(AnyUrl(uri))
resource = result.contents[0]Die Antwort des MCP-Servers enthält eine contents-Liste. Normalerweise benötigst du nur das erste Element, das die eigentlichen Ressourcendaten zusammen mit Metadaten wie dem MIME-Typ enthält.
Umgang mit verschiedenen Inhaltstypen
Ressourcen können unterschiedliche Arten von Inhalten zurückgeben, daher muss dein Client diese entsprechend parsen. Der MIME-Typ gibt dir einen Hinweis darauf, wie die Daten zu behandeln sind:
if isinstance(resource, types.TextResourceContents):
if resource.mimeType == "application/json":
return json.loads(resource.text)
return resource.textDieser Ansatz stellt sicher, dass JSON-Ressourcen korrekt in Python-Objekte geparst werden, während reine Textressourcen als Strings zurückgegeben werden. Der MIME-Typ dient dir als Hinweis zur Bestimmung der richtigen Parsing-Strategie.
Erforderliche Imports
Damit dies ordnungsgemäß funktioniert, benötigst du diese Imports in deinem MCP-Client:
import json
from pydantic import AnyUrlDas json-Modul übernimmt das Parsen von JSON-Antworten, während AnyUrl die korrekte Typbehandlung für den URI-Parameter sicherstellt.
Testen des Ressourcenzugriffs
Nach der Implementierung kannst du die Funktionalität über deine CLI-Anwendung testen. Wenn du etwas wie „Was steht im @report.pdf-Dokument?" eingibst, sollte das System:
- Verfügbare Ressourcen in einer Autovervollständigungsliste anzeigen
- Dir erlauben, eine Ressource auszuwählen
- Den Ressourceninhalt automatisch abrufen
- Diesen Inhalt in den Prompt an Claude einbinden

Der entscheidende Vorteil besteht darin, dass Claude den Dokumentinhalt direkt im Prompt erhält, wodurch Tool-Aufrufe zum Zugriff auf die Informationen entfallen. Dies macht Interaktionen schneller und effizienter.
Integration in deine Anwendung
Denke daran, dass der MCP-Client-Code, den du schreibst, von anderen Teilen deiner Anwendung verwendet wird. Die read_resource-Funktion wird zu einem Baustein, den andere Komponenten aufrufen können, um Dokumentinhalte abzurufen, verfügbare Ressourcen aufzulisten oder Ressourcendaten in Prompts zu integrieren.
Diese Trennung der Zuständigkeiten hält deinen Code übersichtlich: Der MCP-Client übernimmt die Kommunikation mit dem Server, während sich deine Anwendungslogik darauf konzentriert, wie diese Daten effektiv genutzt werden.