SassyMCP
OfficialProvides Android device interaction, including UI automation via accessibility tree, tap/swipe/type input, real-time screen monitoring with change detection, and sensitive context detection for auth/payment screens.
Provides Bluetooth management on Windows systems as part of the Windows system module, handling device discovery and connectivity.
Provides Git version control operations, including repository management, commits, and related workflows, often integrated with GitHub.
Provides comprehensive GitHub integration, including file operations (push, get), issue and pull request management, branch protection, and atomic multi-file commits via the Git Data API.
Provides SSH-based remote Linux management, allowing execution of commands and system administration on remote Linux hosts.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SassyMCPCheck my GitHub notifications and summarize what needs my attention."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SassyMCP
One MCP server to replace them all.
274 tools | 36 modules | 18 tool groups | Replaces 75+ MCP servers | 34MB standalone exe
Last updated: 2026-07-15 — v1.12.0 | one-time perpetual licensing (free / pro / forensics)
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.
Why SassyMCP?
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.Guided Setup — Wizard walks through persona, GitHub token, SSH credentials, and optional tool discovery.
Related MCP server: Promethean OS MCP
What It Replaces
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 | |
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) |
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.
Licensing
Every tool group ships unlocked, for everyone, with no key required. As of v1.13.0 the release model is all-or-nothing — there is no free/pro split, no gated groups, no crippled demo. The 274 tools you see in the module table below are the product, out of the box.
Supporter licenses (optional): SassyMCP can still be purchased through LemonSqueezy as a one-time supporter license (no subscriptions). Activating a key registers your machine as a seat and records a supporter tier that shows in the startup banner, control panel, and VS Code cockpit — it does not unlock anything, because everything is already unlocked. Buy once to support development; refunds revoke the label automatically.
Activation flow (supporters):
Purchase at
https://sassyconsultingllc.com/store— LemonSqueezy emails you a key (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX).Activate from your AI agent:
sassy_setup_license action=activate key=...Or from a terminal:
sassymcp.exe setupopens the interactive menu.
Offline operation: Once activated, a local HMAC-signed payload lets the supporter tier validate fully offline. A weekly re-check against LS catches refunds and cancellations; a faster startup check against the SassyMCP billing oracle cuts refund-to-revocation latency to seconds. Missing, expired, tampered, or corrupt license files just show the free label — tool availability is never affected.
Back-compat: SASSYMCP_LICENSE_BYPASS=1 (the old dev escape hatch that unlocked gated groups) is accepted and ignored — there is nothing left to bypass.
Running supervised (sassymcp supervise)
For always-on / remote deployments, run SassyMCP under its built-in supervisor instead of bare launcher scripts:
sassymcp.exe supervise start # bridge only (127.0.0.1:21001)
sassymcp.exe supervise start --tunnel-mode managed # also run the cloudflared tunnel as a child
sassymcp.exe supervise status # JSON status; exit code != 0 if unhealthy
sassymcp.exe supervise stop # graceful stopThe supervisor owns the runtime tree and makes it self-healing and orphan-proof:
No orphans, ever. A hard kill of the supervisor (crash,
kill -9,taskkill /f) takes every child with it — on Windows via a Job Object (KILL_ON_JOB_CLOSE), on Linux via process groups +PR_SET_PDEATHSIG. No leftover bridge holding a wedged SQLite/WAL lock, which is what the oldtaskkill-based scripts caused.Self-healing. Crashed children restart with exponential backoff (and give up cleanly after a crash-loop, rather than spinning).
Catches hangs. An HTTP readiness probe recycles a hung-but-alive bridge — the failure a Windows scheduled task can never detect.
Crash-survivable control. A pidfile + on-disk registry under
$SASSYMCP_HOMEmeansupervise status/stopwork even when the bridge is down, so an operator or agent can recover a wedged system.
start-supervised.bat wraps this as the recommended Windows launcher. stdio mode (Claude Desktop pipe) is client-owned and intentionally not supervised.
Modules
Module | Tools | Group | Description |
Meta | 9 | meta | Context estimation, tool usage analytics, group management |
FileOps | 10 | core | Read, write, search, move, copy, edit, mkdir, file info, safe delete |
Shell | 2 | 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 | 4 | core | Audit log read, search, clear, false-positive tracking |
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 | 7 | persona | Expert-mode directives, decision framework, engineering standards |
Utility | 11 | utility | Env vars, toast, zip/tar/unzip/untar, HTTP requests, file diff |
Setup | 8 | setup | Setup wizard, GitHub token guide, SSH setup, tool checker, license activation |
ToolsManager | 1 | setup | External tool bootstrap and detection |
Observability | 3 | infrastructure | Health, metrics, tool stats |
StateManager | 3 | infrastructure | Persistent key-value state across sessions |
RuntimeConfig | 3 | infrastructure | Runtime config, recent tool calls |
Memory | 9 | memory | Persistent cross-session memory, milestones, task handoffs, pattern learning |
Updater | 4 | updater | Version checks, changelog, self-update (Kali-style) |
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 | forensics | Hash, permissions, certs, APK, firewall, Defender |
Registry | 4 | forensics | 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 |
Combos | 4 | combos | Multi-step workflows in one call: PR review, phone observe, codebase grep |
Prompts | 0 | prompts | MCP slash-menu shortcuts (pr-review, phone-status, resume, brain-status, setup-sassy) |
Dynamic Vision
Desktop (Vision module)
Traditional MCP screenshots are blind — you capture one frame and hope it's the right one. SassyMCP's dynamic vision changes this:
Tool | Purpose |
| Fast grayscale capture at ~3-6KB. Call repeatedly to "watch" the screen. |
| Monitor for N seconds, returns only frames where content changed (pixel diff threshold). |
| 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.
Android (PhoneScreen module)
The phone isn't just a camera target — SassyMCP reads its UI accessibility tree:
Tool | Purpose |
| Reads every visible UI element — text, description, coordinates, clickable/focused/checked state. Structured data, not pixels. |
| Foreground app, screen on/off, battery, WiFi, notification count. |
| Low-res grayscale phone screenshot via direct pipe (~4-8KB). |
| Monitors UI tree changes over duration. Returns snapshots only when elements change. |
Phone Interaction
Full touch input via ADB — the AI can operate the phone:
Tool | Purpose |
| Tap screen coordinates |
| Swipe between two points |
| Type text into focused field |
| Send key events (HOME, BACK, ENTER, VOLUME, etc.) |
| Launch an app by package name |
Sensitive Context Detection
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.
Safe Delete (Delete Interception)
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 |
| Intercepts delete commands, stages targets to |
| Same interceptor — persistent terminals can't bypass |
| Refuses destructive commands on the remote host |
| Refuses destructive commands on Android device (override with |
| Explicit staging tool — moves symlinks as symlinks (no |
| Snapshots existing file into |
| Refuses protected paths, snapshots existing content to |
| Refuses existing destination (no silent overwrite), refuses protected src/dst |
| Refuses silent destination overwrite, refuses protected src/dst |
| Rotates the audit log instead of deleting it; requires |
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 filesTruncate-by-redirect —
> file.txt,type foo > bar.txt,cmd; > file.txt(append>>and stream2>/&>correctly ignored)Move-Item foo $nullAssignment 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 |
| Hard-blocked by the always-on blocklist — no move attempted |
| Blocked, file moved to |
| Blocked, all |
| Blocked, |
| Blocked — payload is unwrapped and intercepted |
| Blocked — |
| Prior content snapshotted to |
| 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.
Pause / Resume
For complex flows where the user needs to take over:
Tool | Purpose |
| Blocks all interaction tools. Observation tools (ui, glance, watch) still work. |
| 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_pauseUser logs in manually. AI watches via
sassy_phone_ui/sassy_phone_glanceUser says "done" → AI calls
sassy_phone_resumeAI continues, now aware the user logged into a specific account
Permission Engine & Control Panel
SassyMCP gates the shell and file tools through one policy engine
(sassymcp.policy) with four modes, set via sassy_permission set_mode or
the Control Panel:
Mode | Behavior |
| Block destructive patterns everywhere (default) |
| Destructive patterns return a confirm token |
| Relaxed gating inside the project roots; anything resolving outside the jail is refused — run an ungated model, confined to a folder |
| Allow everything except protected paths (explicit, audited) |
A Claude-style allow / ask / deny rules layer (tool-glob + path-glob +
command-regex; first match wins) overrides the mode default. The
catastrophic block-list (format, mkfs, …) and the protected-path
invariant (the SassyMCP source tree + ~/.sassymcp) hold in every mode,
including bypass.
The Control Panel is a localhost web UI for all of the above — a live
event log, the settings/mode editor, and a classifier + rules editor. It
binds 127.0.0.1 only and needs the per-install token in
~/.sassymcp/control_panel.token. Start it with sassy_panel start (or set
panel.enabled / SASSYMCP_PANEL=1 to launch it at boot), then open the
printed http://127.0.0.1:8765/?token=… URL.
Guided Setup
On first launch (no ~/.sassymcp/persona.md), the wizard tools are prominently available and the AI is given an onboarding playbook via the registered hook. The flow is conversational — the AI asks, you answer, it calls the tools.
Onboarding procedure (recommended order)
Each step is independent and skippable. Just tell the AI "set up SassyMCP" or "let's get started" and it'll walk this:
# | Step | Tool | What happens |
0 | License (optional) |
| Reports supporter tier. All tools are unlocked regardless — a key just registers your seat and supporter status. |
1 | Persona |
| Asks the questionnaire below, generates |
2 | GitHub |
| Validates an existing |
3 | SSH / Linux |
| Locates |
4 | Optional tools |
| Scans for |
✓ | Status check |
| Shows what's configured, what's still missing, and the action_required hint. Run this any time. |
⚙️ | Auth tokens |
| Generates a 32-byte URL-safe token for HTTP/tunnel mode and writes |
Skip any step with action="skip" (where supported) — config records the skip so the AI doesn't re-prompt.
The persona questionnaire
sassy_setup_wizard accepts these fields. All optional — defaults shown.
Field | Values / format | Default |
|
|
|
|
|
|
| Comma-separated areas — e.g. | empty |
| Comma-separated — e.g. | empty |
| Comma-separated — e.g. | empty |
| Newline-separated | empty |
| Newline-separated | empty |
|
|
|
|
|
|
| Which AI tools connect — e.g. | empty |
| Free-form text — anything else the AI should know about how you work | empty |
Output goes to ~/.sassymcp/persona.md (the persona module reads it on every session) and the run is recorded in ~/.sassymcp/config.json (setup_complete, setup_timestamp, setup_version). Re-run sassy_setup_wizard any time to regenerate — the persona module hot-reloads with the new profile.
Triggering the flow from your client
The onboarding hook fires on phrases like "setup", "first time", "get started", "onboard", "new user", "set up sassymcp". Anything close to those will pull the playbook into the AI's context. If you want to drive it manually, just call sassy_setup_status first to see where you are, then walk the table above.
Smart Loading
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, setup, infrastructure
uv run sassymcp
# Load everything (~22K tokens of context)
SASSYMCP_LOAD_ALL=1 uv run sassymcp
# Load specific groups
SASSYMCP_GROUPS=core,github_quick,android,v020 uv run sassymcpAvailable Groups
Group | Modules | Default |
| fileops, shell, ui_automation, editor, audit, session | Yes |
| meta | Yes |
| observability, state_manager, runtime_config | Yes |
| github_quick (6 lean tools) | Yes |
| persona | Yes |
| utility | Yes |
| setup_wizard, tools_manager | Yes |
| memory | Yes |
| updater | Yes |
| combos (4 tools) | No |
| prompts (slash-menu shortcuts) | Yes |
| github_ops (80 tools) | No |
| adb, phone_screen | No |
| network_audit, process_manager, security_audit, registry, bluetooth, eventlog, clipboard | No |
| vision, app_launcher, web_inspector, crosslink | No |
| linux | No |
Install
Pick whichever entry point matches how you already work. All four converge on the same shared brain at ~/.sassymcp/ — your persona, memory, license, and audit log are visible to every connected MCP client.
One-click via DXT (Claude Desktop)
Download sassymcp.dxt from the latest release, double-click — Claude Desktop installs it. On first launch, sassymcp auto-detects every other MCP client on your machine (Cursor, VS Code Copilot, Windsurf, Continue, Cline, Zed, Grok Desktop) and patches each one's config so they all see SassyMCP without you editing any JSON.
VS Code extension
Install SassyMCP from the VS Code marketplace. The extension locates sassymcp.exe (PATH or the sassymcp.exePath setting), runs the same auto-config CLI, and adds a status bar item showing your license tier and brain health. Five commands cover Setup Wizard, Reinstall Configs, Open Audit Log, Open _DELETE_ Folder, Show Brain Status.
Manual auto-config CLI
If you have sassymcp.exe already (from the portable zip or pip install) and want to register it with every MCP client without per-client JSON editing:
sassymcp-installThat detects Claude Desktop, VS Code Copilot, Cursor, Windsurf, Continue, Cline, Zed, and Grok Desktop and patches each one's config atomically. Re-running is a noop. Take a look first with sassymcp-install --dry-run. Remove with sassymcp-install --uninstall. The CLI takes a timestamped backup of any existing config before its first edit.
Portable bundle (manual config — older path)
No installer required, but you'll edit each client's JSON yourself unless you also run sassymcp-install after.
Download
sassymcp-v1.3.1-portable.zipfrom the latest release (~123 MB — includessassymcp.exe,adb,nmap,plink,scrcpy,tesseract,cloudflared, and thestart-*.batlaunchers).Extract anywhere —
D:\Tools\SassyMCP, a thumb drive, your home folder, whatever.Run
start-local.bat(Claude Desktop),start-lan.bat(LAN HTTP), orstart-tunnel.bat(Cloudflare Tunnel).
To uninstall: delete the folder. To upgrade: extract the new zip over the old folder, or to a new folder and delete the old one.
Standalone executable (no tools bundled)
If you don't need the bundled nmap / adb / cloudflared (or you have them on PATH already), grab just sassymcp.exe (~35 MB) from the latest release. Drop it anywhere and point your MCP client at it.
First-run wizard: Double-click sassymcp.exe (or run it from a terminal with no flags) on a fresh machine and you'll get an interactive menu — auto-detect AI agents and register SassyMCP, activate a LemonSqueezy license key, generate / list bearer tokens, or start the HTTP server. Run sassymcp.exe setup anytime to re-open the menu. Once a persona is configured, bare invocation falls back to starting the HTTP server (the v1.5 behavior) so existing setups are unchanged.
Activating a supporter license (optional)
There is no separate "licensed download" and nothing to unlock — everyone runs the same fully-unlocked binary from the GitHub releases. If you want to support development, buy a license at sassyconsultingllc.com/store and activate it to register your seat and supporter tier:
# from your AI agent:
sassy_setup_license action=activate key=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
# or from a terminal — interactive menu, choose "Activate license":
sassymcp.exe setupThe license registers this machine as a LemonSqueezy instance (seat);
sassy_setup_license action=deactivate frees the seat to move to another machine.
From source
git clone https://github.com/sassyconsultingllc/SassyMCP.git
cd SassyMCP
uv sync
# Optional dependencies:
uv pip install pytesseract playwright
playwright install chromiumCloudflare Tunnel (remote access)
Want to drive SassyMCP from a remote MCP client (Claude Web, another machine)? The portable bundle ships a turnkey launcher. Full step-by-step is in docs/TUNNEL.md; the short version:
winget install Cloudflare.cloudflared # one-time
cloudflared tunnel login # authenticate against your CF account
cloudflared tunnel create sassymcp # create a named tunnel
cloudflared tunnel route dns sassymcp mcp.<your-domain>.tld
# Write ~/.cloudflared/config.yml with the ingress block (see TUNNEL.md)
[Environment]::SetEnvironmentVariable("SASSYMCP_AUTH_TOKEN", "<your token>", "User")
[Environment]::SetEnvironmentVariable(
"SASSYMCP_ALLOWED_HOSTS",
"mcp.<your-domain>.tld,localhost,127.0.0.1", "User")
cd D:\Tools\SassyMCP # wherever you extracted
.\start-tunnel.bat sassymcp # tunnel name as arg, or set SASSYMCP_TUNNEL_NAMEstart-tunnel.bat launches the HTTP bridge on 127.0.0.1:21001 and runs cloudflared tunnel run <name> in the foreground. Nothing in the script is vendor-specific — you supply the tunnel name and the hostname. Clients send Authorization: Bearer <SASSYMCP_AUTH_TOKEN> against https://mcp.<your-domain>.tld/mcp.
For hosted-Claude clients that require OAuth 2.1 DCR/PKCE instead of a static bearer, deploy the optional Worker under sassymcp-oauth/ — copy wrangler.toml.example to wrangler.toml, fill in your hostname and KV id, and wrangler deploy. See docs/TUNNEL.md for the full OAuth section.
MCP Client Config
SassyMCP speaks standard MCP. Anything that connects works — no client-side modifications required. The portable bundle ships ready-to-edit templates under deploy/*_config.template.json. Pick the row for your client, copy the template, replace REPLACE_WITH_PATH with the absolute path to sassymcp.exe, and save it where the client expects.
Client | Transport | Config file location | Template |
Claude Desktop | stdio |
|
|
Cursor | stdio |
|
|
Windsurf | stdio |
|
|
Cline (VS Code) | stdio | VS Code settings → | use |
Continue.dev | stdio |
|
|
Grok Desktop | HTTP | Grok Desktop MCP settings |
|
Any other MCP client | stdio or HTTP | client's MCP config | use the closest template; the |
Standard mcpServers shape (Claude Desktop, Cursor, Windsurf, Cline)
Using the exe:
{
"mcpServers": {
"sassymcp": {
"command": "C:\\path\\to\\sassymcp.exe",
"env": {
"SASSYMCP_LOAD_ALL": "1",
"GITHUB_TOKEN": "ghp_your_token_here"
}
}
}
}From source:
{
"mcpServers": {
"sassymcp": {
"command": "uv",
"args": ["--directory", "C:\\path\\to\\SassyMCP", "run", "sassymcp"],
"env": {
"SASSYMCP_LOAD_ALL": "1",
"GITHUB_TOKEN": "ghp_your_token_here"
}
}
}
}Continue.dev shape (different schema)
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"type": "stdio",
"command": "C:\\path\\to\\sassymcp.exe"
}
}
]
}
}HTTP / Grok Desktop / custom HTTP clients
Run the server in HTTP mode (sassymcp.exe --http, default 127.0.0.1:21001) and point your client at http://127.0.0.1:21001/mcp/. Set SASSYMCP_AUTH_TOKEN if the bind is non-loopback.
{
"mcpServers": {
"sassymcp": {
"url": "http://127.0.0.1:21001/mcp/"
}
}
}What's actually Claude-flavored (cosmetic only)
A few docstrings and the legacy .claude/skills/sassymcp-update.md slash-command target Claude Code specifically. Other clients ignore them and use sassy_update_* tools directly. No tool, transport, or auth path requires Claude — the server doesn't know which LLM is on the other end.
Transport Modes
Mode | Command | Use Case |
Stdio |
| Claude Desktop, Cursor (direct pipe) |
HTTP |
| Grok Desktop, Windsurf (localhost:21001) |
HTTP LAN |
| Multi-device (requires auth token) |
HTTPS |
| Encrypted (auto-generates self-signed cert) |
SSE |
| Legacy transport |
Running Multiple Instances (Dual Session)
Two SassyMCP processes on the same machine — for example, a local stdio instance for Claude Desktop and a remote HTTPS instance behind a Cloudflare Tunnel for Claude Web — can clobber each other's state if they share ~/.sassymcp/. The fix is one env var per instance.
Conflicts to resolve per-instance
Resource | Default | How to give each instance its own |
HTTP port |
|
|
Crosslink HTTP port |
|
|
Auth token | env | Set per-process in launcher's env |
Per-user state dir |
|
|
SSL cert/key |
| Auto-isolated when |
Example: local stdio + remote tunnel side-by-side
Instance A — local stdio for Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"sassymcp-local": {
"command": "C:\\Tools\\SassyMCP\\sassymcp.exe",
"env": {
"SASSYMCP_LOAD_ALL": "1",
"SASSYMCP_HOME": "C:\\Users\\<you>\\.sassymcp-local"
}
}
}
}Instance B — remote HTTPS via Cloudflare Tunnel (start-tunnel.bat + a wrapper that sets the env):
set SASSYMCP_HOME=C:\Users\<you>\.sassymcp-remote
set SASSYMCP_AUTH_TOKEN=<token-for-remote>
set PORT=21002
"%~dp0sassymcp.exe" --http --host 127.0.0.1 --port %PORT%Then cloudflared tunnel run <name> forwards https://<your-tunnel>/mcp to 127.0.0.1:21002.
What's isolated when SASSYMCP_HOME differs
Each instance gets its own:
persona.md— different profiles per sessionconfig.json— different runtime config (allowed dirs, blocked commands, etc.)tokens.json— different scoped auth tokenslicense.json— separate license activationaudit.log/audit.jsonl— no interleaved writescrosslink.db— separate cross-session message queuesmemory.db— separate persistent memoriestool_state.db/tool_usage.json— separate per-tool state and usage analyticsserver.crt/server.key— separate self-signed certsThe
_securityprotected-paths check honorsSASSYMCP_HOMEtoo — neither instance cansassy_safe_deleteinto the other's home
What's still shared between instances
The repo source tree (always protected from delete/overwrite by
_security)%LOCALAPPDATA%\SassyMCP\updates\— the updater download stage (harmless; tagged by version under it)The bundled tools in the portable zip (
adb,nmap,cloudflared, etc.) — read-only from both instances
Putting it in the OS (so both start at boot)
The legacy personal/autostart-bridge.bat + personal/register-autostart.ps1 template is gitignored — copy it, tweak the paths and the SASSYMCP_HOME for each instance, then Register-ScheduledTask once per instance.
Environment Variables
Variable | Purpose |
| Load every tool group |
| Load specific groups |
| Bearer token for HTTP auth |
| Enable live reload (dev mode) |
| Disable the startup update check (no GitHub API call) |
| Override the per-user state dir (default |
| Override the auto-detected repo root in |
| GitHub API access |
| Remote Linux hostname/IP |
| Remote Linux username |
| Remote Linux password |
External Tools
All bundled in the beta zip package. Install separately only if using the standalone exe.
Tool | Used By | Bundled | Install (if needed) |
ADB | All | Yes | |
nmap |
| Yes | |
plink |
| Yes | |
scrcpy |
| Yes | |
Tesseract |
| Yes | |
Chrome |
| No |
Run sassy_setup_check_tools to verify all tools are detected.
Requirements
Windows 10/11, macOS 12+, or Linux — one source, routed at the head (
sassymcp._platform) to the right command per host. See Cross-platform below.Python 3.11+ (only if running from source; the standalone binary is self-contained — built per OS, since PyInstaller can't cross-compile)
Cross-platform
The same SassyMCP source runs on Windows, macOS, and Linux. The host OS is
resolved once at import; every tool then routes to the host-appropriate
command — shells (PowerShell / zsh|bash), clipboard (Get-Clipboard / pbpaste),
event log (Get-WinEvent / log show / journald), firewall (netsh /
socketfilterfw / ufw), Wi-Fi, Bluetooth, window control (pywinauto /
AppleScript System Events / wmctrl), SSH (plink / native ssh), package
installs (winget / brew / apt), and more.
Build:
build.bat(Windows) orbuild.sh(macOS/Linux). Build each binary on its own OS.macOS permissions: window-control and screenshot tools need Accessibility and Screen Recording permission for the app running SassyMCP (System Settings → Privacy & Security).
A handful of concepts are Windows-only by nature (raw Registry read/write/export); those report a clear message and point to the native equivalent (
defaults, launchd). Forensic persistence (sassy_autorun_entries) IS cross-platform (Run keys / LaunchAgents / systemd+cron).
License
Proprietary - Copyright (c) 2026 Sassy Consulting LLC. All rights reserved.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-quality-maintenanceA feature-rich Model Context Protocol server built with FastMCP that provides various tools including basic utilities, network services, file operations, encryption tools, and system information functions.Last updated1
- Flicense-qualityBmaintenanceA unified MCP server with composable tools for GitHub operations, file management, shell execution, kanban boards, Discord messaging, and package management. Features role-based security, HTTP/stdio transports, and a web-based development UI.Last updated
- Alicense-qualityDmaintenanceA lightweight Windows-native MCP server providing a consolidated suite of 14 tools for shell execution, file operations, and interactive process management. It optimizes efficiency through batch file operations and smart process handling to minimize context window overhead.Last updated254MIT
- Alicense-qualityCmaintenanceHigh-performance MCP server giving AI agents advanced filesystem and automation capabilities on Windows, with 26 tools across file I/O, search, Git, process management, and more.Last updated2MIT
Related MCP Connectors
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
A MCP server built for developers enabling Git based project management with project and personal…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sassyconsultingllc/SassyMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server