Model Context Protocol: die 'USB-Schnittstelle' für Chatbots und agentische Systeme

Post image

Seit der Einführung durch Anthropic im November 2024 hat sich das Model Context Protocol (MCP) zu einem vielversprechenden Standard entwickelt, der die Art und Weise revolutioniert, wie KI-Anwendungen mit externen Datenquellen und Werkzeugen kommunizieren. Dieser Artikel bietet einen technischen Überblick über MCP, beleuchtet dessen Anwendungsmöglichkeiten und analysiert kritisch die bestehenden Sicherheitsherausforderungen.

Was ist das Model Context Protocol?

Das Model Context Protocol (MCP) ist ein offener Standard, der eine universelle Schnittstelle für die nahtlose Integration zwischen Large Language Models (LLMs) und externen Datenquellen oder Werkzeugen bietet. Häufig als “USB-C-Schnittstelle für KI-Anwendungen” bezeichnet, schafft MCP eine standardisierte Methode, um KI-Modellen den Kontext zu geben, den sie für fundierte Antworten benötigen.

Vor MCP stellte die Integration von KI-Systemen mit externen Datenquellen ein klassisches “M×N-Problem” dar: Bei M verschiedenen KI-Anwendungen (Chatbots, Agenten, etc.) und N verschiedenen Tools (GitHub, Slack, Datenbanken, etc.) müssten potenziell M×N unterschiedliche Integrationen entwickelt werden. MCP transformiert dies in ein “M+N-Problem”, indem es einen gemeinsamen Standard für alle Integrationen bereitstellt.

Toolanbindung vor MCP
Toolanbindung vor MCP

Und noch besser: die Tool-spezifische Integration erfolgt auf der Seite des Tool-Bereitstellers und nicht wie bisher auf der Seite des Verwenders. Der Chatbot oder Agent kann also mithilfe des MCP-Clients und des standardisierten MCP-Protokolls alle Arten an Tools auf die gleiche Art und Weise ansprechen, egal ob es sich um eine Datenbank, die Wettervorhersage oder einen Bildgenerierungsservice handelt.

Toolanbindung mit MCP
Toolanbindung mit MCP

Bei all diesen Vorteilen ist es kein Wunder, dass sich das Model Context Protocol (MCP) bei den Entwicklern von KI-Systemen und Serviceanbietern gleichermaßen rasant verbreitet hat.

Technische Architektur

Die MCP-Architektur besteht aus drei Hauptkomponenten:

  1. Hosts: Anwendungen, mit denen Benutzer interagieren (z.B. Claude Desktop, Cursor IDE, benutzerdefinierte Agenten) - bitte nicht verwechseln mit dem Mainframe ;-)
  2. Clients: Komponenten innerhalb der Host-Anwendung, die die Verbindung zu einem spezifischen MCP-Server verwalten
  3. Server: Externe Programme, die Werkzeuge, Ressourcen und Vorlagen über eine standardisierte API für KI-Modelle bereitstellen

MCP-Server bieten dabei folgende Funktionen:

  • Tools: Funktionen, die LLMs aufrufen können, um bestimmte Aktionen auszuführen
  • Resources: Datenquellen, auf die LLMs zugreifen können, ähnlich wie GET-Endpunkte in einer REST-API
  • Prompts: Vordefinierte Vorlagen zur optimalen Nutzung von Tools oder Ressourcen

Das Protokoll verwendet JSON-RPC 2.0-Nachrichten zur Kommunikation zwischen den Komponenten und unterstützt zustandsbehaftete Verbindungen sowie Server- und Client-Funktionalitätsverhandlung.

Anwendungsmöglichkeiten

Man kann beliebige Host-Anwendungen, Chatbots und agentische Systemen nahezu ohne Aufwand mit beliebigen zusätzlichen Funktionen ausstatten. Kurz: “the possibilities are endless”. Wir wollen daher im Folgenden nur exemplarisch typische Anwendungsfälle im Kontext von Chatbots und Agenten nennen.

Praktische Anwendungsbeispiele für Chatbots

