Latenode

MCP-Tools: So funktionieren sie, hier scheitern sie und deshalb

MCP-Tools sind die Aktionsprimitive im Model Context Protocol. So funktioniert die Erkennung, warum Beschreibungen Agenten beeinträchtigen und wie Tool Poisoning tatsächlich aussieht.

20 Min. Lesezeit
Illustration zur Funktionsweise und zu Risiken von MCP-Tools

Wenn Sie dies über die Suche nach „what are MCP tools“ oder „why is my MCP agent calling the wrong thing“ gefunden haben, sind Sie hier genau richtig.

Es herrscht viel Verwirrung darüber, was MCP-Tools innerhalb des Model Context Protocol tatsächlich sind. Nicht darüber, ob sie nützlich sind – darin scheinen sich alle einig zu sein –, sondern darüber, was sie im Vergleich zu Ressourcen tun, warum Beschreibungen so wichtig sind und an welchen Stellen Dinge in der Produktion stillschweigend scheitern. Die meisten Teams, mit denen ich spreche, geben dem Modell die Schuld, wenn ein Agent das falsche Tool auswählt oder still fehlschlägt. Das Modell ist jedoch nur selten das Problem.

Das eigentliche Problem ist fast immer dasselbe: schlecht formulierte Tool-Beschreibungen, unscharfe Grenzen zwischen den Grundelementen und Fehlerbehandlung, die Fehler verschluckt, statt sie sichtbar zu machen. Ich habe dieses Muster oft genug gesehen, um es einmal richtig festzuhalten.

Was kaputtgeht, bevor der Code es tut

  • MCP-Tools sind das Aktions-Grundelement – sie führen Logik aus; Ressourcen stellen lediglich Daten bereit
  • Die Erkennung erfolgt zur Laufzeit über list_tools, nicht über fest codierte Integrationen
  • Schlechte Beschreibungen sind der Hauptgrund, warum KI-Agenten das falsche Tool auswählen oder still fehlschlagen
  • Tool Poisoning ist eine reale Angriffsfläche, die sich in dem verbirgt, was die meisten Teams als Dokumentation behandeln mcp_three_primitives_diagram

Was MCP-Tools innerhalb des Model Context Protocol sind

Das Model Context Protocol (MCP) ist ein von Anthropic entwickelter offener Standard für sichere bidirektionale Verbindungen zwischen KI-Anwendungen und externen Systemen. Sein Zweck besteht darin, KI-Modellen eine einheitliche Schnittstelle auf Protokollebene zur Außenwelt bereitzustellen, anstatt für jedes Tool, jede Datenbank und jedes SaaS-Produkt, auf das ein Agent zugreifen muss, eine eigene Integration zu benötigen. Die NSA veröffentlichte Anfang 2026 konkrete Leitlinien für das Sicherheitsdesign von MCP, eines dieser Signale, die zeigen, dass sich eine Technologie von einem Experiment zu einem echten Betrieb im großen Maßstab entwickelt hat.

Innerhalb von MCP gibt es drei Server-Grundelemente: Tools, Ressourcen und Prompts. Jedes erfüllt eine andere Aufgabe. Tools sind das ausführbare Grundelement. Sie führen Berechnungen aus, lösen Aktionen aus, rufen externe APIs auf, starten Skripte und schreiben Daten. Ressourcen stellen Kontext und Daten bereit, die das Modell lesen kann – betrachten Sie sie als lesbare Ebene. Prompts sind wiederverwendbare Anweisungsvorlagen, die in Konversationen eingefügt werden können. Zusammen bilden sie eine vollständige Oberfläche für die Interaktion zwischen KI und Systemen. Sie sind jedoch nicht austauschbar, und ihre Vermischung ist der Punkt, an dem Probleme beginnen.

MCP-Tools befinden sich an der Schnittstelle zwischen dem, was KI-Agenten tun können, und dem, was reale Systeme tolerieren können. Laut Celigos technischer Aufschlüsselung des Protokolls werden Tools über zwei standardisierte Endpunkte bereitgestellt: tools/list für die Erkennung und tools/call für den Aufruf. Jeder konforme Client, jedes konforme Modell und jeder konforme Host kann diese Endpunkte nutzen. Genau darin liegt der Nutzen der Standardisierung.

Wie sich MCP-Tools von Ressourcen und Prompts unterscheiden

Die Unterscheidung, die ich im Support immer wieder erkläre: Tools führen Aktionen aus, Ressourcen liefern Daten und Prompts strukturieren Anweisungen. Sie sind nicht austauschbar, und die Grenze zwischen ihnen ist genau so wichtig, wie Sie erwarten würden, wenn das gesamte System darauf basiert, welches Grundelement was steuert.

