Files
litterbox/GrumpyCats
BlackSnufkin 717b28ee99 v5 release prep: shrink top-level READMEs, dead-code cleanup, release notes
- README, GrumpyCats/README, Whiskers/README: trim feature dumps; point at the wiki for deep docs
- Whiskers/BUILD.md: folded into Whiskers/README "Building from source"
- HolyGrail analyzer: drop 178 lines of dead code
- Patriot, blender, holygrail, manager: pyflakes-clean unused imports
- Add release-notes.md
2026-05-03 12:46:38 -07:00
..

GrumpyCats

GrumpyCats Banner

Python License MCP Supported AI Powered

The client side of LitterBox. Three pieces sharing one codebase:

File What it is Wiki
grumpycat.py Command-line client GrumpyCats CLI
litterbox_client/ Python library (composed mixins) GrumpyCats Library
LitterBoxMCP.py + install_mcp.py MCP server + installer (29 tools, 4 OPSEC prompts) LitterBoxMCP

Install

pip install requests          # CLI + library
pip install mcp               # additionally for the MCP server

Quick start

CLI:

python grumpycat.py upload payload.exe --analysis static dynamic
python grumpycat.py edr-run <md5> --profile elastic --wait
python grumpycat.py results <md5> --comprehensive

Library:

from litterbox_client import LitterBoxClient

with LitterBoxClient("http://127.0.0.1:1337") as c:
    info = c.upload_file("payload.exe")
    c.analyze_file(info["md5"], "static", wait_for_completion=True)
    print(c.get_risk_assessment(info["md5"]))

MCP (Claude Desktop / Claude Code / Cursor / Windsurf / VS Code):

py install_mcp.py --list                       # see supported clients
py install_mcp.py --install claude-code-project

Reload the MCP client after install so the new config is picked up.

Layout

GrumpyCats/
├── grumpycat.py                # CLI entry point
├── cli/                        # argparse parser + command handlers
├── litterbox_client/           # API client, per-domain mixins composed onto _BaseClient
├── LitterBoxMCP.py             # FastMCP wrapper
└── install_mcp.py              # MCP-client config installer

Adding a new command = one method in the right mixin under litterbox_client/, one subparser in cli/parser.py, one handler in cli/handlers.py. The MCP tool is one decorator in LitterBoxMCP.py since it shares the client.

Documentation

Full reference for every CLI command, library method, MCP tool, and OPSEC prompt lives in the wiki:

Claude Integration

https://github.com/user-attachments/assets/bd5e0653-c4c3-4d89-8651-215b8ee9cea2