AS

a121400/sunnymcptool

Developer tools
103 stars 0 forks 품질 55 트렌드 55

基于 SunnyNet 中间件和 SunnyNetTools 抓包工具扩展的 MCP Server

개요

基于 SunnyNet 网络中间件的 MCP Server,让 AI 直接控制网络抓包、修改请求/响应、管理断点等。 运行 SunnyNet.exe(Windows)或 SunnyNet.app(macOS),GUI 启动后自动开启 MCP HTTP 端点(默认端口 29999)。 sunnynet-mcp 是轻量级 stdio→HTTP 桥接程序,将 Cursor 的 JSON-RPC 请求转发到 GUI 的 MCP 端点。 在 Cursor 中直接: - "启动抓包" - "显示最近的请求" - "搜索包含 login 的请求" - "查看请求 123 的详情" - "添加断点拦截 api.example.com" - "修改响应体" - :Wails 桌面应用,包含完整 SunnyNet 引擎 + MCP HTTP Server + 可视化界面 - :纯 Go 程序(~8MB),处理 MCP 协议握手,转发工具调用到 GUI - :集成 Wireshark tshark 实现网卡级原始抓包和协议解析(需单独放置 wireshark/ 目录) 产物在 build/bin/ 目录。macOS 用户可指定平台:wails build -platform darwin/arm64 capture_ 工具族需要 tshark 可执行文件。将编译好的 Wireshark 放到 build/bin/wireshark/ 目录: - Windows: 需要 Npcap 驱动才能实时抓包 - 从 Wireshark 源码 编译或下载官方安装包中的 tshark.exe 通过 Frida 动态注入 Hook 微信进程的 AppBrandCommonBindingJni.nativeInvokeHandler 和 invokeCallbackHandler,实时拦截所有云函数的请求和响应。

README

SunnyNet MCP Server

基于 SunnyNet 网络中间件的 MCP Server,让 AI 直接控制网络抓包、修改请求/响应、管理断点等。

下载

从 Releases 下载:

平台 GUI 主程序 MCP 桥接
Windows SunnyNet.exe sunnynet-mcp.exe
macOS (Apple Silicon) SunnyNet.app sunnynet-mcp

使用方法

1. 启动 GUI

运行 SunnyNet.exe(Windows)或 SunnyNet.app(macOS),GUI 启动后自动开启 MCP HTTP 端点(默认端口 29999)。

2. 配置 Cursor / Claude Desktop

在 .cursor/mcp.json 或对应配置文件中添加:

{
  "mcpServers": {
    "sunnynet": {
      "command": "/path/to/sunnynet-mcp",
      "args": ["-port", "29999"]
    }
  }
}

sunnynet-mcp 是轻量级 stdio→HTTP 桥接程序,将 Cursor 的 JSON-RPC 请求转发到 GUI 的 MCP 端点。

3. 对话使用

在 Cursor 中直接:

  • “启动抓包”
  • “显示最近的请求”
  • “搜索包含 login 的请求”
  • “查看请求 123 的详情”
  • “添加断点拦截 api.example.com”
  • “修改响应体”

架构

Cursor ──stdio──> sunnynet-mcp ──HTTP──> SunnyNet GUI (:29999/mcp)
                                              │
                                         代理端口 (:2024)
                                              │
                                    浏览器/手机/App 流量
  • GUI 主程序:Wails 桌面应用,包含完整 SunnyNet 引擎 + MCP HTTP Server + 可视化界面
  • MCP 桥接:纯 Go 程序(~8MB),处理 MCP 协议握手,转发工具调用到 GUI
  • tshark 后端:集成 Wireshark tshark 实现网卡级原始抓包和协议解析(需单独放置 wireshark/ 目录)

MCP 工具列表

分类 工具 说明
代理控制 proxy_start / proxy_stop 启动/停止代理
proxy_set_port 设置代理端口
proxy_get_status 获取运行状态
proxy_set_ie / proxy_unset_ie 设置/取消系统代理
proxy_pause_capture / proxy_resume_capture 暂停/恢复捕获
请求 request_list 获取请求列表(分页)
request_get 获取请求详情
request_search 按 URL/方法/状态码搜索
request_body_search 在 Body 中搜索关键词
request_get_response_body_decoded 获取解码后的响应体
request_modify_header / request_modify_body 修改请求头/体
response_modify_header / response_modify_body 修改响应头/体
request_block 阻断请求
request_release_all 放行所有拦截的请求
request_resend 重发请求

| | request_stats | 抓包统计 | | | request_save_all / request_import | 保存/导入抓包数据(.syn 格式) | | | request_highlight_search / request_highlight_clear | UI 高亮搜索 | | 长连接 | connection_list | 列出 WS/TCP/UDP 连接 | | | socket_data_list / socket_data_get / socket_data_get_range | 数据包操作 | | 断点 | breakpoint_add / breakpoint_list / breakpoint_remove / breakpoint_clear | 断点管理 | | 规则 | replace_rules_add / replace_rules_list / replace_rules_remove / replace_rules_clear | 替换规则 | | | hosts_list / hosts_add / hosts_remove | HOSTS 规则 | | 进程 | process_list / process_add_name / process_remove_name | 进程过滤 | | 抓包(Wireshark) | capture_list_interfaces | 列出网络接口(需 Npcap) | | | capture_start / capture_stop / capture_status | 原始网卡级抓包 | | | capture_read_pcap | 读取 pcap + Wireshark 显示过滤器 | | | capture_packet_detail | 单帧完整协议解析 | | | capture_decode_tls | TLS 密钥日志解密 HTTPS | | | capture_statistics | 协议层次/会话/端点统计 | | 证书 | cert_install / cert_export | CA 证书管理 | | 配置 | config_get | 获取全部配置 |