Ressourcen und Tools sind das Paar, das Menschen am häufigsten verwechseln. Das Missverständnis sieht meist so aus: Ein Team erstellt ein „Tool“, das einen Kundendatensatz aus einer Datenbank abruft. Es ist korrekt verbunden, gibt Daten zurück und funktioniert. Aber es führt keine umsetzbare Aktion aus – kein Update, kein Schreiben, kein nachgelagerter Trigger. Es funktioniert als Ressource, die als Tool verkleidet ist. Das bedeutet, dass das Modell keine Garantie hat, sie zum richtigen Zeitpunkt und aus dem richtigen Grund anfordern zu können.

Tools führen Aktionen mit externen Daten und Systemen aus. Ressourcen stellen diese Daten bereit und machen sie als Kontext verfügbar. Ein Prompt ist die Vorlage, die dem Modell erklärt, wie es beides verwenden soll. Das klare mentale Modell: Ressourcen beantworten „Was wissen Sie?“, Tools beantworten „Was können Sie tun?“ und Prompts beantworten „Wie sollten Sie darüber nachdenken?“

Verfügbare Ressourcen teilen dem Modell mit, welcher Kontext existiert. Das Tool ruft das Modell auf, wenn es entscheidet, auf diesen Kontext zu reagieren. Wenn diese Grenze fehlt, entstehen Workflows, die auf dem Papier korrekt wirken und in der Produktion nichts Nützliches tun.

Warum der MCP-Server Tools als aufrufbare Funktionen bereitstellt

Ein MCP-Server veröffentlicht Tools als benannte, schema-gestützte aufrufbare Einheiten. Jedes Tool besitzt einen Namen, eine Beschreibung und ein JSON-Parameterschema, das definiert, welche Eingaben es akzeptiert und was es zurückgibt. Jeder konforme MCP-Client kann den Server abfragen, die vollständige Tool-Liste erhalten und jedes Tool ohne vorherige Festcodierung aufrufen. Es ist keine maßgeschneiderte Integration erforderlich – nur das offene Protokoll.

In der Praxis kann ein einzelner MCP-Server Python-Funktionen, externe API-Aufrufe, Dateiverarbeitungsoperationen, Bildverarbeitung, Datenbankabfragen oder Integrationsabläufe kapseln. Das Schema ermöglicht dies auf Protokollebene: Der Client muss nicht wissen, dass ein Tool eine Python-Funktion aufruft und ein anderes einen REST-Endpunkt kapselt. Er benötigt lediglich den Namen, die Beschreibung und die Eingabespezifikation.

Deshalb sehen MCP-Tools oberflächlich wie Funktionen aus, verhalten sich aber eher wie ein veröffentlichter Servicevertrag. Wenn Sie ein Tool auf einem MCP-Server aufrufen, rufen Sie keine lokale Funktion auf – Sie führen eine definierte Fähigkeit für das aus, was der Server dahinter kapselt. Diese Indirektion ist beabsichtigt und macht das Ökosystem interoperabel.

Wie die Erkennung von MCP-Tools zur Laufzeit tatsächlich funktioniert

Hier kommt der Teil, der MCP von herkömmlichen API-Integrationen unterscheidet: Die Erkennung findet zur Laufzeit statt, nicht bei der Entwicklung.

Wenn sich ein MCP-kompatibler Client mit einem MCP-Server verbindet, ruft er als Erstes tools/list auf – eine Fähigkeitsabfrage, die jedes Tool zurückgibt, das der Server aktuell bereitstellt, einschließlich Name, Beschreibung und Parameterschema. Der Client weiß nicht im Voraus, was verfügbar ist. Er fragt. Der Server antwortet. Anschließend entscheidet der Client oder das Modell, das darüber nachdenkt, was aufgerufen werden soll.

Das ist eine grundlegend andere Architektur als bei statischen Integrationen, bei denen Sie einen API-Endpunkt fest codieren, das Anfrageformat im Voraus definieren und veröffentlichen. Bei einer fest codierten Integration erfordert das Hinzufügen einer neuen Fähigkeit eine Aktualisierung des Integrationscodes. In einem MCP-Setup kann ein Server ein neues Tool bereitstellen, und jeder verbundene Client erkennt es bei der nächsten Abfrage automatisch. Auf Client-Seite ist keine Bereitstellung erforderlich.

Dieses Design macht MCP-Tools für agentische Systeme nutzbar, nicht nur für von Menschen ausgelöste Skripte. Ein Agent, der verfügbare Tools zur Laufzeit erkennen kann, kann vor seiner Entscheidung darüber nachdenken, was möglich ist. Er kann Situationen bewältigen, die bei der Entwicklung nicht vorhergesehen wurden, weil die verfügbaren Tools aus dem aktuellen Zustand des Servers hervorgehen und nicht aus etwas, das vor Monaten fest codiert wurde. Die Ökosystemkarte von Digital Applied aus 2026 platziert MCP genau wegen dieser dynamischen Erkennungsfähigkeit im Zentrum agentischer Architektur.

