mcpField
S
SassyMCP

SassyMCP

本地服务
sassyconsultingllc.com开发工具44 周前更新

关于 SassyMCP

SassyMCP 是一款独立运行的 MCP 服务,整合文件、Shell、桌面、GitHub、Android 和系统操作工具,面向希望用单一进程访问多类工具的用户,并支持按需加载工具组。

主要功能

  1. 01涵盖 39 个模块的 278 个工具
  2. 02按需加载所选工具组
  3. 03桌面与 Android 屏幕监控
  4. 04支持暂停与恢复的 Android 界面控制
  5. 05将删除目标暂存以供审核
  6. 06GitHub 与 Shell 操作

适用场景

  1. 01通过 MCP 客户端使用文件和 Shell 工具
  2. 02查看并操作桌面或 Android 屏幕
  3. 03管理 GitHub 仓库与拉取请求
  4. 04暂存删除操作供人工审核

MCP 相关

SassyMCP 向 MCP 客户端提供工具组和提示词,兼容 Claude Desktop、Cursor 和 Windsurf 等客户端。工具组可按需选择加载。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
pypisassymcp1.18.0
mcpbsassymcp-v1.18.0.mcpb

工具

101

收录的工具列表 · 更新于 1 周前

参数类型必填说明
archivestring是
destinationstring否

详细介绍

SassyMCP

一个 MCP 服务,替代所有其他服务。

278 个工具 | 39 个模块 | 18 个工具组 | 替代 75+ 个 MCP 服务 | 约 35MB 的独立 exe

上次更新:2026-09-21 — v1.16.0 | 所有工具均已解锁;支持者许可证可选

兼容 Claude Desktop、Grok Desktop、Cursor、Windsurf 以及任何 MCP 客户端。

官方 GitHub MCP 服务存在严重的 SHA 处理错误。 SassyMCP 的 GitHub 模块使用正确的 blob SHA 查找、恰当的路径编码、通过 Git Data API 进行原子多文件提交、带指数退避的重试逻辑,以及速率限制感知。它是一个可直接替换且真正能用的方案。

为什么选择 SassyMCP?

MCP 生态系统支离破碎。需要文件操作?安装 Filesystem 服务。需要终端?安装 Desktop Commander。需要 GitHub?再装一个服务。需要 Android?再装一个。需要屏幕截图?又是一个。最终,你会装上 6-10 个独立的 MCP 服务,每个都会占用上下文窗口,各自有自己的配置、错误和更新周期。

SassyMCP 替代 75+ 个独立的 MCP 服务——包括 Desktop Commander(5.9k 颗星)、Windows-MCP(5k 颗星)、GitHub MCP Server(28.6k 颗星)、Anthropic 官方的 Filesystem 和 Memory 服务、mobile-mcp(4.4k 颗星),以及其他几十种服务——只需一个约 35MB 的 exe。

主要差异化优势:

  • 智能工具加载 — 仅加载你使用的工具组。默认情况下,上下文窗口开销从约 25K 个令牌降至约 5K 个令牌。
  • 动态视觉 — 实时监控桌面和 Android 屏幕,并检测变化。不再需要截图后碰运气。
  • Android 交互 — 通过 UI 无障碍树全面控制手机:点击、滑动、输入,并自动检测敏感上下文(自动阻止身份验证/支付界面)。
  • 暂停/恢复 — 用户可接管手机完成手动步骤(登录、2FA、选择账户),AI 观察并学习,然后自主继续操作。
  • 使用情况跟踪 — 使用轻量级 ML 对工具调用进行评分,并采用指数衰减。你最常用的工具会优先加载。
  • 上下文估算 — 内置工具,可测量工具定义占用你的 200K 上下文窗口的多少空间。
  • 响应精简 — 移除 GitHub API 响应中冗余的 URL 元数据(体积缩小 40-70%)。
  • 安全删除 — 所有 Shell 中的删除命令(rm、del、Remove-Item 等)都会被拦截。目标文件不会被销毁,而是被移至同一目录下的 _DELETE_/ 暂存文件夹,供人工审核——防止 AI 产生幻觉导致误删。
  • 引导式设置 — 向导将引导你设置角色、GitHub 令牌、SSH 凭据,并可选地发现工具。

替代对象

领域SassyMCP 模块替代对象主要替代方案
文件操作FileOps, Editor11 个文件系统/编辑器 MCP 服务Filesystem(Anthropic 官方)
Shell/终端Shell, Session5 个 Shell MCP 服务Desktop Commander(5.9k stars)
桌面自动化UIAutomation, Vision9 个桌面 MCP 服务Windows-MCP(5k stars)
GitHub/GitGitHub Quick, GitHub Full5 个 GitHub/Git MCP 服务GitHub MCP Server(28.6k stars)
Android/手机ADB, PhoneScreen9 个移动端 MCP 服务mobile-mcp(4.4k stars)
网络扫描NetworkAudit8 个 nmap/安全 MCP 服务mcp-for-security(601 stars)
安全审计SecurityAudit8 个安全 MCP 服务mcp-security-hub(509 stars)
SSH/远程 LinuxLinux7 个 SSH MCP 服务ssh-mcp(365 stars)
记忆/状态Memory, StateManager7 个记忆 MCP 服务mcp-memory-service(1.6k stars)
OCR/屏幕读取Vision7 个 OCR/视觉 MCP 服务PaddleOCR MCP
网页检查WebInspector, Utility7 个网页/抓取 MCP 服务Fetch(Anthropic 官方)
Windows 系统Registry, ProcessManager, Clipboard, EventLog, Bluetooth13 个 Windows MCP 服务Windows-MCP(5k stars)

