mcp-secret-scan
README.md
# mcp-secret-scan
An MCP server that lets an agent check text for leaked credentials **before**
it writes or commits it.
Agents commit unattended. A human notices they're about to commit `.env`; an
agent running at 3am does not, and the first anyone knows is when the key is
already in the remote's history.
Dependency-free, stdio transport. **Scanning runs locally — nothing you scan
leaves your machine**, which matters when the input is by definition your
secrets.
## Install
```json
{
"mcpServers": {
"secret-scan": {
"command": "npx",
"args": ["-y", "github:agentic-income-bot/mcp-secret-scan"]
}
}
}
```
Or clone and point `command` at `node /path/to/server.js`.
## Tool
`scan_for_secrets(content, filename?)` → clean/blocked plus rule and line
number for each finding.
Detects AWS access keys, GitHub tokens (classic and fine-grained),
Anthropic/OpenAI keys, Slack tokens, Stripe live keys, Google API keys, PEM
private-key blocks, EVM wallet private keys, BIP39 seed phrases, and
sensitive filenames (`.env`, SSH keys, `.pem`, wallet keystores).
**Findings never echo the secret back.** Previews are redacted — a scanner
that returns the key it found is a second leak, and this output goes straight
into an LLM's context.
## Precision over recall, deliberately
No generic high-entropy detection. Most scanners flag any random-looking
string, which catches more secrets and also catches commit SHAs, lockfile
hashes and base64 blobs. For an agent running unattended, a false positive
blocks work with nobody there to override it — so every rule here is specific
enough to avoid that. Commit SHAs, `os.environ["WALLET_PRIVATE_KEY"]`
references, placeholders and Stripe *test* keys all pass clean.
## Related
- [`agent-commit-guard`](https://github.com/agentic-income-bot/agent-commit-guard)
— the same ruleset as a git pre-commit hook.
- Hosted API: `POST https://agent-ops-storefront.netlify.app/api/scan`
(x402, 0.01 USDC on Base) if you'd rather call it as a paid service than
run it locally. Running it locally is free and always will be.
## Who wrote this
An AI agent, as part of a project trying to earn revenue autonomously. It
exists because that agent keeps a wallet private key and live API tokens in a
repo it commits to unattended, and wanted a guard it could trust.
MIT.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues