Claude Code kann „out of the box“ lokale Dateien lesen, Befehle im Terminal ausführen und den Quellcode eines Projekts bearbeiten. In der Praxis reicht dies jedoch oft nicht aus: Es besteht Bedarf an Informationen aus einer PostgreSQL-Datenbank, der Prüfung offener Pull Requests auf GitHub, dem Abrufen aktueller Dokumentation aus der Cloud oder dem Senden von Anfragen an interne Unternehmens-APIs.
Genau für diese Herausforderung wurde das Model Context Protocol (MCP) entwickelt – ein offener Standard, der Claude Code von einem einfachen lokalen Assistenten in eine vollwertige Orchestrierungsplattform für externe Systeme und Dienste verwandelt.
In diesem praktischen Leitfaden analysieren wir die MCP-Architektur, lernen offizielle vorgefertigte Server zu integrieren, erstellen einen eigenen Server in TypeScript und festigen unsere Kenntnisse durch reale Übungsaufgaben.
1. Was ist ein MCP-Server?
Das Model Context Protocol (MCP) ist ein von Anthropic entwickeltes offenes Kommunikationsprotokoll, das die Interaktion zwischen Sprachmodellen (LLMs) und externen Tools oder Datenquellen standardisiert.
Anstatt für jeden Dienst individuelle, einzigartige Plugins zu schreiben, führt MCP eine einheitliche Client-Server-Schnittstelle ein.
Jeder MCP-Server stellt dem Modell drei grundlegende Primitiven zur Verfügung:
- Tools (Werkzeuge) – ausführbare Funktionen mit typisierter JSON-Schema-Parameterdefinition, die Claude Code während der Problemlösung autonom aufrufen kann (z. B.
create_issue,execute_query). - Resources (Ressourcen) – passive Daten oder Schemata, die der Assistent als Eingabekontext lesen kann (Dateien, DB-Schemata, Logs).
- Prompts (Prompt-Vorlagen) – vordefinierte Kontextszenarien, die die Ausführung häufiger, wiederkehrender Aufgaben vereinfachen.
Vergleich der Fähigkeiten von Claude Code
| Arbeitsszenario | Ohne MCP (Basis-Claude Code) | Mit verbundenen MCP-Servern |
|---|---|---|
| Dateiverarbeitung | Nur innerhalb des aktuellen Projektverzeichnisses | Zugriff auf alle freigegebenen Verzeichnisse und Notizen |
| Repository-Daten | Lokale Dateien via git diff / git log | Lesen von Issues, PRs, Code Reviews und GitHub-API |
| Datenbanken | Nur wenn lokaler CLI-Client installiert ist | Direktes Lesen von Schemata, Tabellen und Ausführen von SQL |
| Informationssuche | Lokales grep / ripgrep in Dateien | Echtzeit-Websuche über Brave/Tavily |
| Interne Services | Nicht verfügbar ohne komplexe Bash-Skripte | Aufruf interner API-Funktionen via typisiertes SDK |
2. Architektur und Funktionsweise von MCP
Die Interaktionsarchitektur basiert auf dem Standardprotokoll JSON-RPC 2.0. In den meisten lokalen Szenarien erfolgt die Kommunikation über Standard-Ein-/Ausgabeströme (stdio), während für Remote-Server Server-Sent Events (SSE) oder HTTP verwendet werden.
Schrittweiser Lebenszyklus einer Anfrage
- Initialisierung und Handshake: Beim Start einer Session liest Claude Code die Konfigurationsdatei, startet die angegebenen Serverprozesse und fragt die Liste der unterstützten Tools ab (
tools/list). - Veröffentlichung der Fähigkeiten: Jeder MCP-Server gibt eine Liste seiner Methoden zusammen mit JSON-Schemas der Parameter und detaillierten Beschreibungen zurück.
- Absichtserkennung: Wenn Sie eine Aufgabe in natürlicher Sprache formulieren, gleicht Claude Ihre Anfrage mit den verfügbaren Tools ab.
- Tool-Aufruf: Erfordert die Aufgabe externe Daten, sendet das Modell eine strukturierte Anfrage
tools/callan den Server mit validen Argumenten. - Ausführung auf Serverseite: Der Server verbindet sich mit der externen API, Datenbank oder dem Dateisystem und gibt das Ergebnis an den Client zurück.
- Generierung der Antwort: Nach Erhalt der Rohdaten interpretiert Claude diese und liefert Ihnen eine finale, strukturierte Antwort.
Die Interaktion ist für Entwickler transparent: Sie müssen sich keine Funktionsnamen oder API-Syntax merken. Claude wählt basierend auf dem Aufgabenkontext selbstständig das am besten geeignete Tool aus.
3. Wie man einen MCP-Server in Claude Code integriert
Die Anbindung der Server erfolgt über die JSON-Konfiguration im Block mcpServers. Claude Code unterstützt zwei Konfigurationsebenen:
- Projekt-Konfiguration (
.claude/settings.json) – gilt ausschließlich für das aktuelle Verzeichnis und kann im Repository für das gesamte Team gespeichert werden. - Globale Konfiguration (
~/.claude/settings.json) – steht allen Projekten des aktuellen Benutzers auf dem Computer zur Verfügung.
json{ "mcpServers": { "filesystem": { "command": "npx", "args": [ "-y", "@anthropic-ai/mcp-filesystem", "./docs" ] } } }
Struktur der Konfigurationsparameter
Jeder Servereintrag im Abschnitt mcpServers besteht aus drei Schlüsselfeldern:
| Parameter | Typ | Pflichtfeld | Beschreibung und Zweck | Beispielwerte |
|---|---|---|---|---|
command | string | Ja | Ausführbarer Befehl zum Starten des Serverprozesses | "npx", "node", "uvx", "docker" |
args | string[] | Ja | Array der Startargumente (Paketname, Pfade, Optionen) | ["-y", "@anthropic-ai/mcp-filesystem", "/path"] |
env | object | Nein | Dictionary der Umgebungsvariablen für Authentifizierung und API-Keys | {"GITHUB_TOKEN": "ghp_...", "DEBUG": "1"} |
Wenn Sie Python-basierte Tools nutzen, können Sie statt npx auch uvx (aus dem Paketmanager uv) verwenden, z. B.: "command": "uvx", "args": ["mcp-server-git"].
4. Katalog fertiger MCP-Server
Anthropic und die Open-Source-Community haben vorgefertigte Server für die populärsten Tools entwickelt. Sie müssen keinen Code von Grund auf neu schreiben – es genügt, das entsprechende npm- oder python-Paket zu installieren.
| Server | Offizielles Paket | Zugang / Authentifizierung | Hauptfunktionen |
|---|---|---|---|
| Filesystem | @anthropic-ai/mcp-filesystem | Pfade zu erlaubten lokalen Ordnern | Lesen, Schreiben und Suchen in externen Verzeichnissen |
| GitHub | @anthropic-ai/mcp-github | Personal Access Token (GITHUB_TOKEN) | Suche in Repositories, Analyse von Issues, Erstellen von PRs |
| PostgreSQL | @anthropic-ai/mcp-postgres | Verbindungszeichenkette (connectionString) | Inspektion von Schemata, Lesen von Tabellen, Ausführen von SQL-Abfragen |
| Brave Search | @anthropic-ai/mcp-brave-search | API-Key für Suche (BRAVE_API_KEY) | Zugriff auf aktuelle Internetinformationen ohne Halluzinationen |
1. Filesystem Server
Gewährt Claude Code Zugriff auf Verzeichnisse außerhalb des aktuellen Repositorys (z. B. globale Dokumentationsordner oder Obsidian-Notizen).
2. GitHub Server
Ermöglicht dem Assistenten die direkte Arbeit mit Organisations-Repositories: Lesen von Issues, Hinterlassen von Kommentaren in PRs und Prüfen des Pipeline-Status.
3. PostgreSQL Server
Erlaubt Claude, analytische oder diagnostische Abfragen direkt gegen Ihre lokale oder remote Datenbank auszuführen.
4. Brave Search Server
Integriert eine Web-Suchmaschine, sodass der Assistent aktuelle Dokumentation, Lösungen für kürzlich aufgetretene Bugs oder Änderungen in Bibliotheken finden kann.
5. Wie Claude Code MCP im Dialog nutzt
Nachdem der Server in der Konfiguration hinzugefügt wurde, müssen Sie keine speziellen Befehle oder Präfixe eingeben. Claude Code analysiert Ihre Anfrage in natürlicher Sprache und entscheidet selbstständig, wann ein Tool aufgerufen werden soll.
Beispielszenario: Arbeit mit GitHub
Benutzeranfrage:
„Prüfe, welche offenen Issues mir im Repository acme/platform zugewiesen sind, und gib eine kurze Liste der wichtigsten aus.“
Interner Prozess von Claude Code:
- Das Modell erkennt, dass lokale Dateien für die Antwort nicht ausreichen.
- Es formuliert einen Aufruf
mcp__github__search_issuesmit den Filternrepo:acme/platform state:open assignee:@me. - Es erhält eine strukturierte JSON-Antwort vom GitHub-Server.
- Es formatiert die Antwort in einem benutzerfreundlichen Layout.
6. Erstellung eines eigenen MCP-Servers in TypeScript
Wenn vorgefertigte Lösungen nicht ausreichen und Sie spezifische Tools für Geschäftslogik oder interne Microservices benötigen, lässt sich ein MCP-Server in wenigen Minuten mit dem offiziellen SDK @modelcontextprotocol/sdk erstellen.
Schritt 1. Initialisierung und Installation der Abhängigkeiten
Erstellen Sie ein separates Verzeichnis und installieren Sie die Bibliotheken:
Schritt 2. Implementierung des Servers (server.ts)
Erstellen Sie die Datei server.ts mit der Definition des Servers und eines benutzerdefinierten Tools:
Schritt 3. Anbindung des Servers an Claude Code
Fügen Sie den erstellten Server in die .claude/settings.json Ihres Projekts ein:
Die Verwendung des Utilities tsx ermöglicht die direkte Ausführung von TypeScript-Dateien, ohne dass eine vorherige Kompilierung via tsc erforderlich ist.
7. Sicherheit und Isolation bei der Arbeit mit MCP
MCP erhöht die Autonomie von Claude Code erheblich, gibt dem Code aber auch die Möglichkeit, mit Ihrem Betriebssystem und externen Diensten zu interagieren. Um die Sicherheit Ihrer Arbeitsumgebung zu gewährleisten, halten Sie sich an folgende Regeln:
1. Der Server läuft mit Ihren Systemrechten
Ein MCP-Server operiert im Kontext des aktuellen Betriebssystems-Benutzers. Falls der Server Fehler enthält oder schädlichen Code besitzt, kann er auf Dateien zugreifen, die Ihr Benutzer lesen darf.
2. Schutz von Secrets und API-Keys
Speichern Sie niemals produktive Keys im Repository. Nutzen Sie die globale Konfiguration ~/.claude/settings.json für sensible Tokens oder übergeben Sie Umgebungsvariablen über .env-Dateien, die in der .gitignore stehen.
3. Überprüfung fremder Pakete vor der Integration
Auditen Sie stets das Repository oder npm-Paket eines Drittanbieter-MCP-Servers, bevor Sie ihn konfigurieren:
- Stellen Sie sicher, dass der Quellcode offen liegt.
- Prüfen Sie Download-Zahlen und Aktivität des Repositories.
- Achten Sie auf Netzwerkrequests, die der Server beim Start ausführt.
4. Trennung der Konfigurationsebenen
Vermeiden Sie die Anbindung von Servern mit Schreibrechten auf Produktionsdatenbanken (Production DB) im Entwicklungsmodus. Nutzen Sie für Tests separate Read-Only-Replikate oder lokale Docker-Container.
8. Praktischer Workshop: Schritt-für-Schritt-Setup
Führen Sie zwei praktische Aufgaben durch, um den Stoff zu festigen und die korrekte Server-Anbindung zu überprüfen.
Aufgabe 1. Anbindung des GitHub MCP Servers
- Erstellen Sie einen neuen Personal Access Token (classic oder fine-grained) auf GitHub unter
Settings→Developer settingsmit den Berechtigungenrepoundread:org. - Öffnen oder erstellen Sie die Konfigurationsdatei
~/.claude/settings.json:
- Starten Sie eine neue Claude Code Session und führen Sie den Verifikations-Prompt aus:
Test-Prompt:
„Zeige meine 5 zuletzt aktualisierten Repositories auf GitHub und deren Status.“
- Claude Code hat das GitHub-Tool erfolgreich ohne Authentifizierungsfehler aufgerufen.
- Eine aktuelle Liste der Repositories wurde erhalten.
Aufgabe 2. Anbindung des Filesystem Servers für externe Notizen
Gewähren Sie Claude Zugriff auf einen externen Ordner mit Dokumentation oder Architektur-Notizen:
- Fügen Sie den Server
filesystemin die.claude/settings.jsonein:
- Testen Sie die Funktion mit einer Anfrage an Claude:
Test-Prompt:
„Finde im Ordner external-docs alle Markdown-Dateien, die die API-Architektur beschreiben, und erstelle eine kurze Übersicht.“
- Claude hat Dateien außerhalb des Projektarbeitsverzeichnisses gelesen.
- Die gefundenen Informationen wurden ohne Kontextverlust zusammengefasst.
9. Schnelle Wissensüberprüfung
Überprüfen Sie, wie gut Sie die fundamentalen Prinzipien der Model Context Protocol-Architektur verstanden haben.
Frage 1. Was ist der Kernzweck eines MCP-Servers?
- A. Eine Cloud-VM zum Hosting von Claude-Modellen
- B. Ein Adapterprogramm, das dem Sprachmodell standardisierten Zugriff auf externe Tools und Daten bietet
- C. Eine Bibliothek zur automatischen Komprimierung von Vektor-Embeddings
- D. Ein Webserver zur Veröffentlichung kompilierten Projektcodes
Richtige Antwort: B.
Ein MCP-Server ist ein lokaler oder entfernter Prozess, der als Brücke zwischen dem Modell und Drittdiensten fungiert und dem Modell standardisierte Tools, Resources und Prompts bereitstellt.
Frage 2. In welcher Datei wird die Konfiguration für Server gespeichert, die nur für ein bestimmtes Repository gedacht sind?
- A.
~/.claude/settings.json - B.
package.json - C.
.claude/settings.jsonim Projektstammverzeichnis - D.
CLAUDE.md
Richtige Antwort: C.
Für die Konfiguration auf Ebene eines einzelnen Projekts wird .claude/settings.json verwendet. Die Datei im Home-Verzeichnis ~/.claude/settings.json ist für die globalen Entwickler-Tools zuständig.
Frage 3. Wie weiß Claude Code, welches Tool zur Beantwortung einer Frage genutzt werden soll?
- A. Der Nutzer muss explizit den Flag
--tool=namevor jeder Anfrage setzen - B. Es muss zuvor der Befehl
/mcp selectausgeführt werden - C. Das Modell analysiert die Semantik der Anfrage und die Beschreibungen der JSON-Schemas der Tools und wählt das relevante Tool selbstständig aus
- D. Alle Tools werden gleichzeitig aufgerufen, unnötige Ergebnisse verworfen
Richtige Antwort: C.
Dank standardisierter Beschreibungen und Parameterschemas bewertet Claude die Absicht des Nutzers und ruft autonom das benötigte Tool mit validen Argumenten auf.
10. Zusammenfassung und Architektur-Checkliste
Das Model Context Protocol macht Claude Code zu einer flexiblen agentischen Umgebung. Statt Inhalte von Dateien oder Datenbankschemata manuell in den Dialog zu kopieren, richten Sie einmalig permanente Kommunikationskanäle ein.
Checkliste für die Bereitschaft Ihrer Umgebung
- Konfigurationsebenen: Globale Services (GitHub, Web Search) sind in
~/.claude/settings.jsonausgelagert, projektspezifische (DB, Doku) in.claude/settings.json. - Sicherheit: Tokens und Passwörter werden nicht in öffentliche Repos committet; Datenbanken sind mit minimal notwendigen Rechten verbunden (Read-Only für Analysen).
- Tool-Testing: Die Funktionalität der Server wurde nach Sessionstart durch gezielte Anfragen verifiziert.
- Erweiterbarkeit: Für spezifische interne Aufgaben wurde ein Template für einen eigenen Server in TypeScript via
@modelcontextprotocol/sdkerstellt.