从源码编译

前置条件:Go 1.23+、Node.js 18+、Wails CLI

git clone https://github.com/a121400/sunnymcptool.git
cd sunnymcptool

# 安装 Wails CLI(如未安装)
go install github.com/wailsapp/wails/v2/cmd/wails@latest

# 编译(自动处理前端 + 后端)
wails build

# 编译 MCP 桥接(可选)
cd headless && go build -o ../build/bin/sunnynet-mcp .

产物在 build/bin/ 目录。macOS 用户可指定平台:wails build -platform darwin/arm64

Wireshark 抓包功能(可选):

capture_ 工具族需要 tshark 可执行文件。将编译好的 Wireshark 放到 build/bin/wireshark/ 目录:

  • Windows: 需要 Npcap 驱动才能实时抓包
  • 从 Wireshark 源码 编译或下载官方安装包中的 tshark.exe

安卓云函数抓包 (Cloud安卓)

一键抓取安卓微信小程序的云函数 API 调用,无需配置代理证书。

原理

通过 Frida 动态注入 Hook 微信进程的 AppBrandCommonBindingJni.nativeInvokeHandler 和 invokeCallbackHandler,实时拦截所有云函数的请求和响应。

使用

  1. 手机连接 USB,打开 USB 调试
  2. 手机需要 ROOT 权限(Magisk / KernelSU)
  3. 在 SunnyNet GUI 点击顶部 “Cloud安卓” 按钮
  4. 程序自动检查环境(Node.js / ADB / Frida),缺失的组件会自动下载安装
  5. 环境就绪后自动启动 Hook,成功后弹窗提示,开始捕获云函数调用

自动处理

点击 Cloud安卓 按钮后,程序会依次自动检查并安装所有必需环境:

  • Node.js:未安装则自动下载便携版到 %APPDATA%/SunnyNet/node/
  • ADB:未安装则自动下载 Android Platform Tools 到 %APPDATA%/SunnyNet/adb/
  • Frida 依赖:内置 frida + frida-java-bridge(已打包在二进制中,无需 npm install)
  • frida-server:自动检测手机版本,不匹配则下载安装对应版本

日志查看

  • 右键点击 Cloud安卓 按钮可打开日志窗口,查看所有步骤的详细日志
  • 启动失败或 Hook 异常退出时会自动弹出日志窗口

列表显示

  • 蓝色上箭头 →发送:小程序发出的请求
  • 绿色下箭头 ←响应:微信返回的响应
  • 点击条目查看完整 JSON 数据

相关文件

  • cloud_hook.go — Hook 生命周期管理 + 数据转换
  • adb_frida.go — ADB 设备管理 + frida-server 部署
  • frida-scripts/ — 嵌入的 JS 注入脚本

项目结构

├── main.go              # Wails 入口
├── app.go               # Wails App 绑定
├── public.go            # GUI↔Go 回调
├── cloud_hook.go        # 安卓云函数 Hook 服务
├── adb_frida.go         # ADB/Frida 设备管理
├── frida-scripts/       # Frida 注入脚本(嵌入到二进制)
├── mcp/                 # MCP Server 框架(registry, validator, middleware)
│   └── tools/           # MCP 工具实现(request, proxy, breakpoint, replace...)
├── headless/            # stdio→HTTP MCP 桥接程序
├── ios-tool/            # iOS 越狱抓包辅助工具
│   ├── hide_proxy.c     # CydiaSubstrate 代理检测绕过
│   ├── HideProxy.plist  # MobileSubstrate 过滤器
│   └── sunny-tool.sh    # iOS 一键 CA 证书+代理配置
├── CommAnd/             # 平台特定命令(darwin/windows/linux)
├── MapHash/             # 请求哈希表存储
├── SunnyNet/            # SunnyNet 核心引擎(内嵌源码)
├── frontend/            # Vue.js 前端(AG-Grid + Element Plus)
├── scripts/             # 构建脚本
└── build/               # Wails 构建配置

iOS 抓包工具

ios-tool/ 目录提供越狱 iOS 设备的抓包辅助:

  • hide_proxy.c — Hook CFNetworkCopySystemProxySettings(),让 App 看不到代理设置
  • sunny-tool.sh — 一键安装 SunnyNet CA 证书到 iOS TrustStore + 配置 WiFi 代理

详见 ios-tool/README 目录内的源码注释。

致谢

License

MIT

View this README on GitHub

설치

This server does not publish a one-line install command.

Open the repository installation guide

설정

{ "mcpServers": { "sunnynet": { "command": "/path/to/sunnynet-mcp", "args": ["-port", "29999"] } } }