Secrets leak detector
scan_secretsSecrets leak detector: finds API keys, tokens, private keys, seed phrases, JWTs and connection strings (AWS, GitHub, OpenAI, Anthropic, Stripe, Slack, Google and 30+ more) in text or a URL; masked findings with line numbers, optional redacted copy. Use before logging, committing, pasting, summarising or sending text that might hold credentials: configs, .env files, logs, diffs, tool output. Pass text or url. Returns found, count, severity (high, medium, low or none), findings[] {type e.g. aws-access-key-id or github-token, provider, severity, confidence, masked, line, column}, byProvider counts, summary and, with redact: true, the same text with each secret replaced by [REDACTED:type]. Nothing is stored. Price: $0.002 per call from Exepal credit; not charged if the call fails. Includes free daily calls.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "scan_secrets"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public URL to fetch and scan instead of text | |
| text | No | Text to scan: a config, log, diff, prompt, document or tool output (up to 2,000,000 characters) | |
| redact | No | Also return `redacted`: the text with every secret replaced by [REDACTED:type] (default false) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Present when a url was fetched | |
| count | No | ||
| found | No | ||
| stats | No | ||
| status | No | ||
| summary | No | ||
| finalUrl | No | ||
| findings | No | In document order, up to 100 | |
| redacted | No | The input with every secret replaced by [REDACTED:type]; only with redact: true | |
| severity | No | high, medium, low or none | |
| byProvider | No | Count per provider |