One MCP server to replace them all.
257 tools | 31 modules | Replaces 75+ MCP servers | 34MB standalone exe
Compatible with Claude Desktop, Grok Desktop, Cursor, Windsurf, and any MCP client.
The official GitHub MCP server has critical SHA-handling bugs. SassyMCP's GitHub module uses correct blob SHA lookups, proper path encoding, atomic multi-file commits via Git Data API, retry logic with exponential backoff, and rate-limit awareness. It's a drop-in replacement that actually works.
The MCP ecosystem is fragmented. Need file operations? Install Filesystem server. Need terminal? Desktop Commander. GitHub? Another server. Android? Another. Screenshots? Another. You end up with 6-10 separate MCP servers, each consuming context window, each with its own config, bugs, and update cycle.
SassyMCP replaces 75+ individual MCP servers — including Desktop Commander (5.9k stars), Windows-MCP (5k stars), GitHub MCP Server (28.6k stars), Anthropic's official Filesystem and Memory servers, mobile-mcp (4.4k stars), and dozens more — with a single 34MB exe.
Key differentiators:
- Smart Tool Loading — Only loads tool groups you use. Reduces context window overhead from ~25K tokens to ~5K tokens by default.
- Dynamic Vision — Real-time screen monitoring with change detection for both desktop and Android. No more screenshot-and-pray.
- Android Interaction — Full phone control via UI accessibility tree: tap, swipe, type, with automatic sensitive context detection (auth/payment screens auto-block).
- Pause/Resume — User takes over the phone for manual steps (login, 2FA, account selection), AI watches and learns, then resumes autonomously.
- Usage Tracking — ML-lite scoring of tool invocations with exponential decay. Your most-used tools load first.
- Context Estimation — Built-in tool to measure how much of your 200K context window tool definitions consume.
- Response Minification — GitHub API responses stripped of URL metadata bloat (40-70% smaller).
- Safe Delete — Delete commands (
rm,del,Remove-Item, etc.) are intercepted across all shells. Instead of destroying files, targets are moved to a_DELETE_/staging folder in the same directory for human review — protecting against AI hallucinations. - Self-Modification — Hot-reload modules without restart, git-backed rollback on syntax errors.
- Guided Setup — Wizard walks through persona, GitHub token, SSH credentials, and optional tool discovery.
| Domain | SassyMCP Module | Replaces | Top Alternative |
|---|---|---|---|
| File operations | FileOps, Editor | 11 filesystem/editor MCP servers | Filesystem (Anthropic official) |
| Shell / terminal | Shell, Session | 5 shell MCP servers | Desktop Commander (5.9k stars) |
| Desktop automation | UIAutomation, Vision | 9 desktop MCP servers | Windows-MCP (5k stars) |
| GitHub / Git | GitHub Quick, GitHub Full | 5 GitHub/Git MCP servers | GitHub MCP Server (28.6k stars) |
| Android / phone | ADB, PhoneScreen | 9 mobile MCP servers | mobile-mcp (4.4k stars) |
| Network scanning | NetworkAudit | 8 nmap/security MCP servers | mcp-for-security (601 stars) |
| Security auditing | SecurityAudit | 8 security MCP servers | mcp-security-hub (509 stars) |
| SSH / remote Linux | Linux | 7 SSH MCP servers | ssh-mcp (365 stars) |
| Memory / state | Memory, StateManager | 7 memory MCP servers | mcp-memory-service (1.6k stars) |
| OCR / screen reading | Vision | 7 OCR/vision MCP servers | PaddleOCR MCP |
| Web inspection | WebInspector, Utility | 7 web/fetch MCP servers | Fetch (Anthropic official) |
| Windows system | Registry, ProcessManager, Clipboard, EventLog, Bluetooth | 13 Windows MCP servers | Windows-MCP (5k stars) |
| Hot reload | SelfMod | 3 reload MCP servers | mcp-reloader |
Plus features with no MCP server equivalent: phone pause/resume with sensitive context detection (auto-blocks on login/payment screens), operational hooks (14 expert playbooks), safe delete interception, Windows autorun forensics, Android+Windows clipboard sync, usage-weighted smart loading.
| Module | Tools | Group | Description |
|---|---|---|---|
| Meta | 5 | meta | Context estimation, tool usage analytics, group management |
| FileOps | 10 | core | Read, write, search, move, copy, edit, mkdir, file info, safe delete |
| Shell | 1 | core | PowerShell, CMD, WSL execution with syntax normalization and delete interception |
| UIAutomation | 6 | core | Desktop state, click, type, hotkeys, screenshots, screen info |
| Editor | 2 | core | Surgical find/replace, multi-edit |
| Audit | 3 | core | Audit log read, search, clear |
| Session | 6 | core | Persistent terminal sessions (start, read, send, stop) |
| GitHub Quick | 6 | github_quick | Daily-driver: push_files, get_file, issue, PR, protect |
| Persona | 6 | persona | Expert-mode directives, decision framework, engineering standards |
| Utility | 11 | utility | Env vars, toast, zip/tar/unzip/untar, HTTP requests, file diff |
| SelfMod | 7 | selfmod | Self-edit, hot-reload, restart, rollback, status |
| Setup | 6 | setup | Setup wizard, GitHub token guide, SSH setup, tool checker |
| Observability | 3 | infrastructure | Health, metrics, tool stats |
| StateManager | 3 | infrastructure | Persistent key-value state across sessions |
| RuntimeConfig | 3 | infrastructure | Runtime config, recent tool calls |
| GitHub Full | 80 | github_full | Complete GitHub API: repos, issues, PRs, actions, security, gists |
| ADB | 10 | android | Android shell, packages, file transfer, logcat, screencap |
| PhoneScreen | 14 | android | UI tree reader, phone glance/watch, tap/swipe/type/key, pause/resume, scrcpy |
| NetworkAudit | 7 | system | netstat, ARP, WiFi scan, port scan, DNS, traceroute |
| ProcessManager | 5 | system | Windows + Android process list/kill, system info |
| SecurityAudit | 7 | system | Hash, permissions, certs, APK, firewall, Defender |
| Registry | 4 | system | Read, write, export, autorun forensics |
| Bluetooth | 3 | system | Windows + Android BT enumeration |
| EventLog | 3 | system | Windows Event Log + Android logcat |
| Clipboard | 4 | system | Windows + Android clipboard sync |
| Vision | 8 | v020 | Screen capture, OCR, dynamic glance/watch/diff |
| AppLauncher | 6 | v020 | Launch apps, focus/close/resize/snap windows |
| WebInspector | 5 | v020 | Security headers, URL screenshots, tech stack detection |
| Crosslink | 7 | v020 | Cross-session messaging via HTTP API + SQLite |
| Linux | 1 | linux | Remote SSH execution via plink |
Traditional MCP screenshots are blind — you capture one frame and hope it's the right one. SassyMCP's dynamic vision changes this:
| Tool | Purpose |
|---|---|
sassy_screen_glance |
Fast grayscale capture at ~3-6KB. Call repeatedly to "watch" the screen. |
sassy_screen_watch |
Monitor for N seconds, returns only frames where content changed (pixel diff threshold). |
sassy_screen_diff |
Before/after comparison — takes frame, waits, takes another, returns both + a diff image highlighting changes. |
All three use grayscale + heavy JPEG compression to keep context cost minimal. A glance is ~2KB vs ~14KB for a full-color capture.
The phone isn't just a camera target — SassyMCP reads its UI accessibility tree:
| Tool | Purpose |
|---|---|
sassy_phone_ui |
Reads every visible UI element — text, description, coordinates, clickable/focused/checked state. Structured data, not pixels. |
sassy_phone_state |
Foreground app, screen on/off, battery, WiFi, notification count. |
sassy_phone_glance |
Low-res grayscale phone screenshot via direct pipe (~4-8KB). |
sassy_phone_watch |
Monitors UI tree changes over duration. Returns snapshots only when elements change. |
Full touch input via ADB — the AI can operate the phone:
| Tool | Purpose |
|---|---|
sassy_phone_tap |
Tap screen coordinates |
sassy_phone_swipe |
Swipe between two points |
sassy_phone_type |
Type text into focused field |
sassy_phone_key |
Send key events (HOME, BACK, ENTER, VOLUME, etc.) |
sassy_phone_open |
Launch an app by package name |
All interaction tools (tap, swipe, type) automatically scan the UI tree before executing. If they detect login screens, payment forms, account selectors, 2FA prompts, or permission dialogs, the tool refuses to execute and returns what it sees instead. The AI then describes the screen to you and asks what to do. Pass confirmed=True after explicit user approval.
AI agents can hallucinate destructive commands. SassyMCP intercepts all delete-family commands across every shell and every tool entry point, then moves targets to a _DELETE_/ staging folder instead of destroying them. Every interception is written to the audit log with the raw command, parsed targets, and move results.
Coverage — every destructive path is gated:
| Tool | Guard |
|---|---|
sassy_shell |
Intercepts delete commands, stages targets to _DELETE_/ |
sassy_session_send / sassy_session_start |
Same interceptor — persistent terminals can't bypass |
sassy_linux_exec |
Refuses destructive commands on the remote host |
sassy_adb_shell |
Refuses destructive commands on Android device (override with allow_destructive=True) |
sassy_safe_delete |
Explicit staging tool — moves symlinks as symlinks (no resolve() in the move path) |
sassy_write_file (rewrite mode) |
Snapshots existing file into _DELETE_/ before overwriting |
sassy_edit_block / sassy_edit_multi |
Refuses protected paths, snapshots existing content to _DELETE_/<name>.pre-edit.<ts><ext> before applying |
sassy_copy |
Refuses existing destination (no silent overwrite), refuses protected src/dst |
sassy_move |
Refuses silent destination overwrite, refuses protected src/dst |
sassy_selfmod_edit / sassy_selfmod_write |
Bad-syntax writes rename to <name>.bad.<ts> (never unlink) |
sassy_selfmod_rollback |
Requires confirm='YES' — discards uncommitted changes |
sassy_audit_clear |
Rotates the audit log instead of deleting it; requires confirm='YES' |
Intercepted command keywords: rm, rmdir, unlink (Unix/WSL), del, erase, rd (CMD), Remove-Item, ri, rni (PowerShell aliases), sdelete / sdelete64 (Sysinternals).
Also caught (beyond bare keywords):
- Shell wrappers —
powershell -c "del foo",cmd /c del foo,bash -c "rm foo",wsl -- rm foo(payload is recursively scanned) - Base64 payloads —
powershell -EncodedCommand <base64>is decoded (UTF-16-LE) and recursively scanned .NETcalls —[System.IO.File]::Delete(...),[System.IO.Directory]::Delete(...)Clear-Content,Set-Content -Value ''(literal empty only — normal-Value "foo"is allowed)Out-File -Force,New-Item -Force(overwrite-style)copy /y,xcopy /y— CMD silent-overwrite flagsrobocopy /MIRandrobocopy /PURGE— mirror/purge modes delete destination files- Truncate-by-redirect —
> file.txt,type foo > bar.txt,cmd; > file.txt(append>>and stream2>/&>correctly ignored) Move-Item foo $null- Assignment prefixes —
$null = ri foois correctly unwrapped
Protected roots (refused by every guarded tool, not just the interceptor): the SassyMCP source tree itself, ~/.sassymcp/ (audit + config), and any _DELETE_/ staging folder (no staging recursion). Protection uses resolve() so path traversal (..\), symlinks, and Windows 8.3 short names all normalize correctly before the check.
| Scenario | Result |
|---|---|
rm -rf / |
Hard-blocked by the always-on blocklist — no move attempted |
rm important.txt |
Blocked, file moved to ./_DELETE_/important.txt |
del /q *.log |
Blocked, all .log files moved to ./_DELETE_/ |
Remove-Item -Path C:\data\old |
Blocked, old moved to C:\data\_DELETE_\old |
cmd /c del foo (wrapper) |
Blocked — payload is unwrapped and intercepted |
gci *.tmp | ri (PS alias) |
Blocked — ri alias is matched |
sassy_write_file("doc.txt", ..., "rewrite") on existing file |
Prior content snapshotted to _DELETE_/doc.overwrite.<ts>.txt first |
ls -la |
Executes normally — not a delete command |
Name collisions in _DELETE_/ are handled automatically with counter suffixes (file.txt, file_1.txt, file_2.txt). On Windows, paths with backslashes (C:\Users\foo\bar) are preserved correctly by the parser — no shlex mangling.
For complex flows where the user needs to take over:
| Tool | Purpose |
|---|---|
sassy_phone_pause |
Blocks all interaction tools. Observation tools (ui, glance, watch) still work. |
sassy_phone_resume |
Unblocks interaction. AI picks up where it left off, informed by everything it observed during pause. |
Workflow:
- AI operates phone autonomously for routine tasks
- AI hits a login screen → sensitive context auto-blocks → AI tells the user
- User says "hold on" → AI calls
sassy_phone_pause - User logs in manually. AI watches via
sassy_phone_ui/sassy_phone_glance - User says "done" → AI calls
sassy_phone_resume - AI continues, now aware the user logged into a specific account
On first launch, the AI guides you through configuration:
| Tool | Purpose |
|---|---|
sassy_setup_wizard |
Create your persona profile (role, expertise, tech stack, preferences) |
sassy_setup_github |
Opens browser to GitHub token page, validates token, saves to env |
sassy_setup_ssh |
Collects SSH host/user/password, finds plink, tests connection |
sassy_setup_check_tools |
Scans for nmap, Tesseract, ADB, scrcpy, plink, Chrome — reports availability with install URLs |
sassy_setup_status |
Shows what's configured and what's missing |
sassy_setup_generate_token |
Creates auth tokens for HTTP/tunnel mode |
By default, SassyMCP only loads frequently-used tool groups. This keeps tool definitions under 5% of your context window.
# Default: loads core, github_quick, persona, meta, utility, selfmod, setup, infrastructure
uv run sassymcp
# Load everything (257 tools, ~22K tokens of context)
SASSYMCP_LOAD_ALL=1 uv run sassymcp
# Load specific groups
SASSYMCP_GROUPS=core,github_quick,android,v020 uv run sassymcp| Group | Modules | Default |
|---|---|---|
core |
fileops, shell, ui_automation, editor, audit, session | Yes |
meta |
meta | Yes |
infrastructure |
observability, state_manager, runtime_config | Yes |
github_quick |
github_quick (6 lean tools) | Yes |
persona |
persona | Yes |
utility |
utility | Yes |
selfmod |
selfmod | Yes |
setup |
setup_wizard | Yes |
github_full |
github_ops (80 tools) | No |
android |
adb, phone_screen | No |
system |
network_audit, process_manager, security_audit, registry, bluetooth, eventlog, clipboard | No |
v020 |
vision, app_launcher, web_inspector, crosslink | No |
linux |
linux | No |
Get a license → — SassyMCP downloads are license-gated. After checkout you receive a SASSY-... key; paste it into the download URL:
https://sassyconsultingllc.com/download/sassymcp/windows/sassymcp.exe?key=SASSY-...(standalone exe, ~35 MB)https://sassyconsultingllc.com/download/sassymcp/windows/sassymcp-v1.1.3-bundle.zip?key=SASSY-...(full bundle withadb,nmap,plink,scrcpy,tesseract,cloudflared, plus README and start-*.bat scripts, ~123 MB)
No Python required.
git clone https://github.com/sassyconsultingllc/SassyMCP.git
cd SassyMCP
uv sync
# Optional dependencies:
uv pip install pytesseract playwright
playwright install chromium{
"mcpServers": {
"sassymcp": {
"command": "C:\\path\\to\\sassymcp.exe",
"env": {
"SASSYMCP_LOAD_ALL": "1",
"GITHUB_TOKEN": "ghp_your_token_here"
}
}
}
}{
"mcpServers": {
"sassymcp": {
"command": "uv",
"args": ["--directory", "C:\\path\\to\\SassyMCP", "run", "sassymcp"],
"env": {
"SASSYMCP_LOAD_ALL": "1",
"GITHUB_TOKEN": "ghp_your_token_here"
}
}
}
}| Mode | Command | Use Case |
|---|---|---|
| Stdio | sassymcp.exe |
Claude Desktop, Cursor (direct pipe) |
| HTTP | sassymcp.exe --http |
Grok Desktop, Windsurf (localhost:21001) |
| HTTP LAN | sassymcp.exe --http --host 0.0.0.0 |
Multi-device (requires auth token) |
| HTTPS | sassymcp.exe --http --ssl |
Encrypted (auto-generates self-signed cert) |
| SSE | sassymcp.exe --http --sse |
Legacy transport |
| Variable | Purpose |
|---|---|
SASSYMCP_LOAD_ALL=1 |
Load all 257 tools |
SASSYMCP_GROUPS=core,android |
Load specific groups |
SASSYMCP_AUTH_TOKEN=xxx |
Bearer token for HTTP auth |
SASSYMCP_DEV=1 |
Enable live reload (dev mode) |
GITHUB_TOKEN=xxx |
GitHub API access |
SSH_HOST=xxx |
Remote Linux hostname/IP |
SSH_USER=xxx |
Remote Linux username |
SSH_PASS=xxx |
Remote Linux password |
All bundled in the beta zip package. Install separately only if using the standalone exe.
| Tool | Used By | Bundled | Install (if needed) |
|---|---|---|---|
| ADB | All sassy_adb_* + sassy_phone_* tools |
Yes | Android Platform Tools |
| nmap | sassy_port_scan |
Yes | nmap.org |
| plink | sassy_linux_exec |
Yes | PuTTY |
| scrcpy | sassy_scrcpy_* tools |
Yes | scrcpy releases |
| Tesseract | sassy_screen_ocr, sassy_find_text_on_screen |
Yes | tesseract-ocr |
| Chrome | sassy_url_screenshot |
No | google.com/chrome |
Run sassy_setup_check_tools to verify all tools are detected.
- Windows 10/11
- Python 3.11+ (only if running from source; exe is self-contained)
MIT License - Sassy Consulting LLC