Beratung vereinbaren
|
Beratung vereinbaren

Model Context Protocol (MCP): Deep Dive

Portrait of Kilian Schneider, HMS Analytical Software
Kilian Schneider

Veröffentlicht am 30. September 2025

Dies ist der zweite Artikel unserer HMS-Artikelserie zum Model Context Protocol (MCP), der einen tiefen Einblick in dessen Struktur und Konzepte bietet.
Wir erläutern die Rollen von MCP Host, Client und Server, zeigen, wie Funktionen wie Tools und Ressourcen bereitgestellt werden, und betrachten, wie diese Komponenten in typischen Workflows zusammenwirken. Der Artikel behandelt außerdem die grundlegenden Protokoll-Primitiven, Transportmechanismen und Sicherheitsaspekte.

Falls Sie unseren ersten Artikel noch nicht gelesen haben: MCP: Skalierbare und standardisierte LLM-Integration für Unternehmen

Rollen von Host, Client und Server im MCP

MCP verwendet eine Client-Server-Architektur mit drei zentralen Rollen:

  • MCP Host:
    Die Anwendung, in die ein oder mehrere LLMs integriert sind. Dies kann ein Chatbot sein, der LLM-generierte Antworten an Nutzer liefert, oder eine IDE mit LLM-basierter Programmierunterstützung.
    Diese Komponente orchestriert die MCP-Funktionen, indem sie Komponenten wie die LLM-Instanzen und MCP-Clients speichert und verwaltet. Der MCP Host interpretiert und katalogisiert die verfügbaren Funktionen der MCP-Server und koordiniert den Zugriff der LLMs auf den relevanten Kontext.
  • MCP Client:
    Ein leichtgewichtiger Prozess, der vom MCP Host gestartet wird. Jeder Client hält eine dedizierte Eins-zu-Eins-Verbindung zu einem einzelnen MCP-Server. Ein Client übernimmt die Low-Level-Protokollkommunikation mit seinem Server, entdeckt z. B. die verfügbaren Funktionen zur Laufzeit und verwaltet alle Interaktionen zwischen Server und Host.
  • MCP Server:
    Ein Dienst, der einem LLM spezialisierten Kontext bereitstellt. Er stellt Funktionen (Tools, Ressourcen und Prompts) in standardisierter Form zur Verfügung. Jeder Server kann Verbindungen von mehreren Clients annehmen und sogar hostübergreifend über die Clients arbeiten.
Diagram of MCP architecture showing host, client, server, transport layer, and primitives (tools, resources, prompts).

Learn how MCP works: roles of host, client & server, core primitives, transport layer, and security for enterprise LLM workflows.

Der MCP Host kann sich parallel mit mehreren MCP Servern verbinden, wobei jeder Server von seinem eigenen Client verwaltet wird. Diese modulare Architektur stellt eine klare Trennung der Verantwortlichkeiten sicher und unterstützt Sandboxing sowie kontrollierten Zugriff. So kann der Host beispielsweise Nutzerfreigaben zwischen dem LLM und jeder Server-Interaktion erzwingen.

Mindestens eine LLM-Instanz läuft innerhalb des MCP Hosts und fungiert als Konsument des Kontexts. Über den Host können die Instanzen MCP Clients auslösen, um Tools auszuführen oder auf Ressourcen und Prompts zuzugreifen, die von einem MCP Server bereitgestellt werden. Das LLM nimmt jedoch in der MCP-Spezifikation keine definierte Rolle ein und funktioniert als Teil des Hosts und nicht als eigenständige Protokollkomponente.