Wissenswert ist auch: Die MCP-Überarbeitung vom November 2025 ergänzte Unterstützung für parallele Tool-Aufrufe. Das bedeutet, dass ein Agent mehrere Tools gleichzeitig statt nacheinander aufrufen kann. Für Workflows mit mehreren Systemen – etwa wenn ein Agent gleichzeitig den ERP-Status und die CRM-Historie abruft – ist das ein bedeutender Performance-Unterschied.

📊 In der Praxis:
Ein KI-Agent, der list_tools zur Laufzeit verwendet, kann sich ohne erneute Bereitstellung an die aktuellen Fähigkeiten eines Servers anpassen. Ein fest codierter API-Wrapper kann das nicht. Diese Lücke ist der ganze Grund, warum agentische Systeme MCP statt herkömmlicher Integrationsmuster benötigen: Der Entscheidungsraum des Agenten hängt davon ab, was aktuell verfügbar ist, nicht davon, was verfügbar war, als jemand zuletzt den Code aktualisiert hat.

Was ein LLM mit einer Tool-Liste macht, bevor es etwas aufruft

Große Sprachmodelle erhalten nicht einfach eine Tool-Liste und beginnen dann, Dinge aufzurufen. Sie lesen sie zuerst.

Wenn ein LLM-Client die Ergebnisse einer tools/list-Abfrage erhält, verarbeitet er Name, Beschreibung und Parameterschema jedes Tools als Teil seines Schlussfolgerungskontexts. Er nutzt diese Informationen, um zu entscheiden, welches Tool für die aktuelle Aufgabe das richtige ist, welche Parameter übergeben werden sollen und in welcher Reihenfolge Aufrufe erfolgen müssen, wenn mehrere Tools benötigt werden.

An diesem Punkt wird die Qualität von Beschreibungen von einer Dokumentationsfrage zu einer Leistungsvariable. Das Modell hat keine andere Quelle für verlässliche Informationen darüber, was ein Tool tut. Es kann den Code dahinter nicht prüfen. Es kann keinen Testlauf durchführen. Es liest die Beschreibung und das Schema. Wenn diese beiden Elemente mehrdeutig, vage oder widersprüchlich sind, trifft das Modell eine schlechtere Tool-Auswahl. Nicht weil das Modell defekt ist, sondern weil es mit schlechten Eingaben arbeitet.

Natürliche Sprache ist hier buchstäblich die Schnittstelle. Die Beschreibung ist keine Metadaten – sie ist die Anweisung, anhand derer das Modell entscheidet, ob und wie es das Tool aufruft. Mehrdeutige Beschreibungen verschlechtern die Genauigkeit der Tool-Auswahl messbar. Ich sehe immer wieder, dass Teams dies auf die harte Tour lernen, nachdem ihr Agent merkwürdige Dinge tut. Der erste Impuls lautet dann immer: „Mit dem Modell stimmt etwas nicht.“ Meistens stimmt das nicht.

MCP-Tool-Beschreibungen: Warum die meisten davon fehlerhaft sind

Eine arXiv-Studie aus dem Jahr 2024 zur Qualität von MCP-Tools ergab, dass über 95 % der Tool-Beschreibungen mindestens ein Qualitätsproblem enthielten. Lesen Sie das noch einmal langsam: fünfundneunzig Prozent. Dabei ging es nicht um schlecht geschriebene Amateur-Tools – es war eine systematische Untersuchung von Tools in MCP-Ökosystemen über eine Vielzahl von Servern und Anwendungsfällen hinweg.

Wie sieht ein „Qualitätsproblem“ in der Praxis aus? Meist handelt es sich um eines von drei Dingen: eine Beschreibung, die sagt, wie das Tool heißt, aber nicht, was es tut; ein Parameterschema, das Eingaben aufführt, ohne zu erklären, was sie steuern; oder keine Beschreibung des Rückgabewerts, sodass das Modell nicht weiß, was es von der Ausgabe erwarten kann. Jede dieser Lücken erschwert es einem KI-Modell, das Tool korrekt zu verwenden. Alle drei zusammen bedeuten, dass das Modell im Wesentlichen anhand des Namens rät.

Ich sehe dieses Muster regelmäßig im Support. Ein Team stellt einen MCP-verbundenen Agenten bereit, beobachtet, wie er wiederholt das falsche Tool auswählt, und eröffnet ein Ticket, weil es von einem Fehler überzeugt ist. Wir prüfen das Kontextfenster. Die Tool-Beschreibungen sehen aus wie Variablennamen, die als Sätze verkleidet sind. „Verarbeitet Daten.“ „Bearbeitet Benutzeranfragen.“ „Gibt Informationen zurück.“ Das KI-Modell ist kontextbewusst genug, um etwas zu versuchen – es hat nur kein verlässliches Signal dafür, welches Etwas richtig ist.

