MCP 客户端语言服务器代码智能
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/give-mcp-clients-language-server-code-intelligence。
技能介绍
它解决什么问题
编码类 Agent 在动手改代码之前,往往只能看到文件的文本内容。它能猜出某行代码在调用什么,却无法确定符号的定义位置、引用范围,也无法感知未声明的语法错误或类型不匹配。结果是:重命名时漏改引用、跨文件跳转只能靠正则搜索、带着编译错误就提交。
这个技能的做法是把 LSP(Language Server Protocol) 的能力封装成 MCP 工具,让 MCP 客户端在编辑前先做语义检查。
它如何工作
核心是把语言服务器挂到 MCP 通道上,对外暴露一组代码智能工具:
- definition:跳到符号的定义处,而不是同名文本的第一次出现
- reference:列出符号的所有引用点,重命名前先看清影响面
- rename:由语言服务器执行符号级重命名,而非全局文本替换
- diagnostics:读取当前文件的诊断信息,拿到类型错误、未定义变量等问题
典型流程是:Agent 收到任务 → 先用 reference 摸清符号被哪些文件使用 → 用 diagnostics 确认当前代码已处于可编译状态 → 再执行 rename 或编辑 → 编辑后重新拉取诊断做自检。
适用边界与注意点
- 只覆盖 LSP 本身支持的语言。上游测试覆盖
go、rust、python(pyright)、typescript,其他语言取决于你是否自行安装对应语言服务器 - 诊断质量完全取决于本地语言服务器本身,工具层不做额外推断
- 需要
MCP客户端和Go工具链作为运行前提,Go环境不完整会直接失败 - 重命名在语言服务器能解析的范围内可靠;跨模块或构建时生成的符号仍需人工确认
使用场景
- 在重构跨多文件的接口时,修改参数类型前先定位所有相关字段的定义与引用点,避免漏改导致编译失败。
- 把项目里已有的类名重命名以统一命名风格时,让语言服务器执行符号级重命名而不是全文本替换,防止误改同名字符串。
- 完成一批代码修改后,在提交前拉取当前文件的诊断信息,确认没有未定义的变量和类型错误。
适合人员
- 构建AI编码助手的开发者,希望为Agent接入LSP语义分析,让它在编辑前理解代码结构。
- 负责维护大型后端代码库的工程师,经常需要安全地重构遗留代码,需要可靠的重命名和引用检查工具来降低风险。
- 关注代码质量的技术负责人,希望在代码提交前自动拦截类型错误,减少代码审查阶段的返工。