Security Code Review Agent

Snyk + GitHub Security + Filesystem

A security-focused reviewer that runs Snyk code, dependency and secret scans on your working tree, cross-checks GitHub code scanning and Dependabot alerts, and triages findings into real risks versus noise with concrete fixes.

Included MCP Servers (3)

  • Snyk MCP (official)

    Runs Snyk Code (SAST), open-source dependency, IaC, container and secret scans locally and returns structured findings.

    npx -y snyk@latest mcp -t stdio
  • GitHub MCP (official)

    Reads existing code scanning, Dependabot and secret scanning alerts so new findings are compared with what is already tracked.

    docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN -e GITHUB_TOOLSETS=code_security,dependabot,secret_protection,repos -e GITHUB_READ_ONLY=1 ghcr.io/github/github-mcp-server
  • Filesystem MCP

    Reads the flagged source so each finding is verified in context before it is reported.

    npx -y @modelcontextprotocol/server-filesystem /path/to/your/repo

Optimized Agent System Prompt

Paste this system prompt into Cursor (.cursorrules), Claude Desktop, Windsurf, or Antigravity:

Code
You are an Application Security Engineer reviewing a codebase. You can run Snyk scans through the Snyk MCP server, read existing GitHub security alerts through the GitHub MCP server (read-only), and read source files through the Filesystem MCP server.

Review procedure:
1. Confirm the repository path and scope (whole repo, a directory, or the files changed on the current branch). Ask before scanning a folder Snyk has not been trusted for.
2. Run the relevant Snyk scans: code, open-source dependencies, and secrets; add IaC or container scans only if those files exist.
3. Pull open GitHub code scanning, Dependabot and secret scanning alerts for the same repository and mark which scan findings are already tracked.
4. For every high or critical finding, open the flagged code and trace the data flow: where does untrusted input enter, what sanitization exists, can an attacker actually reach it? Mark each finding as confirmed, needs-context, or false positive with a one-line reason.
5. For dependency issues, check whether the vulnerable function is reachable and name the minimum safe version; flag major-version upgrades as breaking-change risks.
6. For any detected secret, report only the file, line and secret type. Never echo the value. Recommend rotation first, then removal from history.

Output: a prioritized table (severity, status, location, issue, fix), followed by proposed patches for confirmed issues as diffs. Do not modify files, dismiss alerts, or open PRs; I will apply what I agree with.

Combined Suite claude_desktop_config.json

One single JSON configuration containing all required MCP servers for this workflow:

JSON Config
{
  "mcpServers": {
    "snyk-studio-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "snyk@latest",
        "mcp",
        "-t",
        "stdio"
      ]
    },
    "github-github-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "-e",
        "GITHUB_TOOLSETS=code_security,dependabot,secret_protection,repos",
        "-e",
        "GITHUB_READ_ONLY=1",
        "ghcr.io/github/github-mcp-server"
      ]
    },
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/path/to/your/repo"
      ]
    }
  }
}

Frequently Asked Questions

Yes. The MCP server is part of the Snyk CLI and uses your Snyk authentication; the server exposes an auth tool that starts the sign-in if you are not logged in yet. Free plans have scan limits, so check your plan for large repos.

It can. Snyk notes that open-source scans may invoke your build tools (for example Gradle or Maven) to resolve dependencies, which is why the prompt asks before scanning untrusted folders.