Strukturierte Informationen in einer Tool-Beschreibung sind keine optionale Verzierung. Sie sind das primäre Signal, das das Modell nutzt, um über Fähigkeitsgrenzen nachzudenken. Wenn dieses Signal schwach ist, greift das Modell auf oberflächliches Musterabgleichen anhand von Tool-Namen zurück. Das erzeugt genau die inkonsistenten, schwer reproduzierbaren Fehler, die Agenten unzuverlässig erscheinen lassen.

Die Tools in MCP, die in der Produktion gut funktionieren, sind diejenigen, bei denen jemand die Qualität der Beschreibungen als Engineering-Arbeit behandelt hat und nicht als Bereinigung der Dokumentation.

Was eine gute MCP-Tool-Beschreibung enthalten muss

Es gibt drei erforderliche Elemente. Wenn eines davon fehlt, verschlechtert sich die Modellleistung auf eine spezifische und vorhersehbare Weise.

Erläuterung in klarer Sprache, was das Tool tut. Nicht, wie es heißt. Nicht, mit welchem System es kommuniziert. Sondern was es aus Sicht des Modells tatsächlich macht. „Ruft den aktuellen Status einer Kundenbestellung anhand der Bestell-ID ab“ ist gut. „Bestell-Tool“ ist es nicht. Die SEP-1382-Leitlinien von GitHub für Tool-Beschreibungen legen dies als grundlegende Anforderung fest: Die Beschreibung muss ohne zusätzlichen Kontext eindeutig sein.

Parameterdokumentation mit Zweck, nicht nur Typ. Ein JSON-Schema kann dem Modell mitteilen, dass ein Parameter eine Zeichenfolge ist. Die Beschreibung muss dem Modell sagen, was diese Zeichenfolge steuert. Der Unterschied zwischen "customer_id": "string" und "customer_id": "Die eindeutige Kennung aus Ihrem CRM im Format CUST-XXXXX" ist erheblich, wenn das Modell entscheidet, ob es diesen Wert aus der Benutzereingabe übernehmen oder aus einem vorherigen Tool-Aufruf ableiten soll.

Beschreibung des Rückgabewerts. Was gibt das Tool aus? In welchem Format? Welche Felder sind enthalten? Wenn das Modell nicht weiß, was ein Tool zurückgibt, kann es nicht planen, was anschließend mit der Ausgabe geschehen soll. Tool-Ausgaben fließen in nachgelagerte Schlussfolgerungen ein – ein Modell, das nicht weiß, ob ein Tool eine Liste von Objekten oder ein einzelnes Dictionary zurückgibt, trifft strukturell falsche Annahmen zur Verarbeitung des Ergebnisses.

Das sind keine Vorschläge. Sie bilden die minimal funktionsfähige Beschreibung. Darunter verlassen Sie sich darauf, dass das Modell erschließt, was Sie ausgelassen haben, und Modelle erschließen Dinge gerade oft genug falsch, um die Produktion unzuverlässig zu machen.

Häufige Beschreibungsprobleme, die die Tool-Auswahl beeinträchtigen

Die arXiv-Forschung verwendete den Begriff „smelly descriptions“ für Anti-Patterns, die die Modellleistung wiederholt verschlechterten. Dies sind die häufigsten, die ich sehe, und jedes hat einen spezifischen Fehlermodus.

Vage Aktionsverben, die auf alles zutreffen. „Verwaltet“, „bearbeitet“, „verarbeitet“, „holt“. Diese Tools erzeugen nichts außer Unsicherheit. Ein Modell, das drei Tools liest, die alle etwas „bearbeiten“, hat keine Grundlage, um zwischen ihnen zu wählen. Ersetzen Sie sie durch die konkrete Aktion: „Erstellt“, „Ruft anhand der ID ab“, „Aktualisiert Statusfeld“, „Sendet Benachrichtigung an“.

Parameterbeschreibungen, die den Parameternamen wiederholen. "order_id: Die Bestell-ID" ist keine Dokumentation. Es ist eine Tautologie. Das Modell muss verstehen, welche Werte gültig sind, woher diese Werte im Kontext stammen und was passiert, wenn ein falscher Wert übergeben wird. Zusätzlicher Kontext ist hier der Unterschied zwischen einem funktionierenden Tool-Aufruf und einem Aufruf, der nachgelagert einen verwirrenden Fehler erzeugt.

Fehlende Rückgabebeschreibung. Dies führt zu den meisten Support-Tickets. Der Agent ruft das Tool auf, erhält eine Antwort, weiß nicht, was er damit tun soll, und ignoriert sie entweder oder halluziniert eine Interpretation. Verwenden Sie Tools, die Ihnen sagen, was zurückkommt: „Gibt ein JSON-Objekt mit den Feldern order_status, last_updated und items_pending zurück.“

Beschreibungen für menschliche Leser statt für Modellnutzer. „Dieses Tool ist superpraktisch, um den Bestellstatus zu prüfen!“ ist Benutzereingabe im Stil einer Dokumentation. Ein Modell braucht keine Begeisterung. Es braucht Präzision. Schreiben Sie Beschreibungen so, als wäre der Empfänger ein System, das auf Basis Ihrer Formulierungen Logik ausführt.

Mit dem letzten Punkt würde ich anfangen, wenn sich ein Agent merkwürdig verhält. Nicht mit dem Code. Mit den Beschreibungen. tool_description_quality_spectrum

Aufbau von MCP-Servern: Fehlerbehandlung und die Teile, die die meisten Teams überspringen

Einen MCP-Server zu bauen, ist einfach – bis es in die Produktion geht. Die Lücke zwischen einer funktionierenden Demo und einer zuverlässigen Implementierung liegt fast vollständig in der Fehlerbehandlung und Schema-Validierung. Dies sind die konkreten Fehler, die ich sehe, welche Folgen sie haben und wie Sie sie erkennen.

  • Generische Fehler statt strukturierter Fehlerantworten zurückgeben

    Wenn ein Tool-Aufruf fehlschlägt, sollte der MCP-Server eine strukturierte Fehlerantwort mit einem aussagekräftigen Code und einer Beschreibung zurückgeben, auf die der Client reagieren kann. Stattdessen liefern die meisten frühen Implementierungen eine bloße Exception oder einen 500-Fehler ohne Inhalt zurück. Der Client trifft auf eine leere Wand. Das Modell weiß nicht, ob es erneut versuchen, abbrechen oder auf ein anderes Tool ausweichen soll. Erstellen Sie explizite Fehlerantwortformate für jeden Fehlermodus, bevor der Server auch nur in die Nähe der Produktion gelangt – mindestens mit Fehlercode, Fehlerkategorie (Eingabevalidierungsfehler vs. Fehler einer vorgelagerten API vs. Timeout) und einer Beschreibung, über die das Modell Schlussfolgerungen ziehen kann.

  • JSON-Schema-Validierung vor der Ausführung der Tool-Logik überspringen

    Ein MCP-Server erhält einen Tool-Aufruf mit einer Parameter-Nutzlast. Wenn diese Nutzlast nicht dem deklarierten JSON-Schema entspricht – falscher Typ, fehlendes Pflichtfeld, fehlerhafte Struktur –, muss der Server sie sauber ablehnen, bevor er eine Ausführung versucht. Server, die diesen Schritt überspringen, führen Teillogik mit schlechten Eingaben aus, schreiben beschädigte Daten nachgelagert und geben Erfolgscodes zurück, die nicht zutreffend sind. Validieren Sie zuerst gegen das Schema. Lehnen Sie frühzeitig mit einem klaren Validierungsfehler ab. Diese Prüfung verhindert die Fehlerklasse, bei der der Server etwas getan hat, aber nicht das Richtige, und dies drei Tage lang niemand bemerkt.

  • Fehler bei asynchroner Tool-Ausführung stillschweigend verschlucken

    Die Verwendung von MCP für asynchrone Vorgänge führt einen spezifischen Fehlermodus ein: Das Tool akzeptiert die Anfrage, stellt die Arbeit in die Warteschlange, gibt eine Erfolgsbestätigung zurück und dann schlägt die asynchrone Arbeit still fehl. Aus Sicht des Clients war das Tool erfolgreich. Die nachgelagerte Wirkung tritt jedoch nie ein. Fügen Sie für jede asynchrone Tool-Ausführung explizites Status-Tracking hinzu – einen nachgelagerten Status-Endpunkt, einen Webhook-Callback oder einen sichtbaren Warteschlangeneintrag –, damit der Fehler sichtbar werden kann. Ein Server, der eine Anfrage bestätigt, die er nicht abschließen kann, ist kein funktionierender Server.

  • Keine Unterscheidung zwischen Client- und Serverfehlern in der Antwort

    Ein Remote-MCP-Server, der eine fehlerhafte Anfrage erhält, sollte anders reagieren als ein Server, der eine gültige Anfrage erhalten hat, aber bei deren Ausführung intern fehlgeschlagen ist. Das relevante Implementierungsdetail: Das Modell verwendet Fehlercodes, um zu entscheiden, was als Nächstes zu tun ist. Ein 4xx-ähnlicher Fehler bedeutet „Die Anfrage war falsch, korrigieren Sie den Aufruf.“ Ein 5xx-ähnlicher Fehler bedeutet „Der Server hatte ein Problem, versuchen Sie es möglicherweise erneut.“ Ohne diese Unterscheidung in Ihrem Fehlerantwortdesign sieht jeder Fehler für den Client gleich aus, und die Wiederholungs- und Fallback-Logik des Modells kann nicht korrekt funktionieren.

  • Entwicklungstools in produktionsnahen Servern aktiviert lassen

    Entwicklungstools – ausführliche Protokollierung vollständiger Anfrageinhalte, Debug-Endpunkte mit internem Status, nicht authentifizierte Abfrage-Endpunkte – überleben häufig den Weg vom Staging in die Produktion, wenn Teams schnell arbeiten. Prüfen Sie gezielt: jeden Endpunkt, der rohe Stack-Traces zurückgibt, jede Protokollierungskonfiguration, die vollständige Nutzlasten in ein gemeinsam genutztes Log-Ziel schreibt, und jede reine Entwicklungsfähigkeit, die in der Tool-Liste deklariert ist. Das sind keine hypothetischen Bedenken; es sind die Konfigurationsfehler, die in Sicherheitsvorfallberichten auftauchen.

  • Fehlende Rate Limits auf Tool-Ausführungspfaden

    Ein gut beschriebenes, korrekt implementiertes MCP-Tool, das einen externen API-Aufruf ohne Rate Limiting kapselt, ist nur eine aggressive Agent-Schleife von einem Ausfall entfernt. Die externe API hat Limits, die Ihr Server respektieren muss. Wenn der Server sie nicht durchsetzt, erhält der Agent eine erfolgreiche Tool-Liste, beginnt mit Aufrufen in der Geschwindigkeit, die seine Schlussfolgerungsschleife zulässt, und erzeugt schließlich eine Kaskade vorgelagerter 429-Fehler. Diese wirken wie ein Server-Zuverlässigkeitsproblem und nicht wie eine Designlücke. Bauen Sie Rate Limits in die Serverimplementierung ein, bevor die erste externe API-Integration hinzukommt.

