Secret Scanner

io.github.GuardBee由 GitHub 账号 GuardBee 发布v1.1.1更新于 Nov 3, 2026

Scans files for leaked secrets and API keys

已验证STDIO仅桌面开发者工具安全与监控

概览

AI 生成的概览

本地 MCP 服务器,可扫描文本、文件、目录、Git 历史和编码代理会话记录,查找泄露的密钥和 API Key。

可以做什么
  • 扫描文本字符串或代码片段中的泄露密钥和 API Key
  • 扫描单个文件,或递归扫描目录,并自动跳过 node_modules、.git、dist 和二进制文件
  • 扫描 Git 仓库的暂存改动或每次提交新增的行,找出已从文件删除但仍留在历史中的密钥
  • 扫描本机编码代理(Claude Code、Codex、Gemini CLI、Continue)的会话记录,查找粘贴进对话或被命令打印的密钥
  • 列出扫描器可检测的所有密钥规则
适用场景
适合在提交或分享前让助手检查项目、配置文件或代码片段是否泄露凭据,也适合审计 Git 历史和代理会话记录,找出已经暴露、需要轮换的密钥。
运行要求
以本地 stdio 进程运行,从 npm 包 @guardbee/mcp-secret-scanner 安装(需要 Node.js,通常通过 npx 启动)。未声明任何账号、API Key 或请求头。它会读取本机的文件、目录、Git 仓库和代理会话记录目录。
安装前请注意
扫描结果只对匹配值做部分脱敏(保留前 4 位和后 4 位),仍会暴露真实密钥的片段。对密钥的在线有效性验证仅在 CLI 中提供,MCP 工具不会执行。可选遥测默认关闭;设置 GUARDBEE_TELEMETRY=1 后会把服务器、工具、成功状态、耗时和文件路径等短参数值发送给第三方。扫描代理会话记录会暴露已发送给模型提供方的密钥,应尽快轮换。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Secret Scanner,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

@guardbee/mcp-secret-scanner

🇬🇧 English | 🇹🇷 Türkçe | 🇨🇳 中文 | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇧🇷 Português | 🇪🇸 Español | 🇩🇪 Deutsch

[npm version] [npm downloads] [License: MIT]

An MCP server that scans your source files, directories, and environment configs for exposed API keys, passwords, tokens, and other secrets. Ask Claude directly whether your project is leaking secrets.

Telemetry is off by default. With GUARDBEE_TELEMETRY=1 it sends the server, tool, success, duration and short parameter values such as a file path; longer strings and fields like content, token or password are replaced with a placeholder. See @guardbee/mcp-telemetry.


Features

  • 76 Secret Patterns — AWS, Azure, GCP, GitHub, GitLab, Stripe, OpenAI, Anthropic, OpenRouter, Groq, Hugging Face, Slack, Twilio, SendGrid, DigitalOcean, Cloudflare, Supabase, Vault, PyPI, Shopify, Linear, Notion, Atlassian and more — plus the Turkish providers iyzico, PayTR, Netgsm and İleti Merkezi, matched on their variable names since their keys have no prefix. The rules live in @guardbee/guard-core, so @guardbee/mcp-security-proxy masks the same formats in tool results at runtime
  • File & Directory Scanning — a single file or an entire project tree
  • Git History & Staged Scanning — --history scans every line any commit added, so a key deleted from the files but still in the repository is found, reported once at the commit that added it (with author and date); --staged scans only what you are about to commit
  • Baseline — --write-baseline records today's findings as hashes (never the secrets, safe to commit); --baseline then reports only new ones, so an existing repo can adopt the scanner in CI without fixing everything first. SARIF results carry a stable partialFingerprints value
  • High-Entropy Values — a random-looking value assigned to a secret-like name (WEBHOOK_SIGNING_SECRET=… in .env, client_secret: in YAML, "internalApiKey" in JSON) is reported even when no provider rule knows its format. Randomness is measured as Shannon entropy (hex values need 32+ characters; values without digits need more bits, so a camel-case passphrase does not count); public/publishable, *_hash, *_id and *_url names, placeholders and ${VAR} references are left alone, and a value a provider rule already reported is not reported twice. Medium severity, low in test files; --no-entropy (or entropy: false in the MCP tools) turns it off
  • Agent Transcripts — scan --agent-history (MCP: scan_agent_history) scans what coding agents keep on your machine: Claude Code (~/.claude/projects, ~/.claude.json), Codex (~/.codex), Gemini CLI (~/.gemini/tmp) and Continue (~/.continue/sessions). A key pasted into a chat or printed by a command the agent ran stays there — and was already sent to the model provider, so rotate it. Each secret is reported once per agent with how often it appears; the entropy check is off here unless --entropy, since transcripts are full of code the agent read
  • Large Line Files — .jsonl, .ndjson, .ipynb and .log files over 1 MB (transcripts, notebooks with outputs, logs) are read line by line instead of being skipped
  • Live Verification (CLI only) — --verify asks each provider whether a found key still works, through a read-only identity endpoint (GitHub /user, OpenAI /models, Slack auth.test, …): GitHub, GitLab, OpenAI, Anthropic, Slack, Stripe, Hugging Face, npm, SendGrid, Groq, OpenRouter and DigitalOcean. Each key goes only to its own provider, once, and never appears in the output; findings are marked live / invalid / unknown and live ones are listed first. --fail-on=live fails CI only for keys that still work. The MCP tools never verify, so an agent cannot send your secrets anywhere on its own
  • Smart Skipping — directories like node_modules, .git, dist, build, .next are skipped automatically
  • Safe Redaction — matches are shown as first 4 + stars + last 4 characters
  • Allowlist Support — allowlist known test/fake values
  • 71 Unit Tests — 100% passing test suite

