1. Konzepte
MCP Offizielle Dokumentation (Deutsche)
  • Erste Schritte
    • Einführung
    • Beispielserver
    • Beispielkunden
    • Quickstart
      • Für Serverentwickler
      • Für Client-Entwickler
      • Für Claude Desktop-Benutzer
  • Anleitungen
    • Erstellen von MCP mit LLMs
    • Debuggen
    • Inspektor
  • Konzepte
    • Kernarchitektur
    • Ressourcen
    • Eingabeaufforderungen
    • Werkzeuge
    • Probenahme
    • Wurzeln
    • Transportmöglichkeiten
  • Entwicklung
    • Was ist neu
    • Fahrplan
    • Beitragen
  1. Konzepte

Werkzeuge

1.
Ermöglichen Sie LLMs, Aktionen über Ihren Server auszuführen
Tools sind ein leistungsstarkes Grundelement im Model Context Protocol (MCP), das es Servern ermöglicht, ausführbare Funktionen für Clients bereitzustellen. Durch Tools können LLMs mit externen Systemen interagieren, Berechnungen durchführen und Aktionen in der realen Welt ausführen.
Tools sind modellgesteuert konzipiert, was bedeutet, dass Tools von Servern für Clients bereitgestellt werden, mit der Absicht, dass das KI-Modell sie automatisch aufrufen kann (mit einem Menschen in der Schleife, um die Genehmigung zu erteilen).

Überblick#

Tools in MCP ermöglichen es Servern, ausführbare Funktionen bereitzustellen, die von Clients aufgerufen und von LLMs verwendet werden können, um Aktionen auszuführen. Zu den wichtigsten Aspekten von Tools gehören:
Discovery: Clients können verfügbare Tools über den Endpunkt tools/list auflisten
Invocation: Tools werden über den Endpunkt tools/call aufgerufen, wobei Server die angeforderte Operation ausführen und Ergebnisse zurückgeben
Flexibilität: Tools können von einfachen Berechnungen bis hin zu komplexen API-Interaktionen reichen
Wie Ressourcen werden Tools durch eindeutige Namen identifiziert und können Beschreibungen enthalten, um ihre Verwendung zu erleichtern. Im Gegensatz zu Ressourcen stellen Tools jedoch dynamische Operationen dar, die den Zustand ändern oder mit externen Systemen interagieren können.

Tool-Definitionsstruktur#

Jedes Tool ist mit der folgenden Struktur definiert:

Implementierung von Tools#

Hier ist ein Beispiel für die Implementierung eines einfachen Tools in einem MCP-Server:
TypeScript
Python

Beispielhafte Tool-Muster#

Hier sind einige Beispiele für Arten von Tools, die ein Server bereitstellen könnte:

Systemoperationen#

Tools, die mit dem lokalen System interagieren:

API-Integrationen#

Tools, die externe APIs umschließen:

Datenverarbeitung#

Tools, die Daten transformieren oder analysieren:

Bewährte Verfahren#

Bei der Implementierung von Tools:
1.
Geben Sie klare, beschreibende Namen und Beschreibungen an
2.
Verwenden Sie detaillierte JSON-Schema-Definitionen für Parameter
3.
Fügen Sie Beispiele in Tool-Beschreibungen ein, um zu demonstrieren, wie das Modell sie verwenden soll
4.
Implementieren Sie eine ordnungsgemäße Fehlerbehandlung und -validierung
5.
Verwenden Sie Fortschrittsberichte für lange Operationen
6.
Halten Sie Tool-Operationen fokussiert und atomar
7.
Dokumentieren Sie erwartete Rückgabewertstrukturen
8.
Implementieren Sie ordnungsgemäße Timeouts
9.
Erwägen Sie eine Ratenbegrenzung für ressourcenintensive Operationen
10.
Protokollieren Sie die Tool-Nutzung zur Fehlersuche und Überwachung

Sicherheitsüberlegungen#

Bei der Bereitstellung von Tools:

Eingabevalidierung#

Validieren Sie alle Parameter anhand des Schemas
Bereinigen Sie Dateipfade und Systembefehle
Validieren Sie URLs und externe Kennungen
Überprüfen Sie Parametergrößen und -bereiche
Verhindern Sie Command Injection

Zugriffskontrolle#

Implementieren Sie bei Bedarf eine Authentifizierung
Verwenden Sie geeignete Autorisierungsprüfungen
Überwachen Sie die Tool-Nutzung
Begrenzen Sie die Anfragerate
Überwachen Sie auf Missbrauch

Fehlerbehandlung#

Geben Sie keine internen Fehler an Clients weiter
Protokollieren Sie sicherheitsrelevante Fehler
Behandeln Sie Timeouts angemessen
Bereinigen Sie Ressourcen nach Fehlern
Validieren Sie Rückgabewerte

Tool-Discovery und -Aktualisierungen#

MCP unterstützt die dynamische Tool-Discovery:
1.
Clients können verfügbare Tools jederzeit auflisten
2.
Server können Clients benachrichtigen, wenn sich Tools ändern, indem sie notifications/tools/list_changed verwenden
3.
Tools können während der Laufzeit hinzugefügt oder entfernt werden
4.
Tool-Definitionen können aktualisiert werden (dies sollte jedoch sorgfältig erfolgen)

Fehlerbehandlung#

Tool-Fehler sollten innerhalb des Ergebnisobjekts gemeldet werden, nicht als Fehler auf MCP-Protokollebene. Dies ermöglicht es dem LLM, den Fehler zu sehen und möglicherweise zu beheben. Wenn ein Tool auf einen Fehler stößt:
1.
Setzen Sie isError im Ergebnis auf true
2.
Fügen Sie Fehlerdetails in das Array content ein
Hier ist ein Beispiel für eine ordnungsgemäße Fehlerbehandlung für Tools:
TypeScript
Python
Dieser Ansatz ermöglicht es dem LLM zu erkennen, dass ein Fehler aufgetreten ist, und möglicherweise Korrekturmaßnahmen zu ergreifen oder menschliches Eingreifen anzufordern.

Testen von Tools#

Eine umfassende Teststrategie für MCP-Tools sollte Folgendes abdecken:
Funktionale Tests: Überprüfen Sie, ob Tools mit gültigen Eingaben korrekt ausgeführt werden und ungültige Eingaben ordnungsgemäß verarbeiten
Integrationstests: Testen Sie die Tool-Interaktion mit externen Systemen unter Verwendung von sowohl realen als auch simulierten Abhängigkeiten
Sicherheitstests: Validieren Sie Authentifizierung, Autorisierung, Eingabebereinigung und Ratenbegrenzung
Leistungstests: Überprüfen Sie das Verhalten unter Last, die Timeout-Behandlung und die Ressourcenbereinigung
Fehlerbehandlung: Stellen Sie sicher, dass Tools Fehler ordnungsgemäß über das MCP-Protokoll melden und Ressourcen bereinigen
Modified at 2025-03-13 04:02:49
Previous
Eingabeaufforderungen
Next
Probenahme
Built with