Das ist die Liste, die ich durcharbeite, wenn ein Team sagt, sein MCP-Server funktioniere „größtenteils“. „Größtenteils“ ist das verräterische Wort.

Sicherheitsaspekte, die jeder MCP-Server vor dem Go-live braucht

Die meisten Sicherheitsdiskussionen rund um MCP konzentrieren sich auf Transportebenen-Themen: Authentifizierung, TLS, Netzwerkfreigabe, Verbindungsautorisierung. Diese Punkte sind wichtig. Doch die Angriffsfläche, die Teams nicht ausreichend berücksichtigen, ist die Beschreibungsebene – die Textfelder, die die meisten Menschen als Dokumentation behandeln.

MCP-Tools führen eine Sicherheitsoberfläche ein, die sich strukturell von der herkömmlichen API-Sicherheit unterscheidet. Die Berechtigung eines Modells zum Handeln ergibt sich nicht nur aus seinen Zugangsdaten, sondern auch aus seiner Interpretation von Tool-Beschreibungen. Wenn ein Modell eine Tool-Beschreibung liest und sich für deren Aufruf entscheidet, handelt es auf Grundlage von Text. Dieser Text kann manipuliert werden.

Bevor ein MCP-Server live geht, sollte die Sicherheitsprüfung mindestens Folgendes abdecken: Wer Tools auf dem Server registrieren darf, ob Tool-Beschreibungen validiert werden oder nach der Registrierung geändert werden können, welche Human-in-the-Loop-Kontrollpunkte vor der Ausführung von Tool-Aufrufen mit hohen Berechtigungen existieren und ob der Server protokolliert, welche Tools mit welchen Parametern und von welchem Client aufgerufen wurden. Die MCP-Sicherheitsleitlinien der NSA identifizieren Tool-Interaktionsmuster ausdrücklich als Governance-Thema in KI-gestützten Systemen – nicht den Transport, sondern das Tool-Verhalten.

Die Einschränkung von Berechtigungen ist der andere Bereich, den Teams regelmäßig zu wenig begrenzen. Ein Tool, das eine Datenbank lesen kann, sollte wahrscheinlich nicht auch in sie schreiben können. Ein Tool, das eine Benachrichtigung versendet, sollte vermutlich keinen Zugriff auf Authentifizierungsabläufe haben. Beschränken Sie jedes Tool auf die minimalen Berechtigungen, die es tatsächlich benötigt, und setzen Sie dies auf Serverebene durch, bevor ein Client es aufrufen kann.

