rust-analyzer MCP — навигация по коду Rust для агента
r3bl-rust-analyzer-mcp-server
MCP-сервер на потоках Rust: агент получает подсказки, переходы к определениям, ссылки, форматирование и диагностику компилятора от rust-analyzer
- 486 ★ репозитория
- Последний коммит
- Apache-2.0
Расширенный доступ
Почему такой уровень
- Сервер запускает rust-analyzer в вашем проекте, а `format` и code_actions могут менять файлы
- Инструменты читают исходный код рабочей области, который попадает в контекст агента
Установка
- Работает в
Ручная установка
cargo install r3bl-rust-analyzer-mcp-serverСтавит бинарный файл rust-analyzer-mcp-server в ~/.cargo/bin. Нужен rust-analyzer: rustup component add rust-analyzer.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Сервер запускает rust-analyzer в вашем проекте, а `format` и code_actions могут менять файлы
- Инструменты читают исходный код рабочей области, который попадает в контекст агента
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Сервер связывает агента с rust-analyzer по протоколу LSP 3.17 и дает десять инструментов. `rust_analyzer_hover` показывает документацию и сигнатуры типов, `rust_analyzer_definition` и `rust_analyzer_references` ищут определение и все ссылки, `rust_analyzer_symbols` строит иерархию символов файла, `rust_analyzer_completion` предлагает варианты завершения. `rust_analyzer_format` вызывает `rustfmt`, `rust_analyzer_code_actions` дает быстрые исправления и рефакторинги. Диагностику компилятора отдают два инструмента: `rust_analyzer_diagnostics` для файла и `rust_analyzer_workspace_diagnostics` для всей рабочей области. `rust_analyzer_set_workspace` переключает корень проекта на лету. Нумерация строк и символов в аргументах начинается с нуля. Авторы собрали сервер на потоках стандартной библиотеки без Tokio: три потока (основной цикл, чтение `stdout` и фоновая очистка `stderr`) защищают от взаимной блокировки при больших диагностиках. Бинарный файл называется `rust-analyzer-mcp-server`, и ставит его `cargo install`.
Для кого. Для Rust-разработчиков, которые работают с Claude Code, OpenCode или Antigravity и хотят дать агенту то же понимание кода, что у редактора.
Подходит, если
- Агент переименовывает или переносит функцию, и ему нужны все ссылки на нее по рабочей области
- Нужно узнать тип выражения или документацию без чтения исходников зависимости
- После правки агент должен проверить ошибки компилятора для файла или всего проекта до запуска `cargo build`
- Требуются быстрые исправления и рефакторинги, которые предлагает rust-analyzer
- Вы переключаетесь между несколькими корнями проекта и хотите менять их без перезапуска сервера
Не подходит, если
- Проект написан не на Rust: сервер работает только с rust-analyzer
- Нужен сервер на другом языке или универсальный мост к LSP: этот сервер не обслуживает их
- На машине нет rust-analyzer: его нужно поставить командой `rustup component add rust-analyzer`
- Вам нужна сама библиотека r3bl_tui или приложения `edi` и `giti`: в репозитории они лежат рядом, но это отдельные продукты
Пример запроса к агенту
Найди через rust-analyzer все ссылки на функцию parse_config в рабочей области и покажи ошибки компилятора для src/main.rsMCP
- Транспорт
- stdio
- Авторизация
- не нужна
Ограничения
- Нужен установленный rust-analyzer, доступный в оболочке. Node.js и npx требуются только для интеграционных тестов с MCP `inspector`.
- Номера строк и символов считаются с нуля по спецификации LSP.
- Проверенные клиенты в описании: Google Antigravity, OpenCode и Claude Code. Для других клиентов настройка стандартная для stdio.
- Сервер входит в большой репозиторий проекта r3bl-open-core: его собственный README лежит в папке сервера.
- Лицензия Apache-2.0.
Как отключить. Выполните claude mcp `remove` rust-analyzer и удалите бинарный файл командой cargo `uninstall` r3bl-rust-analyzer-mcp-server.
Частые вопросы
Как подключить rust-analyzer MCP к Claude Code?
Выполните cargo `install` r3bl-rust-analyzer-mcp-server, затем claude mcp `add` rust-analyzer -- rust-analyzer-mcp-server. Для OpenCode и Antigravity в mcp_config.json добавляют сервер с командой rust-analyzer-mcp-server.
Какие параметры запуска есть у сервера?
`--workspace` задает корень рабочей области, `--log-level` выбирает уровень журнала от `off` до `trace`, `--log-file` отправляет журнал в файл вместо `stderr`. Журнал по умолчанию выключен.
Зачем сервер собран без асинхронного рантайма?
По словам авторов, у других серверов были зависания процессора на выходе, взаимные блокировки при больших диагностиках и борьба за блокировки. Они выбрали потоки стандартной библиотеки и каналы `sync_channel(1)`.
Что еще лежит в репозитории r3bl-open-core?
Библиотека r3bl_tui для текстовых интерфейсов, приложения r3bl-cmdr (`edi`, `giti`, rc, env-source), сборочные утилиты и папка `.agents/skills` с процессами для разработчиков самого проекта. Для пользователей агента нужен только сервер.
Как проверить, что сервер отвечает?
Выполните npx @modelcontextprotocol/inspector --cli rust-analyzer-mcp-server --method tools/list: команда выведет перечень из десяти инструментов.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыMCP-сервер, который отвечает агенту на вопросы по документации одного крейта Rust точной версии
MCP-сервер и CLI для исследования кода: поиск и разбор по вашему проекту и по всему GitHub с экономией токенов
Rust-бинарник для агентов и терминала: через tree-sitter находит определение символа, его вызовы и зависимости файла
Мост между языковым сервером LSP и агентом: определения, ссылки, диагностика, подсказки и переименование символов
CodeGraph на Rust
codegraph-rust
Граф кода для агента на Rust: четыре MCP-инструмента показывают, что заденет правка, как устроена архитектура и где хрупкие места проекта
Локальный граф знаний о коде с историей версий: MCP-сервер отвечает агенту, кто вызывает функцию и что сломается от правки
Коротко о README
Главный README репозитория посвящен библиотеке r3bl_tui и приложениям для терминала, а MCP-сервер описан в таблице крейтов и в разделе про работу с агентами. Отдельный README сервера объясняет мотивацию (стабильность без Tokio), установку через cargo, примеры конфигурации для Antigravity, OpenCode и Claude Code, параметры командной строки и перечень из десяти инструментов с аргументами. В конце указаны запуск тестов и ссылка на статью об архитектуре.