Python-Implementierung des Model Context Protocol (MCP)
Dieses Projekt implementiert einen funktionierenden Model Context Protocol (MCP)-Server und -Client in Python gemäß der anthropischen MCP-Spezifikation. Es demonstriert die wichtigsten Muster des MCP-Protokolls anhand eines einfachen, interaktiven Beispiels.
Was ist MCP?
Das Model Context Protocol (MCP) ist ein offener Standard auf Basis von JSON-RPC 2.0 zur Verbindung von KI-Modellen mit externen Datenquellen und Tools. Es definiert eine Client-Server-Architektur, in der eine KI-Anwendung mit einem oder mehreren MCP-Servern kommuniziert. Jeder Server bietet folgende Funktionen:
Tools : Ausführbare Funktionen, die Aktionen ausführen
Ressourcen : Datenquellen, die Informationen bereitstellen
Eingabeaufforderungen : Vordefinierte Vorlagen oder Workflows
MCP standardisiert die Art und Weise, wie diese Funktionen erkannt und aufgerufen werden, und dient als „USB-C für KI“, das Modellen eine strukturierte Interaktion mit externen Systemen ermöglicht.
Related MCP server: MCP Server Python Template
Projektstruktur
server/: MCP-Serverimplementierungserver.py: WebSocket-Server, der MCP-Anfragen verarbeitet und Beispieltools/-ressourcen bereitstellt
client/: MCP-Client-Implementierungclient.py: Demo-Client, der eine Verbindung zum Server herstellt und alle MCP-Funktionen ausübt
Demonstrierte Funktionen
Diese Implementierung zeigt den Kernablauf des MCP-Protokolls:
Fähigkeitsaushandlung : Client-Server-Handshake über
initializeCapability Discovery : Auflistung der verfügbaren Tools und Ressourcen
Toolaufruf : Aufruf des Tools
add_numbersmit ParameternRessourcenzugriff : Lesen von Textinhalten aus einer Ressource
Aufstellen
Erstellen Sie eine virtuelle Umgebung:
python3 -m venv .venv source .venv/bin/activateInstallieren Sie Abhängigkeiten:
pip install -r requirements.txt
Verwendung
Starten Sie den MCP-Server (in einem Terminal):
python server/server.pyFühren Sie den MCP-Client aus (in einem anderen Terminal):
python client/client.py
Der Client stellt eine Verbindung zum Server her, führt den MCP-Handshake durch, erkennt Funktionen und demonstriert das Aufrufen von Tools und den Zugriff auf Ressourcen mit formatierter Ausgabe.
Wie es funktioniert
MCP-Server
Der Server:
Akzeptiert WebSocket-Verbindungen
Reagiert auf JSON-RPC-Anfragen gemäß der MCP-Spezifikation
Stellt ein Beispieltool bereit (
add_numbers)Stellt eine Beispielressource bereit (
example.txt)Unterstützt den MCP-Handshake und die Fähigkeitserkennung
MCP-Client
Der Kunde:
Verbindet sich mit dem Server über WebSocket
Führt den MCP-Handshake aus
Entdeckt verfügbare Tools und Ressourcen
Demonstriert den Aufruf eines Tools und das Lesen einer Ressource
Präsentiert die Ergebnisse in einer formatierten Anzeige
Protokolldetails
MCP implementiert diese Schlüsselmethoden:
Verfahren | Beschreibung |
| Handshake zur Festlegung der Fähigkeiten |
| Liste der verfügbaren Tools |
| Aufrufen eines Tools mit Argumenten |
| Auflisten der verfügbaren Ressourcen |
| Ressourceninhalt lesen |
| Liste der verfügbaren Eingabeaufforderungen |
Erweiterung des Projekts
Sie können diese Implementierung erweitern durch:
Hinzufügen weiterer Tools mit unterschiedlichen Funktionen
Hinzufügen dynamischer Ressourcen, die sich bei jedem Lesevorgang ändern
Implementieren von Eingabevorlagen für geführte Interaktionen
Erstellen interaktiverer Clientanwendungen