# culprit

culprit анализирует историю Git, чтобы найти коммиты, связанные с багом, и проверяет, не пропустил ли патч места использования изменённого символа. Проверка перед коммитом помогает увидеть незакрытые вызовы.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 6
- Автор: noordeen123
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/noordeen123/culprit
- Обновлён: 2026-08-26
- HTML: https://affpapa.org/nevibecode/mcp/culprit

## Что делает

Сервер помогает агенту найти вероятные причины регрессии в истории Git, оценить область влияния изменения и проверить патч до коммита. `verify_fix` возвращает вердикт `complete`, `partial` или `risky` и перечисляет нетронутые места, где используется изменённый символ. Если агент меняет общий символ, список пропущенных вызовов помогает понять, что ещё нужно исправить.

В набор входят 11 MCP-инструментов: среди них `find_suspects`, `get_blast_radius` и `get_test_impact`. Для анализа по трассировке стека есть `from_trace`; отдельный CLI запускается командой `rca`. Сервер работает офлайн, не меняет файлы репозитория и не требует API-ключа. Для MCP-сервера нужны Python 3.10+ и `uv`; без них запуск через `uvx` не сработает. По результатам теста на 50 регрессиях вводящий коммит попадал в первую пятёрку подозреваемых в 66% случаев, так что выводы стоит проверять по коду.

## Требования
- Нужно: Python и uv (команды через uvx)

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add culprit -- uvx culprit
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from culprit <команда>

### Codex

**Командой платформы**
```bash
codex mcp add culprit -- uvx culprit
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from culprit <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "culprit": {
            "command": "uvx",
            "args": [
                "culprit"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from culprit <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "culprit": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "culprit"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from culprit <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add culprit uvx culprit
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from culprit <команда>

## Когда брать
- найти коммиты, которые могли внести баг
- проверить патч на пропущенные места использования символа
- оценить файлы и тесты, затронутые изменением
- получить разбор причины бага по трассировке стека

## Примеры запросов агенту
- Найди коммиты, которые могли внести эту регрессию.
- Проверь мой патч перед коммитом и перечисли пропущенные места использования изменённого символа.
- По этой трассировке стека найди вероятную причину ошибки.

## Похожие
- [GitHub](https://affpapa.org/nevibecode/mcp/github.md) — MCP-сервер · ★ 33989
- [GitDiagram](https://affpapa.org/nevibecode/mcp/gitdiagram.md) — MCP-сервер · ★ 18511
- [Repowise](https://affpapa.org/nevibecode/mcp/repowise.md) — MCP-сервер · ★ 7925
- [sem](https://affpapa.org/nevibecode/mcp/sem.md) — MCP-сервер · ★ 3427
- [GitLab MCP Server](https://affpapa.org/nevibecode/mcp/gitlab-mcp-server.md) — MCP-сервер · ★ 2068
- [Octocode MCP - AI Context Platform](https://affpapa.org/nevibecode/mcp/octocode-mcp-ai-context-platform.md) — MCP-сервер · ★ 955

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