🤔 Moment.
Die meisten MCP-Sicherheitsaudits betrachten Transportauthentifizierung und Netzwerkfreigabe. Fast keines betrachtet das Beschreibungsfeld als Angriffsfläche. Doch Tool-Poisoning-Angriffe benötigen keinen Netzwerkzugriff – sie benötigen Text, der von einem Modell gelesen wird. Das Beschreibungsfeld ist eine Eingabe auf Protokollebene für die Schlussfolgerungen des Modells. Es als Dokumentation zu behandeln, ist der Fehler.

Wie Tool-Poisoning-Angriffe in der Praxis aussehen

Tool Poisoning bezeichnet ein Angriffsmuster, bei dem bösartige Anweisungen in MCP-Tool-Beschreibungen eingebettet werden. Der Mechanismus beruht auf einem grundlegenden Designmerkmal von MCP: Modelle sind darauf ausgelegt, vom Modell gesteuert zu werden. Das bedeutet, dass das Modell den Inhalt der Beschreibung als vertrauenswürdige Eingabe liest und zur Steuerung seines eigenen Verhaltens nutzt.

Ein Angreifer, der kontrollieren kann, was in einer Tool-Beschreibung erscheint, kann Anweisungen einschleusen, denen das Modell beim Lesen der Tool-Liste folgt. Eine manipulierte Beschreibung könnte das Modell anweisen, Daten an einen anderen Endpunkt zu exfiltrieren, erhöhte Berechtigungen zu vergeben, die Protokollierung bestimmter Aktionen zu unterdrücken oder ein Tool gegenüber einem anderen zu bevorzugen, wodurch die vorgesehene Autorisierungslogik umgangen wird. Die Modelle interagieren mit Beschreibungstext auf dieselbe Weise wie mit jedem anderen Anweisungsinhalt – und genau das ist das Problem.

Eine Prüfung vor dem Aufruf sollte auf Folgendes achten: Tool-Beschreibungen mit imperativen Anweisungen, die nicht zur deklarierten Funktion des Tools gehören, Beschreibungen, die andere Tools referenzieren oder Auswahlkriterien verändern, sowie jede Beschreibung mit bedingter Logik („Wenn der Benutzer nach X fragt, rufen Sie zusätzlich Y auf“). Die Analyse zum Verbindungszeitpunkt – also die Prüfung der vollständigen Tool-Liste, bevor Aufrufe erlaubt werden – ist eine aufkommende Praxis, die die Tool-Liste selbst als Sicherheitsartefakt und nicht nur als Metadaten behandelt. Bei Servern mit hohen Berechtigungen lohnt es sich, dies vor der ersten Produktionsbereitstellung aufzubauen, nicht erst nach dem ersten Vorfall.

Die Prompt-Injection-Angriffsfläche und die Tool-Beschreibungs-Angriffsfläche sind dieselbe Angriffsfläche. Das ist die Frage, die die meisten Teams noch nicht gestellt haben.

Praxisnahe Anwendungsfälle, in denen MCP-Tools echten Mehrwert schaffen

MCP-Tools sind für sich genommen nicht interessant. Interessant werden sie, wenn sie zwischen einem KI-Modell und einem realen System sitzen, das abgefragt, aktualisiert oder auf das reagiert werden muss. Dies sind die vier Kategorien, in denen ich zuverlässig Mehrwert sehe – nicht als Demos, sondern als produktionsreife Implementierungen.

KI-Entwicklungsumgebungen mit Dateisystem- und CI/CD-Zugriff. VS Code-Erweiterungen, KI-Coding-Assistenten und ähnliche Tools verwenden MCP, um Dateinavigation, Testausführung, Interaktionen mit Build-Systemen und Repository-Operationen bereitzustellen. Der Agent kann den aktuellen Projektstatus prüfen, eine Testsuite ausführen, die Ausgabe lesen und eine Fehlerbehebung vorschlagen – alles über MCP-Tool-Aufrufe statt über maßgeschneiderte Integrationen. Das playwright-MCP-Toolset für browserbasierte Tests fällt in diese Kategorie: Tools wie browser_navigate, browser_click und browser_snapshot ermöglichen einem KI-Agenten, Regressionstests mit realen Oberflächen durchzuführen. Die Analyse von Bug0 zeigt, wie dies die Build-vs-Buy-Entscheidung für KI-gestützte Tests erheblich verändert.

Unternehmensanwendungen, die KI-Modelle mit CRMs und Geschäfts-Workflows verbinden. Ein Support-Agent oder eine Vertriebs-KI, die über standardisierte MCP-Tool-Aufrufe statt über benutzerdefinierten Integrationscode mit externen Systemen interagieren kann – etwa durch Abrufen eines Kundendatensatzes, Prüfen des Bestellstatus oder Aktualisieren eines Pipeline-Felds. In diesem Anwendungsfall erhält Automatisierung ihre eigentliche Bedeutung: ein Workflow, der ERP, CRM und Kommunikationstools umfasst und von einem Agenten orchestriert wird, der zur Laufzeit erkennt, was verfügbar ist, und darauf reagiert.

