Definition
MCP (Model Context Protocol) ist Anthropics offener Standard fuer LLM-Tool-Kopplung. Statt jedes Werkzeug im Modell selbst zu kodieren, beschreibt ein MCP-Server seine Faehigkeiten als JSON-Schema; ein MCP-Client vermittelt zwischen LLM-Host und Server ueber JSON-RPC-Nachrichten. Anthropic hat MCP Ende 2024 offen veroeffentlicht; OpenAI, Google und andere haben es seitdem als Quasi-Standard uebernommen.
Mechanik
Drei Komponenten:
- Host — das LLM (Claude, GPT, ...) entscheidet ob und welches Tool gerufen wird, basierend auf den vom Server gemeldeten Tool-Beschreibungen.
- Client — die App, die Host und Server koppelt (z.B. Claude Code, Cursor, eine Inference-Engine deiner Wahl).
- Server — stellt Tools, Resources oder Prompts bereit; lokal als stdio-Subprozess oder remote ueber HTTP+SSE.
Standard-Methoden des Protokolls:
- initialize — Handshake, Capability-Austausch
- tools/list — Server meldet seine Tools mit JSON-Schema-Definition
- tools/call — Client ruft ein Tool mit konkreten Argumenten auf
- resources/list / resources/read — Server stellt Daten zur Verfuegung
- prompts/list / prompts/get — wiederverwendbare Prompt-Vorlagen
Tool-Calling-Loop in der Praxis: Der Host bekommt die Tool-Beschreibung als Teil des System-Prompts, gibt eine strukturierte Tool-Anfrage zurueck (Modell-spezifisches Format — XML-Tags, JSON-Wrapper, Funktion-Call-Token), der Client parst sie, ruft den Server, gibt das Ergebnis als naechste User-Message zurueck. Der Host formuliert die finale Antwort.
Selber ausprobieren
Diese Demo nutzt Llama-3.1-8B-Instruct (Meta) und implementiert eine Mini-Variante des MCP-Protokolls in Python. Du siehst den vollstaendigen Two-Turn-Tool-Call-Loop: Frage -> Tool-Auswahl -> Tool-Ausfuehrung -> finale Antwort.
⚠ Achtung — Download-Groesse: Llama-3.1-8B in Q4 ist ~4-5 GB. Beim ersten Klick ladet der Browser das Modell einmalig in den OPFS-Cache (1-5 min je nach Verbindung). Bei spaeteren Besuchen instant verfuegbar. Nutze WLAN/Festnetz, nicht Mobilfunk.
💡 Warum 8B und nicht 3.5B? Phi-3.5-mini (das wir vorher hier eingebaut hatten) ist 2 GB klein und scheitert reproduzierbar an drei Stellen: vertraut sich selbst mehr als dem Tool-Resultat (Math 137x42: rechnete falsch, lehnte korrektes Tool-Ergebnis ab); ruft Tools auf wenn keine noetig sind (Wissensfrage „capital of France"); driftet in Round 2 in fiktive Folgekonversationen. Llama-3.1-8B ist die kleinste Klasse mit echtem Tool-Calling-Fine-Tuning.
Was du im Output erwartest mit Llama-3.1-8B (anders als zuvor mit Phi-3.5-mini):
- Math-Frage: Tool-Call -> 5754 -> Modell akzeptiert Tool-Resultat -> finale Prosa-Antwort
- Word-Count: Tool-Call -> 9 -> Modell akzeptiert -> Antwort
- Wissens-Frage: Direkte Antwort „Paris is the capital of France." — kein Tool-Call
Llama-3.1-8B-Instruct wurde explizit auf Tool-Calling-Beispiele fine-getuned (Meta hat das im Llama-3.1-Paper dokumentiert) und hat dadurch deutlich bessere Tool-Disziplin als Phi-3.5-mini.
In der Praxis
Echte MCP-Server kommunizieren ueber stdio (Subprozess-Kommunikation) oder HTTP+SSE (Server-Sent Events). Beispiele aus dem Anthropic-Repo: GitHub-MCP-Server liest und schreibt Issues; Filesystem-Server liest lokale Dateien; Postgres-Server fuehrt SQL aus.
In Claude Code, Cursor, oder via Anthropic-CLI configuriert man MCP-Server in einer claude_desktop_config.json oder mcp.json, der LLM-Client startet die als Subprozess und routet Tool-Calls automatisch.