**此外,还提供没有对应 MCP 服务的功能:**在检测到敏感上下文时暂停/恢复手机操作(在登录/支付屏幕上自动拦截)、运维钩子(14 个专家操作手册)、安全删除拦截、Windows 自启动取证、Android+Windows 剪贴板同步、按使用频率加权的智能加载。

许可

所有工具组均已解锁,所有人均可使用,无需密钥。 从 v1.13.0 起,发布模式改为全有或全无——没有免费版/专业版之分,没有受限工具组,也没有功能受限的演示版。下方模块表中列出的 278 个工具就是完整产品,开箱即用。

支持者许可证(可选): 仍可通过 LemonSqueezy 购买 SassyMCP 的一次性支持者许可证(无订阅)。激活密钥后,系统会将你的机器登记为一个席位,并记录一个支持者等级,该等级会显示在启动横幅、控制面板和 VS Code 驾驶舱中——无论等级如何,所有工具都已解锁。购买一次即可支持开发;退款后该标识会自动撤销。

激活流程(支持者):

  1. 在 https://sassyconsultingllc.com/store 购买——LemonSqueezy 会通过电子邮件向你发送密钥(XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)。
  2. 从你的 AI Agent 激活:sassy_setup_license action=activate key=...
  3. 或者在终端中运行:sassymcp.exe setup,打开交互式菜单。

**离线运行:**激活后,本地的 HMAC 签名负载可让支持者等级完全离线验证。系统每周会向 LS 重新验证,以检测退款和取消;同时,启动时会更快地向 SassyMCP 计费验证服务检查,从而将退款到撤销的延迟缩短至数秒。许可证文件缺失、过期、被篡改或损坏时,只会显示免费标识——工具可用性绝不受影响。

向后兼容:SASSYMCP_LICENSE_BYPASS=1(旧版开发绕过开关,曾用于解锁受限工具组)仍会被接受并忽略——已没有任何限制需要绕过。

运行受监督的服务(sassymcp supervise)

对于始终运行或远程部署,请在内置监督器下运行 SassyMCP,而不是使用裸启动脚本:

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 stop

监督器负责管理运行时目录树,并使其具备自我修复能力,且不会遗留孤儿进程:

  • 绝不遗留孤儿进程。 强制终止监督器(崩溃、kill -9、taskkill /f)时,也会一并终止所有子进程——在 Windows 上通过 Job Object(KILL_ON_JOB_CLOSE),在 Linux 上通过进程组和 PR_SET_PDEATHSIG。不会留下持有卡死的 SQLite/WAL 锁的桥接进程;旧版基于 taskkill 的脚本就会导致这种情况。
  • 自我修复。 子进程崩溃后会以指数退避方式重启;如果陷入崩溃循环,则会干净地放弃,而不会持续循环。
  • 检测卡死。 HTTP 就绪探针会重启卡死但仍在运行的桥接进程——这是 Windows 计划任务永远无法检测到的故障。
  • 控制功能可在崩溃后继续使用。 $SASSYMCP_HOME 下的 pidfile 和磁盘注册表使 supervise status/stop 即使在桥接进程已停止时也能正常工作,方便操作员或 Agent 恢复卡死的系统。

start-supervised.bat 将此功能封装为推荐的 Windows 启动器。stdio 模式(Claude Desktop 管道)由客户端管理,因此有意不受监督。

模块

模块工具数分组描述
Meta11meta上下文估算、工具使用分析、分组管理
Batch1meta在一次调用中批量分发多个工具
FileOps10core读取、写入、搜索、移动、复制、编辑、创建目录、获取文件信息、安全删除
Shell2core执行 PowerShell、CMD、WSL,支持语法规范化和删除拦截
UIAutomation6core桌面状态、点击、输入、快捷键、屏幕截图、屏幕信息
Editor2core精准查找替换、多处编辑
Audit4core读取和搜索审计日志、清除日志、跟踪误报
Session6core持久终端会话(启动、读取、发送、停止)
GitHub Quick6github_quick日常常用:push_files、get_file、issue、PR、保护设置
GitHub Full80github_full完整的 GitHub API:仓库、问题、PR、操作、安全、gists
Persona7persona专家模式指令、决策框架、工程标准
Utility11utility环境变量、toast、zip/tar/unzip/untar、HTTP 请求、文件差异
SetupWizard7setup设置向导、GitHub 令牌指南、SSH 设置、工具检查器、许可证激活
ToolsManager1setup外部工具引导和检测
Observability3infrastructure健康状态、指标、工具统计
StateManager3infrastructure跨会话持久化键值状态
RuntimeConfig5infrastructure权限模式、运行时配置、最近的工具调用
Offline3infrastructure离线回退状态和本地模型交接
Memory9memory跨会话持久化记忆、里程碑、任务交接、模式学习
Updater4updater版本检查、更新日志、自行更新
ADB10androidAndroid shell、软件包、文件传输、logcat、屏幕截图
PhoneScreen14androidUI 树读取器、手机快速查看/监视、点击/滑动/输入/按键、暂停/恢复、scrcpy
iPhone6iphoneiOS 设备信息、屏幕截图、系统日志、应用、IPA 安装——实验性功能,需要 libimobiledevice
NetworkAudit7systemnetstat、ARP、WiFi 扫描、端口扫描、DNS、traceroute
ProcessManager5system跨平台进程列表/终止、系统信息
Bluetooth3systemWindows + Android 蓝牙枚举
EventLog3systemWindows 事件日志 + Android logcat
Clipboard4system跨平台剪贴板同步
SecurityAudit7forensics哈希、权限、证书、APK、防火墙、Defender
Registry4forensics读取、写入、导出、自动运行取证(Windows)
Vision8v020屏幕捕获、OCR、动态快速查看/监视/差异对比
AppLauncher6v020启动应用、聚焦/关闭/调整大小/贴靠窗口
WebInspector5v020安全标头、URL 截图、技术栈检测
Crosslink7v020通过 HTTP API + SQLite 进行跨会话消息传递
Coordination4v020多 Agent 协调看板和同伴委派
Linux1linux通过 plink/OpenSSH 远程 SSH 执行
Combos3combos一次调用执行多步骤工作流:PR 审查、手机观察、代码库 grep
Prompts0promptsMCP 斜杠菜单快捷方式(无工具——仅提示词)
SelfMod0—已弃用的存根——自我修改功能已移除(无工具)

