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% 函数

很少测试

快速入门

{
  "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 快照

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_symbolformat_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

-
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