Aus der Perspektive agentischer Systeme ähneln sich die Aufgaben des MCP Hosts und eines Agents stark. Je nach Anwendungsfall und Interpretation können die Begriffe „MCP Host“ und „Agent“ synonym verwendet werden. Alternativ können sie auch als getrennte Komponenten betrachtet werden: Der Host fungiert als benutzerorientierte Anwendungs-Hülle, die die MCP-Infrastruktur bereitstellt. Der Agent ergänzt dies, indem er die Anwendungslogik kapselt und als intelligenter Orchestrator agiert, der mit dem LLM interagiert und die Client-Kommunikation steuert. Dieses Design erlaubt es, mehrere Agents gleichzeitig innerhalb eines einzelnen Hosts laufen zu lassen, wobei jeder als eigene Instanz mit eigenem Kontext- und Ressourcenumfang behandelt wird – sie können dabei auch zusammenarbeiten. Unabhängig von der Interpretation operiert der Agent immer auf der Host-Seite des Protokolls und nimmt, ebenso wie das LLM, keine definierte MCP-Rolle ein.

Die Kommunikation innerhalb von MCP erfolgt über eine Transportschicht auf Basis von JSON-RPC 2.0. Dies ermöglicht strukturierte Nachrichten über zustandsbehaftete Verbindungen zwischen Clients und Servern. MCP unterstützt sowohl lokale als auch entfernte Transportmechanismen für MCP Server, die entweder lokal oder in Cloud-Umgebungen laufen. Für lokale Kommunikation ist Standard Input/Output (STDIO) einfach und effektiv. Für die Remote-Integration unterstützt das Protokoll HTTP mit Server-Sent Events (SSE) oder Streamable HTTP. Letzteres wird zukünftig für Remote-Verbindungen empfohlen, ist aber noch nicht in allen derzeit verfügbaren MCP Software Development Kits (SDKs) vollständig implementiert. Neben einer schnell wachsenden Zahl von SDKs verschiedener Anbieter bietet auch Anthropic selbst offizielle SDKs für verschiedene Programmiersprachen an.

Während des Betriebs tauschen MCP Clients und Server Requests, Responses und Notifications aus. Jeder Server deklariert sein verfügbares Set an Funktionen über ein JSON Schema. Ein Cloud-Storage-Server könnte zum Beispiel Tools wie „search“ oder „duplicate_file“ anbieten. Dieses Setup unterstützt einen turnusmäßigen, dialogartigen Interaktionsprozess: Das LLM kommuniziert in natürlicher Sprache, ruft jedoch im Hintergrund Tools auf und greift standardisiert auf Ressourcen zu – genau dann, wenn es nötig ist.

Darauf werden wir in einem späteren Kapitel dieses Artikels mit einem Workflow-Beispiel noch einmal eingehen.

MCP-Grundelemente: Ressourcen, Werkzeuge und Prompts

MCP führt drei Grundelemente (Funktionsarten) ein, die MCP-Server anbieten und bereitstellen:

  • Ressourcen (Resources):
    Dies sind Datenquellen, die von MCP-Clients gelesen werden können. Der MCP-Server stellt diese Daten ohne nennenswerte Berechnung bereit, damit sie Teil des LLM-Kontexts werden können. Jede Ressource besitzt einen eindeutigen Uniform Resource Identifier (URI), zum Beispiel „file://financial_reports/summary.pdf“ für Dateiinhalte oder „database://weather/forecasts“ für Datenbankeinträge. Clients können die Ressourcen des Servers abfragen, um verfügbare URIs zu entdecken und deren Inhalte abzurufen.
    Ressourcen sind anwendungs­gesteuert: Der MCP Host bestimmt sowohl den Zeitpunkt als auch die Strategie der Servernutzung – etwa durch Nutzerauswahl oder interne Auswahl-Algorithmen.
  • Werkzeuge (Tools):
    Dies sind ausführbare Funktionen, die von MCP-Clients aufgerufen werden können. Werkzeuge ermöglichen dynamische Operationen mit externen Systemen, zum Beispiel eine Datenbank-Update-Abfrage oder den Befehl zum Erstellen einer Datei. Server deklarieren Werkzeuge mit eindeutigen Namen und Eingabeschemata. Der Client kann die verfügbaren Werkzeuge auflisten, und das LLM kann sie dann über den MCP Host und Client aufrufen. Nach der Ausführung liefert der Server die Ergebnisse zurück.
    Werkzeuge sind modellgesteuert: Das LLM entscheidet während des Denkprozesses und basierend auf dem Kontext, welches Server-Werkzeug aufgerufen wird – auch wenn es Anwendungsfälle gibt, in denen der Nutzer eine Aktion genehmigen muss.
  • Eingabevorlagen (Prompts):
    Dies sind wiederverwendbare Gesprächsvorlagen, die von MCP-Clients über MCP-Server bereitgestellt werden. Prompts sind vorgefertigte Anweisungssequenzen mit eindeutigen Namen, die Argumente und weitere Eingaben akzeptieren. Der Client kann die verfügbaren Prompts auflisten und strukturierten Prompt-Inhalt anfordern. Dieser Ansatz hilft, häufige LLM-Aufgaben zu standardisieren und zu optimieren, während Fachexperten spezialisierte Prompts einbringen können – etwa hochwertige Few-Shot-Beispiele – die direkt in den Workflow eingebettet werden.
    Prompts sind nutzer­gesteuert: Der Nutzer entscheidet, ob sie ausgeführt werden, und kann Platzhalter für Ressourcen oder Werkzeug-Ausgaben einfügen.
