SML Risk Firewall
Pre-trade risk checks for agent trades: orders vs your limits, signed receipts.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Context-aware secret scanner: lets an AI agent scan, verify, and rewrite secrets before committing.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"leakferret": {
"command": "npx",
"args": [
"-y",
"@leakferret/mcp"
]
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add leakferret -- npx -y @leakferret/mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"leakferret": {
"command": "npx",
"args": [
"-y",
"@leakferret/mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"leakferret": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@leakferret/mcp"
]
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub leakferrethq ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.13) เข้า registry 5 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี SML Risk Firewall, ipdata MCP by usefulapi, MaxMind minFraud MCP by usefulapi
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Pre-trade risk checks for agent trades: orders vs your limits, signed receipts.
Look up location, network, company and threat data for IP addresses and ASNs in ipdata.
MCP server for MaxMind minFraud — score transactions for fraud risk from your AI assistant.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ 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
ตัดมาแค่ช่วงต้น อ่านต่อใน repo