返回市场
WireShark-MCP

WireShark-MCP

作者:mixelpixx5 星标更新:2025-07-05

项目介绍

Wireshark MCP 服务器

这是一个基于模型上下文协议(MCP)的服务器,它为AI助手提供了直接访问Wireshark网络分析功能的能力。该工具通过一个安全、标准化的接口实现了AI驱动的网络故障排除、数据包分析和网络监控。

特性

  • 实时数据包捕获:从任何网络接口实时捕获网络流量
  • PCAP文件分析:使用高级过滤器分析现有的数据包捕获文件
  • 协议统计:生成全面的协议层次结构和对话统计信息
  • 网络接口管理:列出并交互可用的网络接口
  • 安全控制:全面的输入验证和权限管理
  • 异步操作:非阻塞操作以实现高性能分析

要求

系统要求

  • Python 3.9+ 和 pip 包管理器
  • 安装并可从命令行访问 Wireshark/TShark
  • 网络捕获权限(参见下面的设置说明)
  • 兼容 Windows/Linux/macOS

网络权限设置

Windows

  1. 安装 Wireshark 时选择安装 WinPcap/Npcap
  2. 以管理员身份运行或确保用户具有网络捕获权限

Linux

# 将用户添加到 wireshark 组
sudo usermod -aG wireshark $USER

# 或者在 dumpcap 上设置能力(推荐)
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap

# 登出再登录以使组更改生效

macOS

# 确保用户具有管理员权限或使用 sudo 进行捕获
# Wireshark 安装程序通常会处理权限问题

安装

  1. 克隆或下载项目文件
  2. 安装 Python 依赖项:
    pip install -r requirements.txt
    
  3. 验证 Wireshark 安装:
    tshark --version
    

配置

Claude Desktop 集成

  1. 找到你的 Claude Desktop 配置文件:

    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. 添加 Wireshark MCP 服务器配置:

    {
      "mcpServers": {
        "wireshark": {
          "command": "python",
          "args": ["/绝对路径/到/wireshark-mcp-server.py"],
          "env": {
            "PYTHONPATH": "/绝对路径/到/项目目录",
            "MCP_LOG_LEVEL": "INFO"
          }
        }
      }
    }
    
  3. 重启 Claude Desktop 以加载新服务器

VS Code/Cursor 集成

对于 VS Code 或 Cursor,在 IDE 的 MCP 设置中配置指向 wireshark-mcp-server.py 文件的 MCP 服务器。

可用工具

get_network_interfaces()

列出所有可用于数据包捕获的网络接口。

用法:

请列出可用的网络接口

capture_live_packets(interface, count, capture_filter, timeout)

从指定接口捕获实时网络数据包。

参数:

  • interface: 网络接口名称(例如:"eth0","Wi-Fi")或编号(例如:"1")
  • count: 要捕获的数据包数量(默认:50,最大:11000)
  • capture_filter: BPF 捕获过滤表达式(可选)
  • timeout: 捕获超时时间(秒,默认:30,最大:60)

用法:

从接口 eth0 捕获 100 个数据包,并使用过滤器 "tcp port 80"

analyze_pcap_file(filepath, display_filter, max_packets)

分析现有 PCAP/PCAPNG 文件,可选地进行过滤。

参数:

  • filepath: PCAP/PCAPNG 文件的路径
  • display_filter: Wireshark 显示过滤表达式(可选)
  • max_packets: 要分析的最大数据包数量(默认:100,最大:1000)

用法:

分析文件 /路径/到/capture.pcap 并仅显示 HTTP 请求

get_protocol_statistics(filepath)

从捕获文件生成协议层次结构和 IP 对话统计信息。

参数:

  • filepath: PCAP/PCAPNG 文件的路径

用法:

为 /路径/到/capture.pcap 生成协议统计信息

get_capture_file_info(filepath)

获取捕获文件的详细信息(大小、持续时间、数据包数量等)。

参数:

  • filepath: PCAP/PCAPNG 文件的路径

用法:

获取捕获文件 /路径/到/capture.pcap 的信息

过滤示例

捕获过滤器(BPF 语法)

  • "tcp port 80" - HTTP 流量
  • "host 192.168.1.1" - 到/来自特定主机的流量
  • "net 10.0.0.0/8" - 在特定网络上的流量
  • "tcp and port 443" - HTTPS 流量
  • "icmp" - ICMP/ping 流量

显示过滤器(Wireshark 语法)

  • "http.request" - 仅 HTTP 请求
  • "tcp.flags.syn == 1" - TCP SYN 数据包
  • "dns.flags.response == 1" - DNS 响应
  • "ip.addr == 192.168.1.1" - 到/来自特定 IP 的流量
  • "tcp.analysis.retransmission" - TCP 重传

安全特性

  • 输入验证:所有用户输入都针对安全模式进行了验证
  • 文件路径净化:文件路径被解析并验证安全性
  • 资源限制:捕获持续时间、数据包数量和文件大小受到限制
  • 接口验证:只接受有效的网络接口名称
  • 过滤器验证:捕获和显示过滤器检查危险模式

使用示例

基本网络故障排除

AI 助手: "我需要排查网络连接问题"
用户: "从主网络接口捕获 200 个数据包并查找任何问题"

HTTP 流量分析

AI 助手: "让我分析一下你的网络流量"
用户: "在端口 80 和 443 上捕获 60 秒的流量,并显示访问最多的网站"

安全调查

AI 助手: "正在分析可疑的网络活动"
用户: "检查这个 PCAP 文件中的任何异常连接或潜在的安全威胁"

性能分析

AI 助手: "正在调查网络性能问题"
用户: "从这个捕获文件生成协议统计信息以识别带宽使用情况"

故障排除

常见问题

  1. "未找到 TShark" 错误

    • 确保已安装 Wireshark 并且 tshark 在你的 PATH 中
    • 在 Windows 上,检查 C:\Program Files\Wireshark\tshark.exe
  2. 捕获数据包权限被拒绝

    • 遵循上面的网络权限设置说明
    • 在 Linux/macOS 上,你可能需要使用 sudo 进行实时捕获
  3. "FastMCP 未安装" 错误

    • 安装所需依赖项:pip install -r requirements.txt
  4. 找不到接口

    • 使用 get_network_interfaces() 查看可用接口
    • 接口名称因操作系统而异

调试模式

通过设置环境变量启用调试日志:

export MCP_LOG_LEVEL=DEBUG
python wireshark-mcp-server.py

开发

测试服务器

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

# 直接测试服务器
python wireshark-mcp-server.py

# 使用调试日志运行
MCP_LOG_LEVEL=DEBUG python wireshark-mcp-server.py

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 为新功能添加测试
  4. 提交拉取请求

许可

该项目按原样提供用于教育和专业用途。请确保遵守您组织的安全和网络监控政策。

支持

对于问题和疑问:

  1. 查看上面的故障排除部分
  2. 验证 Wireshark 安装和权限
  3. 检查项目日志以获取详细的错误消息
  4. 确保所有要求已正确安装

致谢

  • 基于 Anthropic 的 Model Context Protocol (MCP) 构建
  • 使用 Wireshark 网络分析工具包
  • 设计用于安全的、AI 驱动的网络分析