Diagram showing MCP composability and sampling with multiple servers, client/server roles, host, and LLM interactions.

Diagram of MCP composability: how servers, clients, and hosts interact with LLMs, featuring sampling for multi-agent workflows.

Ein einzelner MCP-Server kann beliebige Kombinationen dieser Grundelemente bereitstellen – von spezialisierten Servern, die sich nur auf ein einziges Element konzentrieren, bis hin zu monolithischen Servern, die eine breite Palette an Funktionalitäten anbieten.
Sobald geplant ist, dass ein MCP-Server und ein LLM automatisch miteinander interagieren, sollte ein modellgesteuertes Grundelement zur Verfügung stehen.

Diese Grundelemente werden durch zusätzliche Kommunikationsfunktionen ergänzt, die den Austausch zwischen Client und Server (und umgekehrt) unterstützen und weitere Anwendungsfälle ermöglichen:

  • Roots:
    In manchen Szenarien ist es hilfreich, einem MCP-Server mitzuteilen, auf welche Dateien oder Verzeichnisse er zugreifen darf oder soll. Ein Root bezeichnet eine URI, typischerweise einen Verzeichnispfad oder eine Datei-URL. Einer oder mehrere Roots können von einem MCP-Client verwaltet werden. Der Server kann die Root-Liste abfragen, um zu wissen, wo er relevante Ressourcen findet und um den Kontext einzuschränken.
  • Sampling:
    Damit MCP-Server mit den LLMs des Hosts arbeiten können, bietet MCP die Sampling-Funktion. Damit können Server LLM-Anfragen über den Client senden. Der Client behält dabei die Kontrolle über Kommunikation und Berechtigungen. Server (insbesondere Tools) können so ein LLM nutzen, ohne selbst zusätzliche Konfiguration vorzunehmen – was agentische Workflows unterstützt.
    Wichtig: Aus Gründen der Sicherheit und des Vertrauens sollte jede Sampling-Anfrage immer von einem Menschen über den MCP Host geprüft werden.
  • Elicitation:
    Elicitation ist eine neue Funktion, die es einem MCP-Server ermöglicht, über den Client gezielt Informationen vom Nutzer abzufragen. Der Host zeigt dazu ein Formular (auf Basis eines JSON-Schemas) an, das der Nutzer annehmen, ablehnen oder abbrechen kann. Auf diese Weise können Server gezielt Eingaben anfordern, anstatt alles im Vorfeld zu benötigen. Elicitation darf jedoch nicht dazu genutzt werden, nach sensiblen Daten zu fragen, und es muss für den Nutzer sichtbar sein, welcher Server die Anfrage stellt. Wie beim Sampling bleibt auch hier der MCP-Client in Kontrolle.

Zusammengenommen ermöglichen diese Grundelemente und Funktionen, dass MCP reiche Schnittstellen definiert:

  • Daten, Aktionen und interaktive Vorlagen (Ressourcen, Werkzeuge, Eingabevorlagen)
  • sowie dynamische Verhaltensweisen (Roots, Sampling, Elicitation) und all das in einem standardisierten JSON-basierten Protokoll.

