关于 MCP Wireshark
mcp-wireshark 是一个 MCP 服务,让 AI 助手直接访问 Wireshark / tshark 的抓包能力。它面向需要分析网络流量的用户,可解析 .pcap 文件,也可进行实时抓包。项目为社区维护,可通过 pip 安装,并附带读写工具分类与安全校验。
主要功能
- 01解析 .pcap / .pcapng 文件并汇总流量
- 02按 display filter 筛选数据包
- 03跟踪 TCP / UDP 流并返回载荷
- 04IEC 61850 GOOSE、SV、MMS 流量健康检查
- 05限制时长与包数的实时抓包
- 06导出 JSON 文件
适用场景
- 01让助手概述未知的抓包文件,找出通信最多的 IP
- 02在对话中筛选特定协议,如 HTTP 或 DNS
- 03排查变电站 GOOSE 与 SV 报文的序号异常
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露 14 个工具,其中读取类工具只检查状态,写入类工具用于抓包或写文件。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-wireshark
由社区维护的 Wireshark /
tsharkMCP 服务。Wireshark 或 Anthropic 均未参与此项目。 让 AI 助手直接访问数据包捕获文件。让 Claude 总结.pcap、跟踪 TCP 流、筛选特定协议或捕获实时流量——所有操作都可在聊天中完成。

使用 Claude Code 快速开始
pip install mcp-wireshark
claude mcp add --transport stdio --scope user mcp-wireshark -- mcp-wireshark
就这么简单。打开 Claude Code 并试着说:
“总结一下 ./capture.pcap,并告诉我哪些 IP 之间的通信最频繁。”
--scope user 会让所有 Claude Code 项目都能使用此服务。去掉该标志,则只会为当前项目安装。更多信息请参阅 claude mcp 文档。
验证安装
claude mcp list
你应该能看到 mcp-wireshark。在 Claude Code 中,提问:
“运行 check_installation。”
如果 tshark 位于你的 PATH 中,该工具会返回版本信息。如果不在,请参阅故障排除。
工具
此服务提供 14 个工具,明确分为读取工具(安全、无副作用)和写入工具(捕获流量或写入文件)。两组工具都带有标准 MCP readOnlyHint 注解,以便任何兼容的客户端都能区分它们。
读取工具
可以放心调用——它们只会检查状态。
| 工具 | 功能说明 |
|---|---|
check_installation | 验证是否已安装 tshark 并显示版本 |
list_interfaces | 列出可用于捕获流量的网络接口 |
read_pcap | 从 .pcap / .pcapng 文件读取数据包(预览 + 总数) |
display_filter | 对 pcap 应用 Wireshark 显示过滤器 |
summarize_pcap | 高层摘要:I/O 统计信息、协议层级、通信最频繁的主机 |
stats_by_proto | 协议层级统计信息 |
follow_tcp | 重组 TCP 流并返回其负载 |
follow_udp | 重组 UDP 流并返回其负载 |
expert_info | tshark 专家分析:按严重程度分组显示警告、错误和备注 |
decode_protocol | 将协议字段提取为 TSV 表格。为 HTTP、DNS、TLS、GOOSE、MMS、SV、SIP、ICMP 提供精选默认字段;其他协议可使用任意字段 |
protocol_stats | 汇总 -z 报告(协议层级、会话、端点、HTTP/DNS/SMB 统计信息) |
analyze_iec61850 | 对 GOOSE/SV/MMS 捕获文件进行健康状况诊断:按来源报告 OK/WARN/FAIL,并检查 sqNum/stNum 间隙、TTL 违规、smpCnt 不连续、同步丢失和 MMS 错误 |
写入工具
这些工具会创建文件或捕获实时流量。符合规范的客户端可能会在调用前提示。
| 工具 | 功能 |
|---|---|
live_capture | 从接口捕获实时流量(上限为 5 分钟 / 10k 个数据包) |
export_json | 将 pcap 中的数据包导出到你指定路径下的 JSON 文件 |
实际效果
这些片段使用真实工具处理 demo/demo.pcapng — 一段简短的家庭网络捕获记录。运行 python demo/render_gif.py <scene> 可重新生成。
summarize_pcap — 快速了解未知捕获记录的特征