MCP ermöglicht vielfältige Anwendungen für Chatbots und agentische Systeme:

  • Datenbankintegration: Ein Chatbot kann über MCP direkt auf Unternehmensdatenbanken zugreifen, um Echtzeitinformationen in seine Antworten einzubeziehen
  • Dokumentenmanagement: KI-Assistenten können Dokumente nicht nur lesen, sondern auch erstellen und in Repositories speichern
  • Multi-Tool-Integration: Agenten können dynamisch zwischen verschiedenen Tools wechseln, z.B. von einer Vektordatenbank zu einem Websuchwerkzeug, je nach Anforderung der Anfrage
  • Persistentes Gedächtnis: Durch MCP-Server können KI-Systeme Konversationskontexte über Sessions hinweg speichern und abrufen

Ein konkretes Beispiel zeigt Anthropic in einem Video , in dem ein Benutzer im Dialog mit dem Claude Desktop-Chatbot eine HTML-Seite als Artefakt erstellt und diese dann direkt unter Verwendung eines Github-MCP-Servers in einem GitHub-Repository ablegt.

Integration mit Retrieval-Augmented Generation (RAG)

Eine der mächtigsten Anwendungen von MCP ist die Integration mit Retrieval-Augmented Generation (RAG) -Systemen. RAG kombiniert Sprachmodelle mit externem Wissensabruf, wodurch die Antworten des Modells in aktuellen Fakten verankert sind. MCP ermöglicht hier eine standardisierte Verbindung zu verschiedenen Wissensquellen.

Beim “Agentic RAG”-Ansatz wird ein KI-Agent integriert, der mehrere Schritte orchestrieren kann:

  1. Der Agent empfängt die Benutzeranfrage und plant den Abrufprozess
  2. Über MCP-Server werden gezielt relevante Datenquellen abgefragt
  3. Der Agent kann iterativ weitere Abfragen durchführen, um die Ergebnisse zu verfeinern
  4. Die abgerufenen Informationen werden in den Kontext des LLM eingebettet
  5. Das LLM generiert eine fundierte Antwort basierend auf dem angereicherten Kontext

Diese Architektur befähigt KI-Agenten, aktiv mit Daten zu interagieren, anstatt nur passive Abrufe durchzuführen, was zu präziseren und kontextbezogenen Ergebnissen führt.

Sicherheitsherausforderungen des aktuellen Designs

Doch wo Licht ist, ist auch Schatten. Oder wie es Elena Cross ausdrückt: “Das ‘S’ in MCP steht für Sicherheit”. Trotz seiner technologischen Vorteile weist MCP in seiner aktuellen Form erhebliche Sicherheitslücken auf. Unter anderem konnte gezeigt werden, wie man beispielsweise die WhatsApp Nachrichtenhistorie durch den vertrauenswürdigen WhatsApp-MCP-Server exfiltrieren kann, wenn am gleichen Host auch ein nicht-vertrauenswürdiger MCP-Server angebunden ist, der die Verwendung des WhatsApp-MCP-Server manipuliert.

Tool Poisoning-Angriffe

Eine der alarmierendsten Sicherheitslücken ist das sogenannte “Tool Poisoning”. Hierbei werden bösartige Anweisungen in der Beschreibung eines MCP-Tools versteckt – unsichtbar für den Benutzer, aber vom KI-Modell gelesen und befolgt.

Forscher haben demonstriert, wie ein scheinbar harmloses Tool (z.B. eine add(a,b)-Mathefunktion) geheime Anweisungen enthalten kann, die das KI-System dazu bringen, sensible Dateien wie SSH-Schlüssel oder Konfigurationsdaten preiszugeben. Da aktuelle MCP-Agenten diese versteckten Anweisungen blind befolgen, könnte ein Nutzer denken, er führt eine einfache Addition durch, während der Agent im Hintergrund Geheimnisse stiehlt.

“Rug Pull” Tool-Neudefinition

MCP-Tools können sich nach der Installation dynamisch ändern, was ein “Rug Pull”-Szenario ermöglicht. Ein ursprünglich gutartiges Tool kann seinen Code oder seine Beschreibung bei einem Update stillschweigend zu einem bösartigen verändern, ohne dass der Benutzer dies bemerkt.

