sem MCP

Семантический git для агентов: показывает изменения по функциям и классам и считает, что заденет правка в коде.

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

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

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

  • Читает исходный код репозитория и пишет кеш на диск; облачные запросы выполняются только после отдельного согласия.
Все причины и проверки

ataraxy-labs/sem

Установка

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

npx skillfoxx add mcp/sem

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

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

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

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

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

  • Читает исходный код репозитория и пишет кеш на диск; облачные запросы выполняются только после отдельного согласия.

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

Что делает

sem разбирает код через tree-sitter, достает каждую функцию, класс и метод как отдельную сущность и сравнивает версии по ним. Вместо «изменены строки 40–62» агент видит «функция parse_config изменена». Переименования и переносы определяются отдельно, а правки пробелов и форматирования отличаются от смены логики. Команда `sem mcp` запускает MCP-сервер по stdio. Он отдает агенту восемь инструментов: поиск определения (`sem_find`), поиск текста (`sem_grep`), анализ влияния правки (`sem_impact`), проверку изменения (`sem_check`), список того, что стоит показать человеку (`sem_certify`), сравнение двух ревизий (`sem_diff`), граф зависимостей (`sem_graph`) и историю сущности (`sem_history`). Тот же бинарник работает как обычная консольная утилита в любом git-репозитории без настройки.

Для кого. Разработчикам на больших репозиториях, где агент тратит токены на чтение целых файлов ради одного вопроса о вызовах функции.

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

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

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

  • Нужен построчный diff с контекстом для патча: здесь хватит обычного `git diff`.
  • Язык проекта не входит в число поддерживаемых tree-sitter-разборщиков sem.
  • Облачные запросы к приватному репозиторию недопустимы по правилам компании.

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

Покажи, какие функции заденет смена сигнатуры submitOrder, и дай только нужный контекст для рефакторинга.

MCP

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

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

SEM_CACHE_DIR
Корневой каталог кеша сущностей, по умолчанию кеш ОС.

Ограничения

sem ставится одним бинарником (Rust). Кеш сущностей лежит в SQLite вне репозитория, путь меняет переменная `SEM_CACHE_DIR`. Первый запрос в репозитории строит индекс `index.sem`, поэтому на крупном проекте он идет дольше последующих. Облачные запросы включаются отдельно для каждого репозитория: вход в аккаунт сам по себе ничего не загружает. Режим Streamable HTTP описан как предварительный, по умолчанию работает stdio. Старые имена инструментов (`sem_entities`, `sem_callers`) еще отвечают, но в списке не показываются.

Как отключить. Удалите запись `sem` из MCP-конфигурации клиента (`claude mcp remove sem`). Бинарник снимается тем же способом, которым ставился. Кеш сущностей очистите вручную в каталоге кеша ОС.

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

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

Выполните `claude mcp add sem -- sem mcp`. Для Cursor и Claude Desktop добавьте в `mcpServers` запись с командой `sem` и аргументом `mcp`. Если бинарника нет в PATH, укажите абсолютный путь.

Нужно ли отдельно ставить MCP-сервер?

Нет. Сервер входит в тот же бинарник, команда `sem mcp` запускает его без дополнительной установки.

Что делает `npx @ataraxy-labs/sem-skill`?

Команда ставит скилл, который подсказывает агенту, когда обращаться к sem. MCP-подключение остается отдельным шагом.

Чем `sem_diff` отличается от `git diff`?

`sem_diff` отвечает, какие сущности изменились между двумя ревизиями, а `git diff` показывает измененные строки. Для патча нужен второй, для анализа правки первый.

Что хранит кеш sem и где он лежит?

Кеш сущностей лежит в SQLite в каталоге кеша ОС, вне репозитория. `SEM_CACHE_DIR` меняет корень кеша, а переопределения внутри репозитория игнорируются, чтобы файлы кеша не пачкали рабочее дерево.

Обсуждение

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

MCP-серверы

Один MCP-сервер дает агенту карту кода на более 300 языков, историю git, общую память и поиск по документам с OCR.

MCP-серверРасширенный доступ119Звезды репозитория
Официальный

Быстрый семантический поиск по коду для агентов: возвращает нужные фрагменты вместо чтения файлов и тратит намного меньше токенов

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

MCP сервер структурного поиска по коду для агентов: находит нужный файл по смыслу запроса и работает локально

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

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

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

MCP-сервер git на 28 инструментов: агент клонирует, коммитит, ветвит, сливает и перебазирует в локальных репозиториях.

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

Локальный MCP-сервер с графом вызовов и поиском символов: агент видит структуру кода и последствия правки заранее.

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

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

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

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
sem (эта карточка)нетне нужна3 451
GitNexusнетне нужна48 470индексирует код в граф знаний; sem считает сущности и влияние правки прямо по истории git
Weaveнет1 356снимает ложные конфликты слияния; sem отвечает на вопросы о вызовах и влиянии правки

Коротко о README

Разбор идет через tree-sitter, кеш хранится в SQLite, а команды дублируются консольными глаголами. Каждый глагол принимает флаг `--json`.

Бейдж для README

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