A comprehensive security scanner for Model Context Protocol (MCP) servers that detects vulnerabilities and security issues in your MCP server implementations.
A comprehensive security scanner for Model Context Protocol (MCP) servers that detects vulnerabilities and security issues in your MCP implementations.
npm install -g mcp-watch
npm install mcp-watch
git clone https://github.com/yourusername/mcp-watch.git
cd mcp-watch
npm install
npm run build
# Scan a GitHub repository
mcp-watch scan https://github.com/user/mcp-server
# Scan with JSON output
mcp-watch scan https://github.com/user/mcp-server --format json
# Filter by severity
mcp-watch scan https://github.com/user/mcp-server --severity high
# Filter by category
mcp-watch scan https://github.com/user/mcp-server --category credential-leak
Note: If you don't want to download npm then just substitute mcp-watch
with node dist/main.js
.
Example: node dist/main.js scan https://github.com/user/repo
--format <type>
- Output format: console
(default) or json
--severity <level>
- Minimum severity: low
, medium
, high
, critical
--category <cat>
- Filter by vulnerability categorycredential-leak
- Hardcoded credentials and insecure storagetool-poisoning
- Malicious tool descriptionsdata-exfiltration
- Data theft and parameter injectionprompt-injection
- Prompt manipulation attackstool-mutation
- Dynamic tool changessteganographic-attack
- Hidden content in escape sequencesprotocol-violation
- MCP protocol security issuesinput-validation
- Command injection, SSRF, path traversalserver-spoofing
- Server impersonationtoxic-flow
- Dangerous data flowsaccess-control
- Permission and access issuesπ Scanning repository: https://github.com/user/mcp-server
π Based on vulnerablemcp.info, HiddenLayer, Invariant Labs, and Trail of Bits research
π Scanning for credential vulnerabilities...
π§ͺ Scanning for tool poisoning vulnerabilities...
π― Scanning for parameter injection vulnerabilities...
π Scanning for prompt injection vulnerabilities...
π MCP SECURITY SCAN RESULTS
===============================
π Summary by Severity:
π¨ CRITICAL: 2
β οΈ HIGH: 1
β‘ MEDIUM: 3
π Detailed Results:
--------------------
1. π¨ Hardcoded credentials detected
π ID: HARDCODED_CREDENTIALS
π― Severity: CRITICAL
π Category: credential-leak
π Location: src/config.ts:15
π Evidence: const apiKey = "sk-***REDACTED***"
mcp-watch/
βββ main.ts # CLI entry point
βββ types/
β βββ Vulnerability.ts # Type definitions
βββ scanner/
β βββ MCPScanner.ts # Main scanner orchestrator
β βββ BaseScanner.ts # Base scanner utilities
β βββ scanners/ # Individual vulnerability scanners
β βββ CredentialScanner.ts
β βββ ParameterInjectionScanner.ts
β βββ ...
βββ utils/
βββ reportFormatter.ts # Report formatting
# Build the project
npm run build
# Run in development mode
npm run dev scan https://github.com/user/repo
# Quick scan during development
npm run scan https://github.com/user/repo
# Clean build artifacts
npm run clean
scanner/scanners/
AbstractScanner
scan()
methodMCPScanner.ts
Example:
import { AbstractScanner } from "../BaseScanner";
import { Vulnerability } from "../../types/Vulnerability";
export class MyScanner extends AbstractScanner {
async scan(projectPath: string): Promise<Vulnerability[]> {
console.log("π Scanning for my vulnerability type...");
const vulnerabilities: Vulnerability[] = [];
// Your scanning logic here
return vulnerabilities;
}
}
This tool is based on security research from leading organizations in AI and cybersecurity, identifying novel attack vectors specific to MCP environments including:
0
- No critical or high severity vulnerabilities found1
- Critical or high severity vulnerabilities detected1
- Scan error occurrednpm run type-check
MIT License - see LICENSE file for details.
β οΈ Security Notice: This tool identifies potential security issues but should not be the only security measure. Always perform manual security reviews and follow security best practices.
kapilduraphe/mcp-watch
May 29, 2025
July 4, 2025
TypeScript