go_definitionLABSCO SUMMARY
Worth it for the semantic questions; grep is still fine for the rest.
The project is unusually honest about where it does and does not help. Its own benchmark over 11 tasks shows it taking 2 to 4 times fewer tool calls than grep-based navigation on semantic work - finding implementations, tracing calls - while for simple same-file lookups plain grep remains just as effective and carries less overhead.
What it is
A fork of gopls that speaks MCP. Because the answers come from Go's own type checker, it resolves interface satisfaction, cross-package identity and shadowed scopes the way the compiler does, rather than the way a regex does.
What you get
- Every concrete type that satisfies an interface, resolved rather than guessed
- Call hierarchies traced through the type system
- Package dependency mapping across the module
- Symbol identity that holds across packages, and scoping that respects shadowing
- A routing skill installed alongside the plugin, so the agent knows when to reach for this instead of grep
Requirements
A Go codebase. The easiest install is the plugin route - one marketplace command in Claude Code or Codex, which installs the binary and the routing skill together. Otherwise a shell installer on Linux and macOS or a PowerShell one on Windows, followed by the per-client setup the project documents. It is a community fork, not a Go team product.
Setup effort
Follow the published steps
USE CASES
Finding everything that implements an interface
Ask for the concrete types by satisfaction rather than searching for the method name and filtering by hand.
Tracing who calls what across packages
Walk the call hierarchy resolved by the type checker, so identically named methods in other packages do not pollute the result.
Understanding how a module fits together
Map the package dependencies instead of reading import blocks file by file.
7 tools
Listed in project docs. Your client may show a different list.
go_implementationgo_symbol_referencesgo_get_call_hierarchygo_get_dependency_graphgo_dryrun_rename_symbolgo_list_toolsBEFORE YOU INSTALL
What to know first
Tools you get
7 tools named in the project's documentation.
INSTALLATION
Connect your client
Server setup
Claude Code (plugin — recommended): /plugin marketplace add https://github.com/xieyuschen/gopls-mcp.git then /plugin install gopls-mcp
Codex (plugin — recommended): codex plugin marketplace add https://github.com/xieyuschen/gopls-mcp.git then codex plugin add gopls-mcp
Manual install (all clients) — Linux / macOS: curl -sSL https://gopls-mcp.org/install.sh | bash; Windows (PowerShell): irm https://gopls-mcp.org/install.ps1 | iex
After the manual install, register it in your client — the Cursor and Gemini CLI entries are below (from https://gopls-mcp.org/quick-start).
MCP Clients
Claude Code — plugin
/plugin marketplace add https://github.com/xieyuschen/gopls-mcp.git
/plugin install gopls-mcpCodex — plugin
codex plugin marketplace add https://github.com/xieyuschen/gopls-mcp.git
codex plugin add gopls-mcpInstall script — Linux, macOS
curl -sSL https://gopls-mcp.org/install.sh | bashInstall script — Windows
irm https://gopls-mcp.org/install.ps1 | iexCursor
{
"mcpServers": {
"gopls-mcp": {
"command": "gopls-mcp"
}
}
}After the manual install, put this in .cursor/mcp.json in your project (or ~/.cursor/mcp.json for all projects). The guide also adds routing rules with curl -sL https://gopls-mcp.org/gopls-mcp.prompt >> .cursorrules.
Gemini CLI
gemini mcp add gopls-mcp gopls-mcp