mcpField
H
har-forensics-mcp

har-forensics-mcp

本地服务
github.com/aryanspv安全112 周前更新

关于 har-forensics-mcp

har-forensics-mcp 可在编辑器中审计本地 HAR 文件,识别潜在数据泄露和第三方请求,并生成脱敏报告;处理过程不发起网络请求。

主要功能

  1. 01查找磁盘上的 HAR 文件
  2. 02生成脱敏审计摘要
  3. 03检查第三方及其来源链
  4. 04分析性能与 CSP
  5. 05搜索、比较和查看请求
  6. 06写出脱敏后的 HAR 文件

适用场景

  1. 01检查捕获文件是否含泄露凭据
  2. 02识别第三方及其依赖项
  3. 03比较文件中的新增第三方或性能退化
  4. 04为工单准备脱敏 HAR 文件

MCP 相关

通过 stdio 向 MCP 客户端提供 HAR 分析工具。服务读取本地文件,不发起网络请求。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"aryanspv-har-forensics": {
"command": "npx",
"args": [
"-y",
"har-forensics-mcp"
]
}
}
}
启动命令npx -y har-forensics-mcp

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

安装包
npmhar-forensics-mcp0.3.2

工具

13

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

参数类型必填说明
pathstring是此机器上 .har 文件的绝对或相对路径。

详细介绍

har-forensics-mcp

在编辑器中审计 .har 捕获文件。其他 HAR 工具只会列出请求,而这个工具会回答你打开文件时真正想知道的问题:泄露了什么、页面上有哪些人,以及发送到任何地方之前需要移除什么。

从本地磁盘读取文件、进行计算,然后写入标准输出。它不会发起任何网络请求,这正是关键所在:真实捕获文件中包含有效的会话 Cookie、Authorization 标头,有时甚至还有银行卡号。

适用于任何通过 stdio 使用 MCP 的工具——Cursor、Claude Code、Windsurf、Zed、VS Code Copilot。

设置

Claude Code:

claude mcp add --scope user har-forensics -- npx -y har-forensics-mcp

--scope user 会为所有目录注册此服务。不加该参数时,服务只会作用于运行命令时所在的目录——命令仍会报告成功,但在其他目录中会静默地无法使用这些工具。

Cursor——项目中的 .cursor/mcp.json,或全局配置 ~/.cursor/mcp.json:

{
  "mcpServers": {
    "har-forensics": {
      "command": "npx",
      "args": ["-y", "har-forensics-mcp"]
    }
  }
}

Windsurf / Zed / VS Code Copilot 在各自的 MCP 配置文件中使用相同的 command + args 结构。

重启编辑器,然后让工具处理一个捕获文件:

对 ~/Downloads/checkout.har 运行 analyze_har

需要 Node 20+。除此之外不需要任何东西——无需克隆、构建、API 密钥或账户。

工具

工具用途
find_captures“我的 .har 文件在哪里?”——扫描 Downloads、Desktop、Documents、当前工作目录和临时目录。
analyze_har“这个捕获文件里有什么?”——分诊概览,每项检查给出一个判定。从这里开始。
har_brief将完整审计结果输出为已脱敏的 Markdown,可供引用或粘贴的产物。
har_findings按严重程度筛选的发现,按严重程度从高到低排列。支持分页。
har_vendors所有第三方服务,按影响范围评分(0–100),并标注 HTTP Archive 审查等级。
har_provenance谁加载了谁——供应商引入的第四方服务。
har_perf“为什么这么慢?”——按主要阶段列出最慢的请求、每个源的握手开销、未压缩资源,以及重定向造成的时间损耗。
har_csp根据观察到的流量生成一份起始版 Content-Security-Policy。
har_hunt查询请求——is:thirdparty、status:>=400、type:script、host:…。返回条目索引。
har_entry查看某个请求的所有信息:标头、Cookie、正文和计时阶段。
har_curl将该请求转换为可运行的 cURL 或 fetch(),并遮蔽凭据。
har_diff对比前后版本:新增了什么、哪些方面出现退化、哪些第三方服务是新增的。
sanitize_har写入可安全附加到工单的 .redacted.har 文件。

har_hunt → har_entry → har_curl 是完整流程:找到请求、查看请求、重放请求。每个返回列表的工具都接受 limit 参数并告知总数,因此不会静默地只返回第一页,却让人误以为这就是全部结果。

除 sanitize_har 外,所有工具都标注了 readOnlyHint,并且全部设置为 openWorldHint: false——这就是下文的无网络保证,它以客户端可读取并据此操作的形式呈现,而不是只靠一段文字让你自行相信。

它从 Web 应用继承的三个特性

**不联网。**分析器中没有 fetch,这种传输方式也不会添加 fetch。这是产品的核心原则——Cloudflare 于 2026 年 3 月推出了一种 DLP 配置文件,可以检测 HTTP 流量中的 HAR 文件,并允许管理员直接阻止上传,因为未经清理的 HAR 是已知的凭据窃取途径。

**只提供摘要,绝不倾倒原始数据。**每个工具返回的都是经过整理的结论,而非原始条目;每个列表都有数量上限,并会注明总数。这个工具所针对的捕获文件可能包含数万条记录,大小达数百 MB;把条目列表交给 Agent 会耗尽其上下文,还会让它处理分析器已经完成的任务时变慢。(在 0.2.0 之前,代码一直没有兑现这一承诺——har_findings 没有上限,在包含 10,000 条记录的捕获文件中返回约 93,000 个令牌。27 条记录的演示文件只返回约 175 个令牌,这正是问题一直未被发现的原因。)

默认脱敏。har_brief 和 har_findings 都使用与浏览器导出相同的脱敏器,该脱敏器基于一张共享的密钥模式表构建。与拥有下载文件夹的人类相比,在编辑器中读取捕获文件的 Agent 更可能把一条发现粘贴到聊天窗口中。

它不会做什么

  • 覆盖任何内容。sanitize_har 会拒绝写入现有目标文件或原始捕获文件。
  • **读取超过约 512 MB 的文件。**会主动进行限制,而不是任由程序因内存不足而崩溃——该上限略低于 V8 的最大字符串长度,因为文件会作为一个字符串整体读取。
  • **回答它无法理解的查询。**拼错的筛选条件(is:third-party、staus:404)会报错,而不是返回空结果。在 0.2.0 之前,这两种情况的响应相同,这意味着拼写错误可能会让人误以为捕获文件没有问题。
  • **根据你的时钟判断时间。**HAR 是历史记录,因此令牌是否过期要根据每条记录的 startedDateTime 来判断。与当前时间比较,会把一周前捕获文件中的每个令牌都标记为已过期,从而掩盖浏览器发送请求时确实已经失效的那个令牌。

阅读代码

此软件包只附带一个文件:dist/server.js。它有意不进行压缩——构建时将它视为供调试编辑器集成的人类阅读的文件,而不是供机器解析并压缩体积的文件——因此它就是构建产物中的代码,并且已预先构建。没有单独的源代码仓库可供克隆;随包提供的文件就是可供审计的产物。

许可证

MIT。捆绑的第三方数据由 third-party-web 生成,采用 MIT 许可证, Copyright (c) 2017 Patrick Hulce,源自 HTTP Archive。

评论

支持 Markdown

第一次接触 MCP?

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

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