Skip to main content
Glama

lsp-mcp

Blackwell Systems CI LSP 3.17 Languages License

言語インテリジェンスのための最も完全なMCPサーバーです。ナビゲーション、診断、リファクタリング、フォーマットを網羅する22個のツールを備えています。7つの言語でCI検証済みです。LSP 3.17仕様に直接準拠して構築されています。

一般的なMCP-LSPブリッジとは異なり、lsp-mcpは永続的な言語サーバーセッションを維持します。エージェントは、呼び出しのたびにコンテキストを忘れるコールドスタートのスタブではなく、リアルタイムの診断とファイル横断的な認識を備えた完全にインデックス化されたワークスペース上で動作します。

なぜlsp-mcpなのか

lsp-mcp

一般的な代替手段

言語 (CI検証済み)

7

1–2

ツール

22

3–5

LSP仕様準拠

3.17、仕様に基づき構築

アドホック

接続モデル

永続的

リクエストごと

ファイル横断参照

ほとんどない

リアルタイム診断サブスクリプション

テストカバレッジ

ステートメント76%、関数86%

ほとんどテストされていない

Related MCP server: LSP MCP

クイックスタート

{
  "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"] }

多言語サポート

以下の各言語は、すべてのCI実行時に統合テストされています。start_lspopen_documentget_diagnosticsget_info_on_locationはすべて、実際の言語サーバーバイナリに対して検証されています:

言語

サーバー

インストール

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

ツール

すべてのツールは、最初にstart_lspを呼び出す必要があります。

セッション

ツール

説明

start_lsp

プロジェクトルートを指定して言語サーバーを起動する

restart_lsp_server

MCPサーバーを再起動せずにサーバーを再起動する

open_document

追跡対象としてファイルを開く(位置クエリの前に必須)

close_document

ファイルの追跡を停止する

分析

ツール

説明

get_diagnostics

エラーと警告 — プロジェクト全体の場合はfile_pathを省略

get_info_on_location

指定位置のホバー情報(型シグネチャ、ドキュメント)

get_completions

指定位置の補完候補

get_signature_help

呼び出しサイトでの関数シグネチャとアクティブなパラメータ

get_code_actions

範囲に対するクイックフィックスとリファクタリング

get_document_symbols

ファイル内の全シンボル(関数、クラス、変数)

get_workspace_symbols

ワークスペース全体で名前によるシンボル検索

ナビゲーション

ツール

説明

get_references

ワークスペース全体でのシンボルの全参照

go_to_definition

シンボルが定義されている場所にジャンプ

go_to_type_definition

シンボルの型定義にジャンプ

go_to_implementation

インターフェースや抽象メソッドの全実装にジャンプ

go_to_declaration

シンボルの宣言にジャンプ(定義とは異なる — 例: C/C++ヘッダー)

リファクタリング

ツール

説明

rename_symbol

ワークスペース全体でシンボル名を変更するためのWorkspaceEditを取得

prepare_rename

コミット前に名前変更が可能か検証する

format_document

ファイルのフォーマット編集用TextEdit[]を取得

apply_edit

WorkspaceEditをディスクに適用(rename_symbolまたはformat_documentで使用)

execute_command

サーバーサイドコマンドを実行(例: コードアクションから)

ユーティリティ

ツール

説明

set_log_level

実行時にログの詳細度を変更する

推奨されるエージェントワークフロー:

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(...)

言語ID: typescript, typescriptreact, javascript, javascriptreact, python, go, rust, java, c, cpp, php

リソース

診断リソースはリアルタイムサブスクリプションをサポートしています。診断が変更されると、サーバーはnotifications/resources/updatedを送信します。

スキーム

説明

lsp-diagnostics://

すべての開いているファイル

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

特定のファイル(サブスクライブ可能)

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

指定位置のホバー

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

指定位置の補完

LSP 3.17 準拠

lsp-mcpはLSP 3.17仕様に直接基づいて実装されており、実際の言語サーバーに対する統合テストを通じて検証されています。カバレッジには以下が含まれます:

  • 完全なライフサイクル(initializeinitializedshutdown)、SIGINT/SIGTERMの正常な処理

  • プログレスプロトコル — ワークスペース準備完了の検出は、参照を送信する前にすべての$/progressトークンが完了するのを待機します

  • サーバー開始リクエスト(workspace/configuration, window/workDoneProgress/create, 動的登録) — すべて正しく応答し、これらの応答を待機するサーバーのワークスペース読み込みをブロック解除します

  • 正しいJSON-RPCフレーミング、エラーコード処理、およびホバー、補完、コードアクション、診断にわたるレスポンス形状の正規化

完全なメソッドカバレッジマトリックスと仕様セクションの参照については、docs/lsp-conformance.mdを参照してください。

拡張機能

言語固有の拡張機能は、ツール、プロンプト、リソースハンドラーを追加し、起動時に言語IDによって自動的に読み込まれます。

拡張機能を追加するには、src/extensions/<language-id>.tsを作成し、getToolHandlersgetToolDefinitionsgetResourceHandlersgetSubscriptionHandlersgetPromptDefinitionsgetPromptHandlersの任意のサブセットを実装します。すべての機能は言語IDによって名前空間化されます。

開発

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)

カバレッジ: ステートメント約76%、関数約86%。MCPトラフィックを検査するには: claude --mcp-debug

ライセンス

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