mcpField
M
mcpwatch

mcpwatch

Local
github.com/lazymac2xSecurity0Updated 22w ago

About mcpwatch

MCPWatch is an open-source security scanner for MCP servers, intended for developers and teams assessing servers before installation or in CI/CD. It runs 10 OWASP MCP Top 10 checks, reports per-check findings and an A–F grade, and maintains a public leaderboard.

Key features

  1. 0110 OWASP MCP Top 10 checks
  2. 02A–F grades with individual findings
  3. 03CLI scanning before installation
  4. 04GitHub Action CI/CD gate
  5. 05Public leaderboard and grade lookup

Use cases

  1. 01Scan an MCP server before adding it
  2. 02Gate CI/CD builds on scan grades
  3. 03Compare servers on the public leaderboard

MCP support

MCPWatch runs as an MCP server and exposes tools for scanning local servers, looking up public grades, listing leaderboard entries, and explaining OWASP checks.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"lazymac2x-mcpwatch": {
"command": "npx",
"args": [
"-y",
"mcpwatch-mcp"
]
}
}
}
Run commandnpx -y mcpwatch-mcp

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmmcpwatch-mcp0.1.1

Tools

4

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
namestringNoOptional name for the target (defaults to the directory basename)
pathstringYesAbsolute path to the directory to scan
sarifbooleanNoIf true, return findings as a SARIF v2.1.0 document for GitHub Code Scanning

Details

From the project README

MCPWatch

npm License: MIT lazymac2x/mcpwatch MCP server

Have I Been Pwned for MCP servers. Open-source security scanner that audits MCP servers against the OWASP MCP Top 10 and produces an A–F letter grade.

Overview

MCPWatch is a security tool for the MCP ecosystem that:

  • Runs 10 automated checks derived from the OWASP MCP Top 10 on any MCP server
  • Produces an A–F letter grade with per-check findings
  • Exposes an MCP server interface so AI agents can audit MCPs on demand
  • Provides a CLI for pre-install scanning in CI/CD pipelines
  • Powers a public leaderboard at mcpwatch.pages.dev with live SVG grade badges

Installation

Use with Claude Code / Cursor / Windsurf (MCP server)

Add to your MCP configuration:

{
  "mcpServers": {
    "mcpwatch": {
      "command": "npx",
      "args": ["-y", "mcpwatch-mcp"]
    }
  }
}
CLI (scan before install)
npx mcpwatch-scanner /path/to/mcp-server
GitHub Action (CI/CD gate)
- uses: lazymac2x/mcpwatch-action@v1
  with:
    path: .
    fail-below: B

MCP Tools

When running as an MCP server, MCPWatch exposes the following tools to your AI agent:

ToolDescription
scan_mcp_serverScan a local MCP server by path — returns grade + per-check findings
get_public_scoreFetch the live grade for any public MCP server by owner/repo slug
list_leaderboardReturn the top/bottom N servers from the public leaderboard
explain_checkGet a detailed explanation of any OWASP MCP Top 10 check by ID
Example: scan before adding an MCP

Ask Claude: "Use mcpwatch to scan the filesystem-mcp server at ~/mcps/filesystem-mcp before I add it to my config."

The 10 Checks (OWASP MCP Top 10)

IDCheckSeverity
MCP-01Command injection in tool handlersCritical
MCP-02Path traversal in file toolsCritical
MCP-03Unauthenticated mutationsCritical
MCP-04Prompt injection via tool descriptionsHigh
MCP-05SSRF in URL-fetching toolsHigh
MCP-06Hardcoded secret leakageHigh
MCP-07Over-permissive filesystem scopeMedium
MCP-08Missing rate limitsMedium
MCP-09Outdated dependencies with known CVEsMedium
MCP-10Missing input schema validationLow

Grading

GradeScore
A90–100 — no Critical/High findings
B75–89 — no Critical findings
C60–74 — has Critical findings, minor impact
D40–59 — multiple Critical findings
F0–39 — severe/exploitable vulnerabilities

Public Leaderboard & Badges

Every public MCP server on Smithery, npm, and the official registry is scanned daily.

Live badge — drop into any README:

[![MCPWatch score](https://api.lazy-mac.com/mcpwatch/badge/YOUR_OWNER/YOUR_REPO.svg)](https://mcpwatch.pages.dev/servers/YOUR_OWNER/YOUR_REPO)

JSON API:

GET https://api.lazy-mac.com/mcpwatch/scan/{owner}/{repo}

Architecture

mcpwatch/
├── packages/
│   ├── scanner/   # Core check engine (TypeScript, runs in Worker + CLI + Node)
│   └── cli/       # mcpwatch-scanner — npx runnable
├── workers/
│   └── crawler/   # CF Worker — scheduled crawl + scan (daily)
├── apps/
│   └── web/       # CF Pages — mcpwatch.pages.dev — public leaderboard
└── .github/
    └── workflows/ # mcpwatch-action CI gate

Requirements

  • Node.js 18+
  • The MCP server under test must be locally accessible (for scan_mcp_server / CLI)
  • No API key required for public leaderboard lookups

License

MIT — use it, fork it, contribute checks.

Contributing

Pull requests for new checks, false-positive fixes, or leaderboard improvements are welcome. See CONTRIBUTING.md for guidelines.


Pro Report $49 (in development)

Cross-repo trend analysis + Slack/Discord webhook alerts on grade drops + private MCP scanning. Email waitlist:

Related — Lumen API + MCP Catalog

If you ship MCP servers, you might want these (one-time license, lifetime updates, MIT source):

Full catalog: https://api.lazy-mac.com Profile: https://github.com/lazymac2x dev.to: https://dev.to/lazymac2x

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.