decode_protocol — 筛选协议并生成精简表格(此处展示:TLS SNI 和 DNS-over-HTTPS 查询)

expert_info — 让 tshark 为你找出警告和异常

示例提示词
可直接将这些内容粘贴到 Claude Code 中:
List my network interfaces.
Summarize ./traffic.pcap.
From ./traffic.pcap, show me only HTTP requests.
Follow TCP stream 0 in ./traffic.pcap and tell me what protocol is in it.
Capture 30 seconds of traffic on Wi-Fi filtered to tcp.port == 443.
Export every DNS packet from ./traffic.pcap to ./dns.json.
Decode the GOOSE messages in ./substation.pcapng — only stNum >= 1.
Run expert analysis on ./traffic.pcap and group findings by severity.
Show me the IP conversations in ./traffic.pcap.
常用显示过滤器
| 过滤器 | 匹配内容 |
|---|---|
tcp.port == 80 | HTTP |
tcp.port == 443 | HTTPS |
dns | 所有 DNS |
http.request | 仅 HTTP 请求 |
ip.addr == 10.0.0.1 | 与特定主机之间的流量 |
tcp.flags.syn == 1 && tcp.flags.ack == 0 | 仅 TCP SYN 数据包 |
针对分析 IEC 61850 流量的变电站工程师:
| 过滤器 | 匹配内容 |
|---|---|
goose | 所有 GOOSE 消息 |
goose.stNum > 0 | 状态发生变化的 GOOSE 消息 |
mms | 所有 MMS 流量 |
sv | 采样值 |
其他客户端
任何支持 MCP 的客户端都可以使用。此软件包会在 PATH 上安装一个 mcp-wireshark 二进制文件。
Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):
{
"mcpServers": {
"wireshark": {
"command": "mcp-wireshark"
}
}
}
VS Code(Copilot / GitHub Copilot Chat)
在你的工作区中创建 .vscode/mcp.json:
{
"servers": {
"wireshark": {
"command": "mcp-wireshark"
}
}
}
Cursor / Windsurf / 其他
使用相同的 stdio 调用方式:command: mcp-wireshark。无需传输标志。
前置条件
- Python 3.10+
- 已安装 Wireshark;
tshark可通过PATH访问
使用 pip 或 uv 安装:
pip install mcp-wireshark
# or
uvx mcp-wireshark
故障排除
Windows 上找不到 tshark
将 Wireshark 添加到你的系统 PATH:
- 按
Win+R→ 运行sysdm.cpl→ 高级 → 环境变量 - 编辑
Path→ 添加C:\Program Files\Wireshark - 重启终端和 Claude Code,然后重新运行
check_installation
(避免通过 claude mcp add --env 传递 PATH — 值会按字面内容处理,不会展开 %PATH%。)
Linux 上捕获时提示权限被拒绝
将自己添加到 wireshark 组,然后注销并重新登录:
sudo usermod -aG wireshark $USER
`live_capture` 提示“未捕获到数据包”
- 使用
list_interfaces确认接口名称(Wireshark 使用的名称与ifconfig/ip不同) - 在 macOS 上,你可能需要安装 ChmodBPF(随 Wireshark
.dmg提供) - 检查是否有显示过滤器排除了所有内容
开发
git clone https://github.com/khuynh22/mcp-wireshark.git
cd mcp-wireshark
python -m venv venv && source venv/bin/activate # Windows: venv\Scripts\activate
pip install -e ".[dev]"
pytest # tests
black src tests # format
ruff check src tests # lint
mypy src # type check
代码库经过组织,使新增工具归入两个职责明确的文件之一:
src/mcp_wireshark/read_tools.py— 仅检查状态的内容src/mcp_wireshark/write_tools.py— 捕获流量或写入文件的内容
server.py 仅包含路由逻辑。请参阅 CLAUDE.md 和 CONTRIBUTING.md。
安全
每个文件路径都会经过验证(拒绝 ..,并限制允许的扩展名)。每个显示过滤器都会检查是否包含 shell 元字符。始终通过 asyncio.create_subprocess_exec 调用 tshark,绝不使用 shell=True。硬性上限:每次调用最多处理 10k 个数据包,每次实时捕获最长 5 min。请参阅 SECURITY.md。
许可证
MIT — 请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。