Ergänzt wird dies durch das Konzept der Komponierbarkeit (Composability): Ein MCP-Client kann selbst als Server agieren und umgekehrt (siehe Abbildung oben). Zusammen mit dem Sampling-Ansatz ermöglicht dies die Verkettung mehrerer MCP-Server und stärkt damit Multi-Agent-Topologien. Diese Komponierbarkeit ist Teil von MCPs Vision für ein modulares Ökosystem.

Weitere Informationen zu den beschriebenen Kernkonzepten und den aktuellen Entwicklungen finden Sie auf der Spezifikationsseite von Anthropic. Einen Überblick über Clients, die diese Kernkonzepte unterstützen, bietet die Feature-Matrix von Anthropic.

Typischer Workflow: Wie MCP in Anwendungen integriert wird

Um zu zeigen und zu erklären, wie MCP in einen Anwendungs-Workflow integriert werden kann, stellen wir uns eine beispielhafte RAG-Anwendung (Retrieval Augmented Generation) vor, die den unten dargestellten Schritten und Abläufen folgt.

Wenn die Anwendung startet, erstellt sie mehrere MCP-Clients. Jeder Client initiiert einen Handshake mit einem entsprechenden Server, um Informationen über unterstützte Funktionen und Protokollversionen auszutauschen. Dieser Handshake stellt sicher, dass beide Seiten kompatibel sind und effektiv miteinander kommunizieren können.

Nach der Initialisierung sendet jeder Client eine Discovery-Anfrage an seinen verbundenen Server, um festzustellen, welche spezifischen Funktionen verfügbar sind. Diese Funktionen können Werkzeuge, Ressourcen oder Eingabevorlagen umfassen. Der MCP-Server antwortet mit einer strukturierten Liste, die jedes dieser Elemente beschreibt, und der Client leitet diese Informationen an den Host weiter. Der MCP-Host kann diese Informationen anschließend interpretieren und für die Nutzung vorbereiten.

Sobald die Discovery abgeschlossen ist, übersetzt die Host-Anwendung die verfügbaren Funktionen in ein Format, das für die Interaktion mit einem LLM geeignet ist. Dies kann zum Beispiel das Parsen von Werkzeugdefinitionen in JSON-Schemas für Funktionsaufrufe beinhalten oder die Organisation von Ressourcen und Eingabevorlagen in einer Form, die das LLM während der Inferenz verwenden kann.

Flowchart showing the MCP workflow with initialization, discovery, context provision, user input, invocation, execution, and integration.

Flowchart of the MCP workflow: initialization, discovery, context provision, invocation, execution, and integration of responses.

Die Anwendung ist nun für die Interaktion mit dem Nutzer vorbereitet. Gibt ein Nutzer beispielsweise die Anfrage „Welche offenen Issues gibt es im HMS-GitHub-Repository?“ ein, analysiert das LLM die Anfrage und erkennt, dass es notwendig ist, ein bestimmtes Werkzeug aufzurufen oder auf eine Ressource zuzugreifen. Es identifiziert die passende Funktion, und der MCP-Host weist den entsprechenden Client an, eine Aufrufanfrage an den für dieses Werkzeug zuständigen Server zu senden.

Der MCP-Server erhält diesen Aufruf, zum Beispiel eine Anfrage „fetch_github_issues“ mit dem Parameter „HMS“, führt die zugrunde liegende Logik aus (z. B. einen API-Call zu GitHub) und verarbeitet das Ergebnis. Sobald die Operation abgeschlossen ist, sendet der Server die Antwortdaten zurück an den MCP-Client.

Der Client leitet dieses Ergebnis dann an den MCP-Host weiter, der die Informationen in den Kontext des LLM integriert. Jede weitere Verarbeitung des LLM erfolgt nun mit diesem erweiterten Kontext. Mithilfe der aktualisierten und relevanten Daten erzeugt das LLM eine Antwort, die sowohl sein internes Schlussfolgern als auch die neu abgerufenen externen Informationen widerspiegelt.

