Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

RainyMCP

БесплатноНе проверен

A network analysis MCP server providing 23 tools for packet capture, protocol analysis, and cryptographic inspection, including TLS handshake, certificate extra

GitHubEmbed

Описание

A network analysis MCP server providing 23 tools for packet capture, protocol analysis, and cryptographic inspection, including TLS handshake, certificate extraction, and SM2/SM3/SM4 support.

README

一个真正支持 AI IDE(暂不支持Antigravity)的 Rainy MCP 服务器,实现了符合 MCP (Model Context Protocol) 规范的 SSE 传输层。(由 RainyMarks 开发)

特性

  • 真正的 SSE 实现:完整实现 MCP SSE 传输规范,支持 EventSource 长连接
  • 会话管理:自动管理客户端会话生命周期,支持超时清理
  • 异步工具调用:工具执行不阻塞主线程,结果通过 SSE 推送
  • 23 个强大工具:覆盖网络抓包、TLS/SSL分析、IPSec/ISAKMP、数字证书解析等场景
  • 期末考试专用:支持 SM2/SM3/SM4 国密分析,TLS握手分析,证书公钥提取等
  • 零外部 MCP 依赖:完全自包含实现,无需安装 mcp

架构

┌─────────────────┐     GET /sse      ┌──────────────────┐
│   Cursor IDE    │ ◄───────────────► │  SSE MCP Server  │
│  (MCP Client)   │                   │                  │
│                 │  POST /messages   │  - SessionMgr    │
│                 │ ────────────────► │  - ToolRegistry  │
│                 │                   │  - RainyMCP      │
└─────────────────┘                   └──────────────────┘
                                              │
                                              ▼
                                      ┌──────────────┐
                                      │   tshark     │
                                      │ (Wireshark)  │
                                      └──────────────┘

前置要求

  • Python 3.8+
  • Wireshark (需要 tshark 命令行工具)

安装 Wireshark

