Wird geladen

Zugriff auf Ressourcen

Lektion 559 Min.

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.

Den Ressourcenfluss verstehen

Wenn ein Nutzer in deiner Anwendung etwas wie „Was ist in @..." eingibt, muss das System eine Liste verfügbarer Ressourcen für die Autovervollständigung abrufen. Der MCP-Client sendet eine ReadResourceRequest an den Server, der mit einer Liste von Dokumentnamen antwortet, auf die verwiesen werden kann.

Implementierung des Ressourcenlesens

Die Kernfunktionalität findet in der Methode read_resource deines MCP-Clients statt. Diese Methode nimmt einen URI-Parameter entgegen, der identifiziert, welche Ressource vom Server abgerufen werden soll.

Füge zunächst die notwendigen Imports hinzu, um JSON-Parsing und URL-Validierung zu handhaben:

python
import json
from pydantic import AnyUrl

Die Hauptimplementierung stellt eine Anfrage an den MCP-Server 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 Inhaltstypen

Ressourcen können unterschiedliche Arten von Inhalten zurückgeben, daher musst du den MIME-Typ überprüfen, um die Antwort angemessen zu behandeln:

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

Dieser Ansatz stellt sicher, dass JSON-Ressourcen korrekt geparst werden, während Klartext-Ressourcen unverändert zurückgegeben werden.

Testen der Implementierung

Sobald implementiert, kannst du die Ressourcenfunktionalität testen, indem du deine CLI-Anwendung ausführst. Wenn du „@" gefolgt von einem Ressourcennamen eingibst, wird das System:

  • Verfügbare Ressourcen in einer Autovervollständigungsliste anzeigen
  • Dir ermöglichen, eine Ressource mit den Pfeiltasten und der Leertaste auszuwählen
  • Den Ressourceninhalt direkt in den an Claude gesendeten Prompt einbinden

Das bedeutet, dass Claude den Dokumentinhalt sofort erhält, ohne zusätzliche Tool-Aufrufe durchführen zu müssen, was die Interaktion deutlich effizienter macht.

Wichtige Vorteile

Ressourcen bieten mehrere Vorteile gegenüber Tools für den Zugriff auf statische Informationen:

  • Inhalte werden direkt in Prompts eingebunden, was die Latenz reduziert
  • Keine zusätzlichen API-Aufrufe während des Gesprächs erforderlich
  • Bessere Nutzererfahrung durch Autovervollständigungsfunktionalität
  • Sauberere Trennung zwischen statischen Daten und dynamischen Operationen

Ressourcen funktionieren am besten für relativ statische Informationen, die du KI-Modellen leicht zugänglich machen möchtest, wie Dokumentation, Berichte oder Referenzmaterialien.