Ein solcher MCP-Flow ermöglicht es dem LLM, stets auf aktuelle Daten zurückzugreifen, spezialisierte Funktionen bei Bedarf zu nutzen und den Nutzern fundierte, aussagekräftige Antworten zu liefern. Die Trennung zwischen MCP-Host, -Client und -Server stellt dabei Modularität, Skalierbarkeit und Flexibilität sicher – sowohl bei der Bereitstellung als auch bei der Wartung verschiedener Werkzeuge in unterschiedlichen Umgebungen.

Sicherheitsaspekte & Best Practices für MCP

Wie jede leistungsstarke neue Technologie bringt auch MCP neue Sicherheitsherausforderungen mit sich, die aktuell noch adressiert werden. Da MCP-Server häufig über privilegierte Zugriffe (z. B. API-Keys, Datenbank-Zugangsdaten) oder sensible Daten verfügen, werden sie zu besonders attraktiven Angriffszielen.

Ein mögliches Angriffsszenario ist der Token-Diebstahl: Ein Angreifer, der einen MCP-Server kompromittiert, könnte OAuth-Tokens stehlen und sich so die sprichwörtlichen „Schlüssel zum Königreich“ verschaffen – also vollen Zugriff auf die E-Mails, Dateien und Cloud-Dienste eines Nutzers, ohne dass dabei übliche Anmeldewarnungen ausgelöst würden. Ein kompromittierter MCP-Server könnte außerdem unautorisierte Aktionen über alle verbundenen Accounts hinweg durchführen. Ebenso wäre es möglich, dass ein manipulierte*r MCP-Server nach der Installation seine Werkzeuge verändert: Ein scheinbar harmloses „Wetter“-Tool könnte sich z. B. selbstständig aktualisieren, um Daten zu exfiltrieren – sofern keine Versions- oder Integritätsprüfungen vorhanden sind.

Ein weiteres Risiko ist die sogenannte „Confused Deputy“-Autorisierung: Führt ein Server Aktionen im Namen des LLMs aus, muss sichergestellt sein, dass dies auch mit den richtigen Benutzerberechtigungen geschieht. Die aktuelle MCP-Spezifikation nutzt OAuth2.1 für die Remote-Authentifizierung. Allerdings wurde festgestellt, dass Teile der Spezifikation im Konflikt mit gängigen Enterprise-Best-Practices stehen können. Anthropic und die Community arbeiten bereits daran, die Spezifikation weiterzuentwickeln, um Autorisierung und Credential-Handling zu stärken.

Darüber hinaus bringt MCP neuartige, LLM-spezifische Angriffsvektoren mit sich. Ein Beispiel ist die Prompt Injection, die durch MCP noch gefährlicher wird: Gibt ein Nutzer (oder ein Angreifer) dem LLM einen bösartigen Prompt, könnte das System dazu gebracht werden, ungewollt Werkzeuge auszuführen. Selbst ohne böswillige Absicht könnte ein solcher Prompt unerwartete Handlungen auslösen – etwa das heimliche Hinzufügen eines zusätzlichen Benutzers in einem Cloud-Account (siehe entsprechender Vorfall).

Um diese Risiken abzumildern, gibt es mehrere empfohlene Best Practices:

  • Least Privilege, Nutzereinwilligung und Transparenz:
    MCP-Hosts und -Server sollten feingranulare Berechtigungen durchsetzen. Nutzer (oder die Host-Anwendung) müssen jede Werkzeugausführung oder jeden Datenzugriff genehmigen, um zu sehen, was ein LLM tun möchte, und um dessen Handlungsmöglichkeiten zu begrenzen.
  • Signaturen und Sicherheitsprüfungen:
    MCP-Server-Binaries und -Code sollten kryptografisch signiert und nur von vertrauenswürdigen Herausgebern bezogen werden. Beim Erstellen von Servern sollten Security-Pipelines genutzt werden.
  • Sandboxing:
    Lokale Server sollten in isolierten Umgebungen laufen, sodass sie ausschließlich auf die vorgesehenen Ressourcen zugreifen können.
  • Monitoring und Audits:
    Organisationen sollten den MCP-Datenverkehr auf Anomalien (ungewöhnliche Werkzeugaufrufe oder Datenabfragen) überwachen und Warnungen für eine schleichende Ausweitung des Zugriffsbereichs einrichten.
  • Schulung & Awareness:
    Entwickler müssen MCP als neue Abstraktionsebene verstehen und sich der damit verbundenen Risiken bewusst sein. MCP-Server sollten erst nach einer detaillierten und gründlichen Prüfung integriert werden. Das Risiko von Prompt Injections sollte bei Implementierungen stets berücksichtigt werden.

