Языковой сервер MCP
Это сервер MCP , который запускает и предоставляет языковой сервер LLM. Не языковой сервер для MCP, что бы это ни было.
Демо
mcp-language-server
помогает клиентам с поддержкой MCP легче ориентироваться в кодовых базах, предоставляя им доступ к семантическим инструментам, таким как получение определения, ссылки, переименование и диагностика.
Настраивать
- Установите Go : следуйте инструкциям на https://golang.org/doc/install
- Установите или обновите этот сервер :
go install github.com/isaacphi/mcp-language-server@latest
- Установите языковой сервер : следуйте одному из руководств ниже.
- Настройте свой MCP-клиент : следуйте одному из руководств ниже.
Инструменты
definition
: Извлекает полное определение исходного кода любого символа (функции, типа, константы и т. д.) из вашей кодовой базы.references
: находит все использования и ссылки на символ в кодовой базе.diagnostics
: предоставляет диагностическую информацию для определенного файла, включая предупреждения и ошибки.hover
: отображение документации, подсказок по вводу текста или другой информации, появляющейся при наведении курсора, для указанного местоположения.rename_symbol
: переименовать символ в проекте.edit_file
: Позволяет вносить множественные текстовые правки в файл на основе номеров строк. Предоставляет более надежный и контекстно-экономичный способ редактирования файлов по сравнению с инструментами редактирования на основе поиска и замены.
О
Эта кодовая база использует отредактированный код из gopls для обработки связи LSP. Подробности см. в ATTRIBUTION. Все здесь покрывается разрешительной лицензией в стиле BSD.
mcp-go используется для связи MCP. Спасибо за вашу службу.
Это бета-версия программного обеспечения. Пожалуйста, дайте мне знать, создав issue, если у вас возникнут какие-либо проблемы или у вас есть предложения любого рода.
Внося вклад
Пожалуйста, делайте PR небольшими и открывайте Issues в первую очередь для чего-то существенного. AI-slop — это нормально, пока он протестирован, проходит проверки и не слишком плохо пахнет.
Настраивать
Клонируйте репозиторий:
Для удобства включен файл justfile :
Настройте Claude Desktop (или аналогичный) для использования локального двоичного файла:
Перестройте после внесения изменений.
Ведение журнала
Установка переменной среды LOG_LEVEL
в значение DEBUG включает подробное протоколирование в stderr для всех компонентов, включая сообщения, поступающие на языковой сервер и получаемые от него, а также журналы языкового сервера.
Взаимодействие с LSP
internal/lsp/methods.go
содержит сгенерированный код для выполнения вызовов подключенного языкового сервера.internal/protocol/tsprotocol.go
содержит сгенерированный код для типов LSP. Я позаимствовал его из исходного кодаgopls
. Спасибо за вашу службу.- LSP позволяет языковым серверам возвращать разные типы для одних и тех же методов. Go это не нравится, поэтому есть несколько уродливых обходных путей в
internal/protocol/interfaces.go
.
Локальная разработка и моментальные тесты
Есть набор тестов моментальных снимков, который значительно упрощает тестирование изменений в инструментах. Они запускают реальные языковые серверы на фиктивных рабочих пространствах и фиксируют вывод и журналы.
Вам понадобятся установленные локально языковые серверы для их запуска. Есть тесты для go, rust, python и typescript.
Чтобы обновить снимки, выполните UPDATE_SNAPSHOTS=true go test ./integrationtests/...
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Запускает языковой сервер и предоставляет инструменты для общения с ним. Языковые серверы отлично справляются с задачами, с которыми часто сталкиваются LLM, например, точное понимание типов, понимание отношений и предоставление точных ссылок на символы.
Related Resources
Related MCP Servers
- -securityAlicense-qualityThis is a server that lets your LLMs (like Claude) talk directly to your BigQuery data! Think of it as a friendly translator that sits between your AI assistant and your database, making sure they can chat securely and efficiently.Last updated -124181JavaScriptMIT License
- AsecurityAlicenseAqualityThis server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.Last updated -156,813PythonMIT License
- -securityFlicense-qualityA TypeScript-based server that provides a memory system for Large Language Models (LLMs), allowing users to interact with multiple LLM providers while maintaining conversation history and offering tools for managing providers and model configurations.Last updated -20JavaScript
- -securityFlicense-qualityThis server provides an API to query Large Language Models using context from local files, supporting various models and file types for context-aware responses.Last updated -1TypeScript