mcpcap

用于分析PCAP文件的模块化Python MCP(模型上下文协议)服务器。mcpcap使LLM能够使用特定于协议的分析工具读取和分析网络数据包捕获,这些工具接受本地文件路径或远程URL作为参数(无文件上传-提供PCAP文件的路径或URL)。
概述
mcpcap使用模块化架构来分析PCAP文件中的不同网络协议。每个模块都提供专门的分析工具,可以与任何PCAP文件独立调用,使其非常适合与Claude Desktop和其他MCP客户端集成。
主要特点
- 无状态MCP工具:每个分析都接受PCAP文件路径或URL作为参数(无文件上传)
- 模块化架构:DNS、DHCP、ICMP和CapInfos模块,可轻松扩展新协议
- 本地和远程PCAP支持:分析来自本地存储或HTTP URL的文件
- Scapy集成:利用scapy的全面数据包解析功能
- 专业分析提示:安全、网络和取证分析指导
- JSON响应:针对LLM消费优化的结构化数据格式
安装
mcpcap需要Python 3.10或更高版本。
使用pip
pip install mcpcap使用紫外线
uv add mcpcap使用uvx(一次性使用)
uvx mcpcap快速开始
1.启动MCP服务器
将mcpcap启动为无状态MCP服务器:
# Default: Start with DNS, DHCP, and ICMP modules
mcpcap
# Start with specific modules only
mcpcap --modules dns
# With packet analysis limits
mcpcap --max-packets 1000测试提交
2.连接您的MCP客户端
配置您的MCP客户端(如Claude Desktop)以连接到mcpcap服务器:
{
"mcpServers": {
"mcpcap": {
"command": "mcpcap",
"args": []
}
}
}#测试提交
3.分析PCAP文件
通过提供文件路径或URL(不是文件上传),将分析工具用于任何PCAP文件:
DNS分析:
analyze_dns_packets("/path/to/dns.pcap")
analyze_dns_packets("https://example.com/remote.pcap")DHCP分析:
analyze_dhcp_packets("/path/to/dhcp.pcap")
analyze_dhcp_packets("https://example.com/dhcp-capture.pcap")ICMP分析:
analyze_icmp_packets("/path/to/icmp.pcap")
analyze_icmp_packets("https://example.com/ping-capture.pcap")CapInfos分析:
analyze_capinfos("/path/to/any.pcap")
analyze_capinfos("https://example.com/capture.pcap")可用工具
DNS分析工具
analyze_dns_packets(pcap_file):完成DNS流量分析
- 提取DNS查询和响应 - 识别查询的域和子域 - 分析查询类型(A、AAAA、MX、CNAME等) - 跟踪查询频率和模式 - 检测潜在的安全问题
DHCP分析工具
analyze_dhcp_packets(pcap_file):完成DHCP流量分析
- 跟踪DHCP事务(发现、提供、请求、确认) - 识别DHCP客户端和服务器 - 监控IP地址分配和租用信息 - 分析DHCP选项和配置 - 检测DHCP异常和安全问题
ICMP分析工具
analyze_icmp_packets(pcap_file):完成ICMP流量分析
- 分析ping请求并回复响应时间 - 识别网络连接和可达性问题 - 跟踪TTL值和路由路径(跟踪路由数据) - 检测ICMP错误消息(无法访问,超过时间) - 监控潜在的基于ICMP的攻击或侦察
CapInfos分析工具
analyze_capinfos(pcap_file):PCAP文件元数据和统计信息
- 文件信息(大小、名称、链接层封装) - 数据包统计(计数、数据大小、平均数据包大小) - 时间分析(持续时间、时间戳、数据包速率) - 数据吞吐量指标(字节/秒,比特/秒) - 类似于Wireshark的capinfos(1)实用程序
分析提示
mcpcap提供专门的分析提示来指导LLM分析:
DNS提示
security_analysis-专注于威胁检测、DGA域、DNS隧道network_troubleshooting-识别DNS性能和配置问题forensic_investigation-时间线重建和证据收集
DHCP提示
dhcp_network_analysis-网络管理和IP管理dhcp_security_analysis-安全威胁和恶意DHCP检测dhcp_forensic_investigation-DHCP事务的取证分析
ICMP提示
icmp_network_diagnostics-网络连接和路径分析icmp_security_analysis-基于ICMP的攻击和侦察检测icmp_forensic_investigation-时间线重建和网络映射
配置选项
模块选择
# Load specific modules
mcpcap --modules dns # DNS analysis only
mcpcap --modules dhcp # DHCP analysis only
mcpcap --modules icmp # ICMP analysis only
mcpcap --modules dns,dhcp,icmp,capinfos # All modules (default)分析极限
# Limit packet analysis for large files
mcpcap --max-packets 1000完整配置示例
mcpcap --modules dns,dhcp,icmp,capinfos --max-packets 500CLI参考
mcpcap [--modules MODULES] [--max-packets N]选项:
--modules MODULES:要加载的逗号分隔模块(默认值:dns,dhcp,icmp,capinfos)
- 可用模块: dns, dhcp, icmp, capinfos
--max-packets N:每个文件要分析的最大数据包数(默认值:无限制)
示例:
# Start with all modules
mcpcap
# DNS analysis only
mcpcap --modules dns
# With packet limits for large files
mcpcap --max-packets 1000示例
PCAP文件示例包含在 examples/ 目录:
dns.pcap-用于测试DNS分析的DNS流量dhcp.pcap-DHCP 4路握手捕获icmp.pcap-ICMP ping和跟踪路由流量
与MCP检查器一起使用
npm install -g @modelcontextprotocol/inspector
npx @modelcontextprotocol/inspector mcpcap然后测试工具:
// In the MCP Inspector web interface
analyze_dns_packets("./examples/dns.pcap")
analyze_dhcp_packets("./examples/dhcp.pcap")
analyze_icmp_packets("./examples/icmp.pcap")
analyze_capinfos("./examples/dns.pcap")建筑
mcpcap的模块化设计支持轻松扩展:
核心组件
- 基础模块:共享文件处理、验证和远程下载
- 协议模块:DNS、DHCP和ICMP分析实现
- MCP接口:工具登记和提示管理
- FastMCP框架:MCP服务器实现
刀具流
MCP Client Request → analyze_*_packets(pcap_file)
→ BaseModule.analyze_packets()
→ Module._analyze_protocol_file()
→ Structured JSON Response添加新模块
通过以下方式创建新的协议模块:
- 继承自
BaseModule - 实施
_analyze_protocol_file(pcap_file) - 在MCP服务器上注册分析工具
- 添加专门的分析提示
未来的模块可能包括:
- HTTP/HTTPS流量分析
- TCP连接跟踪
- BGP路由分析
- SSL/TLS证书分析
- 网络取证工具
远程文件支持
这两种分析工具都通过HTTP/HTTPS URL接受远程PCAP文件:
# Examples of remote analysis
analyze_dns_packets("https://wiki.wireshark.org/uploads/dns.cap")
analyze_dhcp_packets("https://example.com/network-capture.pcap")
analyze_icmp_packets("https://example.com/ping-test.pcap")
analyze_capinfos("https://example.com/network-metadata.pcap")特征:
- 自动临时下载和清理
- 对……的支持
.pcap,.pcapng,以及.cap文件 - 支持HTTP/HTTPS协议
安全考虑
分析PCAP文件时:
- 文件可能包含敏感的网络信息
- 尽可能通过HTTPS执行远程下载
- 临时文件会自动清理
- 考虑远程文件的来源和可信度
贡献
欢迎投稿!贡献领域:
- 新协议模块:添加对HTTP、BGP、TCP等的支持。
- 增强分析:改进现有的DNS/DHCP分析
- 安全功能:添加更多威胁检测功能
- 演出:优化大型PCAP文件的分析
许可证
麻省理工学院
需求
- Python 3.10+
- scapy(数据包解析和分析)
- 请求(远程文件访问)
- fastmcp(MCP服务器框架)
文档
- GitHub:
- 文档: docs.mcpcap.ai
- 网站: mcpcap.ai
支持
如有疑问、问题或功能请求,请在GitHub上打开问题。
