Skip to main content

MCP-Server

FÜR AI-AGENTENChatGPTClaude

Ein Softwaredienst oder Hintergrundprozess, der die MCP-Spezifikation implementiert und externen KI-Clients standardisierten Zugriff auf Funktionsausführungen, das Lesen von Ressourcen und Prompt-Vorlagen bietet.

1. Konzeptüberblick und systemisches Problem

Jedes moderne Unternehmen oder jeder Entwickler verfügt über einen einzigartigen Satz interner Services: proprietäre Datenbanken, API-Microservices, spezifische CLI-Utilities oder Deployment-Skripte. Vor der Einführung des MCP-Standards erforderte die Integration dieser Tools in künstliche Intelligenz das Schreiben proprietärer Plugins für jedes einzelne System.

MCP Server vereinfacht die Architektur grundlegend:

  1. Kapselung von Secrets: Alle vertraulichen Schlüssel (Datenbank-Passwörter, Zahlungs-Token) werden ausschließlich serverseitig gespeichert und nicht in den LLM-Kontext übertragen.
  2. Einheitliches Implementierungsinterface: Sie schreiben den Backend-Code einmal, und er wird automatisch in jedem MCP-Client verfügbar (Cursor, Claude Code, Windsurf, interne Pipelines).
  3. Strikte Typisierung des Vertrags: Dank Zod- oder Pydantic-Schemas stellt der Server sicher, dass das Modell nur valide Parameter übergibt, bevor die Geschäftslogik ausgeführt wird.

2. Architektonische Taxonomie und mentales Modell

Die Server-Architektur basiert auf drei funktionalen Interfaces, die durch das Protokoll definiert sind:

  • 1. Tools Interface (Tools API): Methoden mit Seiteneffekten, die vom Modell aufgerufen werden. Jedes Tool hat einen eindeutigen Namen, eine menschenlesbare Beschreibung (die das LLM zur Auswahl nutzt) und ein inputSchema.
  • 2. Resources Interface (Resources API): URI-basierte Informationsströme zum Lesen (z. B.: postgres://analytics/users/schema oder logs://latest). Unterstützt Abonnements für Updates: Wenn sich eine Ressource ändert, sendet der Server eine Benachrichtigung notifications/resources/updated.
  • 3. Prompts Interface (Prompts API): Eine Bibliothek kontextueller Szenarien (z. B. review_pull_request oder debug_memory_leak), die der Server zusammen mit empfohlenen Argumenten an den Client exportiert.
  • 4. Deployment-Modus:
    • Lokal (Local Process): Wird über npx, uvx oder docker run in Verbindung mit stdio gestartet.
    • Netzwerk-Microservice (Remote SSE): Ein vollwertiger Container in der Cloud, der Anfragen über HTTP Server-Sent Events bedient und Autorisierung via Bearer Tokens unterstützt.

3. Technischer Pipeline und interne Mechanik

Der Lebenszyklus der Anfrageverarbeitung durch einen MCP-Server:

  1. Bootstrap & Protocol Binding (Prozessstart): Der Server initialisiert eine Instanz der Klasse Server, bindet den Transport-Adapter (StdioServerTransport) und wartet auf das eingehende Paket initialize vom Client.
  2. Capability Registration (Bekanntmachung der Fähigkeiten): Der Server registriert Handler:
    • ListToolsRequestSchema: Gibt ein Array von JSON-Schemas der verfügbaren Tools zurück.
    • CallToolRequestSchema: Routet den Aufruf einer spezifischen Funktion.
  3. Validation & Execution (Argumentvalidierung und Ausführung): Bei Eingang einer tools/call-Anfrage prüft der Server die übergebenen Argumente anhand des Schema-Validators. Bei Ungültigkeit wird eine strukturierte Fehlermeldung zurückgegeben. Sind die Daten valide, wird die Ziel-Geschäftslogik ausgeführt (DB-Abfrage, AWS-Aufruf).
  4. Structured Response Serialization (Antwortformatierung): Das Ergebnis wird im Protokoll-Array content: [{ type: "text", text: "..." }] verpackt. Alle internen System-Logs werden in den stderr-Stream umgeleitet, um die Integrität des JSON-RPC-Kanals nicht zu beeinträchtigen.

4. Praktische Engineering-Szenarien im Production-Umfeld

01. Sicheres Enterprise-Gateway zu Microservices

Ein Engineering-Team erstellt einen einzigen MCP-Server in TypeScript, der Agenten ermöglicht, Incident-Status in PagerDuty abzufragen, Build-Status in GitHub Actions zu prüfen und Test-Tokens im internen IdP zu generieren, ohne manuell zwischen Web-Dashboards wechseln zu müssen.

02. Lokaler DevOps-Assistent für Kubernetes

Ein MCP-Server läuft auf der Maschine des Ingenieurs mit lokalen kubectl-Credentials. Er stellt dem Agenten in Cursor die Tools k8s_get_pods, k8s_describe_pod und k8s_get_logs bereit. Das Modell lokalisiert sofort die Ursache eines CrashLoopBackOff, ohne dass der Mensch Logs manuell kopieren muss.

03. Hardware-Interface für IoT und Embedded Systems

Ein MCP-Server, deployed auf einem Test-Raspberry Pi oder lokalen Server, gewährt Zugriff auf die Interaktion mit Hardware-Ports (GPIO/Serial). Der Entwickler kann den Agenten per Text auffordern, einen Testzyklus eines angeschlossenen Mikrocontrollers durchzuführen.

5. Stolperfallen, typische Fehler und Sicherheit

  • Leckage von Debug-Artefakten in stdout: Der häufigste Anfängerfehler ist ein vergessenes console.log("data", res) im Funktionskörper. Im stdio-Transport bricht dies sofort den Parser des Clients. Verwenden Sie immer console.error() oder einen spezialisierten Logger mit Ausgabe nach stderr.
  • Zombie-Prozesse (Resource Leaking): Wenn der Client abrupt beendet wird, kann der Child-Prozess des Servers im Speicher hängen bleiben. Hängen Sie immer Listener an die Events process.stdin.on('close'), SIGTERM und SIGINT, um Verbindungen zur Datenbank graceful zu beenden.
  • Fehlende Path Sanitization (Path Traversal): Wenn ein Tool Dateien basierend auf einem vom Modell angegebenen Pfad liest, führt die Übergabe des Arguments ../../../../etc/passwd zur Kompromittierung des Hosts. Normalisieren Sie Pfade immer und stellen Sie sicher, dass sie innerhalb des erlaubten Root-Verzeichnisses liegen.
/ Häufig gestellte FragenSchema.org FAQPage

FAQ: MCP-Server

Mit dem offiziellen `@modelcontextprotocol/sdk` für TypeScript oder Python (`mcp`). Es reicht aus, eine Serverinstanz zu deklarieren, den Transport `StdioServerTransport` oder `SSEServerTransport` anzuschließen, Eingabeschemas über Zod/Pydantic zu definieren und Call-Handler über `setRequestHandler` zu registrieren.
/ Interne Links
Alle Begriffe