Roslyn CodeLens MCP

Roslyn CodeLens MCP дает агенту карту решения .NET: вызовы, типы, DI, диагностики и безопасное переименование

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

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

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

  • Читает исходный код всего решения и после вашего разрешения выполняет DLL анализаторов Roslyn внутри процесса сервера
  • Инструменты переименования и применения исправлений способны менять файлы решения, предпросмотр позволяет проверить правки заранее
Все причины и проверки

marcelroozekrans/roslyn-codelens-mcp

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add mcp/roslyn-codelens-mcp

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

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

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

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

  • Читает исходный код всего решения и после вашего разрешения выполняет DLL анализаторов Roslyn внутри процесса сервера
  • Инструменты переименования и применения исправлений способны менять файлы решения, предпросмотр позволяет проверить правки заранее

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

Что делает

MCP-сервер на Roslyn открывает .sln или .slnx и отвечает на вопросы о коде через инструменты вместо поиска по тексту. Агент спрашивает, кто вызывает метод, какие классы реализуют интерфейс, какие исключения выходят из метода, где подписываются на событие. Для каждой ссылки сервер отдает тип использования: чтение, запись, вызов, приведение, атрибут или `nameof`. Кроме навигации сервер проверяет качество. Он считает цикломатическую и когнитивную сложность, находит нарушения `async` и `IDisposable`, циклические зависимости и устаревшие вызовы, проверяет слои по правилам, которые вы задали, и сравнивает публичный API с эталонным JSON или DLL и показывает breaking changes. Из тестов он находит методы xUnit, NUnit и MSTest, показывает непокрытые символы и собирает каркас теста. Диагностики и исправления компилятора доступны, переименование символа по всему решению идет с предпросмотром. Символы из NuGet-пакетов тоже доступны: сервер читает пространства имен и типы из метаданных, а peek_il показывает IL выбранного метода. Несколько решений грузятся сразу, переключаются командой set_active_solution.

Для кого. Разработчикам на C# и .NET, которые отдают агенту большое решение и хотят точных ответов о ссылках и зависимостях вместо догадок по `grep`.

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

  • Перед рефакторингом нужно знать всех вызывающих метод, включая вызовы через интерфейс и делегат
  • Агент должен найти, какие тесты покрывают символ, и написать каркас теста для непокрытого метода
  • Перед релизом библиотеки хочется сравнить публичный API с прошлой версией и увидеть несовместимые изменения
  • В решении много проектов, и нужно проверить, не нарушают ли они границы слоев и нет ли циклов

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

  • Проект написан не на C#: сервер читает только решения .NET через MSBuild
  • На машине нет .NET 10 или 11 SDK и поставить его нельзя, а запуск в Docker не подходит
  • Нужен один быстрый поиск строки по файлам: для этого хватит `grep`
  • Решение не восстановлено командой restore, и ссылки на пакеты не разрешаются

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

Подключи Roslyn CodeLens к этому решению и покажи всех вызывающих метод OrderService.Cancel, потом проверь, какие тесты его покрывают

MCP

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

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

ROSLYN_CODELENS_OPEN_PROJECT_TIMEOUT_SECONDS
Лимит времени загрузки одного проекта MSBuild, по умолчанию 300 секунд

Ограничения

  • Для запуска нужен .NET 10 или 11 SDK. Пакет npm только запускает глобальный инструмент .NET, кода сервера в нем нет.
  • Анализаторы Roslyn выполняют DLL внутри процесса, поэтому для них действует доверие: решения из командной строки доверены на сессию, остальные нужно разрешить через `trust_solution`.
  • В Docker решение монтируется в /workspace и должно быть восстановлено, пути в ответах относятся к контейнеру, хоста в них нет.
  • Ответы режутся по параметру `limit` (по умолчанию 500 элементов), при обрезке в ответе стоит признак `truncated`.

Как отключить. Удалите запись roslyn-codelens из mcpServers в настройках клиента. Плагин Claude Code снимает команда claude plugin uninstall, глобальный инструмент командой dotnet tool uninstall -g RoslynCodeLens.Mcp. Список доверенных решений хранит файл trust.json, команда revoke_trust отзывает доверие.

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

Как подключить Roslyn CodeLens к Claude Code?

Выполните claude install gh:MarcelRoozekrans/roslyn-codelens-mcp, плагин сам запустит сервер через dnx. Нужен только .NET 10 или 11 SDK. Для других клиентов добавьте сервер с командой npx и аргументами -y roslyn-codelens-mcp.

Чем он отличается от поиска по тексту?

Поиск по тексту находит строки, а сервер работает с семантической моделью Roslyn. Он видит наследников, вызовы через интерфейс, перегрузки и ссылки из NuGet-пакетов, поэтому `find_references` не пропускает подкласс и не путает одноименные методы.

Безопасно ли включать анализаторы?

Анализаторы выполняют DLL внутри процесса, поэтому сервер просит доверия. Решения из командной строки доверены на сессию, остальные нужно разрешить через trust_solution. DLL берутся только из папки NuGet, SDK или bin и obj решения.

Работает ли сервер без установки .NET SDK?

Да, через Docker: решение монтируется в /workspace, а образ собирается командой docker build -t roslyn-codelens-mcp . из репозитория. Решение должно быть восстановлено заранее.

Можно ли подключить один сервер к нескольким клиентам?

Можно. Запустите roslyn-codelens-mcp с путем к решению и флагом --http, сервер слушает 127.0.0.1:3001, порт меняет флаг --port. Один прогретый процесс обслуживает несколько локальных клиентов.

Обсуждение

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

MCP-серверы

DevLens строит граф репозитория один раз, и агент по MCP получает ранжированные файлы, вызовы и радиус изменений

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

Мост MCP и LSP: агент получает типы, ссылки, диагностику и рефакторинг от языковых серверов, например Pyright.

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

MCP-мост к VS Code отдает агенту диагностику языкового сервера и ссылки на символы вместо долгих tsc и eslint.

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

CLI openmcp и расширение VS Code для отладки MCP-серверов: проверка инструментов, промптов и ресурсов, чат с моделью, тесты

CLIРасширенный доступ750Звезды репозитория

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

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

MCP-сервер индексирует код через tree-sitter: агент читает отдельные символы вместо файлов, находит пути, оценивает влияние правок

MCP-серверМинимальный доступ76Звезды репозитория

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

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

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
Roslyn CodeLens MCP (эта карточка)нетне нужна74
dotnet-claude-kitнет829набор скиллов и правил по .NET, без семантического анализа решения через Roslyn
CodeGraphнетне нужна77 481граф кода для многих языков, без точной модели компилятора C#

Коротко о README

Страница репозитория начинается со списка из нескольких десятков инструментов: навигация, тесты, зависимости, исключения, диагностика, рефакторинг, метрики. Дальше описаны формат ответов с лимитом и признаком обрезки, коды ошибок, чтение внешних сборок в три уровня и модель доверия для анализаторов. Раздел быстрого старта дает пять способов запуска: npx, dnx в VS Code, плагин Claude Code, глобальный инструмент и Docker. В конце есть режим HTTP на порту 3001 для общего сервера.

Бейдж для README

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