Quick Start

bash
npm install -g @guardbee/mcp-secret-scanner

Add to claude_desktop_config.json:

json
{  "mcpServers": {    "guardbee-secret-scanner": {      "command": "npx",      "args": ["-y", "@guardbee/mcp-secret-scanner"]    }  }}

MCP Tools

ToolDescription
scan_textScans the given text for secrets
scan_fileScans a single file
scan_directoryRecursively scans a directory and its subdirectories
scan_gitScans a git repository's staged changes or every commit's added lines (history)
scan_agent_historyScans coding agents' transcripts on this machine (Claude Code, Codex, Gemini CLI, Continue)
list_patternsLists all active secret patterns

Example Usage

You can ask Claude:

"Scan my project for secrets: /Users/me/my-app"

"Are there any secrets in this .env file?"

"Is this text safe: export API_KEY=sk-abc123..."


Detected Secret Types

CategoryExamples
CloudAWS Access Key, AWS Secret, GCP API Key
Source ControlGitHub PAT, GitLab Token
PaymentsStripe Secret/Publishable Key
AIOpenAI API Key, Anthropic API Key, HuggingFace Token
CommunicationSlack Bot Token, Twilio Auth Token, SendGrid Key
DatabasePostgreSQL URL, MySQL URL, MongoDB URI, Redis URL
CryptographyRSA Private Key, EC Private Key, OpenSSH Key, PGP Key
WebJWT Token, Bearer Token
Package/Platformnpm Token, Docker Hub Token, Vercel Token
GenericSECRET=, PASSWORD=, API_KEY= patterns

Security Note

This tool partially redacts matched values in scan results (e.g. sk_live_abc1...xyz9). Full values are never logged or exported.


CLI — CI/CD Integration

In addition to MCP server mode, this can also be used directly as a CLI:

bash
# Scan a project directorynpx @guardbee/mcp-secret-scanner scan ./my-project
# Scan a single filenpx @guardbee/mcp-secret-scanner scan .env
# Fail only on critical/highnpx @guardbee/mcp-secret-scanner scan . --fail-on=high
# JSON output (for CI reporting)npx @guardbee/mcp-secret-scanner scan . --format=json# Secrets pasted into Claude Code / Codex / Gemini CLI / Continue sessions on this machinenpx @guardbee/mcp-secret-scanner scan --agent-history# Which of the found keys still work? (sends each key to its own provider)npx @guardbee/mcp-secret-scanner scan . --history --verify --fail-on=live# Pre-commit: only the lines you are about to commitnpx @guardbee/mcp-secret-scanner scan --staged
# Every commit on every branch (finds keys deleted from the files)npx @guardbee/mcp-secret-scanner scan . --historynpx @guardbee/mcp-secret-scanner scan . --history=main..HEAD   # just this branch
# Adopt an existing repo: record known findings once, then fail only on new onesnpx @guardbee/mcp-secret-scanner scan . --history --write-baseline=.guardbee-secrets-baseline.jsonnpx @guardbee/mcp-secret-scanner scan . --history --baseline=.guardbee-secrets-baseline.json

Exit codes: 0 = no secrets found · 1 = secrets found · 2 = error

GitHub Actions

yaml
name: Secret Scanon: [push, pull_request]
jobs:  secret-scan:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4        with:          fetch-depth: 0   # full history for --history      - name: Scan for exposed secrets        run: npx @guardbee/mcp-secret-scanner scan . --history --baseline=.guardbee-secrets-baseline.json --fail-on=high

GitLab CI

yaml
secret-scan:  image: node:20  script:    - npx @guardbee/mcp-secret-scanner scan . --fail-on=high  only:    - merge_requests    - main

Pre-commit Hook

bash
# .git/hooks/pre-commitnpx @guardbee/mcp-secret-scanner scan --staged --fail-on=high || exit 1

Development

bash
npm installnpm test          # 71 unit testsnpm run build     # TypeScript compile

License

MIT — GuardBee

Feedback

Questions, ideas, or a false positive? Start a thread in GitHub Discussions or open an issue. If GuardBee is useful to you, a ⭐ on the repository helps others find it.

来源:packages/secret-scanner/README.md,提交 bc5997d

工具

6

scan_text

Scan a text string or code snippet for exposed secrets and API keys

输入参数labelcontent必填entropy

scan_file

Scan a single file for exposed secrets and API keys

输入参数path必填entropy

scan_directory

Recursively scan a directory for exposed secrets and API keys. Automatically skips node_modules, .git, dist, and binary files.

输入参数path必填entropyexcludeincludebaselinemaxFiles

scan_git

Scan a git repository for secrets in what git says was added: the staged changes (before a commit) or every commit's added lines (history). History finds secrets that were deleted from the files but are still in the repository.

输入参数mode必填path必填rangeentropybaselinemaxCommits

scan_agent_history

Scan the transcripts coding agents keep on this machine (Claude Code, Codex, Gemini CLI, Continue) for secrets that were pasted into a chat or printed by a command. Such a secret was already sent to the model provider and should be rotated. Each secret is reported once with how often it appears.

输入参数entropy

list_patterns

List all secret patterns that the scanner can detect

无需输入参数。

版本历史

12
  1. v1.1.1最新Oct 30, 2026
  2. v1.0.2Oct 22, 2026
  3. v0.6.11Oct 21, 2026
  4. v0.6.10Oct 20, 2026
  5. v0.6.8Oct 19, 2026
  6. v0.6.7Oct 16, 2026
  7. v0.6.6Oct 15, 2026
  8. v0.6.4Oct 14, 2026
  9. v0.6.3Oct 14, 2026
  10. v0.6.1Oct 13, 2026
  11. v0.6.0Oct 11, 2026
  12. v0.3.0Oct 9, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分