mcpField
G
Gopls   Go Language Server

Gopls Go Language Server

本地服务
github.com/Yantrio开发工具4673 周前更新

关于 Gopls Go Language Server

MCP-GOPLS 将 gopls 的 Go 语言服务功能封装为 MCP 服务,供 Go 开发者及 MCP 兼容工具使用。它提供代码导航、诊断、搜索和编辑操作;项目说明代码由 Claude Code 生成,未经人工审查。

主要功能

  1. 01跳转定义与查找引用
  2. 02获取诊断及符号悬停信息
  3. 03搜索符号和查找接口实现
  4. 04跨文件重命名符号
  5. 05格式化代码并整理导入

适用场景

  1. 01导航 Go 项目代码
  2. 02检查编译错误与静态分析结果
  3. 03重命名符号并整理导入
  4. 04查看接口实现及文件符号大纲

MCP 相关

该服务将 gopls 功能作为工具提供给 MCP 客户端,涵盖代码导航、诊断、搜索、重命名和格式化。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP-GOPLS

一个封装 gopls、用于提供 Go 语言服务功能的 MCP(Model Context Protocol)服务。

⚠️ WARNING:整个项目由 Claude Code 生成,未经人工代码审查。虽然项目通过了测试且看起来可以正常运行,但请在生产环境中格外谨慎地使用。代码尚未针对安全性、性能或边缘情况进行审计。请参阅 DESIGN.md 了解 AI 生成的设计文档。

功能

现已实现 gopls 的所有语言服务功能:

  • GoToDefinition:跳转到符号定义
  • FindReferences:查找符号的所有引用
  • GetDiagnostics:获取编译错误和静态分析结果
  • Hover:获取光标下符号的信息
  • SearchSymbol:在工作区中搜索符号(支持部分匹配)
  • RenameSymbol:重命名工作区中的符号(直接应用更改到文件)
  • FindImplementers:查找实现某个接口的所有类型
  • ListDocumentSymbols:获取文件中定义的符号概览
  • FormatCode:按照 gofmt 标准格式化 Go 源代码(将更改应用到文件)
  • OrganizeImports:整理导入语句(对导入项进行分组和排序,并将更改应用到文件)

安装

go install github.com/yantrio/mcp-gopls/cmd/mcp-gopls@latest

与 Claude 集成

Claude Code
  1. 安装 mcp-gopls:

    go install github.com/yantrio/mcp-gopls/cmd/mcp-gopls@latest
    
  2. 添加到 Claude Code:

    claude mcp add mcp-gopls "$(which mcp-gopls)"
    
  3. 重启 Claude Code:

    claude restart
    
  4. 验证安装:

    claude mcp list
    
Claude Desktop
  1. 安装 mcp-gopls(与上文相同)

  2. 编辑 Claude Desktop 配置:

    • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows:%APPDATA%\Claude\claude_desktop_config.json
    • Linux:~/.config/Claude/claude_desktop_config.json
  3. 将以下内容添加到 mcpServers 部分:

    {
      "mcpServers": {
        "mcp-gopls": {
          "command": "mcp-gopls",
          "args": []
        }
      }
    }
    

    或使用自定义工作区:

    {
      "mcpServers": {
        "mcp-gopls": {
          "command": "mcp-gopls",
          "args": ["-workspace", "/path/to/your/go/project"]
        }
      }
    }
    
  4. 重启 Claude Desktop

用法

# Run with default settings (uses gopls in PATH and current directory as workspace)
mcp-gopls

# Specify gopls path and workspace
mcp-gopls -gopls /path/to/gopls -workspace /path/to/project

# Using environment variables
export GOPLS_PATH=/path/to/gopls
export MCP_GOPLS_WORKSPACE=/path/to/project
mcp-gopls

要求

  • Go 1.24.3+
  • gopls(Go 语言服务)
安装 gopls
go install golang.org/x/tools/gopls@latest

开发

# Clone the repository
git clone https://github.com/yantrio/mcp-gopls
cd mcp-gopls

# Build the project
go build ./cmd/mcp-gopls

# Run tests
go test ./...

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。