mcpcap(通常指一种用于网络数据捕获的文件格式,全称可能为Microsoft Common Packet Capture,但具体名称可能因上下文而异,此处直接翻译为“MCPCAP”以保持原样)

一个用于分析PCAP文件的模块化Python MCP(模型上下文协议)服务器。mcpcap使大型语言模型(LLMs)能够使用特定于协议的分析工具读取和分析网络数据包捕获文件,这些工具接受本地文件路径或远程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服务器
以无状态MCP服务器模式启动mcpcap:
# Default: Start with DNS, DHCP, and ICMP modules
mcpcap
# Start with specific modules only
mcpcap --modules dns
# With packet analysis limits
mcpcap --max-packets 10002. 连接您的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事务(DISCOVER、OFFER、REQUEST、ACK) - 识别DHCP客户端和服务器 - 监控IP地址分配和租约信息 - 分析DHCP选项和配置 - 检测DHCP异常和安全问题
ICMP分析工具
analyze_icmp_packets(pcap_file)完整的ICMP流量分析
- 分析带有响应时间的ping请求和回复 - 识别网络连接性和可达性问题 - 追踪TTL值和路由路径(traceroute数据) - 检测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 四向握手捕获icmp.pcap- ICMP ping 和 traceroute 流量
与MCP Inspector一起使用
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的模块化设计支持轻松扩展:
核心组件
- BaseModule(基础模块)共享文件处理、验证和远程下载
- 协议模块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文件的分析
许可证
麻省理工学院(MIT)
要求
- Python 3.10及以上版本
- Scapy(数据包解析与分析)
- 请求(远程文件访问)
- fastmcp(MCP服务器框架)
文档
- GitHub:
- 文档: docs.mcpcap.ai(可译为“docs.mcpcap.ai网站”或根据具体语境简化为“mcpcap.ai文档平台”,但直接保留原样也是可接受的,因为网址通常不翻译)
- 网站: mcpcap.ai(该表述本身在中文中无直接对应意义,若理解为一个网站或平台名,可保持原样或根据上下文翻译为类似“MCPCAP人工智能平台”等,但具体翻译需依据实际语境)
支持
对于问题、疑问或功能请求,请在GitHub上提交一个议题。
