最新版本 Claude Code CLI V2.0.74 正式接入 LSP(Language Server Protocol)

从此不再依赖全局 grep 式的“盲搜”,而是像 IDE 一样能准确跳转定义、查找引用与实现,编程向智能再进一阶。
当前测试版本:2.0.76(Claude Code)。
三步开 LSP
在命令行终端开启 LSP 工具:
ENABLE_LSP_TOOLS=1 claude
# 有些环境写作:
ENABLE_LSP_TOOL=1 claude
启动 Claude Code CLI 后,执行:
/plugin
安装你需要的语言插件,并安装对应的 LSP 语言服务器。
重启 Claude Code,直接下指令:
使用 LSP 查找 XXX 的所有引用
什么是 LSP?为什么重要
LSP(Language Server Protocol)是微软在 2016 年推出的标准化 JSON-RPC 通信协议,用来连接代码编辑器(如 VS Code、Vim)与独立的语言服务器,从而提供自动补全、跳转定义、语法检查、重构等智能能力。
- 它将语言分析从编辑器中解耦,避免为每种语言和每个编辑器重复开发(复杂度由 n×m 降为 n+m)。
- 支持双向通信,语言服务器可主动推送诊断结果。
- 通俗讲:让编辑器“读懂代码”,实现我们每天习以为常的“跳到定义、悬停文档、实时报错与警告”等功能。

LSP的工作原理大致如下:

想深入了解:
官方文档(英文):https://microsoft.github.io/language-server-protocol
中文文档(含示例):https://lsp.fosp.cc/lsp/language-features/goto-definition.html
告别“全局 grep”:LSP 带来的改变
在接入 LSP 之前,Claude Code 主要靠 grep 做全文检索(“global regular expression print”),流程通常是:
- 读取项目文件,筛出包含关键词的文件;
- 再在命中的文件里逐行匹配关键词出现的代码位置。
例如你让它“查找项目中 saveProgress 函数的所有调用”,它会按照上面步骤逐层匹配。

问题在于:对 AI 来说,代码上下文本质是文本,模型并不天然“懂代码结构”,所以检索会耗时且不够精准。
引入 LSP 之后,代码相关问题可直接问语言服务器,就像给 Claude Code 装上“语言中枢”:真正读得懂代码、能快准稳定位位置,避免全局 grep,在一定程度上还能降低 tokens 消耗。
LSP 带来的 7 大核心能力
- goToDefinition:跳转到定义,一键抵达函数/符号定义。
- goToImplementation:跳转到实现,快速定位具体实现。
- findReferences:查找引用,列出所有引用位置。
- hover:悬停信息,展示类型、文档注释、函数签名等。
- documentSymbol:文档符号,以结构化列表展示当前文件的符号。
- workspaceSymbol:工作区符号搜索,在整个项目中检索符号。
- incomingCalls / outgoingCalls:调用链,清晰展示函数前后调用关系。
推荐使用场景
LSP 不是万能钥匙,但在这些场景下能事半功倍、还更省 tokens:
- 大型项目:文件数 > 50、代码行数 > 5000。
- 复杂项目:业务关系/依赖/调用链复杂。
- 重构期:频繁改名、重构、或跨技术栈迁移。
- 跨文件调用多的项目。
在 IDE 中搭配使用(以 Cursor 为例)
在终端先启动 Claude Code CLI:
/claude
并开启 LSP:
ENABLE_LSP_TOOLS=1 claude
# 或:
export ENABLE_LSP_TOOLS=1
claude
输入交互式命令:
/config
将「Auto-connect to IDE (external terminal)」设置为「true」。

这一步会检查并安装「Claude Code for VS Code」插件(不了解可参考往期内容:Claude Code 插件教程)。

正常情况下,CLI 会自动:
- 检查 IDE 环境;
- 安装 Claude Code for VS Code 插件;
- 通过该插件连接 IDE 的 LSP 服务。
若未自动安装,可在插件市场手动下载。
输入提示词验证 LSP 能力,例如:
查看 receiveCredit 的所有引用