Windows:

  • 下载安装 Wireshark
  • 确保安装时勾选 "TShark" 组件
  • 将 Wireshark 安装目录添加到系统 PATH(如 C:\Program Files\Wireshark

macOS:

brew install wireshark

Linux (Ubuntu/Debian):

sudo apt install tshark

安装

# 克隆项目
git clone <repository-url>
cd Rainy_mcp

# 安装依赖
pip install -r requirements.txt

使用方法

1. 启动服务器

python rainy_mcp.py

可选参数:

python rainy_mcp.py --host 127.0.0.1 --port 3000 --tshark-path /path/to/tshark

启动成功后会显示:

服务器地址: http://127.0.0.1:3000
SSE 端点: http://127.0.0.1:3000/sse
消息端点: http://127.0.0.1:3000/messages
已注册 8 个 Rainy 工具

2. 配置 Cursor IDE

在项目根目录创建 mcp.json(或 .cursor/mcp.json):

{
  "mcpServers": {
    "rainy": {
      "url": "http://127.0.0.1:3000/sse"
    }
  }
}

3. 在 Cursor 中使用

重启 Cursor 或刷新 MCP 连接后,可以直接使用 Rainy 工具:

"帮我分析这个 pcap 文件中的 HTTP 流量"

"列出所有可用的网络接口"

"提取流量包中的所有 IP 地址"

可用工具 (23个)

基础工具 (8个)

工具名称 描述
list_interfaces 列出所有可用的网络接口
capture_live 实时抓包分析,支持过滤器
analyze_pcap 分析 pcap/pcapng 文件内容
get_protocols 获取 tshark 支持的协议列表
get_packet_statistics 获取数据包统计信息(I/O、会话、端点)
extract_fields 提取数据包中的特定字段
analyze_protocols 分析特定协议(HTTP、TCP、DNS 等)
analyze_errors 分析网络错误(重传、丢包等)

🎓 期末考试专用工具 (15个)

TLS/SSL 分析

工具名称 描述 考试用途
analyze_tls_handshake TLS 握手完整分析 🔥 提取 random 随机数、cipher_suites
extract_certificates 提取 TLS 证书 🔥 获取签名证书和加密证书
get_cipher_suites 获取加密套件列表 🔥 找出四个 cipher suite

IPSec/ISAKMP 分析

工具名称 描述 考试用途
analyze_ipsec 分析 ESP/AH 协议 IPSec 协议分析
analyze_isakmp IKE/ISAKMP 分析 🔥 主模式前四个包、DH公钥、证书

数字证书解析

工具名称 描述 考试用途
parse_certificate X.509 证书深度解析 🔥 序列号、公钥、签名值、SM3摘要
extract_public_key 提取公钥 🔥 RSA/SM2(512bit)/ECC 公钥
get_signature_value 获取签名值 🔥 ServerKeyExchange签名、SM2签名

流重组与协议分析

工具名称 描述
follow_tcp_stream TCP 流追踪重组
follow_udp_stream UDP 流追踪重组
extract_http_objects HTTP 对象提取
analyze_dns_detail DNS 深度分析

安全检测与智能摘要

工具名称 描述
detect_anomalies 异常检测(端口扫描、可疑流量)
generate_traffic_summary 智能流量摘要报告
get_conversation_graph IP 通信图谱数据

输出控制:证书/签名相关工具(如 analyze_tls_handshakeextract_certificatesparse_certificateextract_public_keyget_signature_value)新增参数 full_output(默认 false),开启后不再截断长字段;流重组工具 follow_tcp_stream / follow_udp_stream 新增 max_lines(默认 2000,<=0 表示不截断)。

工具详细说明

list_interfaces

列出系统上所有可用的网络接口。

// 无需参数
{}

capture_live

实时抓包分析。需要管理员/root 权限。

{
  "interface": "eth0",        // 必需:网络接口名称
  "duration": 10,             // 可选:抓包时长(秒),默认 10
  "filter": "tcp port 80",    // 可选:BPF 过滤器
  "max_packets": 100          // 可选:最大数据包数,默认 100
}

analyze_pcap

分析已保存的 pcap 文件。

{
  "file_path": "capture.pcap",  // 必需:文件路径
  "filter": "http",             // 可选:显示过滤器
  "max_packets": 100            // 可选:最大数据包数
}

extract_fields

提取特定字段并统计。

{
  "file_path": "capture.pcap",
  "fields": ["ip.src", "ip.dst"],  // 必需:字段列表
  "filter": "",                     // 可选:显示过滤器
  "max_packets": 5000               // 可选:最大数据包数
}

analyze_errors

分析网络传输错误。

{
  "file_path": "capture.pcap",
  "error_type": "all",  // 可选:all/malformed/tcp/retransmission/duplicate_ack/lost_segment
  "max_packets": 5000
}

🎓 期末考试场景示例

第八章:TLS 分析

> "分析这个pcap中的TLS握手,找出random随机数和cipher_suites"
> "提取第一个包的随机数和第二个包选中的加密套件"

第八章:ISAKMP 分析

> "分析ISAKMP流量,找出主模式的前四个包"
> "提取IKE密钥交换中的DH公钥和证书"

第九章:数字证书分析

> "解析流量中的证书,提取公钥和签名值"
> "根据证书序列号找到对应的公钥"

第七章:SM2 签名验签

> "提取SM2签名值(r,s)和公钥,准备验签"
> "找出签名报文和签名原文"

第六章:SM3 摘要

> "从证书中提取国密SM3摘要值"

端点说明

端点 方法 描述
/ GET 状态页面
/status GET 状态页面
/sse GET SSE 长连接端点,返回 text/event-stream
/messages POST JSON-RPC 消息接收端点

SSE 协议流程

1. Client ──GET /sse──────────────────────────► Server
2. Client ◄──event: endpoint, data: /messages?session_id=xxx── Server
3. Client ──POST /messages?session_id=xxx────► Server
   (JSON-RPC: initialize)
4. Client ◄──event: message, data: {result}─── Server
5. Client ──POST /messages (tools/list)──────► Server
6. Client ◄──event: message, data: {tools}─── Server
7. Client ──POST /messages (tools/call)──────► Server
8. Client ◄──event: message, data: {content}─ Server

常见问题

Q: 为什么看不到网络接口?

A: 列出网络接口需要管理员权限。请以管理员身份运行 PowerShell/终端后启动服务器。

Q: Cursor 连接失败怎么办?

  1. 确认服务器已启动且在 3000 端口运行
  2. 检查 mcp.json 配置是否正确(使用 url 而非 serverUrl
  3. 访问 http://127.0.0.1:3000/status 确认服务器状态
  4. 重启 Cursor 刷新 MCP 连接

Q: tshark 命令找不到?

确保 Wireshark 已安装且 tshark 在系统 PATH 中。可以通过 --tshark-path 参数指定完整路径:

python rainy_mcp.py --tshark-path "C:\Program Files\Wireshark\tshark.exe"

技术栈

  • Web 框架: Starlette (ASGI)
  • 服务器: Uvicorn
  • 协议: MCP over SSE (Server-Sent Events)
  • 后端工具: tshark (Wireshark CLI)

许可证

MIT License

from github.com/RainyMarks/RainyMCP

Установка RainyMCP

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/RainyMarks/RainyMCP

FAQ

RainyMCP MCP бесплатный?

Да, RainyMCP MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для RainyMCP?

Нет, RainyMCP работает без API-ключей и переменных окружения.

RainyMCP — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить RainyMCP в Claude Desktop, Claude Code или Cursor?

Открой RainyMCP на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare RainyMCP with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development