LSP-MCP
lsp-mcp
Der vollständigste MCP-Server für Sprachintelligenz. 22 Tools für Navigation, Diagnose, Refactoring und Formatierung. CI-geprüft für 7 Sprachen. Direkt auf Basis der LSP 3.17 Spezifikation entwickelt.
Im Gegensatz zu typischen MCP-LSP-Brücken unterhält lsp-mcp eine dauerhafte Language-Server-Sitzung — Agenten arbeiten auf einem vollständig indizierten Workspace mit Echtzeit-Diagnose und dateiübergreifendem Verständnis, anstatt mit einem kalt gestarteten Stub, der den Kontext zwischen den Aufrufen vergisst.
Warum lsp-mcp
lsp-mcp | typische Alternativen | |
Sprachen (CI-geprüft) | 7 | 1–2 |
Tools | 22 | 3–5 |
LSP-Spezifikationskonformität | 3.17, spezifikationsgetreu | ad hoc |
Verbindungsmodell | dauerhaft | pro Anfrage |
Dateiübergreifende Referenzen | ✓ | selten |
Echtzeit-Diagnose-Abonnements | ✓ | ✗ |
Testabdeckung | 76% Anweisungen, 86% Funktionen | selten getestet |
Schnellstart
{
"mcpServers": {
"lsp": {
"type": "stdio",
"command": "npx",
"args": ["blackwell-systems/LSP-MCP", "<language-id>", "<path-to-lsp-binary>", "<lsp-args>"]
}
}
}TypeScript:
{ "args": ["blackwell-systems/LSP-MCP", "typescript", "typescript-language-server", "--stdio"] }Go:
{ "args": ["blackwell-systems/LSP-MCP", "go", "gopls"] }Rust:
{ "args": ["blackwell-systems/LSP-MCP", "rust", "rust-analyzer"] }Mehrsprachige Unterstützung
Jede der unten aufgeführten Sprachen wird bei jedem CI-Durchlauf integrationstests unterzogen — start_lsp, open_document, get_diagnostics und get_info_on_location werden alle gegen die echte Language-Server-Binärdatei verifiziert:
Sprache | Server | Installation |
TypeScript / JavaScript |
|
|
Python |
|
|
Go |
|
|
Rust |
|
|
Java |
| |
C / C++ |
|
|
PHP |
|
|
Tools
Alle Tools erfordern, dass zuerst start_lsp aufgerufen wird.
Sitzung
Tool | Beschreibung |
| Startet den Language Server mit einem Projekt-Root |
| Neustart ohne den MCP-Server neu zu starten |
| Öffnet eine Datei zur Nachverfolgung (erforderlich vor Positionsabfragen) |
| Beendet die Nachverfolgung einer Datei |
Analyse
Tool | Beschreibung |
| Fehler und Warnungen — |
| Hover-Informationen (Typ-Signaturen, Doku) an einer Position |
| Vervollständigungsvorschläge an einer Position |
| Funktionssignatur und aktiver Parameter an einer Aufrufstelle |
| Schnellkorrekturen und Refactorings für einen Bereich |
| Alle Symbole in einer Datei (Funktionen, Klassen, Variablen) |
| Suche nach Symbolen nach Namen im gesamten Workspace |
Navigation
Tool | Beschreibung |
| Alle Referenzen auf ein Symbol im gesamten Workspace |
| Springe dorthin, wo ein Symbol definiert ist |
| Springe zur Typdefinition eines Symbols |
| Springe zu allen Implementierungen eines Interfaces oder einer abstrakten Methode |
| Springe zur Deklaration eines Symbols (unterscheidet sich von der Definition — z. B. C/C++ Header) |
Refactoring
Tool | Beschreibung |
| Erhalte ein |
| Validiert, ob eine Umbenennung vor dem Ausführen möglich ist |
| Erhalte |
| Wendet ein |
| Führt einen serverseitigen Befehl aus (z. B. aus einer Code-Aktion) |
Dienstprogramme
Tool | Beschreibung |
| Ändert die Ausführlichkeit der Protokollierung zur Laufzeit |
Empfohlener Agent-Workflow:
start_lsp(root_dir="/your/project")
open_document(file_path=..., language_id=...)
get_diagnostics() # whole project, no file_path
get_info_on_location(...) / get_references(...)
close_document(...)Sprach-IDs: typescript, typescriptreact, javascript, javascriptreact, python, go, rust, java, c, cpp, php
Ressourcen
Diagnose-Ressourcen unterstützen Echtzeit-Abonnements — der Server sendet notifications/resources/updated, wenn sich Diagnosen ändern.
Schema | Beschreibung |
| Alle geöffneten Dateien |
| Spezifische Datei (abonnierbar) |
| Hover an Position |
| Vervollständigungen an Position |
LSP 3.17 Konformität
lsp-mcp ist direkt auf Basis der LSP 3.17 Spezifikation implementiert und durch Integrationstests gegen echte Language Server validiert. Die Abdeckung umfasst:
Vollständiger Lebenszyklus (
initialize→initialized→shutdown) mit sauberer SIGINT/SIGTERM-BehandlungFortschrittsprotokoll — die Erkennung der Workspace-Bereitschaft wartet auf den Abschluss aller
$/progress-Token, bevor Referenzen gesendet werdenVom Server initiierte Anfragen (
workspace/configuration,window/workDoneProgress/create, dynamische Registrierung) — alle werden korrekt beantwortet, wodurch Server entsperrt werden, die das Laden des Workspaces von diesen Antworten abhängig machenKorrektes JSON-RPC-Framing, Fehlercode-Behandlung und Normalisierung der Antwortformate über Hover, Vervollständigung, Code-Aktionen und Diagnosen hinweg
Siehe docs/lsp-conformance.md für die vollständige Matrix der Methodenabdeckung und Referenzen auf die Spezifikationsabschnitte.
Erweiterungen
Sprachspezifische Erweiterungen fügen Tools, Prompts und Ressourcen-Handler hinzu, die beim Start automatisch nach Sprach-ID geladen werden.
Um eine Erweiterung hinzuzufügen, erstellen Sie src/extensions/<language-id>.ts und implementieren Sie eine beliebige Teilmenge von getToolHandlers, getToolDefinitions, getResourceHandlers, getSubscriptionHandlers, getPromptDefinitions und getPromptHandlers. Alle Funktionen sind nach Sprach-ID benannt.
Entwicklung
git clone https://github.com/blackwell-systems/LSP-MCP.git
cd LSP-MCP && npm install && npm run build
npm test # all unit test suites
npm run test:multi-lang # 7-language integration test (requires language servers)Abdeckung: ~76% Anweisungen, ~86% Funktionen. Um den MCP-Verkehr zu untersuchen: claude --mcp-debug.
Lizenz
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/blackwell-systems/LSP-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server