Skip to main content
Glama

mcp-gopls

README.md3.19 kB
# MCP LSP Go A Model Context Protocol (MCP) server that allows AI assistants like Claude to interact with Go's Language Server Protocol (LSP) and benefit from advanced Go code analysis features. ## Overview This MCP server helps AI assistants to: - Use LSP to analyze Go code - Navigate to definitions and find references - Check code diagnostics - Get hover information for symbols - Get completion suggestions ## Architecture This project uses the [mark3labs/mcp-go](https://github.com/mark3labs/mcp-go) library to implement the Model Context Protocol. The MCP integration enables seamless communication between AI assistants and Go tools. The server communicates with [gopls](https://github.com/golang/tools/tree/master/gopls), the official language server for Go, via the Language Server Protocol (LSP). ## Features - **LSP Integration**: Connection to Go's Language Server Protocol for code analysis - **Code Navigation**: Finding definitions and references in the code - **Code Quality**: Getting diagnostics and errors - **Advanced Information**: Hover information and completion suggestions ## Project Structure ```bash . ├── cmd │ └── mcp-gopls # Application entry point ├── pkg │ ├── lsp # LSP client to communicate with gopls │ │ ├── client # LSP client implementation │ │ └── protocol # LSP protocol types and features │ ├── server # MCP server │ └── tools # MCP tools exposing LSP features ``` ## Installation ```bash go install github.com/hloiseaufcms/mcp-gopls/cmd/mcp-gopls@latest ``` ## Add to Cursor ```json { "mcpServers": { "mcp-gopls": { "command": "mcp-gopls" } } } ``` ## MCP Tools The MCP server provides the following tools: | Tool | Description | |-------|-------------| | `go_to_definition` | Navigate to the definition of a symbol | | `find_references` | Find all references to a symbol | | `check_diagnostics` | Get diagnostics for a file | | `get_hover_info` | Get detailed information about a symbol | | `get_completion` | Get completion suggestions at a position | | `analyze_coverage` | Analyze test coverage for Go code | ## Usage Example Using the server with AI assistants that support MCP: ```Markdown # Ask the AI to get information about the code Can you find the definition of the `ServeStdio` function in this project? # Ask for diagnostics Are there any errors in my main.go file? # Ask for information about a symbol What does the Context.WithTimeout function do in Go? ``` ## Development ```bash git clone https://github.com/hloiseaufcms/mcp-gopls.git cd mcp-gopls go mod tidy go build -o mcp-gopls cmd/mcp-gopls/main.go ./mcp-gopls ``` ## Prerequisites - Go 1.21 or higher - gopls installed (`go install golang.org/x/tools/gopls@latest`) ## Integration with Ollama This MCP server can be used with any tool that supports the MCP protocol. For Ollama integration: 1. Make sure Ollama is running 2. The MCP server runs independently and communicates through stdin/stdout 3. Configure your client to use the MCP server as a tool provider ## License Apache License 2.0

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hloiseaufcms/mcp-gopls'

If you have feedback or need assistance with the MCP directory API, please join our Discord server