Wird geladen

Zugriff auf Ressourcen

Lektion 569 Min.

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:

python
import json
from pydantic import AnyUrl

Die Kernfunktion stellt eine Anfrage an deine MCP-Sitzung und verarbeitet die Antwort:

python
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:

python
if isinstance(resource, types.TextResourceContents):
    if resource.mimeType == "application/json":
        return json.loads(resource.text)
    
    return resource.text

Dieser 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.