mcpField
E
env-secret-exposure-analyzer-mcp

env-secret-exposure-analyzer-mcp

本地服务
github.com/vola-trebla安全023 周前更新

关于 env-secret-exposure-analyzer-mcp

面向开发者的 MCP 服务,用于查找项目文件和代码中的秘密暴露风险。它检查硬编码凭据、.gitignore 覆盖缺口及运行时日志泄漏,并以掩码预览代替完整秘密值。

主要功能

  1. 01扫描文件中的 20 多种秘密模式
  2. 02检查敏感文件的 .gitignore 覆盖
  3. 03查找日志中暴露的凭据
  4. 04报告严重级别并提供掩码预览

适用场景

  1. 01在让 AI Agent 读取项目前进行审计
  2. 02在提交项目文件前查找秘密
  3. 03定位输出凭据的调试日志

MCP 相关

向 MCP 客户端提供三个工具:扫描秘密、检查 .gitignore 覆盖情况及检测日志泄漏。结果包含文件路径、行号、严重级别和掩码预览。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"vola-trebla-env-secret-exposure-analyzer": {
"command": "npx",
"args": [
"-y",
"env-secret-exposure-analyzer-mcp"
]
}
}
}
启动命令npx -y env-secret-exposure-analyzer-mcp

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

安装包
npmenv-secret-exposure-analyzer-mcp0.2.0

工具

5

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

参数类型必填说明
extensionsarray否要扫描的文件扩展名,例如 [".ts",".js",".env"]。默认扫描常见源文件。
projectPathstring是要扫描的项目根目录绝对路径,例如 /project

详细介绍

🔐 env-secret-exposure-analyzer-mcp

npm CI License: MIT

你的 AI Agent 只需一次调试,就可能泄露你的机密。

一个 MCP 服务,用于扫描项目中的机密暴露风险——硬编码的 API 密钥、未受保护的 .env 文件,以及会在运行时打印凭据的 console.log 调用。在你的 Agent 不小心把它们读出来之前,先行发现问题。


🤔 问题所在

你让 AI Agent 调试一个配置问题。它读取 src/config.ts,发现其中有:

console.log('Config loaded:', JSON.stringify(config));
console.log(process.env.DATABASE_PASSWORD);

现在,你的数据库密码已经进入它的上下文。它可能会记录密码、将其写入摘要,或传给另一个工具。而且你的 .env 不在 .gitignore 中,所以接下来一次 git push 就会把它推送出去。

这一切都不需要 Agent 心怀恶意。它只需要想帮忙。

env-secret-exposure-analyzer-mcp 会在问题发生前将其发现。🔐


🛠️ 工具

scan_for_secrets

扫描源文件、配置文件和 .env 文件,查找 20 多种机密模式。返回文件路径、行号、严重程度和打码后的预览——绝不会返回完整值。

可检测:

  • AWS 访问密钥和机密密钥
  • GitHub 令牌(ghp_、gho_、ghs_)
  • Stripe 机密密钥/可发布密钥和 Webhook 机密(whsec_)
  • Anthropic、OpenAI API 密钥
  • SendGrid(SG.xxx)、Twilio 身份验证令牌和账户 SID
  • Google API 密钥和 OAuth 客户端机密(GOCSPX-)
  • Slack 令牌(xox*)
  • 私钥(-----BEGIN ... PRIVATE KEY-----)
  • 包含凭据的数据库 URL(postgres://user:pass@host)
  • JWT 机密、会话机密、加密密钥
  • Sentry DSN、Datadog API 密钥
  • 通用硬编码密码、机密和令牌
Secret Scan Results
  Project:       /project
  Files scanned: 24
  Findings:      5

  [CRITICAL] .env:3 — AWS Access Key
    Preview: AKIA****MPLE
  [CRITICAL] .env:7 — Database URL with password
    Preview: post****sswd
  [CRITICAL] src/auth.ts:12 — Hardcoded JWT secret
    Preview: my-s****ecret
  [HIGH] .env:14 — Hardcoded session secret
    Preview: sess****key!
  [MEDIUM] .env:28 — Sentry DSN
    Preview: http****7890
check_gitignore_coverage

检查敏感文件(.env、.env.local、secrets.json、私钥、证书)是否已纳入 .gitignore。标记可能被意外提交的文件。

Gitignore Coverage Check
  Project: /project

  ✗ .env → Add to .gitignore: .env
  ✗ .env.local → Add to .gitignore: .env.local
  ✓ secrets.json
scan_for_log_leaks

扫描源文件,查找会在运行时打印 process.env 变量或名称疑似包含机密的对象的 console.log/logger 调用。帮助发现最常见的“只是调试日志”疏忽。

Log Leak Scan
  Project:       /project
  Files scanned: 18
  Findings:      3

  [CRITICAL] src/config.ts:8
    console.log("Config loaded:", JSON.stringify(config));
  [HIGH] src/server.ts:42
    console.log(process.env.AWS_SECRET_ACCESS_KEY);
  [HIGH] src/db.ts:15
    logger.info({ password: dbConfig.password });

🧪 实际效果

一个包含 20 项机密的真实 .env 文件——数据库 URL、AWS、Stripe、Twilio、SendGrid、Google OAuth、Sentry、JWT 机密和加密密钥。在使用此 MCP 之前:AI Agent 读取文件,却不知道哪些内容属于敏感信息,随后就会在生成的代码或回复中使用这些值。

调用一次 scan_for_secrets 后:发现 16 项问题,全部按严重程度分类,所有预览均已打码。Agent 在接触任何内容之前,就能准确了解其中的风险。


⚡ 设置

{
  "mcpServers": {
    "secret-scanner": {
      "command": "npx",
      "args": ["-y", "env-secret-exposure-analyzer-mcp"]
    }
  }
}

🚀 使用方法

“扫描此项目,查找可能暴露的机密或 API 密钥。检查 .env 文件是否列在 .gitignore 中,并查找可能泄露凭据的 console.log 调用。”

Agent 会依次运行全部三个工具,并报告完整情况:哪些内容是硬编码的、哪些内容未受保护,以及哪些内容正在被记录。

搭配以下工具使用效果更佳:


📦 链接

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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