VOOZH about

URL: https://glama.ai/mcp/servers/isaacphi/mcp-language-server?locale=ru-RU

⇱ Языковой сервер MCP by isaacphi | Glama


Языковой сервер MCP

👁 Тесты Go
👁 Перейти Отчетная Карточка
👁 GoDoc
👁 Перейти к версии

Это сервер MCP , который запускает и предоставляет языковой сервер LLM. Не языковой сервер для MCP, что бы это ни было.

Демо

mcp-language-server помогает клиентам с поддержкой MCP легче ориентироваться в кодовых базах, предоставляя им доступ к семантическим инструментам, таким как получение определения, ссылки, переименование и диагностика.

👁 Демо

Related MCP server: lsp-mcp-server

Настраивать

  1. Установите Go : следуйте инструкциям на https://golang.org/doc/install

  2. Установите или обновите этот сервер : go install github.com/isaacphi/mcp-language-server@latest

  3. Установите языковой сервер : следуйте одному из руководств ниже.

  4. Настройте свой MCP-клиент : следуйте одному из руководств ниже.

<p><strong>Note</strong>:</p>
<ul>
 <li>Replace <code>/path/to/your/clangd_binary</code> with the actual path to your clangd executable.</li>
 <li><code>--compile-commands-dir</code> should point to the directory containing your <code>compile_commands.json</code> file (e.g., <code>./build</code>, <code>./cmake-build-debug</code>).</li>
 <li>Ensure <code>compile_commands.json</code> is generated for your project for clangd to work effectively.</li>
</ul>

Инструменты

  • definition : Извлекает полное определение исходного кода любого символа (функции, типа, константы и т. д.) из вашей кодовой базы.

  • references : находит все использования и ссылки на символ в кодовой базе.

  • diagnostics : предоставляет диагностическую информацию для определенного файла, включая предупреждения и ошибки.

  • hover : отображение документации, подсказок по вводу текста или другой информации, появляющейся при наведении курсора, для указанного местоположения.

  • rename_symbol : переименовать символ в проекте.

  • edit_file : Позволяет вносить множественные текстовые правки в файл на основе номеров строк. Предоставляет более надежный и контекстно-экономичный способ редактирования файлов по сравнению с инструментами редактирования на основе поиска и замены.

О

Эта кодовая база использует отредактированный код из gopls для обработки связи LSP. Подробности см. в ATTRIBUTION. Все здесь покрывается разрешительной лицензией в стиле BSD.

mcp-go используется для связи MCP. Спасибо за вашу службу.

Это бета-версия программного обеспечения. Пожалуйста, дайте мне знать, создав issue, если у вас возникнут какие-либо проблемы или у вас есть предложения любого рода.

Внося вклад

Пожалуйста, делайте PR небольшими и открывайте Issues в первую очередь для чего-то существенного. AI-slop — это нормально, пока он протестирован, проходит проверки и не слишком плохо пахнет.

Настраивать

Клонируйте репозиторий:

git clone https://github.com/isaacphi/mcp-language-server.git
cd mcp-language-server

Для удобства включен файл justfile :

just -l
Available recipes:
 build # Build
 check # Run code audit checks
 fmt # Format code
 generate # Generate LSP types and methods
 help # Help
 install # Install locally
 snapshot # Update snapshot tests
 test # Run tests

Настройте Claude Desktop (или аналогичный) для использования локального двоичного файла:

{
 "mcpServers": {
 "language-server": {
 "command": "/full/path/to/your/clone/mcp-language-server/mcp-language-server",
 "args": [
 "--workspace",
 "/path/to/workspace",
 "--lsp",
 "language-server-executable"
 ],
 "env": {
 "LOG_LEVEL": "DEBUG"
 }
 }
 }
}

Перестройте после внесения изменений.

Ведение журнала

Установка переменной среды 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.

integrationtests/
├── tests/ # Tests are in this folder
├── snapshots/ # Snapshots of tool outputs
├── test-output/ # Gitignored folder showing the final state of each workspace and logs after each test run
└── workspaces/ # Mock workspaces that the tools run on

Чтобы обновить снимки, выполните UPDATE_SNAPSHOTS=true go test ./integrationtests/...

F
license - not found
-
quality - not tested
F
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity
Issues opened vs closed

Latest Blog Posts

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/isaacphi/mcp-language-server'

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