# culprit

culprit searches Git history for likely causes of a bug and checks whether a proposed fix leaves callers untouched. Use it to review a patch before committing.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 6
- Author: noordeen123
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/noordeen123/culprit
- Updated: 2026-08-26
- HTML: https://affpapa.org/en/nevibecode/mcp/culprit

## What it does

culprit gives a coding agent tools to rank commits that may have introduced a regression, inspect a change’s impact, and check a patch before commit. Its `verify_fix` tool returns `complete`, `partial`, or `risky`, along with references to files that still use the changed symbol. That makes missed call sites visible while the agent is working on a fix.

The server provides 11 MCP tools, including `find_suspects`, `get_blast_radius`, and `get_test_impact`. `from_trace` starts an investigation from a stack trace, and the separate CLI uses `rca`. culprit runs offline, leaves the repository unchanged, and needs no API key. The MCP server requires Python 3.10+ and `uv`; without those, launching it through `uvx` will fail. In tests on 50 regressions, the introducing commit appeared among the top five suspects in 66% of cases, so treat the ranking as evidence to inspect, not a final answer.

## Requirements
- Needs: Python and uv (commands run via uvx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add culprit -- uvx culprit
```
uvx runs the command named after the package; if the README names another one, use uvx --from culprit <command>

### Codex

**Platform CLI**
```bash
codex mcp add culprit -- uvx culprit
```
uvx runs the command named after the package; if the README names another one, use uvx --from culprit <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "culprit": {
            "command": "uvx",
            "args": [
                "culprit"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from culprit <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "culprit": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "culprit"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from culprit <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add culprit uvx culprit
```
uvx runs the command named after the package; if the README names another one, use uvx --from culprit <command>

## When to use it
- rank commits that may have introduced a regression
- check a patch for untouched uses of a changed symbol
- assess which files and tests a change affects
- trace a bug’s likely cause from a stack trace

## Example prompts
- Find commits that may have introduced this regression.
- Check my patch before I commit and list any untouched uses of the changed symbol.
- Use this stack trace to investigate the likely cause of the error.

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

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
