cclsp MCP

cclsp подключает языковые серверы LSP к Claude Code через MCP: переход к определению, поиск ссылок, переименование символов и диагностика без редактора

  • 676 ★ репозитория
  • Последний коммит
  • MIT
MCP-сервер

Расширенный доступ

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

  • Запускает языковые серверы командами из конфигурации и читает файлы проекта
  • Переименование без `dry_run` сразу переписывает файлы по всему проекту и создает копии `.bak`
Все причины и проверки

ktnyt/cclsp

Установка

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

npx cclsp@latest setup

Интерактивный мастер: находит языки проекта, предлагает языковые серверы, создает `.claude/cclsp.json` и по желанию добавляет сервер в Claude Code. Флаг `--user` создает общий файл в `~/.config/claude/cclsp.json`.

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

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

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

  • Запускает языковые серверы командами из конфигурации и читает файлы проекта
  • Переименование без `dry_run` сразу переписывает файлы по всему проекту и создает копии `.bak`

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

Что делает

cclsp — MCP-сервер на TypeScript, который запускает языковые серверы по протоколу LSP и отдает их возможности кодовому агенту. Агенты плохо называют номера строк и столбцов, поэтому прямое обращение к LSP часто ломается. cclsp принимает имя символа и необязательно его вид, сам перебирает несколько вариантов позиции и находит нужный символ. Для этого есть пять рабочих инструментов: `find_definition` ищет место определения, `find_references` — все использования по проекту, `rename_symbol` переименовывает символ, `rename_symbol_strict` делает то же по точной позиции, `get_diagnostics` возвращает ошибки, предупреждения и подсказки по файлу. Шестой, `restart_server`, перезапускает зависшие языковые серверы. Переименование по умолчанию сразу применяется ко всем затронутым файлам и создает резервные копии с расширением `.bak`. Флаг `dry_run` показывает план без записи. Если под имя подходит несколько символов, `rename_symbol` возвращает список позиций и предлагает строгий вариант. Какие языковые серверы запускать, задает файл `cclsp.json`: для каждого указаны расширения файлов, команда запуска, каталог проекта и необязательные `restartInterval` и `initializationOptions`. Мастер `npx cclsp@latest setup` определяет языки в проекте, показывает нужные серверы и по желанию устанавливает их, пишет конфигурацию и добавляет cclsp в Claude Code. Сами языковые серверы (typescript-language-server, pylsp, gopls, rust-analyzer, clangd и другие) ставятся отдельно.

Для кого. Для разработчиков, которые работают в Claude Code без IDE и хотят, чтобы агент находил определения, ссылки и безопасно переименовывал символы на уровне языкового сервера.

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

  • Нужно переименовать функцию или класс по всему проекту, сначала посмотрев план через `dry_run`
  • Агент должен найти все места использования константы или метода перед рефакторингом через `find_references`
  • В проекте несколько языков (TypeScript, Python, Go, Rust), и для каждого нужен свой языковой сервер в одном `cclsp.json`
  • Агенту нужно получить ошибки и предупреждения по файлу из языкового сервера через `get_diagnostics`, не запуская сборку
  • Языковой сервер Python со временем замедляется, и его удобно перезапускать по таймеру через `restartInterval`

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

  • На машине нет Node.js 18 или Bun: cclsp не запускается без одного из них
  • Не установлен языковой сервер для вашего языка: cclsp сам их не содержит, их ставят отдельно
  • Нужен язык, для которого нет сервера LSP, или проект без конфигурации сервера: символы такого языка найти не получится
  • Вы работаете в IDE с готовой интеграцией LSP, и агент уже получает от нее определения и ссылки

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

Найди через cclsp, где определена функция processRequest и все ее вызовы, а потом переименуй ее в handleRequest, сначала показав план без записи

MCP

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

Переменные окружения

CCLSP_CONFIG_PATH
Путь к файлу `cclsp.json` со списком языковых серверов

Ограничения

  • Лицензия MIT. В `package.json` версия 0.7.0, но `SECURITY.md` и `ROADMAP.md` ссылаются на ветку 1.x, а адрес для сообщений об уязвимостях в `SECURITY.md` остался шаблонным.
  • Нужен Node.js 18 или Bun, а языковые серверы для выбранных языков ставятся отдельно.
  • `rename_symbol` и `rename_symbol_strict` без флага `dry_run` сразу меняют файлы и пишут резервные копии с расширением `.bak`. Копии остаются в проекте, и при повторных переименованиях их придется чистить.
  • Языковой сервер Python (pylsp) при многочасовой работе замедляется. Автор советует `restartInterval` и вручную `restart_server`. Адаптеры для серверов Vue и Pyright увеличивают тайм-ауты до 45–60 секунд.
  • Путь к `cclsp.json` задает переменная `CCLSP_CONFIG_PATH`. Если файл не найден, работает только конфигурация для TypeScript по умолчанию.

