mcpField
M
MCP Wireshark

MCP Wireshark

本地服务
github.com/khuynh22安全6614 周前更新

关于 MCP Wireshark

mcp-wireshark 是一个 MCP 服务,让 AI 助手直接访问 Wireshark / tshark 的抓包能力。它面向需要分析网络流量的用户,可解析 .pcap 文件,也可进行实时抓包。项目为社区维护,可通过 pip 安装,并附带读写工具分类与安全校验。

主要功能

  1. 01解析 .pcap / .pcapng 文件并汇总流量
  2. 02按 display filter 筛选数据包
  3. 03跟踪 TCP / UDP 流并返回载荷
  4. 04IEC 61850 GOOSE、SV、MMS 流量健康检查
  5. 05限制时长与包数的实时抓包
  6. 06导出 JSON 文件

适用场景

  1. 01让助手概述未知的抓包文件,找出通信最多的 IP
  2. 02在对话中筛选特定协议,如 HTTP 或 DNS
  3. 03排查变电站 GOOSE 与 SV 报文的序号异常

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 14 个工具,其中读取类工具只检查状态,写入类工具用于抓包或写文件。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcp-wireshark

由社区维护的 Wireshark / tshark MCP 服务。Wireshark 或 Anthropic 均未参与此项目。 让 AI 助手直接访问数据包捕获文件。让 Claude 总结 .pcap、跟踪 TCP 流、筛选特定协议或捕获实时流量——所有操作都可在聊天中完成。

Claude 使用 mcp-wireshark 分析捕获文件

PyPI 版本 CI 许可证:MIT Python 3.10+


使用 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_infotshark 专家分析:按严重程度分组显示警告、错误和备注
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 — 快速了解未知捕获记录的特征

summarize_pcap 演示

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

decode_protocol 演示

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

expert_info 演示


示例提示词

可直接将这些内容粘贴到 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 == 80HTTP
tcp.port == 443HTTPS
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:

  1. 按 Win+R → 运行 sysdm.cpl → 高级 → 环境变量
  2. 编辑 Path → 添加 C:\Program Files\Wireshark
  3. 重启终端和 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。

评论

支持 Markdown

第一次接触 MCP?

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

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