返回市场
MCP捕获服务器

MCP捕获服务器

作者:mcpcap7 星标更新:2025-10-07

项目介绍

mcpcap

<!-- mcp-name: ai.mcpcap/mcpcap -->

mcpcap logo

一个用于分析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

uv add mcpcap

使用uvx(一次性使用)

uvx mcpcap

快速开始

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文件:

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 - 时间线重建和网络映射

配置选项

模块选择

# 加载特定模块
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

示例

示例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

然后测试工具:

// 在MCP Inspector Web界面中
analyze_dns_packets("./examples/dns.pcap")
analyze_dhcp_packets("./examples/dhcp.pcap")
analyze_icmp_packets("./examples/icmp.pcap")
analyze_capinfos("./examples/dns.pcap")

架构

mcpcap的模块化设计支持轻松扩展:

核心组件

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

工具流程

MCP客户端请求 → analyze_*_packets(pcap_file)
              → BaseModule.analyze_packets()
              → Module._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协议

安全注意事项

分析PCAP文件时:

  • 文件可能包含敏感的网络信息
  • 尽可能通过HTTPS执行远程下载
  • 临时文件会自动清理
  • 考虑远程文件的来源和可信度

贡献

欢迎贡献!贡献领域包括:

  • 新协议模块:添加对HTTP、BGP、TCP等的支持
  • 增强分析:改进现有的DNS/DHCP分析
  • 安全功能:增加更多的威胁检测能力
  • 性能:优化大型PCAP文件的分析

许可证

MIT

要求

  • Python 3.10+
  • scapy(数据包解析和分析)
  • requests(远程文件访问)
  • fastmcp(MCP服务器框架)

文档

支持

对于问题、问题或功能请求,请在GitHub上打开一个issue。