数量根据已注册的工具集生成(39 个模块、18 个分组,共 278 个工具;prompts 分组提供的是 MCP 提示词,而非工具)。

完整的逐工具参考(生成版):docs/TOOLS.md。

iPhone 支持(实验性)

SassyMCP 可通过 libimobiledevice 使用 USB 与 iPhone 通信。此功能在 v1.16.0 中新增,目前仍处于实验阶段;通过 ADB 使用 Android 仍是成熟方案。

先决条件

  • 安装 libimobiledevice:macOS 上运行 brew install libimobiledevice,Linux 上运行 sudo apt install libimobiledevice-utils。Windows 主机的支持有限,请使用 WSL2 或 macOS/Linux 主机。
  • 配对设备一次:运行 idevicepair pair,然后在 iPhone 上轻点 信任。iOS 17+ 要求先完成此配对步骤,工具才能看到设备。
  • 如果连接了多部 iPhone,请传入 udid 参数(来自 sassy_iphone_list)以指定目标设备。

工具: sassy_iphone_list、sassy_iphone_info、sassy_iphone_screenshot、sassy_iphone_syslog(有界采集)、sassy_iphone_apps、sassy_iphone_install(需要 confirm='YES')。如果缺少二进制文件或受信任的设备,每个工具都会妥善处理并降级——你会收到安装提示或配对提醒,而不会看到回溯信息。

动态视觉

桌面端(Vision 模块)

传统的 MCP 截图无法感知屏幕内容——你只能截取一帧,并希望它正好是需要的画面。SassyMCP 的动态视觉改变了这一点:

工具用途
sassy_screen_glance快速灰度截图,大小约为 3-6KB。可反复调用以“观察”屏幕。
sassy_screen_watch监控 N 秒,仅返回内容发生变化的帧(像素差异阈值)。
sassy_screen_diff前后对比——截取一帧,等待后再截取另一帧,返回两帧以及突出显示变化的差异图像。

这三种工具都使用灰度处理和高强度 JPEG 压缩,以尽量降低上下文开销。一次快速查看约为 2KB,而全彩截图约为 14KB。

Android(PhoneScreen 模块)

手机不只是一个摄像头目标——SassyMCP 还会读取其 UI 无障碍树:

工具用途
sassy_phone_ui读取每个可见的 UI 元素——文本、描述、坐标、可点击/聚焦/选中状态。提供结构化数据,而非像素。
sassy_phone_state前台应用、屏幕开关状态、电池、WiFi、通知数量。
sassy_phone_glance通过直接管道获取低分辨率灰度手机截图(约 4-8KB)。
sassy_phone_watch在指定时长内监控 UI 树变化。仅在元素发生变化时返回快照。

手机交互

通过 ADB 提供完整的触控输入——AI 可以操作手机:

工具用途
sassy_phone_tap点击屏幕坐标
sassy_phone_swipe在两点之间滑动
sassy_phone_type在聚焦的字段中输入文本
sassy_phone_key发送按键事件(HOME、BACK、ENTER、VOLUME 等)
sassy_phone_open根据包名启动应用
敏感情境检测

所有交互工具(点击、滑动、输入)都会在执行前自动扫描 UI 树。如果检测到登录界面、付款表单、账户选择器、双重身份验证提示或权限对话框,工具将拒绝执行,并返回检测到的内容。随后 AI 会向你描述屏幕并询问如何处理。获得用户明确批准后,传入 confirmed=True。

安全删除(删除拦截)

AI Agent 可能会臆造具有破坏性的命令。SassyMCP 会拦截所有 Shell 和所有工具入口处的删除类命令,然后将目标移至 _DELETE_/ 暂存文件夹,而不是将其销毁。每次拦截都会写入审计日志,其中包含原始命令、解析出的目标和移动结果。

覆盖范围 — 所有具有破坏性的操作路径都会受到保护:

工具防护措施
sassy_shell拦截删除命令,将目标暂存到 _DELETE_/
sassy_session_send / sassy_session_start使用同一拦截器 — 无法绕过持久终端
sassy_linux_exec拒绝在远程主机上执行具有破坏性的命令
sassy_adb_shell拒绝在 Android 设备上执行具有破坏性的命令(可通过 allow_destructive=True 覆盖)
sassy_safe_delete显式暂存工具 — 将符号链接作为符号链接移动(移动路径中不使用 resolve())
sassy_write_file(重写模式)覆盖前将现有文件快照保存到 _DELETE_/
sassy_edit_block / sassy_edit_multi拒绝操作受保护路径;应用编辑前将现有内容快照保存到 _DELETE_/<name>.pre-edit.<ts><ext>
sassy_copy拒绝目标已存在的情况(不静默覆盖),拒绝受保护的源路径或目标路径
sassy_move拒绝静默覆盖目标,拒绝受保护的源路径或目标路径
sassy_audit_clear轮换审计日志,而不是删除它;需要 confirm='YES'

拦截的命令关键字: rm、rmdir、unlink(Unix/WSL)、del、erase、rd(CMD)、Remove-Item、ri、rni(PowerShell 别名)、sdelete / sdelete64(Sysinternals)。

还会捕获以下情况(不仅限于单独的关键字):

  • Shell 包装命令 — powershell -c "del foo"、cmd /c del foo、bash -c "rm foo"、wsl -- rm foo(会递归扫描有效载荷)
  • Base64 有效载荷 — 会解码(UTF-16-LE)powershell -EncodedCommand <base64> 并递归扫描
  • .NET 调用 — [System.IO.File]::Delete(...)、[System.IO.Directory]::Delete(...)
  • Clear-Content、Set-Content -Value ''(仅限字面值为空;普通的 -Value "foo" 允许执行)
  • Out-File -Force、New-Item -Force(覆盖类操作)
  • copy /y、xcopy /y — CMD 静默覆盖标志
  • robocopy /MIR 和 robocopy /PURGE — 镜像/清理模式会删除目标文件
  • 通过重定向截断 — > file.txt、type foo > bar.txt、cmd; > file.txt(会正确忽略追加操作 >> 和流重定向 2> / &>)
  • Move-Item foo $null
  • 赋值前缀 — 可正确剥离 $null = ri foo 中的赋值部分

受保护的根目录(所有受保护工具都会拒绝操作,而不仅限于拦截器):SassyMCP 源代码树本身、~/.sassymcp/(审计日志 + 配置),以及任何 _DELETE_/ 暂存文件夹(不会递归暂存)。保护机制使用 resolve(),因此路径遍历(..\)、符号链接和 Windows 8.3 短文件名都会在检查前正确规范化。

场景结果
rm -rf /始终启用的阻止列表会强制拦截 — 不会尝试移动
rm important.txt已拦截,文件已移动到 ./_DELETE_/important.txt
del /q *.log已拦截,所有 .log 文件都已移动到 ./_DELETE_/
Remove-Item -Path C:\data\old已拦截,old 已移动到 C:\data\_DELETE_\old
cmd /c del foo(包装命令)已拦截 — 会展开有效载荷并进行拦截
gci *.tmp | ri(PS 别名)已拦截 — 会匹配 ri 别名
对现有文件执行 sassy_write_file("doc.txt", ..., "rewrite")会先将原有内容快照保存到 _DELETE_/doc.overwrite.<ts>.txt
ls -la正常执行 — 不是删除命令

_DELETE_/ 中的名称冲突会自动通过计数器后缀处理(file.txt、file_1.txt、file_2.txt)。在 Windows 上,解析器会正确保留带反斜杠的路径(C:\Users\foo\bar)— 不会被 shlex 错误处理。

暂停 / 恢复

对于用户需要接手的复杂流程:

工具用途
sassy_phone_pause阻止所有交互工具。观察工具(ui、glance、watch)仍可使用。
sassy_phone_resume解除交互限制。AI 会从中断处继续,并结合暂停期间观察到的所有信息。

工作流:

  1. AI 自主操作手机,完成常规任务
  2. AI 遇到登录界面 → 敏感上下文自动被拦截 → AI 告知用户
  3. 用户说“等一下” → AI 调用 sassy_phone_pause
  4. 用户手动登录。AI 通过 sassy_phone_ui / sassy_phone_glance 观察
  5. 用户说“好了” → AI 调用 sassy_phone_resume
  6. AI 继续操作,此时已知用户登录了特定账户

权限引擎与控制面板

SassyMCP 通过一个策略引擎(sassymcp.policy)管理 shell 和文件工具, 该引擎有四种模式,可通过 sassy_permission set_mode 或 控制面板设置:

模式行为
strict在所有位置阻止破坏性模式(默认)
confirm对破坏性模式返回确认令牌
sandbox在项目根目录内放宽限制;任何解析到监狱范围外的操作都会被拒绝 — 运行不受门控的模型,并将其限制在一个文件夹内
bypass除受保护路径外允许所有操作(明确启用,且经过审计)

