返回市场
MCP-网络分析工具

MCP-网络分析工具

作者:khuynh2210 星标更新:2025-11-07

项目介绍

MCP Wireshark

一个集成Wireshark/tshark与AI工具和IDE的MCP(模型上下文协议)服务器。捕获实时网络流量,解析.pcap文件,应用显示过滤器,跟踪TCP流,并导出到JSON——所有这些功能均可通过Claude Desktop、VS Code或命令行界面访问。

License: MIT Python 3.10+

初次接触此项目? 从这里开始:入门指南 —— 完整的设置、发布和贡献指南!

📚 快速开始 | 📖 API文档 | 🤝 贡献指南 | 🚀 发布指南 | 💻 开发环境设置

功能

  • 🔍 列出网络接口:发现所有可用的网络接口以进行数据包捕获
  • 📡 实时捕获:从任意接口捕获实时网络流量
  • 📂 读取PCAP文件:分析现有的.pcap和.pcapng文件
  • 🔎 显示过滤器:应用Wireshark的强大显示过滤器
  • 📊 协议统计:生成详细的协议统计信息
  • 🔗 跟踪TCP流:提取并分析TCP流负载
  • 💾 导出至JSON:将数据包数据导出为JSON格式以供进一步分析

预备条件

  • Python 3.10或更高版本
  • 在系统上安装Wireshark/tshark

安装Wireshark/tshark

macOS(使用Homebrew):

brew install wireshark

Ubuntu/Debian

sudo apt-get update
sudo apt-get install tshark

Windows: 从Wishark下载页面下载并安装

注意:在Linux上,您可能需要将您的用户添加到wireshark组以无需root权限即可捕获数据包:

sudo usermod -aG wireshark $USER
sudo chmod +x /usr/bin/dumpcap

安装

从PyPI安装:

pip install mcp-wireshark

或者从源码安装:

git clone https://github.com/khuynh22/mcp-wireshark.git
cd mcp-wireshark
pip install -e .

使用方法

作为MCP服务器

Claude Desktop

添加到您的Claude Desktop配置文件中:

macOS~/Library/Application Support/Claude/claude_desktop_config.json Windows:%APPDATA%\Claude\claude_desktop_config.json Linux~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "wireshark": {
      "command": "mcp-wireshark",
      "args": [],
      "env": {}
    }
  }
}

VS Code

添加到您的VS Code settings.json中:

{
  "mcp.servers": {
    "wireshark": {
      "command": "mcp-wireshark",
      "args": [],
      "env": {}
    }
  }
}

命令行

运行MCP服务器:

mcp-wireshark

该服务器将按照MCP协议通过标准输入输出(stdio)进行通信。

可用工具

1. list_interfaces

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

示例

使用list_interfaces工具查看可用的网络接口

2. live_capture

从指定接口捕获实时网络流量。

参数

  • interface(必需):网络接口名称(例如,“eth0”,“Wi-Fi”)
  • duration(可选):捕获持续时间(秒,默认值:10)
  • packet_count(可选):要捕获的最大数据包数
  • display_filter(可选):要应用的Wireshark显示过滤器

示例

从eth0捕获30秒的数据包,过滤器为"tcp.port == 80"

3. read_pcap

读取并分析.pcap或.pcapng文件中的数据包。

参数

  • file_path(必需):.pcap或.pcapng文件的路径
  • packet_count(可选):要读取的最大数据包数(默认值:100)
  • display_filter(可选):要应用的Wireshark显示过滤器

示例

从capture.pcap读取前50个数据包

4. display_filter

对.pcap文件应用Wireshark显示过滤器。

参数

  • file_path(必需):.pcap或.pcapng文件的路径
  • filter(必需):Wireshark显示过滤器表达式
  • packet_count(可选):要返回的最大数据包数(默认值:100)

示例

从capture.pcap筛选tcp.port == 443的数据包

5. stats_by_proto

从.pcap文件生成协议统计信息。

参数

  • file_path(必需):.pcap或.pcapng文件的路径

示例

为capture.pcap生成协议统计信息

6. follow_tcp

跟踪TCP流并提取负载数据。

参数

  • file_path(必需):.pcap或.pcapng文件的路径
  • stream_id(可选):要跟踪的TCP流ID(默认值:0)

示例

从capture.pcap跟踪TCP流0

7. export_json

将.pcap文件中的数据包导出为JSON格式。

参数

  • file_path(必需):.pcap或.pcapng文件的路径
  • output_path(必需):保存JSON输出的路径
  • packet_count(可选):要导出的最大数据包数(默认值:1000)
  • display_filter(可选):要应用的Wireshark显示过滤器

示例

从capture.pcap导出前500个HTTP数据包到output.json

常用显示过滤器

以下是一些有用的Wireshark显示过滤器:

  • tcp.port == 80 - HTTP流量
  • tcp.port == 443 - HTTPS流量
  • http - 所有HTTP数据包
  • dns - DNS查询和响应
  • ip.addr == 192.168.1.1 - 到/来自特定IP的流量
  • tcp.flags.syn == 1 - TCP SYN数据包
  • http.request.method == "GET" - HTTP GET请求
  • tcp.stream eq 0 - 来自TCP流0的数据包

更多过滤器,请参阅Wireshark显示过滤器参考

跨平台支持

mcp-wireshark设计用于跨多个平台工作:

  • macOS:完全支持,使用Homebrew安装的Wireshark
  • Linux:完全支持,使用apt/yum安装的tshark
  • Windows:完全支持,使用官方Wireshark安装程序

该工具在可用时使用dumpcap(建议用于非root捕获),并在需要时回退到tshark

开发

想要贡献吗?请参阅我们的综合指南:

开发者快速开始

# 克隆并设置
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                    # 运行测试
black src tests          # 格式化代码
ruff check src tests     # 检查代码
mypy src                 # 类型检查

示例

请参阅examples目录中的示例脚本和使用模式。

贡献

欢迎贡献!请随时提交Pull Request。

许可证

本项目采用MIT许可证——详情见LICENSE文件。

致谢

支持

对于问题、疑问或贡献,请访问GitHub仓库