mcpField
P
pcapport

pcapport

本地服务
github.com/CloudCorpRecords安全02 周前更新

关于 pcapport

pcapport 是面向网络运维人员和开发者的本地 PCAP 分析器,可汇总协议流量与 TCP 状况,无需联网或实时抓包。它读取经典 libpcap 文件,并提供 MCP 工具和命令行界面。

主要功能

  1. 01DNS、DHCP、ICMP 和 SIP 汇总
  2. 02TCP 连接与异常分析
  3. 03重传和流量方向分析
  4. 04抓包元数据与数据包统计
  5. 05离线处理本地文件

适用场景

  1. 01检查抓包中的 DNS 和 DHCP 活动
  2. 02排查 TCP 重置、半开连接和重传
  3. 03统计指定服务器的双向流量
  4. 04查看抓包时长、大小和封装类型

MCP 相关

它以 stdio MCP 服务运行,提供九种用于分析 PCAP 文件的工具,涵盖 DNS、DHCP、ICMP、TCP、SIP、流量和抓包信息。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-pcapport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/pcapport"
]
}
}
}
启动命令npx -y @reneturcios/pcapport

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/pcapport0.1.0
ocighcr.io/cloudcorprecords/pcapport:0.1.0

工具

9

收录的工具列表 · 更新于 1 周前

参数类型必填说明
pcap_filestring是要读取的数据包捕获文件路径。

详细介绍

pcapport

pcapport 会完全在你自己的机器上分析 PCAP 捕获文件。 指定一个经典 libpcap 文件,它就会汇总其中的内容: DNS 查询和响应码、DHCP 消息类型以及涉及的服务器和客户端、 ICMP 流量、带状态估算的 TCP 连接、TCP 异常和重传、与某台 服务器之间的流量、SIP 呼叫,以及数据包数量、持续时间和封装 等基本捕获信息。

它不会访问网络,不需要 API 密钥,也不会进行实时捕获:此 工具只会读取你指定的捕获文件。解析器是一个原创的精简实现, 支持 Ethernet(包括单个 VLAN 标签)和承载 IPv4 的原始 IP 捕获,并可解码 TCP、UDP 和 ICMP,以及解析 DNS、DHCP 和 SIP 负载。

安装

npx @reneturcios/pcapport analyze_capinfos '{"pcap_file":"capture.pcap"}'

或者运行容器镜像:

docker run -i ghcr.io/cloudcorprecords/pcapport

容器默认启动 MCP 服务。传入 CLI 参数即可将其用作 CLI。

CLI

CLI 与工具一一对应:每个工具有一个子命令,参数以单个 JSON 对象的形式传入。

pcapport analyze_capinfos '{"pcap_file":"capture.pcap"}'
pcapport analyze_dns_packets '{"pcap_file":"capture.pcap"}'
pcapport analyze_tcp_connections '{"pcap_file":"capture.pcap","detailed":true}'
pcapport analyze_tcp_retransmissions '{"pcap_file":"capture.pcap","threshold":0.05}'
pcapport analyze_traffic_flow '{"pcap_file":"capture.pcap","server_ip":"10.0.0.5","server_port":80}'
pcapport --version

退出码:成功时为 0,出错时为 1(错误信息会说明问题, 例如 PCAP 魔数错误或文件被截断),用法错误时为 2。空捕获 不算错误:工具会返回各项均为零的汇总结果。

MCP 服务

一个可执行文件提供两种用法。mcp 子命令会启动 stdio MCP 服务:

npx -y @reneturcios/pcapport mcp

MCP 客户端配置:

{
  "mcpServers": {
    "pcapport": {
      "command": "npx",
      "args": ["-y", "@reneturcios/pcapport", "mcp"]
    }
  }
}
工具
工具输入功能
analyze_dns_packetspcap_file(必需)DNS 查询/响应数量、热门查询(聚合后前 20 项)以及响应码汇总。
analyze_dhcp_packetspcap_file(必需)按消息类型统计 DHCP 数据包数量(discover、offer、request、ack 等)、服务器 IP 和客户端 MAC。
analyze_icmp_packetspcap_file(必需)按类型统计 ICMP 数量、回显请求/响应、不可达数量以及最活跃的通信方。
analyze_tcp_connectionspcap_file(必需)、server_ip、server_port、detailed按标准化的 4 元组对连接进行归类,并提供客户端/服务器、数据包数、字节数、SYN/FIN/RST 数量以及状态估算(已建立、已关闭、已重置、半开)。启用 detailed 后,还会包含每个连接的时间戳摘要。
analyze_tcp_anomaliespcap_file(必需)、server_ip、server_port统计重置连接、半开连接(有 SYN 但没有 SYN-ACK)、无数据连接和零窗口通告的数量,根据标志位和窗口字段计算。
analyze_tcp_retransmissionspcap_file(必需)、server_ip、threshold(默认值 0.02)重传指重复出现的(元组、序列号、负载长度)数据段。报告数据段数量、重传数量、重传率、是否超过阈值以及重传最严重的连接。
analyze_traffic_flowpcap_file(必需)、server_ip(必需)、server_port统计与服务器之间传输的数据包和字节数、唯一客户端数量以及按字节数排名的热门客户端。
analyze_sip_packetspcap_file(必需)按方法统计 SIP 请求,按状态类别统计响应,以及统计呼叫(Call-ID、From、To)。会处理端口 5060 上的负载,以及任何以 SIP 方法或 SIP/2.0 开头的负载。
analyze_capinfospcap_file(必需)数据包数量、持续时间、数据字节数、平均数据包大小、首末数据包时间、封装方式和捕获长度。

支持范围和限制

解析器仅支持经典 libpcap(大端/小端、微秒和纳秒时间戳), 不支持 pcapng。仅解码 IPv4;IPv6 和其他 ethertype 会计入数据包 总数,但不会进行分析。不会进行 TCP 流重组,因此 SIP over TCP 会按数据段匹配,TLS 负载则视为不透明数据。异常和状态判断 采用有意简化的近似方法,不能替代完整的 tshark 级分析。

开发

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, synthetic captures only, no network
npm run dev     # run the CLI from source via tsx

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。