Skip to main content
Glama
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.