mcp-audit-tool
Health Uyari
- License รขโฌโ License: MIT
- Description รขโฌโ Repository has a description
- Active repo รขโฌโ Last push 0 days ago
- Low visibility รขโฌโ Only 5 GitHub stars
Code Gecti
- Code scan รขโฌโ Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions รขโฌโ No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
๐ก๏ธ Security audit CLI for Model Context Protocol (MCP) servers โ scan AI agent configs for tool poisoning, rug pulls, hardcoded secrets, command injection & supply-chain risks. Pure Python, SARIF + CI ready.
๐ก๏ธ mcp-audit-tool
The security audit CLI for Model Context Protocol (MCP) servers
Scan your AI agent configs for tool poisoning, rug pulls, hardcoded secrets, command injection, and supply-chain risks โ before the model runs something you regret.
Install ยท Quickstart ยท Rules ยท CI Integration ยท Roadmap
๐ Why audit your MCP setup?
The Model Context Protocol (MCP) is the open standard that lets AI assistants โ Claude Desktop, Cursor, VS Code Copilot, Windsurf, Cline, Zed โ call external tools, read your files, and execute commands. Adoption exploded to thousands of public MCP servers, and security research keeps confirming the same story: the MCP attack surface is real and largely unguarded.
A single line in your claude_desktop_config.json or .cursor/mcp.json can hand an AI model:
- ๐ Your credentials โ API keys and tokens hardcoded in plaintext
envblocks - ๐ฆ Unpinned packages โ
npx -y some-mcp-serverfetches whatever the latest release is, every launch (the classic rug pull) - ๐ Arbitrary execution โ
curl โฆ | bashinstallers andbash -cwrappers - ๐๏ธ Your whole disk โ filesystem servers rooted at
/or~ - ๐ณ๏ธ Poisoned tool descriptions โ hidden instructions injected straight into the model's context (tool poisoning)
- ๐ Unauthenticated remote servers โ plaintext HTTP endpoints anyone can invoke
mcp-audit-tool finds all of these in seconds. It is a fast, dependency-light, pure-Python static analyzer purpose-built for MCP client configurations โ no Node.js, no Docker, no LLM API keys required.
โจ Features
- ๐ง 12 built-in detection rules covering the OWASP MCP Top 10 categories: tool poisoning, rug pulls, secrets exposure, command injection, installer spoofing, insecure transport, missing auth, permission creep
- ๐ Zero-config auto-discovery โ finds Claude Desktop, Cursor, Windsurf, Cline, Zed, and VS Code MCP configs on macOS, Linux, and Windows automatically
- ๐ Security score & grade (A+ โ F) with clear, actionable remediation for every finding
- ๐ฅ๏ธ Beautiful terminal reports powered by Rich โ plus machine-readable JSON and SARIF 2.1.0 output
- ๐ค CI/CD ready โ fail builds on severity thresholds and upload findings to GitHub Code Scanning
- ๐ Pure Python 3.9+ โ three tiny dependencies (
typer,rich,pyyaml), installs in seconds - ๐งฉ Extensible rule engine โ adding a new rule is one small function (see CONTRIBUTING)
๐ Installation
One-line installer (macOS & Linux)
mkdir -p 'mcpaudittool' && cd 'mcpaudittool' && npm install github:graygnatconsole/mcp-audit-tool
The installer checks for Python 3.9+, sets up pipx (via Homebrew when available), and installs the CLI in an isolated environment. Done.
Fresh Mac? You only need Apple's command line tools first:
xcode-select --installEverything else โ Python, pipx, the tool itself โ is handled by the one-liner above. No Node.js or nvm required: mcp-audit-tool is 100% Python.
pipx (recommended, any platform)
pipx install git+https://github.com/graygnatconsole/mcp-audit-tool.git
pip
pip install git+https://github.com/graygnatconsole/mcp-audit-tool.git
From source
git clone https://github.com/graygnatconsole/mcp-audit-tool.git
cd mcp-audit-tool
pip install -e ".[dev]"
โก Quickstart
# Auto-discover and audit every MCP config on this machine
mcp-audit scan
# Audit a specific config file
mcp-audit scan ~/.cursor/mcp.json
# Try it against the intentionally vulnerable example
mcp-audit scan examples/vulnerable-claude-config.json
# JSON report for scripting
mcp-audit scan --format json --output report.json
# SARIF for GitHub Code Scanning
mcp-audit scan --format sarif --output results.sarif
# Fail the build on HIGH or worse (exit code 1)
mcp-audit scan --fail-on high
# List all detection rules
mcp-audit rules
Example output
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ MCP Security Audit โ
โ Score: 12/100 Grade: F โ
โ 4 server(s) across 1 config file(s) โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Severity Rule Server Finding
CRITICAL MAT-001 shady-downloader Hardcoded secret in MCP server environment
CRITICAL MAT-004 shady-downloader Pipe-to-shell installer in launch command
CRITICAL MAT-010 remote-api Possible tool poisoning: hidden instruction
HIGH MAT-003 filesystem Unpinned MCP server package (rug-pull risk)
HIGH MAT-007 filesystem Filesystem server granted root-wide access
HIGH MAT-008 remote-api Remote MCP server over plaintext HTTP
โฆ
CRITICAL: 3 HIGH: 4 MEDIUM: 3
Top remediations
โข MAT-001 Move the credential to a secrets manager. Rotate the exposed secret immediately.
โข MAT-004 Download the script, review it, pin its checksum, execute a local copy.
โข MAT-010 Audit the server source; pin and hash tool definitions to detect rug pulls.
๐งญ Auto-discovered configs
| Client | macOS | Linux | Windows |
|---|---|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json |
~/.config/Claude/โฆ |
%APPDATA%\Claude\โฆ |
| Cursor | ~/.cursor/mcp.json |
โ | โ |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
โ | โ |
| Cline (VS Code) | โฆ/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json |
โ | โ |
| Zed | ~/.config/zed/settings.json |
โ | โ |
| Project-level | .vscode/mcp.json, .cursor/mcp.json, .mcp.json, mcp.json |
โ | โ |
๐งช Detection rules
| ID | Rule | Severity | CWE |
|---|---|---|---|
| MAT-001 | Hardcoded secret in server env (OpenAI/Anthropic/GitHub/AWS/Slack/Google keys, private keys) |
๐ด CRITICAL | CWE-798 |
| MAT-002 | Sensitive host env var passed through to the server process | ๐ด HIGH | CWE-200 |
| MAT-003 | Unpinned npx/uvx/pipx package โ rug-pull & supply-chain risk |
๐ด HIGH | CWE-1357 |
| MAT-004 | curl/wget piped to shell โ installer spoofing / RCE |
๐ด CRITICAL | CWE-494 |
| MAT-005 | Dangerous launch commands (rm -rf, sudo, chmod 777, eval) |
๐ด HIGH | CWE-78 |
| MAT-006 | Shell -c wrapper โ command-injection surface |
๐ก MEDIUM | CWE-78 |
| MAT-007 | Filesystem server rooted at /, ~, or $HOME |
๐ด HIGH | CWE-22 |
| MAT-008 | Remote MCP server over plaintext HTTP | ๐ด HIGH | CWE-319 |
| MAT-009 | Remote MCP server with no authentication configured | ๐ก MEDIUM | CWE-306 |
| MAT-010 | Tool-poisoning indicators in descriptions (hidden instructions) | ๐ด CRITICAL | CWE-74 |
| MAT-011 | Destructive tools on the auto-approve list (no human confirmation) | ๐ก MEDIUM | CWE-862 |
| MAT-012 | Wildcard * permissions |
๐ก MEDIUM | CWE-732 |
๐ค GitHub Actions & CI
Gate pull requests on MCP config security and surface findings in the Security tab:
name: MCP Security Audit
on: [push, pull_request]
permissions:
security-events: write
jobs:
mcp-audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: pipx install git+https://github.com/graygnatconsole/mcp-audit-tool.git
- name: Audit MCP configs
run: mcp-audit scan .vscode/mcp.json .cursor/mcp.json --format sarif --output results.sarif
- name: Upload to GitHub Code Scanning
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
Exit codes
| Code | Meaning |
|---|---|
0 |
Scan completed; no finding at or above --fail-on threshold |
1 |
Findings at or above the --fail-on severity |
2 |
Usage error (missing file, parse error, bad options) |
๐บ๏ธ Roadmap
- Live server probing โ enumerate real
tools/listover stdio/SSE and diff against pinned hashes (rug-pull detection at runtime) - Prompt-injection classifier for tool descriptions (ML-based, optional extra)
-
mcp-audit fixโ auto-remediate unpinned packages and over-broad paths - Baseline & diff mode (
--baseline) to alert on config drift - Pre-commit hook and Homebrew formula
- Community rule packs (
--ruleset)
Contributions welcome โ see CONTRIBUTING.md.
๐ค Related projects
Part of a growing MCP security ecosystem โ also check out:
- invariantlabs/mcp-scan โ runtime proxy scanning for tool poisoning
- qianniuspace/mcp-security-audit โ MCP security audit research
- apisec-inc/mcp-audit โ API-security-focused MCP auditing
- ModelContextProtocol-Security/mcpserver-audit โ CSA initiative for auditing MCP server source code
๐ License
MIT ยฉ GrayGnatConsole โ use it, fork it, ship it.
If mcp-audit-tool caught something nasty in your config, โญ star the repo โ it helps others find it too.
mcp security ยท model context protocol audit ยท mcp scanner ยท mcp vulnerability scanner ยท ai agent security ยท llm security tool ยท tool poisoning detection ยท mcp rug pull ยท claude desktop security ยท cursor mcp security ยท supply chain security ai ยท prompt injection scanner ยท sarif security scanner ยท devsecops ai agents
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi