mcpcap 是一个模块化的 Python MCP(模型上下文协议)服务器,用于分析 PCAP 文件。它使大语言模型(LLMs)能够使用特定协议的分析工具来读取和分析网络数据包捕获文件,这些工具可以接受本地文件路径或远程 URL 作为参数(无需上传文件,只需提供 PCAP 文件的路径或 URL)。
以无状态 MCP 服务器的形式启动 mcpcap:
# 默认:使用 DNS、DHCP 和 ICMP 模块启动
mcpcap
# 仅使用特定模块启动
mcpcap --modules dns
# 设置数据包分析限制
mcpcap --max-packets 1000
配置你的 MCP 客户端(如 Claude Desktop)以连接到 mcpcap 服务器:
{
"mcpServers": {
"mcpcap": {
"command": "mcpcap",
"args": []
}
}
}
通过提供文件路径或 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")
mcpcap 需要 Python 3.10 或更高版本。
pip install mcpcap
uv add mcpcap
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")
analyze_dns_packets(pcap_file):全面的 DNS 流量分析。
analyze_dhcp_packets(pcap_file):全面的 DHCP 流量分析。
analyze_icmp_packets(pcap_file):全面的 ICMP 流量分析。
analyze_capinfos(pcap_file):PCAP 文件元数据和统计信息。
mcpcap 提供专业的分析提示,以指导大语言模型进行分析:
security_analysis - 专注于威胁检测、DGA 域名、DNS 隧道。network_troubleshooting - 识别 DNS 性能和配置问题。forensic_investigation - 重建时间线和收集证据。dhcp_network_analysis - 网络管理和 IP 管理。dhcp_security_analysis - 安全威胁和恶意 DHCP 检测。dhcp_forensic_investigation - DHCP 事务的取证分析。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
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 的模块化设计便于扩展:
MCP 客户端请求 → analyze_*_packets(pcap_file)
→ BaseModule.analyze_packets()
→ 模块._analyze_protocol_file()
→ 结构化 JSON 响应
通过以下步骤创建新的协议模块:
BaseModule。_analyze_protocol_file(pcap_file) 方法。两个分析工具都支持通过 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 文件。本项目采用 MIT 许可证。
⚠️ 重要提示
分析 PCAP 文件时需注意,这些文件可能包含敏感的网络信息。尽可能通过 HTTPS 进行远程下载,临时文件会自动清理,但仍需考虑远程文件的来源和可信度。
💡 使用建议
若要为项目做贡献,可以考虑添加新的协议模块(如 HTTP、BGP、TCP 等),改进现有的 DNS/DHCP 分析,增加安全特性以增强威胁检测能力,或者优化大 PCAP 文件的分析性能。
如有问题、疑问或功能请求,请在 GitHub 上提交 issue。