Skip to main content
Glama

lsp-mcp

Blackwell Systems CI LSP 3.17 Languages License

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

typescript-language-server

npm i -g typescript-language-server typescript

Python

pyright-langserver

npm i -g pyright

Go

gopls

go install golang.org/x/tools/gopls@latest

Rust

rust-analyzer

rustup component add rust-analyzer

Java

jdtls

eclipse.jdt.ls Snapshots

C / C++

clangd

apt install clangd / brew install llvm

PHP

intelephense

npm i -g intelephense

Tools

Alle Tools erfordern, dass zuerst start_lsp aufgerufen wird.

Sitzung

Tool

Beschreibung

start_lsp

Startet den Language Server mit einem Projekt-Root

restart_lsp_server

Neustart ohne den MCP-Server neu zu starten

open_document

Öffnet eine Datei zur Nachverfolgung (erforderlich vor Positionsabfragen)

close_document

Beendet die Nachverfolgung einer Datei

Analyse

Tool

Beschreibung

get_diagnostics

Fehler und Warnungen — file_path weglassen für das gesamte Projekt

get_info_on_location

Hover-Informationen (Typ-Signaturen, Doku) an einer Position

get_completions

Vervollständigungsvorschläge an einer Position

get_signature_help

Funktionssignatur und aktiver Parameter an einer Aufrufstelle

get_code_actions

Schnellkorrekturen und Refactorings für einen Bereich

get_document_symbols

Alle Symbole in einer Datei (Funktionen, Klassen, Variablen)

get_workspace_symbols

Suche nach Symbolen nach Namen im gesamten Workspace

Navigation

Tool

Beschreibung

get_references

Alle Referenzen auf ein Symbol im gesamten Workspace

go_to_definition

Springe dorthin, wo ein Symbol definiert ist

go_to_type_definition

Springe zur Typdefinition eines Symbols

go_to_implementation

Springe zu allen Implementierungen eines Interfaces oder einer abstrakten Methode

go_to_declaration

Springe zur Deklaration eines Symbols (unterscheidet sich von der Definition — z. B. C/C++ Header)

Refactoring

Tool

Beschreibung

rename_symbol

Erhalte ein WorkspaceEdit zum Umbenennen eines Symbols im gesamten Workspace

prepare_rename

Validiert, ob eine Umbenennung vor dem Ausführen möglich ist

format_document

Erhalte TextEdit[] Formatierungsänderungen für eine Datei

apply_edit

Wendet ein WorkspaceEdit auf die Festplatte an (zusammen mit rename_symbol oder format_document verwenden)

execute_command

Führt einen serverseitigen Befehl aus (z. B. aus einer Code-Aktion)

Dienstprogramme

Tool

Beschreibung

set_log_level

Ä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

lsp-diagnostics://

Alle geöffneten Dateien

lsp-diagnostics:///path/to/file

Spezifische Datei (abonnierbar)

lsp-hover:///path/to/file?line=N&column=N&language_id=X

Hover an Position

lsp-completions:///path/to/file?line=N&column=N&language_id=X

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 (initializeinitializedshutdown) mit sauberer SIGINT/SIGTERM-Behandlung

  • Fortschrittsprotokoll — die Erkennung der Workspace-Bereitschaft wartet auf den Abschluss aller $/progress-Token, bevor Referenzen gesendet werden

  • Vom 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 machen

  • Korrektes 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

-
security - not tested
A
license - permissive license
-
quality - not tested

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