Automatisierung und Test Engineering mit gekapselten Infrastruktur-APIs. DevOps- und QA-Teams stellen Bereitstellungsbefehle, Infrastrukturabfragen und Monitoring-APIs als MCP-Tools bereit, damit KI-Agenten operative Signale sichtbar machen, priorisieren und darauf reagieren können, ohne dass ein Mensch zwischen Systemen übersetzen muss. Der Agent kann einen Bereitstellungsstatus prüfen, aktuelle Fehlerprotokolle abrufen und entscheiden, ob eskaliert werden soll – alles über die MCP-Tool-Schnittstelle.

Dokumentationsplattformen, die Abruf- und Schreibvorgänge ermöglichen. Wissensdatenbanken und Dokumentensysteme, die über MCP-Tools bereitgestellt werden und sowohl Lesevorgänge (eine Richtlinie abrufen, Dateien durchsuchen, eine Vertragsvorlage finden) als auch Schreibvorgänge (ein Dokument entwerfen, einen Datensatz aktualisieren, eine Zusammenfassung veröffentlichen) unterstützen. Die Abgrenzung zu Ressourcen ist hier wichtig: Wenn der Vorgang etwas verändert, handelt es sich um ein Tool, nicht um eine Ressource.

Für Teams, die solche KI-Anwendungen auf einer visuellen Plattform entwickeln, ist Latenodes MCP Server Builder einer der praktischen Wege. Sie können eine Workflow-Aktion – zum Beispiel eine Aktion, die ein ERP über eine API abfragt und strukturierte Bestelldaten zurückgibt – als MCP-Tool bereitstellen und dieses Tool anschließend direkt mit Claude Desktop oder Cursor verbinden. Der Workflow übernimmt die Integrationskomplexität und Authentifizierung; die MCP-Schnittstelle übernimmt den modellseitigen Vertrag. Ein RevOps-Manager, der über einen internen KI-Assistenten einen Live-Bestellstatus benötigt, muss nicht wissen, dass hinter dem Tool-Aufruf ein mehrstufiger Workflow steht. Er erhält einfach eine Antwort. Das ist die Version von „KI mit externen Tools und Daten verbinden“, die in der Produktion tatsächlich funktioniert, ohne zur Wartungslast zu werden. mcp_enterprise_workflow_pattern

FAQ

Frequently Asked Questions

Nein. MCP-Tools sind eine Abstraktion auf Protokollebene mit Erkennung zur Laufzeit, einem definierten Schema und KI-orientierten Beschreibungen. APIs erfordern eine fest programmierte Integration und verfügen über keinen nativen Erkennungsmechanismus für LLM-Clients. Der Unterschied besteht darin, ob der Client im Voraus wissen muss, was verfügbar ist.

War das hilfreich? Teile es →

Geschrieben von

Vasiliy Datsenko

Leiter des Kundensupports

Vasiliy Datsenko ist Leiter des Kundensupports bei Latenode und ein produktorientierter Autor zum Thema Automatisierung. Seine Arbeit verbindet Kundengespräche, Workflow-Automatisierungsforschung, KI-Anwendungsfälle und praktische Produktschulungen für Teams, die echte Geschäftsprozesse automatisieren möchten.

Autorenprofil →

Faktencheck von

Oleg Zankov

CEO Latenode, No-code-Experte

Mit einer Philosophie, die auf Innovation, Problemlösung und Benutzererfahrung basiert, konzentriere ich mich darauf, Teams zu befähigen, maßgeschneiderte Integrationen zu erstellen und Arbeitsabläufe einfach und effizient zu automatisieren. Mit umfangreicher Erfahrung in den Bereichen Geschäftsentwicklung, Technologieunternehmertum und Softwareentwicklung erkannte ich den Bedarf an einer zugänglicheren, skalierbareren und anpassungsfähigeren Integrationslösung. So entstand Latenode.com. Mit unserer Plattform können Unternehmen die Macht der Technologie nutzen, ohne umfassende Programmierkenntnisse zu benötigen. Leidenschaftlich daran interessiert, eine Zukunft zu fördern, in der Technologie uns dient und nicht umgekehrt, ist es meine Mission, komplexe Prozesse zu vereinfachen. Ich glaube an die Demokratisierung der Technologie und daran, Teams mit den Werkzeugen auszustatten, um in einer zunehmend digitalen Welt zu innovieren, zu wachsen und erfolgreich zu sein.

Autorenprofil →

Weiterlesen