关于 language-server-mcp MCP Server
language-server-mcp 是一个基于 TypeScript 的 MCP 服务,为代码编辑提供悬停信息、代码补全和诊断等语言功能。README 称目前仅在 TypeScript 上测试过,适合希望为 MCP 客户端补充代码分析能力的开发者。
主要功能
- 01提供符号的悬停信息
- 02提供代码补全建议
- 03报告错误和警告等诊断信息
- 04以 MCP 工具形式暴露语言功能
适用场景
- 01让 AI 助手在编辑时读取符号的悬停说明
- 02为 TypeScript 文件获取补全建议与诊断结果
MCP 相关
该项目是 MCP 服务,通过 get_hover、get_completions、get_diagnostics 等工具向 MCP 客户端暴露语言功能。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
language-server-mcp MCP 服务
一个为代码编辑提供语言支持的 Model Context Protocol (MCP) 服务。
这是一个基于 TypeScript 的 MCP 服务,旨在通过提供悬停信息、代码补全和诊断等功能来增强代码编辑体验。它通过以下方式展示了 MCP 的核心概念:
- 用于代码分析和操作的特定语言工具
- 与 Model Context Protocol 集成以实现无缝通信
功能
语言支持
- 为代码中的符号提供悬停信息
- 提供代码补全建议
- 报告诊断信息(错误、警告)
- 仅在 typescript 上测试过,理论上应支持 Python。希望能添加更多语言服务器,或尽可能做到更通用。
MCP 集成
- 实现 MCP 协议以便与客户端通信
- 将语言功能作为 MCP 工具公开
工具
get_hover:获取文档中某个位置的悬停信息- 需要 languageId、filePath、content、line 和 character 作为必需参数
get_completions:获取文档中某个位置的补全建议- 需要 languageId、filePath、content、line 和 character 作为必需参数
get_diagnostics:获取文档的诊断信息- 需要 languageId、filePath 和 content 作为必需参数
开发
安装依赖:
npm install
构建服务:
npm run build
用于自动重新构建的开发模式:
npm run watch
安装
要与 Claude Desktop 一起使用,请添加服务配置:
在 MacOS 上:~/Library/Application Support/Claude/claude_desktop_config.json
在 Windows 上:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"language-server-mcp": {
"command": "/path/to/language-server-mcp/build/index.js"
}
}
}
调试
由于 MCP 服务通过 stdio 通信,调试可能具有挑战性。我们建议使用 MCP Inspector,它作为包脚本提供:
npm run inspector
Inspector 将提供一个 URL,以便在浏览器中访问调试工具。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。