sem MCP
Семантический git для агентов: показывает изменения по функциям и классам и считает, что заденет правка в коде.
- 3 451 ★ репозитория
- Последний коммит
- Apache-2.0
Расширенный доступ
Почему такой уровень
- Читает исходный код репозитория и пишет кеш на диск; облачные запросы выполняются только после отдельного согласия.
Установка
- Работает в
В терминале, через 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 сервер структурного поиска по коду для агентов: находит нужный файл по смыслу запроса и работает локально
MCP-сервер, который индексирует код через tree-sitter и отдает агенту отдельные функции и классы вместо целых файлов
MCP-сервер git на 28 инструментов: агент клонирует, коммитит, ветвит, сливает и перебазирует в локальных репозиториях.
Локальный MCP-сервер с графом вызовов и поиском символов: агент видит структуру кода и последствия правки заранее.
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| sem (эта карточка) | нет | не нужна | 3 451 | |
| GitNexus | нет | не нужна | 48 470 | индексирует код в граф знаний; sem считает сущности и влияние правки прямо по истории git |
| Weave | нет | 1 356 | снимает ложные конфликты слияния; sem отвечает на вопросы о вызовах и влиянии правки |
Коротко о README
Разбор идет через tree-sitter, кеш хранится в SQLite, а команды дублируются консольными глаголами. Каждый глагол принимает флаг `--json`.