Mcpcap

Mcpcap

🚀 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)。
    • 可用模块:dnsdhcpicmpcapinfos
  • --max-packets N:每个文件最多分析的数据包数量(默认:无限制)。 示例
# 启动并加载所有模块
mcpcap

# 仅进行 DNS 分析
mcpcap --modules dns

# 对大文件设置数据包分析限制
mcpcap --max-packets 1000

🔧 技术细节

架构

mcpcap 的模块化设计便于扩展:

核心组件

  1. BaseModule:负责共享的文件处理、验证和远程下载。
  2. 协议模块:实现 DNS、DHCP 和 ICMP 分析。
  3. MCP 接口:负责工具注册和提示管理。
  4. FastMCP 框架:实现 MCP 服务器。

工具流程

MCP 客户端请求 → analyze_*_packets(pcap_file)
→ BaseModule.analyze_packets()
→ 模块._analyze_protocol_file()
→ 结构化 JSON 响应

添加新模块

通过以下步骤创建新的协议模块:

  1. 继承 BaseModule
  2. 实现 _analyze_protocol_file(pcap_file) 方法。
  3. 向 MCP 服务器注册分析工具。
  4. 添加专业分析提示。 未来可能支持的模块包括:
  • 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 上提交 issue。

  • 0 关注
  • 0 收藏,34 浏览
  • system 提出于 2025-09-30 01:15

相似服务问题

相关AI产品