nimlangserver MCP
nimlangserver работает MCP-сервером для Nim: агент ищет символы и ссылки, проверяет файлы и узнает типы по данным компилятора
- 317 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Диагностика запускает компилятор Nim, а макросы выполняются при компиляции, поэтому открывайте только доверенные проекты
- Сервер читает исходники проекта и запускает `nimsuggest` как дочерний процесс
Установка
- Работает в
Ручная установка
nimble install -g nimlangserverНужны Nim 1.6.8 или новее и nimble 0.16.1 или новее. Бинарник попадает в `$HOME/.nimble/bin`.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Диагностика запускает компилятор Nim, а макросы выполняются при компиляции, поэтому открывайте только доверенные проекты
- Сервер читает исходники проекта и запускает `nimsuggest` как дочерний процесс
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
nimlangserver — языковой сервер для Nim от команды nim-lang. По умолчанию он обслуживает редакторы по протоколу LSP, а с флагом `--mcp` превращается в MCP-сервер для ИИ-агентов. Агент получает шесть инструментов: `nimFindSymbols` ищет символы по имени, `nimFindReferences` находит все ссылки на символ, `nimFindTypeDefinition` ведет к определению типа, `nimListSymbols` перечисляет символы файла, `nimCheckFile` и `nimCheckProject` выдают диагностику компилятора. Сервер разбирает Nim так же, как компилятор, поэтому находит имена в разных написаниях (`printThing`, `printthing`, `print_thing`) и вызовы через шаблоны и макросы. Текстовый поиск такие места пропускает. В примере из документации у функции четыре использования, и без MCP агент находит из них одно. Вместе с сервером репозиторий отдает скилл `nim-mcp-tools` в файле SKILL.md. Он велит агенту сначала пробовать инструменты MCP и переходить к grep только при ошибке или с согласия пользователя. Ставят это так: сервер через nimble, `.mcp.json` в корень проекта, SKILL.md в `.claude/skills/nim-mcp-tools/`.
Для кого. Программистам на Nim, которые правят код вместе с Claude Code, GitHub Copilot CLI, Gemini CLI или OpenCode.
Подходит, если
- Символ `Foo` нужно переименовать везде, включая вызовы с другим регистром и подчеркиваниями
- Агент должен выяснить, откуда пришел символ, какого он типа и какие у него поля, в том числе приватные
- После правки надо собрать ошибки, предупреждения и подсказки компилятора по одному файлу или по всему проекту
- Проект использует шаблоны и макросы, и текстовый поиск теряет часть вызовов
- Редактор работает на VS Code: расширение vscode-nim приносит и LSP, и MCP, и скилл
Не подходит, если
- Код написан не на Nim: инструменты рассчитаны на Nim и его компилятор
- Нужен сервер для другого языка или сразу для нескольких: для этого подойдут универсальные мосты LSP и MCP
- В среде нет Nim 1.6.8 или новее, nimble 0.16.1 или новее и `nimsuggest` с поддержкой `--v3`
- Проект недоверенный: диагностика запускает компилятор, а макросы Nim исполняются при компиляции
Пример запроса к агенту
Найди все использования процедуры parseConfig, включая вызовы через шаблоны, и переименуй ее в loadConfigMCP
- Транспорт
- stdio
- Авторизация
- не нужна
Ограничения
- Сервер собирается из исходников через nimble и требует Nim 1.6.8 или новее, nimble 0.16.1 или новее и `nimsuggest` с поддержкой `--v3`.
- Установка для Claude Code ручная: `.mcp.json` копируют в проект, SKILL.md кладут в `.claude/skills/nim-mcp-tools/`. В VS Code все приходит с расширением.
- Перед работой скилл вызывают командой `/nim-mcp-tools`, иначе агент может искать через grep.
- На Windows автор советует WSL и держать проекты в ее файловой системе.
Как отключить. Удалите запись `nim` из `.mcp.json` и папку `.claude/skills/nim-mcp-tools/`. Сам сервер снимается через nimble командой `nimble uninstall nimlangserver`.
Частые вопросы
Как подключить nimlangserver к Claude Code как MCP-сервер?
Поставьте сервер командой `nimble install -g nimlangserver`, скопируйте `.mcp.json` из репозитория в корень проекта и положите SKILL.md в `.claude/skills/nim-mcp-tools/`. В `.mcp.json` сервер запускается командой `nimlangserver` с аргументом `--mcp`.
Какие инструменты отдает сервер?
Шесть: `nimFindSymbols`, `nimFindReferences`, `nimFindTypeDefinition`, `nimListSymbols`, `nimCheckFile` и `nimCheckProject`. Первые четыре отвечают за навигацию по символам и типам, последние два возвращают диагностику компилятора.
Чем он лучше grep для кода на Nim?
Он понимает правила разрешения имен в Nim. Один идентификатор пишется как `printThing`, `printthing` или `print_thing`, а еще вызывается через шаблон, и grep такие места теряет. Сервер находит их по данным компилятора.
Нужно ли отдельно ставить LSP-сервер для редактора?
Нет, тот же бинарник работает в двух режимах. Без флагов он служит LSP-сервером для редакторов, с `--mcp` отдает инструменты агентам.
Работает ли он с другими агентами, кроме Claude Code?
Да, в документации описаны GitHub Copilot CLI, Gemini CLI и OpenCode. Файлы настроек разные: `.mcp.json`, `.gemini/settings.json`, `opencode.json`, а SKILL.md кладут в папку скиллов своего агента.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыМост между языковым сервером LSP и агентом: определения, ссылки, диагностика, подсказки и переименование символов
Мост MCP и LSP: агент получает типы, ссылки, диагностику и рефакторинг от языковых серверов, например Pyright.
MCP-сервер к языковому серверу Lean 4: агент читает цели доказательства, ошибки и ищет теоремы прямо в проекте
MCP-сервер, который дает агентам доступ к вашей запущенной сессии Neovim через родной сокет msgpack-RPC, без плагинов.
mcpdoc
MCP LLMS-TXT Documentation Server
MCP-сервер от LangChain: отдает агенту документацию из выбранных вами файлов llms.txt с проверяемыми вызовами
Консольный отладчик MCP-серверов от Giant Swarm: REPL для инструментов, OAuth 2.1 и режим MCP-сервера для Cursor
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| nimlangserver (эта карточка) | да | не нужна | 317 | |
| cclsp | нет | не нужна | 675 | универсальный мост от LSP к MCP для разных языков, а в nimlangserver MCP-режим встроен и рассчитан на Nim |
| Serena | нет | не нужна | 31 335 | семантические инструменты IDE для многих языков, а nimlangserver отвечает только за Nim |
Коротко о README
README коротко представляет nimlangserver как языковой сервер с режимами LSP и MCP, дает команду установки через nimble, демонстрации в asciinema и ссылку на документацию. Подробности про MCP, список инструментов и пример с переименованием лежат в книге документации, в разделе mcp.