Dem MCP-Design fehlt ein integrierter Integritätscheck oder Signaturmechanismus, um solche Manipulationen zu erkennen. Dies ist vergleichbar mit einem Software-Supply-Chain-Angriff, bei dem ein vertrauenswürdiges Paket gehackt und mit Malware aktualisiert wird.

Cross-Server-Tool-Shadowing

Wenn ein KI-Agent mit mehreren MCP-Servern verbunden ist (ein übliches Szenario), kann ein bösartiger Server die Tool-Beschreibung eines anderen überlagern und dadurch unerwünschtes Verhalten erzwingen, z.B. sensible Daten zu exfiltrieren. Dies ermöglicht Authentication-Hijacking, bei dem Anmeldeinformationen von einem Server heimlich an einen anderen weitergegeben werden. Außerdem können Angreifer auf diese Weise Regeln und Anweisungen anderer Server außer Kraft setzen, um den Agenten zu einem bösartigen Verhalten zu bewegen, selbst wenn er nur mit vertrauenswürdigen Servern interagiert.

Das zugrundeliegende Problem besteht darin, dass ein Agentensystem allen konfigurierten MCP-Servern und ihren jeweiligen Tool-Beschreibungen ausgesetzt ist, was es einem bösartigen Server ermöglicht, manipulative Anweisungen einzuschleusen.

Beispielsweise könnte ein bösartiger Server ein gefälschtes “Additions”-Tool registrieren, das heimlich das Verhalten eines vertrauenswürdigen E-Mail-Versand-Tools verändert, indem es vorschreibt, dass alle E-Mails an eine bestimmte Adresse geschickt werden müssen. Da der Agent alle Tool-Beschreibungen in seinen Kontext zusammenführt, kann das LLM nicht unterscheiden, welchen “Regeln” es vertrauen soll, da ihm alle Regeln in seinem Kontext “gleichberechtigt” erscheinen.

Weitere Sicherheitsrisiken

Zusätzlich sind auch MCP-Server von klassischen Sicherheitsproblemen betroffen:

  • Command Injection & RCE: nach einer aktuellen Studie von equixly sind viele MCP-Server-Implementierungen durch unsichere Code-Ausführung verwundbar, wobei “über 43% der getesteten MCP-Server unsichere Shell-Aufrufe” aufwiesen
  • Token-Diebstahl: MCP-Server speichern oft Authentifizierungs-Tokens für Dienste, die bei einer Kompromittierung gestohlen werden können
  • Übermäßige Berechtigungen: MCP-Server fordern typischerweise sehr breite Zugriffsrechte an, was im Falle einer Kompromittierung zu erheblichen Sicherheitsrisiken führt
  • Mangelnde Benutzer-Transparenz: Benutzer sehen nicht die vollständigen internen Prompts oder Tool-Anweisungen, die das LLM sieht

Lösungsansätze für Sicherheitsprobleme

Um die Sicherheitsrisiken von MCP zu adressieren, werden verschiedene Ansätze diskutiert. Im Folgenden haben wir einige interessante Initiativen aufgeführt.

Trusted Execution Environments (TEE)

Ein vielversprechender Ansatz ist die Nutzung von Trusted Execution Environments (TEE) – sicheren Enklaven, die Code isoliert vom Host-System ausführen können. TEEs (wie Intel SGX, AMD SEV oder AWS Nitro Enclaves) bieten Integrität und Vertraulichkeit für die verarbeiteten Daten.

Die Anwendung von TEE-Technologie auf MCP könnte mehrere Schwachstellen auf verschiedenen Ebenen mindern:

  • Härtung von MCP-Servern: Durch die Ausführung von MCP-Servern innerhalb einer TEE kann das Risiko von Token-Diebstahl oder unbefugten Änderungen erheblich reduziert werden
  • Beglaubigung und Vertrauen auf Protokollebene: Das MCP-Protokoll könnte um einen Beglaubigungs- oder Signaturschritt beim Verbinden mit einem Server erweitert werden
  • Vertrauliche Kontext- und Datenverarbeitung: TEEs können nicht nur den Code, sondern auch die über MCP fließenden Daten schützen

