关于 env-secret-exposure-analyzer-mcp
面向开发者的 MCP 服务,用于查找项目文件和代码中的秘密暴露风险。它检查硬编码凭据、.gitignore 覆盖缺口及运行时日志泄漏,并以掩码预览代替完整秘密值。
主要功能
- 01扫描文件中的 20 多种秘密模式
- 02检查敏感文件的 .gitignore 覆盖
- 03查找日志中暴露的凭据
- 04报告严重级别并提供掩码预览
适用场景
- 01在让 AI Agent 读取项目前进行审计
- 02在提交项目文件前查找秘密
- 03定位输出凭据的调试日志
MCP 相关
向 MCP 客户端提供三个工具:扫描秘密、检查 .gitignore 覆盖情况及检测日志泄漏。结果包含文件路径、行号、严重级别和掩码预览。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| extensions | array | 否 | 要扫描的文件扩展名,例如 [".ts",".js",".env"]。默认扫描常见源文件。 |
| projectPath | string | 是 | 要扫描的项目根目录绝对路径,例如 /project |
详细介绍
🔐 env-secret-exposure-analyzer-mcp
你的 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 会依次运行全部三个工具,并报告完整情况:哪些内容是硬编码的、哪些内容未受保护,以及哪些内容正在被记录。
搭配以下工具使用效果更佳:
- tsconfig-inheritance-flattener-mcp — 用于分析 TypeScript 配置
- release-readiness-triage-mcp — 用于发布前进行 CI 分诊
- ast-impact-mapper-mcp — 用于关联代码与测试
📦 链接
- npm: npmjs.com/package/env-secret-exposure-analyzer-mcp
- GitHub: github.com/vola-trebla/env-secret-exposure-analyzer-mcp
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。