你会看到 Claude Code 很快给出准确结果:定义位置、导入位置、调用位置均可点击跳转到具体代码行。


实测提示:这种 IDE 直连方式偶尔不稳定,即使强制指定使用 LSP,也无法保证每次都走 LSP 调用链。
在 CLI 中使用:完整手册
1)安装语言服务器插件
语言服务器插件是语言服务器与模型沟通的桥梁。
打开 Claude Code CLI,输入:
/plugin

搜索 lsp 查看是否能检索到语言服务器插件。
如果没有检索到 LSP 相关内容,先安装官方插件市场:
Anthropic 官方插件库:https://github.com/anthropics/claude-plugins-official

官方未找到也可尝试社区方案:
社区插件:https://github.com/Piebald-AI/claude-code-lsps
根据描述选择所需的语言服务器插件,回车进入安装详情

选择合适的安装模式

安装成功后在「Installed」里可查看状态。

2)安装语言服务器(核心能力提供者)
常用语言服务器安装示例:
- Python:
pip install pyright # 或 npm install -g pyright - TypeScript / JavaScript:
npm install -g typescript-language-server typescript # 或 npm install -g @vtsls/language-server typescript - HTML / CSS:
npm install -g vscode-langservers-extracted - Go:
go install golang.org/x/tools/gopls@latest - Rust:
rustup component add rust-analyzer - Ruby:
gem install ruby-lsp
以 TypeScript 为例,安装后可验证:
which typescript-language-server
typescript-language-server --version


3)重启并使用
ENABLE_LSP_TOOLS=1 claude
# 或:
export ENABLE_LSP_TOOLS=1
claude
直接提问,或在提示词中加上“使用 LSP”关键词,比如:
使用 LSP 查找 saveProgress 的所有引用
你会看到 Claude Code CLI 依次调用 LSP 的 goToDefinition、hover、findReferences 等能力

取回信息后再进行提炼总结

一键化社区方案:cclsp
如果不想手动配置,可使用社区提供的 LSP 快速方案:
npx cclsp@latest setup
按需选择支持语言(可多选);

完成后会在项目根目录生成 ./claude/cclsp.json 配置文件,并添加 cclsp MCP 服务;

初始化完即可直接用 cclsp 提供的 LSP 服务。

自定义语言插件(进阶)
当前版本中,LSP 通过独立插件方式生效;在已有插件里直接配置通常不生效。可以新建一个 Claude Code 插件,示例配置如下:
{
"name": "typescript-lsp",
"description": "TypeScript/JavaScript language server",
"version": "0.0.1",
"author": { "name": "XMSUMI", "email": "邮箱" },
"source": "./typescript-lsp",
"strict": false,
"lspServers": {
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"],
"extensionToLanguage": {
".ts": "typescript",
".tsx": "typescriptreact",
".js": "javascript",
".jsx": "javascriptreact",
".mts": "typescript",
".cts": "typescript",
".mjs": "javascript",
".cjs": "javascript"
}
}
}
}
更多参数可参考官方文档:https://code.claude.com/docs/en/plugins-reference#lsp-servers
将插件发布到应用市场并安装后,在「Installed」里查看安装状态

重启 Claude Code CLI,输入提示词即可使用

常见问题排查
语言服务器是否已启动?
grep "LSP notification handlers registered" ~/.claude/debug/latest

Claude Code CLI 是否有 LSP 工具权限?
直接问 AI:
do you have access to LSP tools?

如无权限,手动开启:
ENABLE_LSP_TOOLS=1 claude
# 或永久开启(以 zsh 为例)
echo 'export ENABLE_LSP_TOOLS=1' >> ~/.zshrc
source ~/.zshrc
再次询问并验证效果。

如果你觉得这篇有用,记得收藏本站,及时接收最新消息!