Integrations
Integrates with Python language server (pyright) to provide code intelligence, including definitions, references, diagnostics, and code lens for Python codebases
Integrates with Rust language server (rust-analyzer) to provide code intelligence, including definitions, references, diagnostics, and code lens for Rust codebases
Integrates with TypeScript language server (tsserver) to provide code intelligence, including definitions, references, diagnostics, and code lens for TypeScript codebases
Языковой сервер 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
- -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
- -securityAlicense-qualityA Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.Last updated -324288JavaScriptMIT License
- -securityAlicense-qualityA Model Context Protocol Server that enables LLMs to interact with and execute REST API calls through natural language prompts, supporting GET/PUT/POST/PATCH operations on configured APIs.Last updated -5PythonApache 2.0
- -securityAlicense-qualityBridges Large Language Models with Language Server Protocol interfaces, allowing LLMs to access LSP's hover information, completions, diagnostics, and code actions for improved code suggestions.Last updated -2TypeScriptMIT License