mcp-security-review — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited mcp-security-review (Plugin) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
A bulleted imperative like {match} tells the agent to never reveal, disclose, or mention something to the user. Used adversarially it can instruct the agent to hide its tool calls or lie about what it did — stripping the transparency a user relies on to trust the agent.
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.
A lightweight MCP server for security reviews built for vibe coding — injects security requirements prior to code generation, scans dependencies for CVEs, and verifies generated code, all without breaking your coding rhythm.
Jump to installation:
Install all three security skills directly into Claude Code — no MCP server, no Jira, no configuration required.
/plugin install Srajangpt1/ai_security_crewThis gives you three commands available in any project:
| Command | When to use |
|---|---|
/sec-review | Before coding — get risk level, OWASP guidelines, and a security prompt for AI code generation |
/verify-code | After coding — review code for vulnerabilities with a checklist and prioritized fixes |
/threat-model | For new features — identify threats with evidence links, mitigations, and optional threat-model.md |
If you prefer to add the skills to a specific project only (instead of globally), clone this repo and the slash commands in .claude/commands/ are available automatically in Claude Code when working in the project directory.
| Tool | When to Use |
|---|---|
lightweight_security_review | Before any coding task — get security requirements and guidelines for your tech stack |
assess_ticket_security | Before coding from a Jira ticket — pull security requirements directly from the ticket |
perform_threat_model | For significant new features — generate a structured threat model (STRIDE, attack surfaces) |
| Tool | When to Use |
|---|---|
verify_packages | When adding packages — confirm they exist with valid versions (catches hallucinated package names) |
scan_dependencies | When adding packages — scan for CVEs and check reachability in your code |
| Tool | When to Use |
|---|---|
verify_code_security | After generating code — AI-powered security review against OWASP guidelines |
| Tool | When to Use |
|---|---|
search_previous_threat_models | Before creating a new threat model — check if one already exists in Confluence |
update_threat_model_file | After perform_threat_model — write the threat model to threat-model.md in the repo |
The server automatically sends workflow instructions to any connecting agent (Claude, Cursor, etc.) via the MCP initialize handshake. Agents will follow this workflow without additional configuration:
lightweight_security_review (or assess_ticket_security for Jira tickets)verify_packages, then scan_dependencies with the code that uses themverify_code_security and follow the review_prompt to report findingsperform_threat_model and persist with update_threat_model_filescan_dependencies uses OSV.dev to find CVEs and performs reachability analysis to determine if vulnerable code paths are actually called:
| Status | Meaning |
|---|---|
reachable | Vulnerable function is called in your code — action required |
not_reachable | Vulnerable function is not called |
not_imported | Package is not imported at all |
uncertain | AI analyzed the code but could not determine reachability |
no_code_provided | No code snippets were passed to the tool |
Reachability is determined by (in order): OSV function-level symbols → keyword matching against the vuln summary → AI analysis via ctx.sample().
docker build -t mcp-security-review:latest .Add to your MCP config (Claude Desktop, Cursor, etc.):
{
"mcpServers": {
"sec-review": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "JIRA_URL",
"-e", "JIRA_USERNAME",
"-e", "JIRA_API_TOKEN",
"-e", "CONFLUENCE_URL",
"-e", "CONFLUENCE_USERNAME",
"-e", "CONFLUENCE_API_TOKEN",
"mcp-security-review:latest"
],
"env": {
"PATH": "/usr/local/bin:/usr/bin:/bin",
"JIRA_URL": "https://your-domain.atlassian.net",
"JIRA_USERNAME": "[email protected]",
"JIRA_API_TOKEN": "your-token"
}
}
}
}Supported methods:
JIRA_API_TOKEN, CONFLUENCE_API_TOKENJIRA_PERSONAL_TOKEN, CONFLUENCE_PERSONAL_TOKENdocker run --rm -it mcp-security-review:latest --oauth-setupRun as a persistent HTTP service instead of stdio:
# Streamable HTTP (recommended)
docker run --rm -p 8000:8000 mcp-security-review:latest --transport streamable-http
# SSE
docker run --rm -p 8000:8000 mcp-security-review:latest --transport sseIncludes 101 OWASP Cheat Sheets loaded automatically into security assessments. Add your own org-specific guidelines:
python3 scripts/add_custom_guideline.pyOr manually create markdown files in src/mcp_security_review/security/guidelines/docs/:
category: your_category
priority: high
tags: tag1, tag2, tag3
# Your Guideline Title
...See docs/ADDING_CUSTOM_GUIDELINES.md for details.
Pre-commit hooks enforce code quality (Ruff, Prettier, Pyright). Run uv run pytest before submitting.
Never commit API tokens. See SECURITY.md for best practices.
Licensed under MIT — see LICENSE.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.