Claude Code MCP: Model Context Protocol 2026
Das Model Context Protocol (MCP) ist der Game-Changer für Claude Code — eigene Tools, APIs und Datenquellen direkt in Claude integrieren. Von Datenbankabfragen bis zu GitHub-Aktionen: MCP macht Claude Code zum universellen Entwicklungsassistenten für deinen spezifischen Stack.
Was ist MCP und warum ist es wichtig?
KonzeptMCP: Standardprotokoll für KI-Tool-Integration
# MCP = Model Context Protocol
# Offener Standard von Anthropic: KI-Modelle ↔ externe Tools
Ohne MCP: Claude Code → nur Dateisystem + Terminal
Mit MCP: Claude Code → Dateisystem + Terminal + DEINE Tools
MCP-Fähigkeiten:
# Tools — Aktionen ausführen (DB-Query, API-Call, GitHub PR erstellen)
# Resources — Daten bereitstellen (Docs, Schema, Config)
# Prompts — Prompt-Templates für wiederkehrende Tasks
Beispiel-Use-Cases:
# "Zeige mir alle offenen GitHub Issues meines Repos"
# "Erstelle PR aus aktuellem Branch mit korrektem Template"
# "Frage meine Supabase-DB: Wieviele User haben sich heute registriert?"
# "Füge Notion-Task für diesen Bug hinzu"
# "Lese aktuellen Kurs von Bitcoin von CoinGecko"
# Claude Code findet MCP-Server in ~/.claude/claude_desktop_config.json
MCP = Superpower für Teams: Einmal einen MCP-Server für eure interne API bauen → jeder Entwickler im Team hat sofort Zugriff auf alle internen Tools direkt in Claude Code.
Bestehende MCP-Server nutzen
KonfigurationMCP-Server einrichten in Claude Code
# ~/.claude/claude_desktop_config.json (macOS/Linux)
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx" }
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://..."]
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]
},
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": { "SLACK_BOT_TOKEN": "xoxb-xxx" }
}
}
}
# Populäre MCP-Server:
# @modelcontextprotocol/server-github — Issues, PRs, Commits
# @modelcontextprotocol/server-postgres — SQL-Queries direkt
# @modelcontextprotocol/server-slack — Nachrichten lesen/senden
# @modelcontextprotocol/server-puppeteer — Web-Scraping
# mcp-server-notion — Notion-Seiten lesen/schreiben
# mcp-server-linear — Issues in Linear
Eigenen MCP-Server bauen
BuildCustom MCP-Server mit TypeScript
# Prompt: "Baue MCP-Server für unsere interne REST-API — Produkte abfragen,
# Bestellungen erstellen, Kunden suchen"
npm install @modelcontextprotocol/sdk zod
// mcp-server/src/index.ts
import { Server } from '@modelcontextprotocol/sdk/server/index.js'
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
import { z } from 'zod'
const server = new Server(
{ name: 'internal-api-mcp', version: '1.0.0' },
{ capabilities: { tools: {} } }
)
// Tool definieren: Produkte suchen
server.setRequestHandler(ListToolsRequestSchema, async () => ({
tools: [
{
name: 'search_products',
description: 'Sucht Produkte nach Name oder SKU in der internen Datenbank',
inputSchema: {
type: 'object',
properties: {
query: { type: 'string', description: 'Suchbegriff' },
limit: { type: 'number', description: 'Max Ergebnisse', default: 10 }
},
required: ['query']
}
},
{
name: 'create_order',
description: 'Erstellt eine neue Bestellung im System',
inputSchema: {
type: 'object',
properties: {
productId: { type: 'string' },
quantity: { type: 'number' },
customerId: { type: 'string' }
},
required: ['productId', 'quantity', 'customerId']
}
}
]
}))
// Tool ausführen
server.setRequestHandler(CallToolRequestSchema, async (request) => {
switch (request.params.name) {
case 'search_products': {
const { query, limit = 10 } = request.params.arguments as { query: string; limit?: number }
const products = await fetch(`https://api.internal/products?q=${query}&limit=${limit}`, {
headers: { Authorization: `Bearer ${process.env.INTERNAL_API_KEY}` }
}).then(r => r.json())
return {
content: [{ type: 'text', text: JSON.stringify(products, null, 2) }]
}
}
case 'create_order': {
// ... Bestellung erstellen
}
}
})
// Server starten
const transport = new StdioServerTransport()
await server.connect(transport)
MCP-Server registrieren und nutzen
# Eigenen Server in Claude Code registrieren
{
"mcpServers": {
"internal-api": {
"command": "node",
"args": ["/path/to/mcp-server/dist/index.js"],
"env": { "INTERNAL_API_KEY": "your-key" }
}
}
}
# Claude Code nutzt automatisch die neuen Tools:
# User: "Suche nach Produkten mit 'Laptop' in unserem System"
# Claude: [ruft search_products("Laptop") auf] → zeigt Ergebnisse
# User: "Erstelle Test-Bestellung für Produkt SKU-001, Kunde C42, Menge 3"
# Claude: [ruft create_order(...) auf] → "Bestellung #12345 erstellt"
# MCP Resources — Dokumentation bereitstellen
server.setRequestHandler(ListResourcesRequestSchema, async () => ({
resources: [{
uri: 'docs://api/schema',
name: 'API Schema',
description: 'OpenAPI-Schema unserer internen API',
mimeType: 'application/json'
}]
}))
# Claude liest automatisch das Schema und kennt alle Endpoints
TippsMCP Best Practices
# Gute Tool-Beschreibungen sind entscheidend
# Claude entscheidet anhand der description, WANN ein Tool sinnvoll ist
❌ SCHLECHT:
description: 'Gets data'
✅ GUT:
description: 'Retrieves customer orders from the CRM. Use when the user asks
about order history, recent purchases, or order status.
Returns orders sorted by date descending.'
# Parameter-Typen genau spezifizieren:
# ✅ Zod-Schema für Validierung
# ✅ Default-Werte dokumentieren
# ✅ Enum-Werte auflisten wenn möglich
# Error-Handling: Immer strukturiert antworten
return {
content: [{ type: 'text', text: 'Fehler: Produkt nicht gefunden' }],
isError: true // Claude weiß: Tool hat versagt
}
Security: MCP-Server laufen lokal und haben Zugriff auf deine Credentials. Niemals MCP-Server von unbekannten Quellen installieren. Bei eigenen Servern: API-Keys immer aus Umgebungsvariablen, niemals hardcoden.
MCP-Modul im Kurs
Im Claude Code Mastery Kurs: vollständiges MCP-Modul mit Server-Setup, Tool-Design, Resource-Integration und Best Practices — lerne Claude Code mit deinen eigenen Tools zu erweitern.
14 Tage kostenlos testen →