gutsy

Local gut check before risky agent actions: calibrated safe/intended probabilities, no API calls.

OtherPythonv0.1.2

gutsy-mcp

A local gut check for coding agents. Before Claude Code, Codex, Cursor or Copilot runs rm -rf, force-pushes, deploys or sends something, it calls gut_check and gets back calibrated probabilities that the action is intended and safe, plus a recommendation: proceed, confirm (ask the user first) or block.

Runs on your CPU with gutsy (0.8B, 775 MB GGUF). No API calls, no per-call cost, deterministic, and your code never leaves the machine.

What it is and isn't

It's a fast second opinion that adds friction where it's warranted. It is not a security boundary: the agent decides whether to call it and writes the context it sees, and a 0.8B model is weak at ambiguity and multi-step rules (see the model card). Keep your normal permission settings on. Default thresholds aren't tuned for your workflow; log the probabilities and adjust them.

1. Start the gutsy runtime

git clone https://github.com/kouhxp/gutsy
pip install -e gutsy/gutsy-inference
hf download kouhxp/gutsy --include "gutsy-0.8b-v04*" --local-dir gutsy/gutsy-inference/models
cd gutsy/gutsy-inference && cp models.example.json models.json
gutsy-inference check && gutsy-inference serve     # http://127.0.0.1:8765

Or set GUTSY_INFERENCE_DIR=/path/to/gutsy/gutsy-inference and gutsy-mcp starts it on first use.

2. Add the MCP server

Claude Code:

claude mcp add gutsy -- uvx gutsy-mcp

Cursor (.cursor/mcp.json) / Claude Desktop:

{ "mcpServers": { "gutsy": { "command": "uvx", "args": ["gutsy-mcp"] } } }

VS Code (.vscode/mcp.json):

{ "servers": { "gutsy": { "type": "stdio", "command": "uvx", "args": ["gutsy-mcp"] } } }

Codex (~/.codex/config.toml):

[mcp_servers.gutsy]
command = "uvx"
args = ["gutsy-mcp"]

Then tell the agent when to use it (CLAUDE.md, AGENTS.md, .cursor/rules):

Before deleting files, rewriting git history, force-pushing, touching databases, deploying, publishing or sending anything, call gut_check. If it doesn't return proceed, stop and ask me.

3. Optional: enforce it with a Claude Code hook

An MCP tool only runs if the agent remembers to call it. The hook runs on every risky-looking Bash command regardless. It can only ask or deny, never auto-approve.

uv tool install gutsy-mcp      # puts gutsy-hook on PATH

.claude/settings.json:

{
  "hooks": {
    "PreToolUse": [
      { "matcher": "Bash", "hooks": [{ "type": "command", "command": "gutsy-hook", "timeout": 60 }] }
    ]
  }
}

block becomes a confirmation prompt by default; set GUTSY_HOOK_ALLOW_DENY=1 to deny outright.

Tool

gut_check(action, context="", user_request="") returns:

{
  "recommendation": "confirm",
  "reason": "Not confident enough to proceed without the user.",
  "p_intended": 0.41,
  "p_reversible": 0.08,
  "verdict_probabilities": {"proceed": 0.22, "confirm": 0.61, "block": 0.17},
  "reject": 0.04,
  "confidence": 0.42
}
env vardefault
GUTSY_URLhttp://127.0.0.1:8765runtime URL
GUTSY_INFERENCE_DIRlets gutsy-mcp start the runtime
GUTSY_MODELruntime defaultmodel name from models.json
GUTSY_PROCEED_MIN0.85
GUTSY_BLOCK_MIN0.50
GUTSY_API_KEYif you run serve --api-key-env

License: Apache 2.0.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
uvx gutsy-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-kouhxp-gutsy": {
      "command": "uvx",
      "args": [
        "gutsy-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

gutsy-mcppypi

Compatible MCP Clients

gutsy works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More