MCP-Sprachserver
Dies ist ein MCP -Server, der einen Sprachserver für LLMs ausführt und bereitstellt. Kein Sprachserver für MCP, was auch immer das sein mag.
Demo
mcp-language-server erleichtert MCP-fähigen Clients die Navigation in Codebasen, indem es ihnen Zugriff auf semantische Tools wie „Definition abrufen“, „Referenzen“, „Umbenennen“ und „Diagnose“ gewährt.

Related MCP server: Fetch MCP Server
Aufstellen
Installieren Sie Go : Folgen Sie den Anweisungen unter https://golang.org/doc/install
Installieren oder aktualisieren Sie diesen Server :
go install github.com/isaacphi/mcp-language-server@latestInstallieren Sie einen Sprachserver : Folgen Sie einer der folgenden Anleitungen
Konfigurieren Sie Ihren MCP-Client : Folgen Sie einer der folgenden Anleitungen
Werkzeuge
definition: Ruft die vollständige Quellcodedefinition jedes Symbols (Funktion, Typ, Konstante usw.) aus Ihrer Codebasis ab.references: Lokalisiert alle Verwendungen und Referenzen eines Symbols im gesamten Code.diagnostics: Bietet Diagnoseinformationen für eine bestimmte Datei, einschließlich Warnungen und Fehlern.hover: Zeigt Dokumentation, Typhinweise oder andere Hover-Informationen für einen bestimmten Ort an.rename_symbol: Benennen Sie ein Symbol projektweit um.edit_file: Ermöglicht die Bearbeitung mehrerer Textdateien anhand von Zeilennummern. Bietet eine zuverlässigere und kontextsparendere Methode zum Bearbeiten von Dateien im Vergleich zu Such- und Ersetzungswerkzeugen.
Um
Diese Codebasis nutzt bearbeiteten Code von gopls zur LSP-Kommunikation. Weitere Informationen finden Sie unter ATTRIBUTION. Alle hier aufgeführten Informationen unterliegen einer freizügigen BSD-Lizenz.
mcp-go wird für die MCP-Kommunikation verwendet. Vielen Dank für Ihren Einsatz.
Dies ist eine Beta-Software. Bitte informieren Sie mich, wenn Sie auf Probleme stoßen oder Vorschläge haben, indem Sie ein Problem melden.
Beitragen
Bitte halten Sie die PRs klein und öffnen Sie zuerst Probleme für alles Wesentliche. KI-Schlamm ist in Ordnung, solange er getestet wird, die Prüfungen besteht und nicht zu übel riecht.
Aufstellen
Klonen Sie das Repo:
Zur Vereinfachung ist eine Justfile enthalten:
Konfigurieren Sie Ihren Claude Desktop (oder ähnliches) für die Verwendung der lokalen Binärdatei:
Nach Änderungen neu erstellen.
Protokollierung
Wenn Sie die Umgebungsvariable LOG_LEVEL auf DEBUG setzen, wird die ausführliche Protokollierung in stderr für alle Komponenten aktiviert, einschließlich Nachrichten an und vom Sprachserver und den Protokollen des Sprachservers.
LSP-Interaktion
internal/lsp/methods.goenthält generierten Code zum Tätigen von Aufrufen an den verbundenen Sprachserver.internal/protocol/tsprotocol.goenthält generierten Code für LSP-Typen. Ich habe diesen aus dem Quellcode vongoplsübernommen. Vielen Dank für Ihren Einsatz.LSP ermöglicht es Sprachservern, für dieselben Methoden unterschiedliche Typen zurückzugeben. Go mag das nicht, daher gibt es einige unschöne Workarounds in
internal/protocol/interfaces.go.
Lokale Entwicklung und Snapshot-Tests
Es gibt eine Snapshot-Testsuite, die das Ausprobieren von Tool-Änderungen erheblich vereinfacht. Diese führen tatsächliche Sprachserver auf simulierten Arbeitsbereichen aus und erfassen Ausgaben und Protokolle.
Zum Ausführen benötigen Sie lokal installierte Sprachserver. Es gibt Tests für Go, Rust, Python und Typescript.
Um Snapshots zu aktualisieren, führen Sie UPDATE_SNAPSHOTS=true go test ./integrationtests/...