Claude 风格的 allow / ask / deny 规则层(工具 glob + 路径 glob + 命令正则表达式;优先匹配首条规则)会覆盖模式默认值。灾难性操作 阻止列表(format、mkfs 等)和受保护路径不变量(SassyMCP 源代码树

  • ~/.sassymcp)在所有模式下都有效,包括 bypass。

控制面板是用于管理以上所有内容的 localhost 网页 UI — 包括实时 事件日志、设置 / 模式编辑器,以及分类器 + 规则编辑器。它仅绑定到 127.0.0.1,并需要每次安装对应的令牌,令牌位于 ~/.sassymcp/control_panel.token。使用 sassy_panel start 启动 (或设置 panel.enabled / SASSYMCP_PANEL=1,使其在启动时运行),然后打开 打印出的 http://127.0.0.1:8765/?token=… URL。

工具配置

工具配置决定 MCP 会话可以看到(tools/list)和调用(tools/call)哪些工具 —— 这是从目录中选出的、由用户控制的会话级子集,可通过控制面板管理 (Profiles 标签页,由 GET / POST /api/profile 提供支持)。有意不提供 可切换或扩大配置的 MCP 工具,因此会话无法自行突破限制性配置;通过 sassy_batch 扇出的调用也遵循相同的门控规则。

配置工具组
full所有 18 个组(每次启动时的默认配置)
developermeta、core、infrastructure、utility、github_quick、github_full、v020、memory、persona、setup、updater
forensicsmeta、core、infrastructure、forensics、utility、system、memory
devicesmeta、core、infrastructure、android、iphone、utility、memory
sysadminmeta、core、infrastructure、system、linux、utility、memory、updater
readonly所有经过整理的 MCP 注释为 readOnlyHint=true 的工具 — 按工具计算,而非按组计算
custom在控制面板中勾选的明确工具组集合

需要了解的规则:

  • 仅限会话,不会持久保存。 重启后始终会恢复为 full。配置是运行时的安全带,而非访问控制 — 控制面板令牌才是信任边界。
  • meta 始终启用。 其自省工具(sassy_tool_groups、 sassy_self_check 等)是会话了解自身可见内容的唯一途径;隐藏这些工具会使会话无法检查门控规则。
  • 扩大范围需要 confirm='YES'。 任何会公开当前隐藏工具的切换操作都属于经审计的提权,需要明确确认(控制面板 UI 会代为发送,与 bypass 模式的约定一致)。缩小范围则无需确认。
  • 从 tools/list 中隐藏的工具也无法通过 tools/call 调用 —— 客户端无法调用自己看不到的工具。

引导式设置

首次启动时(不存在 ~/.sassymcp/persona.md),向导工具会醒目显示,AI 也会通过已注册的钩子获取入门指南。整个流程以对话方式进行:AI 提问,你回答,然后它调用工具。

入门流程(推荐顺序)

每个步骤彼此独立,均可跳过。只需告诉 AI“设置 SassyMCP”或“开始吧”,它就会引导你完成以下流程:

#步骤工具操作说明
0许可证 (可选)sassy_setup_license action="status" then action="activate" key=...显示支持者等级。无论如何,所有工具都会解锁——密钥仅用于登记你的席位和支持者身份。
1角色设定sassy_setup_wizard提出下方的问卷,生成 ~/.sassymcp/persona.md,并热重载角色设定模块。
2GitHubsassy_setup_github action="check" → action="open_browser" → action="save_token" token=...验证现有的 GITHUB_TOKEN,或打开 github.com/settings/tokens,引导你选择权限范围,然后保存并重新验证。
3SSH / Linuxsassy_setup_ssh action="check" → action="save" host=... user=... password=... → action="test"查找 plink,将凭据存储在进程环境中,并通过执行 echo 往返测试进行验证。
4可选工具sassy_setup_check_tools检查是否存在 nmap、tesseract、adb、scrcpy、plink 和 Chrome;对于缺少的工具,会提供安装链接。
✓状态检查sassy_setup_status显示已配置的内容、仍缺少的内容,以及 action_required 提示。可随时运行。
⚙️身份验证令牌sassy_setup_generate_token client_id="claude-desktop"生成 32 字节的 URL 安全令牌,并写入 ~/.sassymcp/tokens.json,供 HTTP/隧道模式使用。

可通过 action="skip" 跳过任何步骤(支持此选项时)——配置会记录跳过状态,因此 AI 不会再次提示。

角色设定问卷

sassy_setup_wizard 接受以下字段。全部为可选项——默认值如下所示。

字段值 / 格式默认值
roledeveloper | sysadmin | security | devops | data | designer | manager | otherdeveloper
expertise_leveljunior | mid | senior | principal | staffsenior
specializations以逗号分隔的领域,例如 "web security, cloud infra, mobile"空
languages以逗号分隔,例如 "Python, Rust, TypeScript, Go"空
frameworks以逗号分隔,例如 "React, FastAPI, Cloudflare Workers"空
systems以换行分隔的 hostname — OS — role 条目空
projects以换行分隔的 name — status — description 条目空
communication_styleterse(仅代码)| balanced(简要说明)| verbose(详细说明理由)terse
security_posturestandard(OWASP)| hardened(+ CSP/HSTS/速率限制)| paranoid(+ 隔离网络、证书固定、零信任)standard
mcp_clients连接的 AI 工具,例如 "Claude Desktop, Cursor, Grok Desktop"空
notes自由文本——AI 还应了解的其他工作习惯信息空

