Skip to content

MCP-Tools

Übersicht

swag2mcp bietet 19 MCP-Tools, die einem LLM-Agenten über das Model Context Protocol vollen Zugriff auf Ihre APIs geben. Diese Tools decken den gesamten Arbeitsablauf ab: Entdecken, welche APIs verfügbar sind, Navigieren in der Spec-Hierarchie, Suchen und Inspizieren von Endpunkten, Ausführen von API-Aufrufen und Arbeiten mit großen Antworten.

Was die Tools lösen

  • Erkennung — der LLM kann Specs, Collections und Tags finden, ohne IDs im Voraus zu kennen
  • Navigation — von Spec → Collection → Tag → Endpunkt in einer strukturierten Hierarchie hineinzoomen
  • Suche — Volltextsuche über alle Endpunkte, wenn Sie keine ID haben
  • Inspektion — das vollständige OpenAPI-Operationsobjekt vor einem Aufruf abrufen
  • Ausführung — echte API-Aufrufe mit automatischer Authentifizierung durchführen
  • Große Antworten verarbeiten — übergroße Antworten, die nicht inline passen, gliedern, komprimieren und aufteilen

Schreibgeschützt vs. Veränderlich

TypAnzahlTools
Schreibgeschützt17Alle Erkennungs-, Endpunkt-, Such-, Inspektions-, Info- und Antwort-Tools
Veränderlich2invoke (führt echte HTTP-Aufrufe durch), auth (ruft Tokens ab)

Schreibgeschützte Tools sind mit ReadOnlyHint=true und IdempotentHint=true im MCP-Protokoll markiert, was dem LLM signalisiert, dass sie ohne Nebenwirkungen sicher aufgerufen werden können.

Fehlerbehandlung

Alle Tools geben Fehler als strukturierte LLMError-Objekte mit einem maschinenlesbaren Code und einer menschenlesbaren Nachricht zurück, die erklärt, was schiefgelaufen ist und was als nächstes zu tun ist:

FehlercodeBedeutung
validation_failedUngültige Eingabe (falsches ID-Format, fehlende Pflichtfelder)
not_foundEntität nicht im Index oder Arbeitsbereich gefunden
rate_limitZweiter invoke-Aufruf innerhalb von 10 Sekunden auf demselben Endpunkt
invoke_errorHTTP-Aufruffehler, Download-Fehler
auth_errorFehler beim Abrufen des Auth-Tokens
config_errorFehler beim Laden oder Speichern der Konfigurationsdatei
parse_errorFehler beim Parsen der Spezifikationsdatei

Kategorien

KategorieToolsBeschreibung
Erkennungspec_list, spec_by_id, collection_by_spec, collection_by_id, tag_by_spec, tag_by_collection, tag_by_idIn der Spec-Hierarchie navigieren: Specs, Collections und Tags finden
Endpunkteendpoint_by_spec, endpoint_by_collection, endpoint_by_tag, endpoint_by_idEndpunkte auf verschiedenen Ebenen der Hierarchie anzeigen
Ausführungsearch, inspect, invokeSuchen, den vollständigen Vertrag inspizieren und APIs aufrufen
Hilfsprogrammeauth, info, response_outline, response_compress, response_sliceAuth-Tokens, Laufzeitinfo und Verarbeitung großer Antworten
SkillsFormatierungsleitfadenAnpassen, wie Tool-Antworten angezeigt werden

Vollständige Liste

ToolBeschreibung
spec_listAlle API-Spezifikationen im Arbeitsbereich auflisten
spec_by_idDetaillierte Spec-Informationen mit Collections abrufen
collection_by_specCollections innerhalb einer Spec auflisten
collection_by_idCollection-Details mit Tags abrufen
tag_by_specAlle Tags über eine Spec hinweg auflisten
tag_by_collectionTags innerhalb einer Collection auflisten
tag_by_idTag-Details abrufen (ID, Titel, Methodenanzahl)
endpoint_by_specAlle Endpunkte in einer Spec auflisten
endpoint_by_collectionEndpunkte in einer Collection auflisten
endpoint_by_tagEndpunkte in einem Tag auflisten
endpoint_by_idKurze Endpunkt-Zusammenfassung (Methode, Pfad, Zusammenfassung)
searchVolltextsuche über alle Endpunkte
inspectVollständige OpenAPI-Operationsdetails (Parameter, Schemata)
invokeEchten API-Aufruf ausführen
authAuth-Token oder Header für eine Spec abrufen
infoLaufzeitinformationen (Version, Specs, Konfiguration)
response_outlineStrukturelle Zusammenfassung einer großen Antwortdatei
response_compressGroße Antwort komprimieren, um sie inline einzufügen
response_sliceEin Fragment einer großen Antwort extrahieren
spec_list
  └── spec_by_id(id)
        └── collection_by_spec(specId)
              └── collection_by_id(id)
                    └── tag_by_collection(collectionId)
                          └── tag_by_id(id)
                                └── endpoint_by_tag(tagId)
                                      └── endpoint_by_id(id)
                                            └── inspect(endpointId)
                                                  └── invoke(endpointId)

Wenn Sie keine ID haben, verwenden Sie search, um Endpunkte per Abfrage zu finden. Wenn invoke einen fileRef zurückgibt (Antwort zu groß), verwenden Sie response_outlineresponse_compress oder response_slice, um die Daten zu erkunden.