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

Related MCP server: LSP MCP

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents with language-aware code analysis through the Language Server Protocol, enabling tasks like getting code insights and diagnostics.
    6 npm
    191
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Exposes Language Server Protocol (LSP) functionality as Model Context Protocol (MCP) tools, enabling AI clients to programmatically analyze and edit code in any language supported by VS Code.
    5 npm
    33
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    Provides C++ code intelligence tools for AI agents via the Model Context Protocol, enabling symbol navigation, type information, and diagnostics.
    9
    48
    Mozilla Public 2.0