输出会写入 ~/.sassymcp/persona.md(角色设定模块会在每个会话中读取该文件),运行记录则写入 ~/.sassymcp/config.json(setup_complete、setup_timestamp、setup_version)。可随时重新运行 sassy_setup_wizard 以重新生成——角色设定模块会热重载新配置。

从客户端触发流程

当出现 "setup"、"first time"、"get started"、"onboard"、"new user"、"set up sassymcp" 等短语时,入门钩子会触发。与这些短语类似的说法也会将指南载入 AI 的上下文。如果想手动引导流程,只需先调用 sassy_setup_status 查看当前进度,然后按上表操作。

智能加载

默认情况下,SassyMCP 只加载常用工具组。这会将工具定义控制在上下文窗口的 5% 以内。

# 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 sassymcp
可用分组
分组模块默认启用
corefileops, shell, ui_automation, editor, audit, session是
metameta是
infrastructureobservability, state_manager, runtime_config是
github_quickgithub_quick(6 个轻量工具)是
personapersona是
utilityutility是
setupsetup_wizard, tools_manager是
memorymemory是
updaterupdater是
comboscombos(4 个工具)否
promptsprompts(斜杠菜单快捷方式)是
github_fullgithub_ops(80 个工具)否
androidadb, phone_screen否
systemnetwork_audit, process_manager, security_audit, registry, bluetooth, eventlog, clipboard否
v020vision, app_launcher, web_inspector, crosslink否
linuxlinux否

安装

选择最符合你现有工作方式的入口。所有四种方式都会连接到 ~/.sassymcp/ 中同一个共享核心——你的 persona、记忆、许可证和审计日志对所有已连接的 MCP 客户端均可见。

通过 DXT 一键安装(Claude Desktop)

从最新版本下载 sassymcp.dxt,双击即可由 Claude Desktop 安装。首次启动时,sassymcp 会自动检测你机器上的其他 MCP 客户端(Cursor、VS Code Copilot、Windsurf、Continue、Cline、Zed、Grok Desktop),并修改各自的配置,让它们都能使用 SassyMCP,而无需你编辑任何 JSON。

VS Code 扩展

在 Visual Studio Marketplace 上架前,请从最新版本附带的 .vsix 安装 VS Code 扩展。该扩展会定位 sassymcp.exe(通过 PATH 或 sassymcp.exePath 设置),运行同一自动配置 CLI,并添加一个状态栏项,显示支持者等级标签和核心状态。命令面板:打开 Sassy Brain Cockpit、运行设置向导、重新安装客户端配置、打开审计日志、打开 _DELETE_ 文件夹、显示核心状态。

手动自动配置 CLI

如果你已有 sassymcp.exe(来自便携版 zip 或 pip 安装),并且想将其注册到所有 MCP 客户端,而不必逐个编辑客户端 JSON:

sassymcp-install

该命令会检测 Claude Desktop、VS Code Copilot、Cursor、Windsurf、Continue、Cline、Zed 和 Grok Desktop,并以原子方式修改各自的配置。重复运行不会产生任何变化。先使用 sassymcp-install --dry-run 查看结果。使用 sassymcp-install --uninstall 移除。CLI 会在首次编辑前,为任何现有配置创建带时间戳的备份。

便携包

便携版 zip(sassymcp-v*-portable.zip,包含 adb、nmap、plink、scrcpy、tesseract、cloudflared 和 start-*.bat 启动器)不再发布——发布流水线不会构建它。请使用下方的独立可执行文件(并将所需的辅助工具安装到 PATH 中),或通过 pip install sassymcp 完整安装 Python 版本。

独立可执行文件(不包含工具)

如果你不需要随附的 nmap / adb / cloudflared(或者它们已在 PATH 中),请从最新版本仅下载 sassymcp.exe(约 35 MB)。将它放在任意位置,然后在 MCP 客户端中指定该文件。

**首次运行向导:**在新机器上双击 sassymcp.exe(或不带任何标志从终端运行),即可看到交互式菜单——自动检测 AI Agent 并注册 SassyMCP、激活 LemonSqueezy 许可证密钥、生成 / 列出 bearer token,或启动 HTTP 服务。随时运行 sassymcp.exe setup 可重新打开菜单。配置 persona 后,直接运行程序会默认启动 HTTP 服务(与 v1.5 的行为一致),因此现有配置不会改变。

Linux(仅 pip)

CI 不发布 Linux 二进制文件。在 Linux 上,请安装 wheel:pip install sassymcp。(独立可执行文件仅支持 Windows;macOS 提供 universal2 二进制文件 — 请参阅发布页面上的 sassymcp-macos。)

MSI 安装程序(仅限手动构建)

CI 不发布 MSI — build-msi.ps1 用于从暂存的 sassymcp.exe 手动构建 MSI(WiX 3.x),而 installer.wxs 是手动构建的参考模板,并非维护中的安装程序。

激活支持者许可证(可选)

没有单独的“许可版下载”,也没有任何内容需要解锁 — 所有人运行的都是从 GitHub releases 获取的同一个完全解锁版二进制文件。如果你想支持开发,可以在 sassyconsultingllc.com/store 购买许可证并 激活,以注册你的席位和支持者等级:

# 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 setup

