MCP-Integration
Claude Code als MCP-Host
Das Model Context Protocol (MCP) ist der offene Standard, über den Claude Code mit externen Tools kommuniziert. Claude Code fungiert dabei als MCP-Host -- es stellt die Verbindung zu MCP-Servern her, die jeweils spezifische Fähigkeiten bereitstellen: Dateisystem-Zugriff, Datenbank-Abfragen, API-Aufrufe und vieles mehr.
Jeder MCP-Server bietet eine Reihe von Tools an, die Claude automatisch nutzen kann. Du konfigurierst die Server einmal, und Claude entscheidet selbst, wann welches Tool sinnvoll ist.
Die drei Transport-Typen
Klicke auf eine Schicht, um Details zu sehen
Tippe auf eine Schicht, um Details zu sehen
MCP unterstützt drei verschiedene Wege, wie Claude Code mit einem MCP-Server kommuniziert:
stdio -- Lokaler Prozess
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/pfad/zum/projekt"]
}
}
}
Der Server läuft als lokaler Prozess auf deinem Rechner. Die Kommunikation erfolgt über stdin/stdout -- schnell, direkt und ohne Netzwerk. Ideal für Tools, die auf lokale Dateien oder Systemressourcen zugreifen.
http -- Remote-Server (empfohlen)
{
"mcpServers": {
"analytics": {
"url": "https://mcp.example.com/analytics"
}
}
}
Der Server läuft remote und kommuniziert über HTTP. Das ist der empfohlene Transport für Cloud-Services, Team-Infrastruktur und Produktions-APIs. OAuth-Authentifizierung wird automatisch gehandelt.
sse -- Server-Sent Events (deprecated)
{
"mcpServers": {
"legacy": {
"url": "https://old-server.example.com/sse",
"transport": "sse"
}
}
}
SSE war der ursprüngliche Remote-Transport. Er funktioniert weiterhin, wird aber nicht mehr empfohlen. Neue Integrationen sollten http verwenden.
iWelchen Transport wählen?
Lokale Tools (Dateisystem, Git, Datenbanken auf dem eigenen Rechner) nutzen stdio. Alles, was remote läuft (Cloud-APIs, Team-Services), nutzt http. SSE nur für bestehende Legacy-Server.
Tool Search: Deferred Loading
Eines der wichtigsten Performance-Features für MCP ist Deferred Loading (auch Tool Search genannt). Das Problem ohne Deferred Loading:
| MCP-Server | Tokens beim Start (ohne) | Tokens beim Start (mit) |
|---|---|---|
| GitHub | ~77.000 | ~8.700 |
| Linear | ~45.000 | ~5.200 |
| Jira | ~62.000 | ~6.800 |
Ohne Deferred Loading werden alle Tool-Definitionen beim Start in den Context geladen -- auch Tools, die du in der aktuellen Session nie brauchst. Bei einem GitHub-MCP-Server sind das allein 25% des gesamten Context-Budgets.
Mit Deferred Loading lädt Claude die Tool-Definitionen erst, wenn sie tatsächlich gebraucht werden. Das spart nicht nur Tokens, sondern verbessert auch die Genauigkeit:
- Opus 4 (historischer Benchmark): Genauigkeit stieg von 49% auf 74%
- Opus 4.5 (historischer Benchmark): Genauigkeit stieg von 79% auf 88%
Warum steigt die Genauigkeit? Weniger irrelevante Tool-Definitionen im Context bedeuten weniger Ablenkung -- Claude kann sich besser auf die tatsächlich relevanten Tools konzentrieren.
*Immer aktivieren
Deferred Loading hat praktisch keine Nachteile. Die minimale Verzögerung beim ersten Aufruf eines Tools ist vernachlässigbar im Vergleich zur enormen Token-Einsparung. Aktiviere es für jeden MCP-Server.
Konfigurationsscopes
MCP-Server können auf drei Ebenen konfiguriert werden:
Projekt-Level: .mcp.json
{
"mcpServers": {
"project-db": {
"command": "npx",
"args": ["mcp-server-postgres", "postgresql://localhost/mydb"]
}
}
}
Diese Datei liegt im Projekt-Root und wird über Git geteilt. Ideal für projektspezifische Tools, die das ganze Team braucht.
User-Level: ~/.claude.json
Persönliche MCP-Server, die über alle Projekte hinweg verfügbar sind -- zum Beispiel dein persönliches Notiz-System oder ein privater API-Zugang.
Enterprise: Managed Configuration
IT-Administratoren können MCP-Server zentral über managed-mcp.json vorgeben. Diese Konfiguration wird automatisch an alle Entwickler im Unternehmen verteilt und kann nicht lokal überschrieben werden.
!Sicherheit bei Projekt-Level-Konfiguration
Da .mcp.json über Git geteilt wird, achte darauf, keine Secrets (API-Keys, Passwörter) in dieser Datei zu speichern. Nutze stattdessen Umgebungsvariablen oder den User-Level-Scope für sensible Konfigurationen.
MCP Elicitation
MCP-Server können während der Ausführung strukturierte User-Eingaben anfragen. Das heißt: Ein MCP-Tool muss nicht alle Informationen vorab haben, sondern kann Claude bitten, den User nach fehlenden Details zu fragen.
Beispiel: Ein Deployment-Tool startet, erkennt, dass die Zielumgebung nicht angegeben wurde, und fordert Claude auf, den User zu fragen: "In welche Umgebung soll deployed werden -- Staging oder Production?"
Subagent-spezifische MCP
In Agent-Definitionen (.claude/agents/) kannst du MCP-Server als Frontmatter definieren, die nur diesem spezifischen Agent zur Verfügung stehen:
---
mcpServers:
project-db:
command: npx
args: ["mcp-server-postgres", "postgresql://localhost/mydb"]
---
Du bist ein Datenbank-Analyst. Nutze die project-db Tools...
Der Hauptagent und andere Agents sehen diese MCP-Server nicht -- nur der definierte Agent hat Zugriff.
Hook-Matcher für MCP-Tools
Hooks können auf spezifische MCP-Tool-Aufrufe reagieren. Das Namensschema für den Matcher ist:
mcp__<server-name>__<tool-name>
Beispiel: Ein Hook, der bei jedem GitHub-PR-Create ausgelöst wird:
{
"hooks": {
"PreToolUse": [
{
"matcher": "mcp__github__create_pull_request",
"command": "scripts/validate-pr.sh"
}
]
}
}
Zusammenfassung
MCP ist das Rückgrat der Claude Code Tool-Integration. Drei Transport-Typen decken lokale und remote Szenarien ab, Deferred Loading spart dramatisch Context-Budget, und die verschiedenen Konfigurationsscopes ermöglichen flexible Setups vom Einzelentwickler bis zum Enterprise. Im nächsten Abschnitt schauen wir uns an, wie du Plugins und MCP-Server aus dem Marketplace und der Community beziehst.