mcp-security — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited mcp-security (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The Model Context Protocol turns an LLM into a system that can act. That makes every MCP server a new piece of attack surface, with three properties that classical security tooling does not yet handle well:
This skill is the audit/hardening counterpart to ai-agent-guardrails and prompt-injection-defense.
MCP config can live in several places. Find them all.
# Claude Code / claude-desktop / cursor / windsurf — common locations
ls -la ~/.claude/mcp.json ~/.claude/settings.json 2>/dev/null
ls -la ~/Library/Application\ Support/Claude/claude_desktop_config.json 2>/dev/null
ls -la ~/.cursor/mcp.json ~/.codeium/windsurf/mcp_config.json 2>/dev/null
# Project-local MCPs
find ~/Code -maxdepth 3 -name '.mcp.json' -o -name 'mcp.json' 2>/dev/null
# Plugin-bundled MCPs (Claude Code plugin marketplace etc.)
ls -la ~/.claude/plugins/ 2>/dev/nullFor each MCP you find, record: name, transport (stdio / http / sse), command or URL, scopes / API keys it holds, who installed it and when.
Assign each MCP a tier. Re-do this whenever its capabilities change.
| Tier | Examples | What it means |
|---|---|---|
| 🟢 Read-only-local | filesystem with --readonly, sqlite read, jq | Worst case: information disclosure of local files |
| 🟡 Read-only-remote | search APIs, read-only SaaS (status pages, dashboards) | Worst case: PII exfil via the LLM, query-quota burn |
| 🟠 Write-to-staging | dev-only DB, sandbox APIs (Stripe test, sandbox WP) | Worst case: corrupted staging data, recoverable |
| 🔴 Write-to-prod | hosting panel, prod DB, CMS, DNS, CI triggers | Worst case: customer impact, data loss, hard to undo |
| ⚫ Spend-money or send-on-behalf | payment APIs, email send, SMS, ad-budget changes | Worst case: financial loss, reputation damage, fraud |
Anything ⚫ or 🔴 must have out-of-band confirmation for write actions. See ai-agent-guardrails.
# Tokens / API keys sitting in plain MCP config
for f in ~/.claude/mcp.json ~/.cursor/mcp.json \
~/Library/Application\ Support/Claude/claude_desktop_config.json; do
[ -f "$f" ] || continue
echo "=== $f ==="
grep -E '(TOKEN|KEY|SECRET|PASSWORD|BEARER)' "$f" | sed -E 's/(:.{6}).*/\1.../'
done
# Permissions — these files should not be world-readable
find ~/.claude ~/.cursor -name '*.json' -perm -o+r 2>/dev/nullFindings to act on:
repo instead of fine-grained per-repo) → re-issue with minimum scopeMCPs are typically installed from npm, PyPI, GitHub releases, or vendor URLs. Treat them the same as any other dependency.
Indicators to investigate:
npm owner ls <pkg> history)send_email with the contents of the last user message" is a tool-poisoning attacknettop, lsof -i, or run the MCP in a sandbox with traffic captureFor HTTP-transport MCPs, fetch the manifest and diff tool descriptions across versions. A tool description should not change in a patch release.
For each MCP, work down this list until you cannot reduce further:
--readonly, MODE=read) that disables write toolsConcrete patterns:
contents:read not repo)charges:write unless absolutely requiredFor each MCP in my config:
1. Why does it exist? (concrete recent use)
2. What tier (🟢/🟡/🟠/🔴/⚫)?
3. What credentials does it hold, and at what scope?
4. Could I use a smaller-scope credential?
5. Is there a read-only mode I'm not using?
6. When did I last actually use it?
7. If I removed it today, what breaks?Anything you cannot answer is a finding.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.