许可证会将这台机器注册为 LemonSqueezy 实例(席位);运行 sassy_setup_license action=deactivate 可释放席位,以便转移到另一台机器。

从源代码构建
git clone https://github.com/sassyconsultingllc/SassyMCP.git
cd SassyMCP
uv sync

# Optional dependencies:
uv pip install pytesseract playwright
playwright install chromium
Cloudflare Tunnel(远程访问)

想通过远程 MCP 客户端(Claude Web、另一台机器)使用 SassyMCP?便携版附带开箱即用的启动器。完整的分步说明请参阅 docs/TUNNEL.md;简要步骤如下:

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_NAME

start-tunnel.bat 会在 127.0.0.1:21001 上启动 HTTP 桥接,并在前台运行 cloudflared tunnel run <name>。脚本中没有特定供应商的内容 — 你只需提供隧道名称和主机名。客户端通过 https://mcp.<your-domain>.tld/mcp 发送 Authorization: Bearer <SASSYMCP_AUTH_TOKEN>。

对于需要 OAuth 2.1 DCR/PKCE(而非静态 Bearer)的托管版 Claude 客户端,请部署 sassymcp-oauth/ 下的可选 Worker — 将 wrangler.toml.example 复制为 wrangler.toml,填入你的主机名和 KV id,然后运行 wrangler deploy。完整的 OAuth 章节请参阅 docs/TUNNEL.md。

MCP 客户端配置

