npm / mcp-server-security-scanner

Review MCP security inputs before they become production surprises.

Give your agent an MCP configuration, tool definitions, server package names and versions, or an authentication configuration. It returns structured findings with severity and remediation guidance, and can turn supplied scan results into a Markdown report.

5 MCP tools Node.js 18+ MIT license stdio by default

What it does

Five focused tools, exposed over MCP

The package performs static, rules-based checks on the data you give it. Each tool returns either a human-readable summary with JSON serialized as text, or a Markdown report.

Configuration

scan_config

Reads one JSON MCP configuration and checks its mcpServers entries for secret patterns, risky command permissions, transport and authentication indicators, and known-vulnerable package patterns.

Tool metadata

scan_tool_definitions

Examines supplied descriptions and input schemas for prompt-injection and tool-poisoning patterns, broad filesystem access, unrestricted path, command, or URL fields, and possible data-exfiltration patterns.

CVE snapshot

check_cves

Matches supplied server names and optional versions against the package's bundled 18-entry MCP CVE database, returning matching records, severities, CVSS scores, and remediation text.

Authentication

validate_auth

Reviews supplied OAuth, API-key, bearer-token, or no-auth settings for PKCE, required fields, redirect URIs, token lifetime and storage, rotation, and scope configuration.

Reporting

generate_report

Combines supplied findings or structured scan results into Markdown with a capped 0–100 risk score, severity counts, remediation details, and an eight-item SOC 2 criteria checklist.

Agent workflows

Three concrete review loops

These calls use the shipped tool names and accepted input fields exactly as registered by the server.

01 / Before merge

Review a project MCP config

Ask the agent to run scan_config against the repository's .mcp.json, then review the returned findings before merging a server addition.

tool: scan_config
{
  "configPath": "./.mcp.json"
}
02 / Before trust

Inspect tool metadata from a server

Pass a discovered tool definition to scan_tool_definitions. The agent can triage any description, schema, broad-access, or exfiltration-pattern findings before enabling the tool.

tool: scan_tool_definitions
{
  "tools": [
    {
      "name": "read_file",
      "description": "Reads a file from the workspace",
      "inputSchema": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "description": "Workspace-relative file path"
          }
        },
        "required": ["path"]
      }
    }
  ]
}
03 / Before upgrade

Check a package version against the bundled CVEs

Have the agent call check_cves with the package name and installed version, then review any snapshot matches and their remediation before rollout.

tool: check_cves
{
  "servers": [
    {
      "name": "@modelcontextprotocol/server-filesystem",
      "version": "0.5.0"
    }
  ],
  "listAll": false
}

Quickstart

Run it without installing a package globally

The published npm package is mcp-server-security-scanner. Its default transport is stdio.

Open your client's config file

  • Claude Desktop ~/Library/Application Support/Claude/claude_desktop_config.json

    Windows: %APPDATA%\Claude\claude_desktop_config.json. In the app: Settings → Developer → Edit Config.

  • Cursor ~/.cursor/mcp.json

    Or .cursor/mcp.json inside a single project.

  • Windsurf ~/.codeium/windsurf/mcp_config.json

    Cascade panel → MCP icon → edit the raw config.

Paste this entry

All three clients accept the same object. If the file already has an mcpServers block, add just the "security-scanner" entry inside it.

mcpServers entry
{
  "mcpServers": {
    "security-scanner": {
      "command": "npx",
      "args": ["-y", "mcp-server-security-scanner"]
    }
  }
}

No env block is needed to start: the first 3 tool calls total across this server's tools run without a license.

Using Claude Code instead? One command, no file

shell
$ claude mcp add --transport stdio security-scanner -- npx -y mcp-server-security-scanner

Check it registered with claude mcp list. Add a key later with --env LICENSE_KEY=your-key placed before --transport.

Restart the client, then confirm it loaded

  • Claude Desktop: quit and reopen the app, then look for MCP Security Scanner in the tools/plugin menu.
  • Cursor: Settings → Customize → MCP; the server should list its tools.
  • Windsurf: reload Cascade; the server appears under the MCP panel.
  • Claude Code: run claude mcp list and look for ✔ Connected.

Running npx -y mcp-server-security-scanner in a terminal looks frozen — that is correct. It is a stdio server: it waits silently for an MCP client on stdin and never returns a prompt. Press Ctrl+C to exit. Use the config above rather than the bare command; your client starts the process for you.

Add your license key when you buy

A key arrives on screen right after checkout. Add it as an environment variable in the same entry:

mcpServers entry with license
{
  "mcpServers": {
    "security-scanner": {
      "command": "npx",
      "args": ["-y", "mcp-server-security-scanner"],
      "env": {
        "LICENSE_KEY": "paste-your-key-here"
      }
    }
  }
}

Keys are verified offline against a public key compiled into the package — no account, no network check, no usage reporting. Lost the key? Recover it here. More detail on the FAQ.

Scope & limitations

What this scanner does not do

Treat findings as review signals, not proof that a deployment is safe or vulnerable.

No runtime or exploit testing

It does not connect to target MCP servers, execute exploits, inspect live network traffic, or continuously monitor deployments. The checks operate on supplied files and objects.

No source-repository scan

It scans one JSON MCP configuration and supplied tool metadata. It does not traverse an application repository or analyze arbitrary implementation source code.

No live vulnerability feed

CVE checks use the database bundled with the package, which reports a last-updated date of 2026-03-15. Matching uses package-name normalization and simple version-range comparisons; it does not query an external advisory service.

No certification or automatic fix

The generated SOC 2 checklist is a mapping from detected categories, not an audit or certification. The server recommends remediation but does not edit configs, rotate secrets, patch dependencies, or enforce policy.

Start with evidence

Give your agent three review calls before choosing a plan.

Run the package with no license key for the one-time three-call trial, or review the current Personal, Team, and Enterprise options on the main pricing page.