gopls-mcp — семантический анализ Go для агента

gopls-mcp

MCP-сервер на базе gopls: агент находит определения, реализации интерфейсов, ссылки и вызовы Go с точностью компилятора

  • 60 ★ репозитория
  • Последний коммит
  • BSD-3-Clause
MCP-сервер

Минимальный доступ

Почему такой уровень

  • Сервер читает исходный код проекта Go и запускает gopls, изменений в файлах он не вносит, переименование идет пробным запуском
Все причины и проверки

xieyuschen/gopls-mcp

Установка

Ручная установка

/plugin marketplace add https://github.com/xieyuschen/gopls-mcp.git

Затем /plugin install gopls-mcp. Плагин сам ставит бинарник и навык маршрутизации.

Доступ и проверки

Как мы проверяем

Минимальный доступИнструмент ничего не запускает и не ходит в сеть.

  • Сервер читает исходный код проекта Go и запускает gopls, изменений в файлах он не вносит, переименование идет пробным запуском

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

gopls-mcp — ответвление gopls, которое дает агенту анализ кода на уровне проверки типов вместо текстового поиска. Он разбирает систему типов Go: какие типы реализуют интерфейс, где совпадают идентичные типы из разных пакетов, какие переменные затеняют друг друга. В реестре MCP описаны инструменты go_definition для перехода к определению, go_implementation для поиска реализаций интерфейсов, go_symbol_references для всех использований символа, go_get_call_hierarchy для иерархии вызовов, go_get_dependency_graph для зависимостей между пакетами, go_dryrun_rename_symbol для пробного переименования и go_list_tools для списка возможностей. Автор приводит бенчмарк на 11 задачах: на семантических задачах, таких как реализации интерфейса, иерархия вызовов и карта зависимостей, сервер тратит в 2–4 раза меньше вызовов инструментов и работает быстрее поиска через grep. Для простых поисков в одном файле bash и grep остаются не хуже.

Для кого. Go-разработчикам, которым агент нужен для навигации и рефакторинга больших кодовых баз, где важны типы и интерфейсы.

Подходит, если

  • Надо найти все типы, которые реализуют интерфейс, во всех пакетах модуля
  • Перед рефакторингом нужно проследить иерархию вызовов функции
  • Необходимо увидеть карту зависимостей между пакетами проекта
  • Переименование символа стоит сначала проверить пробным запуском go_dryrun_rename_symbol
  • В большом репозитории агент тратит много вызовов на grep и ошибается на затененных именах

Не подходит, если

  • Проект не на Go: сервер разбирает только код Go через gopls
  • Нужен поиск по одному файлу: bash и grep справятся не хуже и с меньшими затратами
  • Нужен инструмент, одобренный командой Go: проект сообщества, официального статуса у него нет

Пример запроса к агенту

Найди все типы в модуле, которые реализуют интерфейс Store, и покажи иерархию вызовов метода Save.

MCP

Транспорт
stdio
Авторизация
не нужна

Ограничения

Это проект сообщества, не связанный с командой Go и Google, и он не одобрен ими. Лицензия BSD-3-Clause, как у gopls. Установка идет через плагин Claude Code или Codex либо скриптом install.sh по ссылке с curl, перед запуском скрипт стоит прочитать. Для сборки из исходников нужен Go 1.26. Подробности по инструментам и настройке клиентов вынесены на сайт gopls-mcp.org, а README коротко описывает идею и установку. Версия в реестре 1.0.9, проект активно развивается и может меняться.

Как отключить. Для плагина Claude Code выполните /plugin uninstall gopls-mcp, для Codex удалите плагин командой codex plugin remove gopls-mcp. Бинарник gopls-mcp удалите из каталога, куда его положил скрипт установки.

Частые вопросы

Чем это лучше grep?

Сервер понимает систему типов Go: реализации интерфейсов, идентичность типов в разных пакетах и затененные области видимости. По бенчмарку автора на 11 задачах он делает в 2–4 раза меньше вызовов на семантических задачах.

Как установить в Claude Code?

Командами /plugin marketplace add https://github.com/xieyuschen/gopls-mcp.git и /plugin install gopls-mcp. Плагин сам ставит бинарник и добавляет навык маршрутизации.

Есть ли поддержка Codex?

Да, командами codex plugin marketplace add https://github.com/xieyuschen/gopls-mcp.git и codex plugin add gopls-mcp. Для остальных клиентов есть ручная установка и руководство на сайте проекта.

Это официальный продукт команды Go?

Нет. README прямо указывает, что это проект сообщества и ответвление gopls, не связанное с Google и не одобренное им.

Какая лицензия?

BSD-3-Clause, та же, что у исходного gopls.

Обсуждение

Вопросов и отзывов пока нет.

MCP-серверы

Локальный статический анализ Go с MCP-сервером: графы вызовов, влияние правок, поиск символов и обзор до и после изменений

MCP-серверМинимальный доступ231Звезды репозитория

Мост между языковым сервером LSP и агентом: определения, ссылки, диагностика, подсказки и переименование символов

MCP-серверРасширенный доступ1,6 тыс.Звезды репозитория

Семантический поиск и графы вызовов по коду для агентов, полностью локально. Режим MCP подключает поиск к Claude Code и Cursor

CLIМинимальный доступ2 тыс.Звезды репозитория

MCP-сервер agent-lsp собирает языковые серверы в связки для агента: вызовы, безопасная правка, переименование, диагностика.

MCP-серверШирокий доступ178Звезды репозитория

Граф знаний по коду проекта для агента: вызывающие, зависимости и радиус правки через MCP вместо чтения файлов

MCP-серверРасширенный доступ222Звезды репозитория

MCP-сервер, который строит граф кода: функции, классы, вызовы и маршруты, и отвечает на структурные запросы агента локально

MCP-серверРасширенный доступ48,6 тыс.Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
gopls-mcp — семантический анализ Go для агента (эта карточка)нетне нужна60
agent-lspнетне нужна178общий мост LSP для разных языков, без специализации на Go
Serenaнетне нужна31 335семантический поиск по коду на нескольких языках через LSP

Коротко о README

README коротко излагает идею семантического анализа вместо текстового поиска, ссылается на бенчмарк, показывает установку плагина для Claude Code и Codex, ручную установку для Linux, macOS и Windows и оговорку о статусе проекта.

Бейдж для README

Сообщить о проблеме