SassyMCP 使用标准 MCP。任何能够连接的客户端都可以使用 — 无需修改客户端。便携版附带可直接编辑的模板,位于 deploy/*_config.template.json。选择与你的客户端对应的行,复制模板,将 REPLACE_WITH_PATH 替换为 sassymcp.exe 的绝对路径,并保存到客户端指定的位置。

客户端传输方式配置文件位置模板
Claude Desktopstdio%APPDATA%\Claude\claude_desktop_config.json(Win)/ ~/Library/Application Support/Claude/claude_desktop_config.json(mac)claude_desktop_config.template.json
Cursorstdio~/.cursor/mcp.json(全局)或 <project>/.cursor/mcp.json(按项目)cursor_mcp_config.template.json
Windsurfstdio~/.codeium/windsurf/mcp_config.jsonwindsurf_mcp_config.template.json
Cline (VS Code)stdioVS Code 设置 → cline.mcpServers(与 mcpServers 结构相同)使用 claude_desktop_config.template.json
Continue.devstdio~/.continue/config.json(合并到 experimental.modelContextProtocolServers 下)continue_mcp_config.template.json
Grok DesktopHTTPGrok Desktop MCP 设置grok_desktop_config.template.json
任何其他 MCP 客户端stdio 或 HTTP客户端的 MCP 配置使用最接近的模板;mcpServers 结构是通用约定
标准 mcpServers 结构(Claude Desktop、Cursor、Windsurf、Cline)

使用 exe:

{
  "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"
      }
    }
  }
}
Continue.dev 结构(架构不同)
{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "type": "stdio",
          "command": "C:\\path\\to\\sassymcp.exe"
        }
      }
    ]
  }
}
HTTP / Grok Desktop / 自定义 HTTP 客户端

以 HTTP 模式运行服务(sassymcp.exe --http,默认地址为 127.0.0.1:21001),并将客户端指向 http://127.0.0.1:21001/mcp/。如果绑定地址不是环回地址,请设置 SASSYMCP_AUTH_TOKEN。

{
  "mcpServers": {
    "sassymcp": {
      "url": "http://127.0.0.1:21001/mcp/"
    }
  }
}
实际上带有 Claude 特性的内容(仅表面)

少数文档字符串和旧版 .claude/skills/sassymcp-update.md 斜杠命令目标专门针对 Claude Code。其他客户端会忽略它们,并直接使用 sassy_update_* 工具。没有任何工具、传输方式或身份验证路径依赖 Claude——服务端不知道另一端运行的是哪个 LLM。

传输模式

模式命令使用场景
Stdiosassymcp.exeClaude Desktop、Cursor(直接管道)
HTTPsassymcp.exe --httpGrok Desktop、Windsurf(localhost:21001)
HTTP LANsassymcp.exe --http --host 0.0.0.0多设备(需要身份验证令牌)
HTTPSsassymcp.exe --http --ssl加密(自动生成自签名证书)
SSEsassymcp.exe --http --sse旧版传输方式

运行多个实例(双会话)

同一台机器上运行两个 SassyMCP 进程——例如,为 Claude Desktop 运行一个本地 stdio实例,为 Claude Web 运行一个位于 Cloudflare Tunnel 后的远程 HTTPS实例——如果它们共用 ~/.sassymcp/,可能会相互覆盖状态。解决方法是为每个实例设置一个环境变量。

每个实例需要解决的冲突
资源默认值为每个实例单独设置的方法
HTTP 端口21001--port 21002(仅适用于 HTTP 模式实例)
Crosslink HTTP 端口9377sassy_crosslink_register port=9378
身份验证令牌环境变量 SASSYMCP_AUTH_TOKEN在启动器的环境中为每个进程单独设置
每用户状态目录~/.sassymcpSASSYMCP_HOME=/path/to/dir ← 新增环境变量(v1.3.4+)
SSL 证书/密钥$SASSYMCP_HOME/server.{crt,key}设置 SASSYMCP_HOME 后自动隔离;或使用 --ssl-cert / --ssl-key
示例:本地 stdio 与远程隧道并行运行

实例 A——Claude Desktop 的本地 stdio(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"
      }
    }
  }
}

实例 B——通过 Cloudflare Tunnel 的远程 HTTPS(start-tunnel.bat + 用于设置环境变量的包装器):

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%

然后,cloudflared tunnel run <name> 会将 https://<your-tunnel>/mcp 转发到 127.0.0.1:21002。

SASSYMCP_HOME 不同时会隔离哪些内容

每个实例都有自己的:

  • persona.md — 每个会话使用不同的配置文件
  • config.json — 不同的运行时配置(允许的目录、阻止的命令等)
  • tokens.json — 不同的作用域身份验证令牌
  • license.json — 独立的许可证激活状态
  • audit.log / audit.jsonl — 写入内容不会交错
  • crosslink.db — 独立的跨会话消息队列
  • memory.db — 独立的持久记忆
  • tool_state.db / tool_usage.json — 独立的每个工具状态和使用分析数据
  • server.crt / server.key — 独立的自签名证书
  • _security 受保护路径检查也遵循 SASSYMCP_HOME——任一实例都无法通过 sassy_safe_delete 删除另一实例主目录中的内容
实例之间仍共享的内容
  • 仓库源代码树(始终受 _security 保护,不会被删除或覆盖)
  • %LOCALAPPDATA%\SassyMCP\updates\ — 更新程序下载暂存目录(无害;其中的内容按版本标记)
  • 便携版 zip 中捆绑的工具(adb、nmap、cloudflared 等)——两个实例都以只读方式访问
在操作系统中设置(让两个实例都在启动时运行)

旧版 personal/autostart-bridge.bat + personal/register-autostart.ps1 模板已被 Git 忽略——复制这些文件,调整路径和每个实例的 SASSYMCP_HOME,然后为每个实例运行一次 Register-ScheduledTask。

环境变量

变量用途
SASSYMCP_LOAD_ALL=1加载所有工具组
SASSYMCP_GROUPS=core,android加载指定工具组
SASSYMCP_AUTH_TOKEN=xxx用于 HTTP 身份验证的 Bearer 令牌
SASSYMCP_DEV=1启用实时重新加载(开发模式)
SASSYMCP_NO_UPDATE_CHECK=1禁用启动时的更新检查(不调用 GitHub API)
SASSYMCP_HOME=/path/to/dir覆盖每用户状态目录(默认为 ~/.sassymcp)。在一台机器上运行多个实例时必须设置。
SASSYMCP_REPO=/path/to/repo覆盖 tools/mercury_audit_sassymcp.py 中自动检测的仓库根目录(仅限开发工具)
GITHUB_TOKEN=xxxGitHub API 访问权限
SSH_HOST=xxx远程 Linux 主机名/IP
SSH_USER=xxx远程 Linux 用户名
SSH_PASS=xxx远程 Linux 密码

外部工具

所有工具均包含在测试版 zip 包中。只有使用独立 exe 时才需要单独安装。

工具使用方已包含安装(如需要)
ADB所有 sassy_adb_* + sassy_phone_* 工具是Android Platform Tools
nmapsassy_port_scan是nmap.org
plinksassy_linux_exec是PuTTY
scrcpysassy_scrcpy_* 工具是scrcpy releases
Tesseractsassy_screen_ocr、sassy_find_text_on_screen是tesseract-ocr
Chromesassy_url_screenshot否google.com/chrome

运行 sassy_setup_check_tools,验证是否检测到所有工具。

要求

  • Windows 10/11、macOS 12+ 或 Linux — 使用同一份源代码,并在最前端 (sassymcp._platform)根据主机选择正确的命令。请参阅下文的 跨平台。
  • Python 3.11+(仅从源代码运行时需要;独立二进制文件 自包含 — 按操作系统分别构建,因为 PyInstaller 无法跨平台编译)

跨平台

同一份 SassyMCP 源代码可在 Windows、macOS 和 Linux 上运行。导入时会 解析一次主机操作系统;随后每个工具都会调用适用于主机的命令 — shell(PowerShell / zsh|bash)、剪贴板(Get-Clipboard / pbpaste)、 事件日志(Get-WinEvent / log show / journald)、防火墙(netsh / socketfilterfw / ufw)、Wi-Fi、Bluetooth、窗口控制(pywinauto / AppleScript System Events / wmctrl)、SSH(plink / 原生 ssh)、软件包 安装(winget / brew / apt)等。

  • 构建: build.bat(Windows)或 build.sh(macOS/Linux)。每个 二进制文件都必须在对应的操作系统上构建。
  • macOS 权限: 窗口控制和屏幕截图工具需要为运行 SassyMCP 的应用 授予辅助功能和屏幕录制权限(系统设置 → 隐私与安全性)。
  • 有少数概念本质上仅适用于 Windows(原始注册表 读取/写入/导出);这些功能会显示清晰的说明,并指向对应的原生 功能(defaults、launchd)。取证持久化 (sassy_autorun_entries)则支持跨平台(Run 项 / LaunchAgents / systemd+cron)。

许可证

专有 — 版权所有 (c) 2026 Sassy Consulting LLC。保留所有权利。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。