README
🚀 mcpcap
mcpcap 是一个模块化的 Python MCP(模型上下文协议)服务器,用于分析 PCAP 文件。它使大语言模型(LLMs)能够使用特定协议的分析工具来读取和分析网络数据包捕获文件,这些工具可以接受本地文件路径或远程 URL 作为参数(无需上传文件,只需提供 PCAP 文件的路径或 URL)。
🚀 快速开始
1. 启动 MCP 服务器
以无状态 MCP 服务器的形式启动 mcpcap:
# 默认:使用 DNS、DHCP 和 ICMP 模块启动
mcpcap
# 仅使用特定模块启动
mcpcap --modules dns
# 设置数据包分析限制
mcpcap --max-packets 1000
2. 连接 MCP 客户端
配置你的 MCP 客户端(如 Claude Desktop)以连接到 mcpcap 服务器:
{
"mcpServers": {
"mcpcap": {
"command": "mcpcap",
"args": []
}
}
}
3. 分析 PCAP 文件
通过提供文件路径或 URL,使用任何 PCAP 文件调用分析工具(无需上传文件):
analyze_dns_packets("/path/to/dns.pcap")
analyze_dns_packets("https://example.com/remote.pcap")
analyze_dhcp_packets("/path/to/dhcp.pcap")
analyze_dhcp_packets("https://example.com/dhcp-capture.pcap")
analyze_icmp_packets("/path/to/icmp.pcap")
analyze_icmp_packets("https://example.com/ping-capture.pcap")
analyze_capinfos("/path/to/any.pcap")
analyze_capinfos("https://example.com/capture.pcap")
✨ 主要特性
- 无状态 MCP 工具:每个分析工具都接受 PCAP 文件路径或 URL 作为参数(无需上传文件)。
- 模块化架构:具备 DNS、DHCP、ICMP 和 CapInfos 模块,易于扩展以支持新协议。
- 本地和远程 PCAP 支持:可分析本地存储的文件或通过 HTTP URL 获取的文件。
- Scapy 集成:利用 Scapy 强大的数据包解析能力。
- 专业分析提示:提供安全、网络和取证分析指导。
- JSON 响应:采用结构化数据格式,便于大语言模型处理。
📦 安装指南
mcpcap 需要 Python 3.10 或更高版本。
使用 pip
pip install mcpcap
使用 uv
uv add mcpcap
使用 uvx(一次性使用)
uvx mcpcap
💻 使用示例
基础用法
在 MCP 客户端配置中连接 mcpcap 服务器:
{
"mcpServers": {
"mcpcap": {
"command": "mcpcap",
"args": []
}
}
}
高级用法
在 MCP Inspector 中使用 mcpcap 进行分析:
npm install -g @modelcontextprotocol/inspector
npx @modelcontextprotocol/inspector mcpcap
然后在 MCP Inspector 网页界面中测试工具:
// 在 MCP Inspector 网页界面中
analyze_dns_packets("./examples/dns.pcap")
analyze_dhcp_packets("./examples/dhcp.pcap")
analyze_icmp_packets("./examples/icmp.pcap")
analyze_capinfos("./examples/dns.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 提供专业的分析提示,以指导大语言模型进行分析:
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- 重建时间线和网络映射。
配置选项
模块选择
# 加载特定模块
mcpcap --modules dns # 仅进行 DNS 分析
mcpcap --modules dhcp # 仅进行 DHCP 分析
mcpcap --modules icmp # 仅进行 ICMP 分析
mcpcap --modules dns,dhcp,icmp,capinfos # 加载所有模块(默认)
分析限制
# 限制大文件的数据包分析数量
mcpcap --max-packets 1000
完整配置示例
mcpcap --modules dns,dhcp,icmp,capinfos --max-packets 500
CLI 参考
mcpcap [--modules MODULES] [--max-packets N]
选项:
--modules MODULES:要加载的模块,用逗号分隔(默认:dns,dhcp,icmp,capinfos)。- 可用模块:
dns、dhcp、icmp、capinfos。
- 可用模块:
--max-packets N:每个文件最多分析的数据包数量(默认:无限制)。 示例:
# 启动并加载所有模块
mcpcap
# 仅进行 DNS 分析
mcpcap --modules dns
# 对大文件设置数据包分析限制
mcpcap --max-packets 1000
🔧 技术细节
架构
mcpcap 的模块化设计便于扩展:
核心组件
- BaseModule:负责共享的文件处理、验证和远程下载。
- 协议模块:实现 DNS、DHCP 和 ICMP 分析。
- MCP 接口:负责工具注册和提示管理。
- FastMCP 框架:实现 MCP 服务器。
工具流程
MCP 客户端请求 → analyze_*_packets(pcap_file)
→ BaseModule.analyze_packets()
→ 模块._analyze_protocol_file()
→ 结构化 JSON 响应
添加新模块
通过以下步骤创建新的协议模块:
- 继承
BaseModule。 - 实现
_analyze_protocol_file(pcap_file)方法。 - 向 MCP 服务器注册分析工具。
- 添加专业分析提示。 未来可能支持的模块包括:
- HTTP/HTTPS 流量分析。
- TCP 连接跟踪。
- BGP 路由分析。
- SSL/TLS 证书分析。
- 网络取证工具。
远程文件支持
两个分析工具都支持通过 HTTP/HTTPS URL 分析远程 PCAP 文件:
# 远程分析示例
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 协议。
📄 许可证
本项目采用 MIT 许可证。
⚠️ 重要提示
分析 PCAP 文件时需注意,这些文件可能包含敏感的网络信息。尽可能通过 HTTPS 进行远程下载,临时文件会自动清理,但仍需考虑远程文件的来源和可信度。
💡 使用建议
若要为项目做贡献,可以考虑添加新的协议模块(如 HTTP、BGP、TCP 等),改进现有的 DNS/DHCP 分析,增加安全特性以增强威胁检测能力,或者优化大 PCAP 文件的分析性能。
其他信息
要求
- Python 3.10+
- scapy(数据包解析和分析)
- requests(远程文件访问)
- fastmcp(MCP 服务器框架)
文档
- GitHub:github.com/mcpcap/mcpcap
- 文档:docs.mcpcap.ai
- 网站:mcpcap.ai
支持
如有问题、疑问或功能请求,请在 GitHub 上提交 issue。
微信扫一扫