Как отключить. Выполните `claude mcp remove cclsp`, чтобы убрать сервер из Claude Code. Файл конфигурации `.claude/cclsp.json` в проекте или `~/.config/claude/cclsp.json` удаляют вручную. Если ставили пакет глобально командой `npm install -g cclsp`, удалите его менеджером пакетов. Резервные копии `.bak` после переименований остаются в проекте и удаляются отдельно.

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

Зачем нужен cclsp, если у Claude Code есть поиск по тексту?

Языковой сервер знает структуру кода: определение, ссылки и область видимости символа. Поэтому переименование затрагивает один символ, а совпадающие строки с другим смыслом остаются как есть. Поиск по тексту таких различий не видит.

Как cclsp справляется с неточными номерами строк от модели?

Инструменты принимают имя символа и необязательно его вид (функция, класс, переменная). Сервер находит символы с таким именем в файле через языковой сервер и перебирает несколько комбинаций строки и столбца, чтобы попасть в нужный.

Что делать, если под имя подходит несколько символов?

`rename_symbol` не переименовывает наугад: он возвращает кандидатов с позициями, например переменную, параметр и свойство с одним именем. Затем вызывают `rename_symbol_strict` со строкой и столбцом (нумерация с единицы) выбранного кандидата.

Какие языки поддерживаются?

Любые, для которых есть языковой сервер LSP и запись в `cclsp.json`. В README приведены примеры для TypeScript и JavaScript, Python (`pylsp`), Go (`gopls`), Rust (`rust-analyzer`), C и C++ (`clangd`), Java (`jdtls`), Ruby (`solargraph`) и PHP (`intelephense`).

Как проверить, что установка прошла успешно?

После мастера `npx cclsp@latest setup` в списке инструментов Claude Code должны появиться `find_definition`, `find_references` и остальные. Мастер сам показывает шаг проверки. Если сервер не стартует, обычно не установлен языковой сервер или неверен путь `CCLSP_CONFIG_PATH`.

Можно ли запустить cclsp в контейнере?

В репозитории есть `compose.yml`, `scripts/docker-entrypoint.sh` и конфигурация `.claude/cclsp.docker.json` для разработки в Docker. Основной способ для пользователя — `npx` или глобальная установка через npm.

Обсуждение

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

MCP-серверы

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

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

Маркетплейс плагинов Claude Code, которые подключают языковые серверы LSP для TypeScript, Rust, Go, Python, 1С и других языков

ПлагинРасширенный доступ522Звезды репозитория

MCP-сервер, который дает Claude Desktop и другим клиентам файловые инструменты, shell и подагентов в духе Claude Code

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

Установщик BSL Language Server

BSL Language Server installer

Российский стек

Скрипт ставит BSL Language Server как systemd-сервис на Linux и по флагу открывает MCP-эндпоинт для AI-агентов

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

BSL Language Server для Claude Code

BSL Language Server Claude Code Plugin

Российский стек

Плагин Claude Code, который подключает BSL Language Server к файлам 1С и OneScript: диагностика, переходы к определениям, ссылки, форматирование

ПлагинРасширенный доступ38Звезды репозитория
Российский стек

Небольшой MCP-сервер, который запускает BSL Language Server как JAR-файл и отдает агенту анализ и форматирование BSL-кода в JSON

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

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

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

ЗаписьОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
cclsp (эта запись)нетне нужна676
MCP Language Serverнетне нужна1 612мост к одному языковому серверу на запуск, например gopls или rust-analyzer
Serenaнетне нужна30 849дает агенту возможности IDE через LSP или платный плагин JetBrains, включая правку кода на уровне символов
Claude Code LSPsнет522маркетплейс плагинов Claude Code

Коротко о README

Главная страница объясняет, чем cclsp отличается от прямой работы с LSP, и перечисляет возможности. Дальше идут требования, автоматическая и ручная настройка, список установочных команд для популярных языковых серверов, примеры конфигурации `cclsp.json` и подробный справочник шести инструментов с параметрами. Завершают раздел примеров использования и устранение неполадок. В репозитории есть журнал изменений, дорожная карта, схемы архитектуры в формате Mermaid, конфигурации для Docker и тесты.

Бейдж для README

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

Foxx AIcclsp
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.