KillerSkills
Security verdicts for agent skills and MCP servers, from sandbox runs, before you install them.
作者提供的说明(英文原文)
Context-aware secret scanner: lets an AI agent scan, verify, and rewrite secrets before committing.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"leakferret": {
"command": "npx",
"args": [
"-y",
"@leakferret/mcp"
]
}
}
}在终端中运行这条命令
claude mcp add leakferret -- npx -y @leakferret/mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"leakferret": {
"command": "npx",
"args": [
"-y",
"@leakferret/mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"leakferret": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@leakferret/mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月9日
注册名称已通过 GitHub 账户 leakferrethq 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.1.13)于5个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:KillerSkills, Shipshape MCP, Penthera
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Security verdicts for agent skills and MCP servers, from sandbox runs, before you install them.
Dockerfile and Kubernetes lint for AI agents: Pod Security Standards, A–F grade, a fix per finding.
Offline, rule-based security checks for your repo, dependencies, AI agent config and local app.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
MCP-native secret scanner — verified findings, agent-applied rewrites.
leakferret is one fast Rust binary that is engine, CLI, and MCP server. It finds hardcoded secrets in your code, calls the provider to confirm which ones are actually live, and rewrites the leak in place to read from an environment variable. It runs in your terminal, in CI, and as a tool your coding agent calls before it commits — and the raw secret never leaves your machine.
Say you accidentally commit a real key, plus the usual noise:
# .env — every key below is fabricated for this example
STRIPE_SECRET_KEY=sk_live_FAKE_example_not_a_real_key # fabricated GITHUB_TOKEN=ghp_FAKE_example_not_a_real_token # fabricated SENDGRID_API_KEY=${SENDGRID_API_KEY} # a reference — not a leak ADMIN_PASSWORD=changeme # a placeholder — not a leak AWS_ACCESS_KEY_ID=[PopNx MCP ตัดค่าที่หน้าตาเหมือนกุญแจออก] # AWS's public docs example
leakferret verify calls each provider and tells you what is real and live — and stays quiet on the rest:
$ leakferret verify .
.env L2 UNKNOWN CRITICAL stripe_secret sk_l..._key L3 VERIFIED CRITICAL github_token ghp_...oken ← live, rotate it now
2 findings · 1 verified · 1 unknown
The keys above are fabricated, so the VERIFIED line illustrates what a genuinely live key reports — on these examples both would be UNKNOWN.
The ${SENDGRID_API_KEY} reference, the changeme placeholder, and the well-known [PopNx MCP ตัดค่าที่หน้าตาเหมือนกุญแจออก] example are recognized and left out — that precision is the point. Then leakferret rewrite --apply rewrites the hardcoded key in your code (it leaves .env files alone — there's nothing sensible to rewrite a secret *to* there):
# app/billing.rb (fabricated example)
…and appends STRIPE_API_KEY= to .env.example with a seed command for your secret manager. Find → confirm live → fix, with almost no false alarms.
The full secret value never leaves your machine. Only a redacted
AKIA...4XYZpreview is ever written to a report, log, or network message.
Install however you like — every package ships the same prebuilt binary.
# Ruby gem
gem install leakferret
npm i -g @leakferret/cli
go install github.com/leakferrethq/leakferret-go/cmd/leakferret@latest
cargo install leakferret-cli
Then scan the current directory:
leakferret scan .
scan respects .gitignore and also reads dotfiles such as .env. Add --git to walk commit history instead of the working tree.
Every wrapper honors a
LEAKFERRET_BINenvironment variable pointing at a
local binary, for offline or development use.
leakferret runs findings through a five-station pipeline. Each station only sees what it needs, and the raw secret never advances past disk.
.gitignore, reads dotfiles like .env, and (with --git) walks history.[PopNx MCP ตัดค่าที่หน้าตาเหมือนกุญแจออก], jwt.io samples, RFC examples. Matches are marked FIXTURE so documented examples never raise a false alarm. The catalog is bundled with the binary and can be refreshed and signature-verified.ENV.fetch / os.environ / process.env), appends a line to .env.example, and prints seed commands for your secret manager (env, Vault, Doppler, AWS Secrets Manager, or Infisical).A baseline stores one-way HMAC fingerprints of known findings — never the raw secret — so CI can fail only on *new* leaks.
MCP (Model Context Protocol) is the open standard for giving coding agents tools. Agents hardcode secrets too, and nobody reviews their diffs line by line — leakferret lets the agent self-check before it commits.
Start the server over JSON-RPC on stdio:
npx @leakferret/mcp
Add it to your mcpServers config (Claude Desktop, Cursor, Continue, Claude Code):
{
"mcpServers": { "leakferret": { "command": "npx", "args": ["@leakferret/mcp"] } } }
For Claude Code, save that block as .mcp.json in your project root, or add it with one command:
claude mcp add leakferret -- npx -y @leakferret/mcp
If you installed the native binary, you can point at it directly instead:
{
"mcpServers": { "leakferret": { "command": "leakferret", "args": ["mcp"] } } }
leakferret is also listed in the MCP Registry as io.github.leakferrethq/leakferret, so registry-aware clients can discover it.
Tools exposed: scan_repository, classify_candidates, verify_finding, propose_rewrite, and baseline_diff. A classify prompt is also provided so an agent can classify candidates inline using the model it already has. Two read-only resources expose the engine's catalog as context: leakferret://secret-types (every detectable pattern) and leakferret://verifiers (the live-verification providers).
| gitleaks | trufflehog | detect-secrets | GitGuardian | leakferret | |
|---|---|---|---|---|---|
| Live provider verification | — | ✓ | — | ✓ | ✓ |
| In-place env-var rewrite | — | — | — | — | ✓ |
| MCP server for AI agents | — | — | — | — | ✓ |
| Baseline (fail only on new) | — | — | ✓ | ✓ | ✓ |
| SARIF / Code Scanning | ✓ | ✓ | — | ✓ | ✓ |
| Free, local, no account | ✓ | ✓ | ✓ | — | ✓ |
gitleaks is the fastest pre-commit regex blocker. trufflehog set the bar for live verification. detect-secrets owns the baseline-a-legacy-repo workflow. GitGuardian is the paid platform with the broadest detectors and a dashboard. leakferret does the regex pre-filter, verifies which keys are live, rewrites the leak to an env var, and runs as an MCP server so coding agents check their own diffs. Full writeup: leakferret.com/compare.
leakferret scan Regex pre-filter only (no classifier, no verifier)
leakferret verify Scan + classify + provider verification leakferret rewrite Scan + classify + propose/apply ENV-fetch rewrites leakferret org Scan every public repo owned by a GitHub user/org leakferret baseline Manage the per-repo fingerprint baseline leakferret catalog Load and inspect the fixture catalog leakferret mcp Start the MCP server on stdio
Scan a whole GitHub account or org in one go (handy for finding leaks across all your public repos before someone else does):
leakferret org leakferrethq # all public repos for that owner
leakferret org myco --token "$GITHUB_TOKEN" --format sarif > leaks.sarif
Common flags:
# scan
leakferret scan . # working tree leakferret scan . --git # scan HEAD's commit history leakferret scan . --git --all # scan every branch / tag leakferret scan . --git --since HEAD~50 # bounded history window
leakferret verify . # best-effort verification leakferret verify . --verify-mode none --fail-on any # offline gate: exit 1 on any finding leakferret verify . --only-verified # emit only confirmed-live keys leakferret verify . --verify-mode ever-verified # fail on historical leaks leakferret verify . --verifier-timeout-secs 10
leakferret rewrite . --apply # write ENV.fetch in place leakferret rewrite . --dry-run-diff # show the diff, touch nothing leakferret rewrite . --check # CI mode: exit 1 if rewrites pending leakferret rewrite . --apply --include-unknown # also fix UNKNOWN (unconfirmed) candidates leakferret rewrite . --backend doppler # seed cmds for your manager
leakferret baseline init # create .leakferret-baseline.json (gitignores the salt) leakferret verify . --update-baseline # record current findings into the baseline leakferret baseline show leakferret baseline ignore --fingerprint # acknowledge a finding
leakferret catalog info leakferret catalog test "sk_test_4eC39..." # deterministic FIXTURE verdict leakferret catalog refresh # fetch + signature-verify update
Shared flags on scan / verify / rewrite: --format, --show-fixtures, --exclude , --only , --only-verified, --fail-on . --backend accepts env, vault, doppler, aws-secrets-manager, infisical.
Catch a secret before it is ever committed. From your repo root:
cat > .git/hooks/pre-commit <<'HOOK'
#!/bin/sh
leakferret verify . --verify-mode none --fail-on any || { echo "leakferret blocked this commit. Bypass: git commit --no-verify" exit 1 } HOOK chmod +x .git/hooks/pre-commit
--verify-mode none keeps it fully offline; --fail-on any exits non-zero on any non-fixture finding (documented examples like [PopNx MCP ตัดค่าที่หน้าตาเหมือนกุญแจออก] are still ignored). Pair it with `leakferret baseline
只显示了开头部分;其余内容请在仓库中阅读