Sichere Authentifizierung und Autorisierung

Cisco und Microsoft empfehlen folgende Sicherheitsmaßnahmen:

  • Standardisierte Protokolle: Verwendung etablierter Protokolle wie OAuth 2.0/2.1 oder OpenID Connect
  • Sichere Token-Handhabung: Verwendung von JWTs mit Ablauf und Token-Rotation
  • Implementierung von Autorisierungsprüfungen: Verwendung von rollenbasierter Zugriffskontrolle (RBAC) und Zugriffskontrolllisten (ACLs)
  • Datenschutz: Verschlüsselung sensibler Daten, Implementierung strenger Zugriffskontrollrichtlinien

Verhindern von (Indirect) Prompt Injection

  • Erkennung und Filterung: Algorithmen zur Erkennung und Filterung bösartiger Anweisungen, z.B. Microsoft “AI Prompt Shields” oder “Lakera Guard”
  • Spotlighting : Transformation des Eingabetexts, um vertrauenswürdige von nicht vertrauenswürdigen Eingaben zu unterscheiden
  • Begrenzungen und Datenmarkierung: Explizite Kennzeichnung der Grenzen zwischen vertrauenswürdigen und nicht vertrauenswürdigen Daten

Best practices für den Einsatz von MCP

Für Unternehmen, die MCP in ihre Systeme integrieren möchten, gibt es einige bewährte Praktiken

  1. Zero-Trust-Architektur: Behandlung jeder Komponente als potenziell nicht vertrauenswürdig, mit konsequenter Überprüfung aller Anfragen
  2. Sicheres Coding: Schutz gegen OWASP Top 10 und OWASP Top 10 für LLMs
  3. Server-Härtung: Verwendung von MFA, regelmäßige Patches, Integration mit Identitätsanbietern
  4. Sicherheitsüberwachung: Implementierung von Logging und Monitoring mit zentraler SIEM-Integration
  5. Einwilligung und Kontrolle der Benutzer: Benutzer müssen allen Datenzugriffen und -operationen ausdrücklich zustimmen und die Kontrolle behalten
  6. Integration in Governance-Frameworks: Einbindung der MCP-Sicherheit in bestehende Governance- und Compliance-Strategien

Diese Liste ist sicher nicht vollständig, aber sie zeigt, dass der Einsatz von MCP eine sorgfältige und umfassende Sicherheitsbetrachtung erfordert. Viele der Punkte kennen wir bereits aus bisherigen Projekten.

Doch nun - frisch ans Werk!

Nun ist es Zeit, MCP selbst auszuprobieren. Dafür brauchen wir zunächst einen geeigneten Host, z.B. Claude Desktop für Windows, der bereits einen MCP-Client integriert hat. Dann benötigen wir einen MCP-Server für einen Dienst, den wir in Claude Desktop zur Verfügung stellen wollen. In unserem Fall haben wir uns für den in Python geschriebenen offiziellen Elevenlabs-MCP-Server entschieden, den wir unter Windows im Windows Subsystem for Linux (WSL) betreiben wollen. Als konkrete Umgebung verwenden wir WSL2 mit einem Ubuntu 22.04 als Distribution.

Elevenlabs API-Key

Wir benötigen einen Elevenlabs API-Key, den man ganz einfach erzeugen kann.

MCP-Server installieren (WSL)

Falls der Python Package Manager uv noch nicht vorhanden ist, muss dieser installiert werden.

Wir klonen uns den Elevenlabs-MCP-Server unter WSL in ein Verzeichnis:

# in unserem Fall in $HOME/projects
git clone https://github.com/elevenlabs/elevenlabs-mcp.git
# ins Verzeichnis wechseln
cd elevenlabs-mcp
# testweiser Start des MCP-Servers (ohne ELEVENLABS_API_KEY)
uv run elevenlabs_mcp
# ... scheitert wie erwartet mit 'Error: ElevenLabs API key is required.'

Ok, die WSL-Seite ist nun vorbereitet.

Claude Desktop (Windows)

