Integrations
Provides configuration for use with Codeium Windsurf as an MCP-compatible client
Python MCP-Server zur Code-Graph-Extraktion
Dieser MCP-Server (Model Context Protocol) bietet Tools zum Extrahieren und Analysieren von Python-Codestrukturen mit Schwerpunkt auf Import-/Exportbeziehungen zwischen Dateien. Es handelt sich um eine leichtgewichtige Implementierung, die kein Agentensystem benötigt und sich daher problemlos in jede Python-Anwendung integrieren lässt.
Merkmale
- Code Relationship Discovery : Analysieren Sie Importbeziehungen zwischen Python-Dateien
- Intelligente Code-Extraktion : Extrahieren Sie nur die relevantesten Codeabschnitte, um innerhalb der Token-Grenzen zu bleiben
- Verzeichniskontext : Fügen Sie Dateien aus demselben Verzeichnis ein, um einen besseren Kontext bereitzustellen
- Einbeziehung der Dokumentation : Fügen Sie immer README.md-Dateien (oder Varianten) ein, um die Projektdokumentation bereitzustellen
- LLM-freundliche Formatierung : Formatieren Sie Code mit den richtigen Metadaten für Sprachmodelle
- MCP-Protokollunterstützung : Vollständig kompatibel mit dem Model Context Protocol JSON-RPC-Standard
Das get_python_code
Tool
Der Server stellt ein leistungsstarkes Tool zur Codeextraktion bereit, das:
- Analysiert eine Python-Zieldatei und erkennt alle importierten Module, Klassen und Funktionen
- Gibt den vollständigen Code der Zieldatei zurück
- Enthält Code für alle referenzierten Objekte aus anderen Dateien
- Fügt zusätzliche Kontextdateien aus demselben Verzeichnis hinzu
- Beachtet Token-Grenzen, um eine Überlastung der Sprachmodelle zu vermeiden
Installation
Umgebungsvariablen
Erstellen Sie eine .env
Datei basierend auf dem bereitgestellten .env.example
:
Verwendung
Konfigurieren für MCP-Clients
Um diesen MCP-Server für die Verwendung in MCP-kompatiblen Clients (wie Codeium Windsurf) zu konfigurieren, fügen Sie der MCP-Konfigurationsdatei Ihres Clients die folgende Konfiguration hinzu:
Ersetzen Sie /path/to/python-mcp-new/server.py
durch den absoluten Pfad zur Datei server.py auf Ihrem System.
Sie können die Umgebungsvariablen auch anpassen:
TOKEN_LIMIT
: Maximales Token-Limit für die Codeextraktion (Standard: 8000)
Anwendungsbeispiele
Direkter Funktionsaufruf
Beispielantwort (direkter Funktionsaufruf)
Verwenden des MCP-Protokolls
Auflisten der verfügbaren Tools
Beispielantwort (Tools/Liste)
Aufrufen des Tools get_python_code
Beispielantwort (Tools/Aufruf)
Fehlerbehandlung
Beispiel für eine Fehlerantwort
Testen
Führen Sie die Tests aus, um die Funktionalität zu überprüfen:
Schlüsselkomponenten
- agent.py : Enthält die Funktion
get_python_code
und benutzerdefinierte MCP-Protokollhandler - code_grapher.py : Implementiert die
CodeGrapher
Klasse für die Python-Codeanalyse - server.py : Vollständige MCP-Serverimplementierung mit dem MCP Python SDK
- run_server.py : CLI-Tool zum Ausführen des MCP-Servers
- Beispiele/ : Beispielskripte, die die Verwendung des MCP-Servers und -Clients zeigen
- tests/ : Umfassende Testfälle für alle Funktionen
Details zum Antwortformat
Das Tool get_python_code
gibt ein strukturiertes JSON-Objekt mit den folgenden Feldern zurück:
Feld | Typ | Beschreibung |
---|---|---|
target_file | Objekt | Informationen zur Ziel-Python-Datei |
referenced_files | Array | Liste der von der Zieldatei importierten Objekte |
additional_files | Array | Zusätzliche Kontextdateien aus demselben Verzeichnis |
total_files | Nummer | Gesamtzahl der in der Antwort enthaltenen Dateien |
token_count | Nummer | Ungefähre Anzahl der Token im gesamten enthaltenen Code |
token_limit | Nummer | Maximales Token-Limit für die Extraktion konfiguriert |
Zieldateiobjekt
Feld | Typ | Beschreibung |
---|---|---|
file_path | Zeichenfolge | Relativer Pfad zur Datei vom Repository-Stamm |
code | Zeichenfolge | Vollständiger Quellcode der Datei |
type | Zeichenfolge | Immer "Ziel" |
docstring | Zeichenfolge | Docstring auf Modulebene, falls verfügbar |
Referenziertes Dateiobjekt
Feld | Typ | Beschreibung |
---|---|---|
file_path | Zeichenfolge | Relativer Pfad zur Datei |
object_name | Zeichenfolge | Name des importierten Objekts (Klasse, Funktion usw.) |
object_type | Zeichenfolge | Typ des Objekts („Klasse“, „Funktion“ usw.) |
code | Zeichenfolge | Quellcode des spezifischen Objekts |
docstring | Zeichenfolge | Docstring des Objekts, falls verfügbar |
truncated | Boolesch | Ob der Code aufgrund von Token-Limits gekürzt wurde |
Zusätzliches Dateiobjekt
Feld | Typ | Beschreibung |
---|---|---|
file_path | Zeichenfolge | Relativer Pfad zur Datei |
code | Zeichenfolge | Vollständiger Quellcode der Datei |
type | Zeichenfolge | Art der Beziehung (z. B. „related_by_directory“) |
docstring | Zeichenfolge | Docstring auf Modulebene, falls verfügbar |
Verwenden des MCP SDK-Servers
Dieses Projekt umfasst nun einen voll funktionsfähigen Model Context Protocol (MCP)-Server, der mit dem offiziellen Python MCP SDK erstellt wurde. Der Server stellt unsere Codeextraktionsfunktionalität standardisiert bereit und kann mit jedem MCP-Client, einschließlich Claude Desktop, verwendet werden.
Starten des Servers
Verwenden des MCP-Entwicklungsmodus
Wenn das MCP SDK installiert ist, können Sie den Server mithilfe der MCP-CLI im Entwicklungsmodus ausführen:
Dadurch wird der MCP Inspector gestartet, eine Weboberfläche zum Testen und Debuggen Ihres Servers.
Claude Desktop Integration
Sie können den Server in Claude Desktop installieren, um direkt von Claude aus auf Ihre Code-Explorationstools zuzugreifen:
Benutzerdefinierte Serverbereitstellung
Für benutzerdefinierte Bereitstellungen können Sie den MCP-Server direkt verwenden:
Verwenden des MCP-Clients
Sie können das MCP Python SDK verwenden, um programmgesteuert eine Verbindung zum Server herzustellen. Siehe das bereitgestellte Beispiel in examples/mcp_client_example.py
:
Führen Sie das Beispiel aus:
Hinzufügen zusätzlicher Tools
Sie können dem MCP-Server zusätzliche Tools hinzufügen, indem Sie Funktionen mit dem Dekorator @mcp.tool()
in server.py
dekorieren:
Sie können auch Ressourcenendpunkte hinzufügen, um Daten direkt bereitzustellen:
Modellkontextprotokollintegration
Dieses Projekt berücksichtigt den Model Context Protocol (MCP)-Standard vollständig und bietet zwei Implementierungsoptionen:
- Native MCP-Integration : Die ursprüngliche Implementierung in
agent.py
bietet eine direkte JSON-RPC-Schnittstelle, die mit MCP kompatibel ist. - MCP SDK-Integration : Die neue Implementierung in
server.py
nutzt das offizielle MCP Python SDK für eine robustere und funktionsreichere Erfahrung.
Vorteile der MCP-Integration
- Standardisierte Schnittstelle : Macht Ihre Tools jedem MCP-kompatiblen Client verfügbar
- Verbesserte Sicherheit : Integriertes Berechtigungsmodell und Ressourcenkontrollen
- Bessere LLM-Integration : Nahtlose Integration mit Claude Desktop und anderen LLM-Plattformen
- Verbesserte Entwicklererfahrung : Umfassende Tools wie der MCP Inspector
MCP-Protokollversion
Diese Implementierung unterstützt das MCP-Protokoll Version 0.7.0.
Weitere Informationen zu MCP finden Sie in der offiziellen Dokumentation .
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Ein Model Context Protocol-Server, der Python-Codestrukturen extrahiert und analysiert und sich dabei auf Import-/Exportbeziehungen zwischen Dateien konzentriert, um LLMs dabei zu helfen, den Codekontext zu verstehen.
- Merkmale
- Das get_python_code Tool
- Installation
- Umgebungsvariablen
- Verwendung
- Anwendungsbeispiele
- Testen
- Schlüsselkomponenten
- Details zum Antwortformat
- Verwenden des MCP SDK-Servers
- Modellkontextprotokollintegration
Related Resources
Related MCP Servers
- AsecurityFlicenseAqualityA Python server implementing the Model Context Protocol to provide customizable prompt templates, resources, and tools that enhance LLM interactions in the continue.dev environment.Last updated -2Python
- AsecurityFlicenseAqualityA Model Context Protocol server that allows LLMs to interact with Python environments, execute code, and manage files within a specified working directory.Last updated -98Python
- -securityAlicense-qualityA Model Context Protocol (MCP) server designed to easily dump your codebase context into Large Language Models (LLMs).Last updated -0JavaScriptApache 2.0
- -security-license-qualityA Python implementation of the Model Context Protocol that allows applications to provide standardized context for LLMs, enabling creation of servers that expose data and functionality to LLM applications through resources, tools, and prompts.Last updated -PythonMIT License