LSP-MCP
lsp-mcp
Самый полный MCP-сервер для анализа кода. 22 инструмента, охватывающих навигацию, диагностику, рефакторинг и форматирование. Проверено CI для 7 языков. Создан в строгом соответствии со спецификацией LSP 3.17.
В отличие от типичных мостов MCP-LSP, lsp-mcp поддерживает постоянную сессию языкового сервера — агенты работают с полностью проиндексированным рабочим пространством с диагностикой в реальном времени и пониманием связей между файлами, а не с «холодным» заглушечным процессом, который забывает контекст между вызовами.
Почему lsp-mcp
lsp-mcp | типичные альтернативы | |
Языки (проверено CI) | 7 | 1–2 |
Инструменты | 22 | 3–5 |
Соответствие спецификации LSP | 3.17, по спецификации | ad hoc |
Модель подключения | постоянная | на каждый запрос |
Ссылки между файлами | ✓ | редко |
Подписки на диагностику в реальном времени | ✓ | ✗ |
Покрытие тестами | 76% операторов, 86% функций | редко тестируется |
Related MCP server: LSP MCP
Быстрый старт
{
"mcpServers": {
"lsp": {
"type": "stdio",
"command": "npx",
"args": ["blackwell-systems/LSP-MCP", "<language-id>", "<path-to-lsp-binary>", "<lsp-args>"]
}
}
}TypeScript:
{ "args": ["blackwell-systems/LSP-MCP", "typescript", "typescript-language-server", "--stdio"] }Go:
{ "args": ["blackwell-systems/LSP-MCP", "go", "gopls"] }Rust:
{ "args": ["blackwell-systems/LSP-MCP", "rust", "rust-analyzer"] }Поддержка нескольких языков
Каждый из перечисленных ниже языков проходит интеграционное тестирование при каждом запуске CI — start_lsp, open_document, get_diagnostics и get_info_on_location проверяются на реальном бинарном файле языкового сервера:
Язык | Сервер | Установка |
TypeScript / JavaScript |
|
|
Python |
|
|
Go |
|
|
Rust |
|
|
Java |
| |
C / C++ |
|
|
PHP |
|
|
Инструменты
Для всех инструментов сначала необходимо вызвать start_lsp.
Сессия
Инструмент | Описание |
| Запуск языкового сервера с корнем проекта |
| Перезапуск без перезагрузки MCP-сервера |
| Открытие файла для отслеживания (требуется перед запросами позиции) |
| Прекращение отслеживания файла |
Анализ
Инструмент | Описание |
| Ошибки и предупреждения — пропустите |
| Информация при наведении (сигнатуры типов, документация) в позиции |
| Предложения по автодополнению в позиции |
| Сигнатура функции и активный параметр в месте вызова |
| Быстрые исправления и рефакторинг для диапазона |
| Все символы в файле (функции, классы, переменные) |
| Поиск символов по имени во всем рабочем пространстве |
Навигация
Инструмент | Описание |
| Все ссылки на символ во всем рабочем пространстве |
| Переход к месту определения символа |
| Переход к определению типа символа |
| Переход ко всем реализациям интерфейса или абстрактного метода |
| Переход к объявлению символа (отличается от определения — например, заголовочные файлы C/C++) |
Рефакторинг
Инструмент | Описание |
| Получение |
| Проверка возможности переименования перед выполнением |
| Получение правок форматирования |
| Применение |
| Выполнение серверной команды (например, из действия кода) |
Утилиты
Инструмент | Описание |
| Изменение уровня детализации логов во время выполнения |
Рекомендуемый рабочий процесс агента:
start_lsp(root_dir="/your/project")
open_document(file_path=..., language_id=...)
get_diagnostics() # whole project, no file_path
get_info_on_location(...) / get_references(...)
close_document(...)Идентификаторы языков: typescript, typescriptreact, javascript, javascriptreact, python, go, rust, java, c, cpp, php
Ресурсы
Ресурсы диагностики поддерживают подписки в реальном времени — сервер отправляет notifications/resources/updated при изменении диагностики.
Схема | Описание |
| Все открытые файлы |
| Конкретный файл (можно подписаться) |
| Наведение в позиции |
| Автодополнение в позиции |
Соответствие LSP 3.17
lsp-mcp реализован непосредственно в соответствии со спецификацией LSP 3.17 и проверен с помощью интеграционного тестирования на реальных языковых серверах. Покрытие включает:
Полный жизненный цикл (
initialize→initialized→shutdown) с корректной обработкой SIGINT/SIGTERMПротокол прогресса — определение готовности рабочего пространства ожидает завершения всех токенов
$/progressперед отправкой ссылокЗапросы, инициированные сервером (
workspace/configuration,window/workDoneProgress/create, динамическая регистрация) — все корректно обрабатываются, разблокируя серверы, которые ожидают загрузки рабочего пространства на основе этих ответовКорректное формирование JSON-RPC, обработка кодов ошибок и нормализация формы ответа для наведения, автодополнения, действий кода и диагностики
См. docs/lsp-conformance.md для получения полной матрицы покрытия методов и ссылок на разделы спецификации.
Расширения
Языковые расширения добавляют инструменты, подсказки и обработчики ресурсов, которые автоматически загружаются по идентификатору языка при запуске.
Чтобы добавить расширение, создайте src/extensions/<language-id>.ts, реализующий любое подмножество getToolHandlers, getToolDefinitions, getResourceHandlers, getSubscriptionHandlers, getPromptDefinitions и getPromptHandlers. Все функции имеют пространство имен по идентификатору языка.
Разработка
git clone https://github.com/blackwell-systems/LSP-MCP.git
cd LSP-MCP && npm install && npm run build
npm test # all unit test suites
npm run test:multi-lang # 7-language integration test (requires language servers)Покрытие: ~76% операторов, ~86% функций. Для проверки трафика MCP: claude --mcp-debug.
Лицензия
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
Codebase graphs, caller impact analysis, and recorded project context for AI coding agents.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceProvides LLMs with code intelligence tools like relationship explanation, PR impact analysis, and health reports via the Model Context Protocol.3MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI agents with language-aware code analysis through the Language Server Protocol, enabling tasks like getting code insights and diagnostics.6 npm191MIT
- AlicenseNot gradedqualityDmaintenanceExposes Language Server Protocol (LSP) functionality as Model Context Protocol (MCP) tools, enabling AI clients to programmatically analyze and edit code in any language supported by VS Code.5 npm33MIT
- AlicenseAqualityFmaintenanceProvides C++ code intelligence tools for AI agents via the Model Context Protocol, enabling symbol navigation, type information, and diagnostics.948Mozilla Public 2.0