Im Claude-Desktop müssen wir nun unseren Server in die Konfigurationsdatei eintragen. Unter Datei/Einstellungen/Entwickler/Konfiguration bearbeiten können wir ins Verzeichnis der claude_desktop_config.json gelangen und die Datei in einem Editor öffnen.

Hier wird in der WSL-Distro der User alex mit dem Home-Dir /home/alex verwendet.

  • wir starten wsl (Default-Distro) für den Benutzer alex mit wsl.exe --user alex
  • per bash --login laden wir die Umgebungsvariablen des Benutzers
  • trotzdem müssen wir zuerst per cd in das MCP-Server-Verzeichnis wechseln
  • dann starten wir den Server mit uv run und geben den API-Key “inline” per Environment-Variable mit
{
  "mcpServers": {
    "ElevenLabs": {
      "command": "wsl.exe",
      "args": ["--user", "alex", "bash", "--login" ,"-c", "cd /home/alex/projects/elevenlabs-mcp && ELEVENLABS_API_KEY=sk_... uv run elevenlabs_mcp"]
    }
  }
}

Nun können wir Claude Desktop neu starten (vorher per Rechtsklick auf das Claude-Symbol im Tray dann Klick “Beenden” wirklich beenden!). Wenn alles geklappt hat, sollte nun im Chat-Fenster eine entsprechende Meldung erscheinen, dass die MCP-Server geladen wurden und der MCP-Server sollte unter Suche und Werkzeuge erscheinen. Hier kann man auswählen, welche der zur Verfügung gestellten Werkzeuge dem Sprachmodell angeboten werden sollen.

Claude Desktop mit Elevenlabs MCP
Claude Desktop mit Elevenlabs MCP

Im Chat stehen nun die Elevenlabs-Funktionen zur Verfügung. Viel Spaß beim Ausprobieren!

Hinweis: wenn z.B. eine Sprachdatei generiert wurde und es heisst, dass sie unter “Desktop” gespeichert wurde, so meint das in unserem Fall das Verzeichnis /home/alex/Desktop unter WSL.

Fazit und Ausblick

Das Model Context Protocol stellt einen bedeutenden Fortschritt in der Standardisierung von KI-Integrationen dar. Es bietet ein enormes Potenzial für Chatbots und agentische Systeme, indem es die Verbindung zu externen Datenquellen und Tools vereinfacht und standardisiert. Obwohl es noch kein offiziell verabschiedeter Standard ist, wird es schon breit eingesetzt und das Angebot an MCP-Servern im modelcontextprotocol Repository , mcpservers.org oder der Sammlung Awesome MCP Servers ist nahezu unüberschaubar.

Die aktuellen Sicherheitsherausforderungen sind jedoch erheblich und erfordern sorgfältige Beachtung. Für den erfolgreichen Einsatz in Unternehmensumgebungen müssen robuste Sicherheitsmaßnahmen implementiert werden, um Risiken wie Tool Poisoning, Rug Pull-Angriffe und andere Sicherheitslücken zu mindern.

Die Zukunft von MCP hängt u.a. davon ab, wie sich diese Sicherheitsherausforderungen lösen lassen. Mit dem Aufkommen von Technologien wie TEEs und verbesserten Protokollspezifikationen könnte MCP zu einem sicheren und unverzichtbaren Baustein in der KI-Landschaft werden. Unternehmen und Entwickler sollten die Entwicklung des Protokolls genau verfolgen und bewährte Sicherheitspraktiken frühzeitig in ihre MCP-Implementierungen integrieren.

Wir verfolgen die Entwicklungen rund um MCP im Lab sehr intensiv, verproben kontinuierlich neue, innovative UseCases mit MCP und setzen das Protokoll mit gebotener Umsicht bereits in einigen unserer Lösungen ein.

You May Also Like

Agent Smith - übernehmen Sie?

Agent Smith - übernehmen Sie?

Welche Auswirkungen hat die KI auf die Arbeit agiler Teams in der Software-Entwicklung? Werden wir durch Tools ergänzt oder übernimmt Agent Smith? Wir verschaffen uns einen Überblick über die aktuelle Entwicklung und Trends in der KI und wie agentenbasierten Workflows unsere Arbeit verändern könnten.