项目简介
MCP LSP Go 是一个 MCP 服务器,旨在弥合 AI 助手和 Go 语言工具之间的差距。它利用 Language Server Protocol (LSP) 与 gopls (Go 官方语言服务器) 通信,并将 gopls 的强大代码分析功能以 MCP 工具的形式暴露给 AI 助手,从而使 AI 助手能够更好地理解和操作 Go 代码。
主要功能点
- Go 代码分析: 利用 gopls 提供的先进 Go 语言分析能力。
- 代码导航: 支持跳转到定义、查找引用等功能,帮助 AI 助手理解代码结构。
- 代码质量检查: 提供代码诊断信息,例如错误和警告,辅助 AI 助手进行代码审查。
- 代码信息提示: 提供悬停信息和代码补全建议,提升 AI 助手与代码交互的效率。
安装步骤
- 安装 Go: 确保您的系统已安装 Go 1.21 或更高版本。
- 安装 gopls: 运行以下命令安装 gopls (Go 语言服务器):
确保 'gopls' 命令在您的 PATH 环境变量中可用。go install golang.org/x/tools/gopls@latest - 安装 MCP LSP Go 服务器: 运行以下命令安装 MCP LSP Go 服务器:
安装成功后,'mcp-gopls' 命令将在您的 PATH 环境变量中可用。go install github.com/hloiseaufcms/mcp-gopls/cmd/mcp-gopls@latest
服务器配置
MCP 服务器需要配置在 MCP 客户端中,以便客户端能够连接并使用其提供的工具。以下是 Cursor 编辑器配置 'mcpServers' 的示例,其他 MCP 客户端的配置方式可能类似。
{ "mcpServers": { "mcp-gopls": { "command": "mcp-gopls" } } }
配置参数说明:
- 'mcpServers': 配置 MCP 服务器的根节点。
- 'mcp-gopls': 服务器名称,可以自定义,用于在客户端中标识该服务器。
- 'command': 启动 MCP LSP Go 服务器的命令,这里设置为 'mcp-gopls', 假设 'mcp-gopls' 命令已添加到系统的 PATH 环境变量。
基本使用方法
-
启动 MCP LSP Go 服务器: 在终端中运行 'mcp-gopls' 命令即可启动服务器。服务器默认通过标准输入/输出 (stdio) 与客户端通信。
-
在 MCP 客户端中使用: 在支持 MCP 协议的 AI 助手或编辑器中配置并连接 'mcp-gopls' 服务器后,即可通过自然语言指令调用服务器提供的工具,例如:
# 请求 AI 助手查找函数定义 你能帮我找到这个项目中 'ServeStdio' 函数的定义吗? # 请求 AI 助手检查代码错误 我的 main.go 文件里有什么错误吗? # 请求 AI 助手获取符号信息 Go 语言中 'Context.WithTimeout' 函数是做什么用的?AI 助手会将这些自然语言请求转换为对 MCP 工具的调用,并利用 MCP LSP Go 服务器提供的 Go 语言分析能力来响应您的请求。
信息
分类
开发者工具