一个集成Wireshark/tshark与AI工具和IDE的MCP(模型上下文协议)服务器。捕获实时网络流量,解析.pcap文件,应用显示过滤器,跟踪TCP流,并导出到JSON——所有这些功能均可通过Claude Desktop、VS Code或命令行界面访问。
初次接触此项目? 从这里开始:入门指南 —— 完整的设置、发布和贡献指南!
📚 快速开始 | 📖 API文档 | 🤝 贡献指南 | 🚀 发布指南 | 💻 开发环境设置
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 .
添加到您的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 settings.json中:
{
"mcp.servers": {
"wireshark": {
"command": "mcp-wireshark",
"args": [],
"env": {}
}
}
}
运行MCP服务器:
mcp-wireshark
该服务器将按照MCP协议通过标准输入输出(stdio)进行通信。
列出所有可用于数据包捕获的网络接口。
示例:
使用list_interfaces工具查看可用的网络接口
从指定接口捕获实时网络流量。
参数:
interface(必需):网络接口名称(例如,“eth0”,“Wi-Fi”)duration(可选):捕获持续时间(秒,默认值:10)packet_count(可选):要捕获的最大数据包数display_filter(可选):要应用的Wireshark显示过滤器示例:
从eth0捕获30秒的数据包,过滤器为"tcp.port == 80"
读取并分析.pcap或.pcapng文件中的数据包。
参数:
file_path(必需):.pcap或.pcapng文件的路径packet_count(可选):要读取的最大数据包数(默认值:100)display_filter(可选):要应用的Wireshark显示过滤器示例:
从capture.pcap读取前50个数据包
对.pcap文件应用Wireshark显示过滤器。
参数:
file_path(必需):.pcap或.pcapng文件的路径filter(必需):Wireshark显示过滤器表达式packet_count(可选):要返回的最大数据包数(默认值:100)示例:
从capture.pcap筛选tcp.port == 443的数据包
从.pcap文件生成协议统计信息。
参数:
file_path(必需):.pcap或.pcapng文件的路径示例:
为capture.pcap生成协议统计信息
跟踪TCP流并提取负载数据。
参数:
file_path(必需):.pcap或.pcapng文件的路径stream_id(可选):要跟踪的TCP流ID(默认值:0)示例:
从capture.pcap跟踪TCP流0
将.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设计用于跨多个平台工作:
该工具在可用时使用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仓库。