Als Antwort auf diese Herausforderungen sieht die MCP-Roadmap die Einführung weiterer Features vor – darunter ein offizielles Register zur Auffindung und zentralen Verwaltung validierter Remote-Server, Governance-Mechanismen zur transparenten Nachverfolgung von Standards sowie Validierungstools für Test-Suites, um die Konformität zu prüfen. Diese Maßnahmen werden dazu beitragen, dass das Ökosystem mit Blick auf Sicherheit reift.

Fazit: Warum MCP für Unternehmen relevant ist

MCP definiert ein modulares Protokoll, das es LLM-Anwendungen ermöglicht, über eine strukturierte Host-Client-Server-Architektur mit externen Daten, Werkzeugen und Prompts zu interagieren. Hosts verwalten den Kontext und steuern die Ausführung, Clients übernehmen die Protokollkommunikation, und Server stellen die Funktionen bereit. Die MCP-Grundelemente (Ressourcen, Werkzeuge und Eingabevorlagen) unterstützen fundierte und erweiterbare LLM-Workflows, während zusätzliche Features wie Sampling und Elicitation dynamische Interaktionen ermöglichen.

Der Transport des Protokolls basiert auf JSON-RPC 2.0 mit Unterstützung für lokale und entfernte Server. Sicherheit bleibt ein aktives Entwicklungsfeld – insbesondere im Hinblick auf den Umgang mit Tokens, die Steuerung von Werkzeugaufrufen und den Schutz vor Prompt Injections. Zu den empfohlenen Best Practices gehören Sandboxing, Least-Privilege-Zugriff und Audit-Mechanismen.

Unternehmen, die MCP einsetzen möchten, sollten zunächst in kontrollierten Umgebungen experimentieren, bevor sie zu schnell in die Produktion gehen. Angesichts der laufenden Weiterentwicklung ist es wichtig, auf dem neuesten Stand zu bleiben, da neue Funktionen das Protokoll kontinuierlich leistungsfähiger und robuster machen. Für Entscheidungsträger und Architekten verdient MCP besondere Aufmerksamkeit, da es reale Herausforderungen bei der Einführung von LLMs adressiert.

Durch den Aufbau MCP-kompatibler Systeme können Unternehmen sicherstellen, dass ihre LLM-Anwendungen flexibel und zukunftssicher bleiben. Kurz gesagt: MCP soll das Rückgrat der nächsten Generation von LLM-basierten Systemen werden. Mit zunehmender Reife des Ökosystems entwickelt sich MCP zur Grundlage für sichere, modulare und agentische Anwendungen – sowohl in lokalen als auch in Cloud-Umgebungen.

Im nächsten Artikel der HMS-Serie zu MCP machen wir einen Reality Check: Sie erfahren, wie wir bei HMS MCP bereits einsetzen – um Prozesse zu optimieren, Kundenanwendungen umzusetzen oder zu erweitern und am Ende intelligentere Services zu liefern. Sie können sich auf praxisnahe Einblicke, Code-Beispiele und sogar einen Einblick in unser eigenes Code-Migrationstool sowie einige Kundenprojekte freuen.

Entdecken Sie erfolgreiche Umsetzungen in unseren Referenzen.


Kilian Schneider
Senior Data Scientist

Fragen zum Artikel?

Wir geben gerne Antworten.
Kontaktieren Sie uns
© 2024 – 2025 HMS Analytical Software
chevron-down