Was ist das Model Context Protocol (MCP)?
Das Model Context Protocol ist ein standardisiertes Framework, das KI-Assistenten wie Claude ermöglicht, sich mit externen Tools, Datenbanken und Datenquellen zu verbinden, ohne komplexe benutzerdefinierte Integrationen zu erfordern. Stellen Sie es sich wie einen universellen Adapter vor: Anstatt separate Verbindungen für jedes KI-Tool zu jeder Datenquelle aufzubauen, bietet MCP eine konsistente Schnittstelle, die plattformübergreifend funktioniert.
Traditionell bedeutete die Integration eines KI-Assistenten in externe Systeme das Schreiben benutzerdefinierter API-Wrapper, die Verwaltung der Authentifizierung und die Pflege separaten Integrationscodes für jeden Anwendungsfall. MCP beseitigt diese Reibung. Es definiert einen klaren Vertrag zwischen KI-Modellen und den Tools, auf die sie zugreifen müssen, wodurch Integrationen schneller erstellt und einfacher gewartet werden können.
Wie MCP funktioniert: Die Architektur
MCP basiert auf einem Client-Server-Modell mit drei Kernkomponenten:
- KI-Client (Host): Der KI-Assistent oder die Anwendung, die Anfragen initiiert. Dies könnte Claude, ein benutzerdefinierter Chatbot oder jedes KI-gestützte System sein.
- MCP-Server: Ein eigenständiger Dienst, der Tools, Ressourcen und Datenquellen exponiert. Er implementiert das MCP-Protokoll und übernimmt die eigentliche Integrationslogik.
- Transportschicht: Der Kommunikationskanal zwischen Client und Server, typischerweise unter Verwendung von stdio, HTTP oder SSE (Server-Sent Events).
Wenn Sie einem KI-Assistenten eine Frage stellen, die externe Daten erfordert, läuft der Prozess wie folgt ab: Der KI-Client erkennt, dass er externe Informationen benötigt, fordert verfügbare Tools vom MCP-Server an, erhält Beschreibungen dessen, was diese Tools leisten können, führt das entsprechende Tool mit Ihren Parametern aus und integriert schließlich die Ergebnisse in seine Antwort an Sie.
Praktische MCP-Anwendungsfälle und Beispiele
Datenbankabfragen: Verbinden Sie Claude mit Ihrer PostgreSQL- oder MySQL-Datenbank. Anstatt Daten manuell in Prompts zu kopieren, kann Claude Ihre Datenbank direkt abfragen, aktuelle Informationen abrufen und diese in Echtzeit analysieren.
Dateisystemzugriff: Erstellen Sie einen MCP-Server, der Claude das Lesen, Schreiben und Verwalten von Dateien auf Ihrem System ermöglicht. Ein gängiges Beispiel ist ein Dokumentationsassistent, der Ihren Code durchsuchen, Dateien lesen und kontextbezogene Hilfe bieten kann.
API-Integrationen: Exponieren Sie interne APIs über MCP. Verbinden Sie Claude beispielsweise mit dem HR-System, CRM oder der Analyseplattform Ihres Unternehmens, sodass es Mitarbeiterdaten, Kundeninformationen oder Leistungsmetriken abrufen kann, ohne separate Integrationen für jedes Tool zu erstellen.
Echtzeit-Datenabruf: Erstellen Sie einen MCP-Server, der Live-Daten von Wetter-APIs, Börsen oder Nachrichten-Feeds abruft. Dies stellt sicher, dass Claude immer mit aktuellen Informationen und nicht nur mit Trainingsdaten arbeitet.
Beispiel-Workflow: Ein Softwareentwicklungsteam verwendet einen MCP-Server, um Claude mit seinem GitHub-Repository, CI/CD-Protokollen und dem Bug-Tracking-System zu verbinden. Wenn ein Entwickler fragt: „Welche Tests sind bei der letzten Bereitstellung fehlgeschlagen?“, fragt Claude den MCP-Server ab, ruft die relevanten Protokolle ab und erklärt genau, welche Tests fehlgeschlagen sind und warum.
Ihren ersten MCP-Server erstellen
Das Erstellen eines MCP-Servers ist unkompliziert. Hier ist ein praktisches Beispiel eines einfachen Servers, der Tools für Wetterdaten und Datenbankabfragen exponiert:
const Anthropic = require('@anthropic-ai/sdk');
const { Server } = require('@modelcontextprotocol/sdk/server/stdio');
const { StdioServerTransport } = require('@modelcontextprotocol/sdk/server/stdio');
const server = new Server({
name: 'data-tools',
version: '1.0.0'
});
// Register a tool: weather lookup
server.setRequestHandler('tools/list', async () => {
return {
tools: [
{
name: 'get_weather',
description: 'Get current weather for a location',
inputSchema: {
type: 'object',
properties: {
location: {
type: 'string',
description: 'City name or coordinates'
}
},
required: ['location']
}
},
{
name: 'query_database',
description: 'Execute a SELECT query against the data warehouse',
inputSchema: {
type: 'object',
properties: {
query: {
type: 'string',
description: 'SQL SELECT query'
}
},
required: ['query']
}
}
]
};
});
// Implement tool execution
server.setRequestHandler('tools/call', async (request) => {
const { name, arguments: args } = request;
if (name === 'get_weather') {
// Call your weather API
const response = await fetch(
`https://api.weather.example.com/current?location=${args.location}`
);
return {
content: [
{
type: 'text',
text: JSON.stringify(await response.json())
}
]
};
}
if (name === 'query_database') {
// Execute database query
const result = await db.query(args.query);
return {
content: [
{
type: 'text',
text: JSON.stringify(result.rows)
}
]
};
}
return { content: [{ type: 'text', text: 'Tool not found' }] };
});
// Start the server
const transport = new StdioServerTransport();
server.connect(transport);
Jetzt ausprobieren: Ein praktischer Workflow
Szenario: Sie möchten, dass Claude Fragen zu Ihrer Produktdatenbank beantwortet.
Schritt 1: Erstellen Sie einen einfachen MCP-Server, der ein Tool exponiert: search_products. Dieses Tool akzeptiert einen Abfrageparameter und gibt passende Produkte aus Ihrer Datenbank zurück.
Schritt 2: Starten Sie den MCP-Server lokal oder stellen Sie ihn in Ihrer Infrastruktur bereit.
Schritt 3: Konfigurieren Sie Claude (oder Ihren KI-Client) so, dass er sich mit diesem MCP-Server verbindet.
Schritt 4: Testen Sie mit einem Prompt: „Welche Produkte haben wir in der Kategorie ‚Elektronik‘, die weniger als 200 $ kosten?“
Was passiert: Claude erkennt, dass es Produktdaten benötigt, ruft Ihr search_products-Tool über MCP auf, empfängt die Ergebnisse und beantwortet Ihre Frage mit aktuellen, genauen Informationen.
Diese gesamte Integration dauerte Minuten statt Stunden, da Sie keine benutzerdefinierte API-Authentifizierung, Fehlerbehandlung oder Antwort-Parsing erstellen mussten – MCP übernimmt die standardisierte Protokollschicht für Sie.
Wichtige Überlegungen und Best Practices
Sicherheit: Validieren und bereinigen Sie immer die an MCP-Tools übergebenen Eingaben. Wenn Sie ein Datenbankabfrage-Tool wie in unserem Beispiel exponieren, implementieren Sie eine ordnungsgemäße SQL-Injection-Prävention und Abfragevalidierung.
Ratenbegrenzung: Fügen Sie Ihren MCP-Servern eine Ratenbegrenzung hinzu, um Missbrauch zu verhindern. Externe Tools sollten nicht unendlich oft aufgerufen werden.
Fehlerbehandlung: Geben Sie aussagekräftige Fehlermeldungen zurück, wenn Tools fehlschlagen. Dies hilft Claude zu verstehen, was schief gelaufen ist und sich elegant zu erholen.
Dokumentation: Schreiben Sie klare Beschreibungen für jedes Tool, das Sie exponieren. Je besser Sie beschreiben, was ein Tool tut und welche Eingaben es erwartet, desto effektiver wird Claude es nutzen.