mcp-audit
mcp-audit
npm audit für MCP-Server. Richten Sie es auf einen MCP-Server und erhalten Sie eine Sicherheitsbewertung (A–F), die Folgendes abdeckt: fehlende Authentifizierung, SSRF-Oberfläche, Tools mit hohen Berechtigungen, prompt-injektionsanfällige Tool-Beschreibungen und und durchgesickerte Geheimnisse.
Warum es das gibt (Daten von 2026): Von ~7.000 öffentlichen MCP-Servern benötigen 41% keine Authentifizierung, 36,7% legen eine
SSRF-Oberfläche offen, nur 8,5% verwenden OAuth, und in einem einzigen 60-Tage-Fenster wurden 30+ CVEs eingereicht. Die Anzahl der Server
ist gesättigt (22k+ Server); die Sicherheitslage ist es nicht. Andere Tools (z. B. Invariants
mcp-scan) untersuchen einen einzelnen Server eingehend – mcpaudit fügt eine registersweite Batch-Prüfung hinzu: Richten Sie es
auf das offizielle MCP-Registry und bewerten Sie das gesamte Ökosystem auf einmal.
npm i -g @andreolf/mcpaudit # then: mcpaudit <url>
# or zero-install: npx @andreolf/mcpaudit <url>Ist die Ausführung sicher? Ja, von Haus aus: mcpaudit sendet nur einen schreibgeschützten initialize + tools/list-Handshake und untersucht die deklarierten Tools. Es führt niemals den Code eines gescannten Servers aus, es sei denn,
Sie übergeben explizit --allow-exec, um einen lokalen/npm-Server zu starten.
⚠️ Heuristischer Scanner. Die Ergebnisse beschreiben die Oberfläche (z. B. „keine Authentifizierung“, „legt ein URL-abrufendes Tool offen“), nicht nachgewiesene Exploits – ein sauberer Bericht ist keine Sicherheitsgarantie. Scannen Sie nur Server, die Sie zu testen berechtigt sind, und melden Sie Ergebnisse verantwortungsvoll. Siehe SECURITY.md.
Verwendung
Scannen Sie einen entfernten Server (Streamable HTTP):
node bin/mcp-audit.js https://example.com/mcp
node bin/mcp-audit.js https://example.com/mcp --header "Authorization: Bearer $TOKEN" --jsonScannen Sie einen veröffentlichten Server (gestartet über npx -y <package>):
node bin/mcp-audit.js --npm @modelcontextprotocol/server-filesystem --timeout 20000Scannen Sie einen lokalen Server, der durch einen Befehl gestartet wird (stdio):
node bin/mcp-audit.js --cmd "node my-server.js"Erfordert Node 18+ (verwendet globales fetch). Keine Abhängigkeiten. Installation: npm i -g @andreolf/mcpaudit dann mcpaudit <url> – oder npx @andreolf/mcpaudit <url>.
Exit-Codes: 0 sauber · 1 kritischer/hoher Befund · 2 konnte nicht scannen / falsche Verwendung. CI-freundlich.
Related MCP server: mcp-security-audit
Batch-Modus (der Launch-Audit)
Scannen Sie viele Server und erhalten Sie eine Worst-First-Rangliste sowie die aggregierten Statistiken für einen Launch-Post:
node bin/mcp-audit-batch.js targets.txt --out audit.mdtargets.txt ist ein Ziel pro Zeile (https://…, npm:<package> oder cmd:<command>; #-Kommentare erlaubt).
⚠️ Sicherheit: Das Scannen eines
npm:/cmd:-Servers führt den Code dieses Servers auf Ihrem Rechner aus. Der Batch-Modus ist standardmäßig nur HTTP und ÜBERSPRINGT lokale/npm-Ziele, es sei denn, Sie übergeben--allow-exec– tun Sie das nur innerhalb einer Sandbox/eines Containers, dem Sie vertrauen. Das massenhafte Ausführen nicht vertrauenswürdiger Pakete ist eine Remote-Code-Execution-Gefahr.
Die Ausgabe enthält die Schlagzeilenzahlen („X% der erreichbaren HTTP-Server akzeptieren initialize ohne Authentifizierung“), aus denen der Launch-Thread wird.
Die vollständige Launch-Pipeline
Ziele aus dem offiziellen MCP-Registry abrufen (nur Erkennung – führt niemals einen Server aus), dann prüfen:
node bin/mcp-audit-fetch.js --max 300 --out targets.txt # HTTP remotes = safe to scan
node bin/mcp-audit-batch.js targets.txt --concurrency 8 --out audit.mdmcpaudit-fetch gibt Registry-HTTP-Endpunkte als scanbare Zeilen und npm-Pakete als auskommentierte
Zeilen aus (Opt-in mit --include-npm, dann --allow-exec in einer Sandbox). Ein echter Durchlauf der ersten 30
Registry-Server ergab, dass 50% initialize ohne Authentifizierung akzeptieren – genau die Art von Zahl, auf der der Launch-Post aufbaut.
Einsatz in CI (GitHub Action)
Sperren Sie die Sicherheit Ihres MCP-Servers bei jedem PR. Starten Sie Ihren Server und richten Sie die Aktion darauf aus:
- name: Start my MCP server
run: node my-server.js & # or docker run ..., then wait for it to be ready
- name: Security-audit the MCP server
uses: andreolf/mcp-audit@v1
with:
url: http://localhost:3000/mcp
fail-on: D # fail the job on grade D or worse (default: F)
# header: "Authorization: Bearer ${{ secrets.MCP_TOKEN }}" # optionalDer Job gibt eine Note A–F und die Ergebnisse aus und schlägt fehl, wenn die Note auf oder unter fail-on liegt.
Auf dem gescannten Server wird nichts ausgeführt – es wird nur ein schreibgeschützter Handshake gesendet.
Test
npm test # spawns the mock insecure server (stdio + batch) and asserts findings — 12 checksWas geprüft wird (Startheuristiken – erweitern Sie diese)
no-auth – Server akzeptiert
initializeohne Anmeldeinformationen (kritisch)ssrf-surface – Tools, die URLs entgegennehmen / ausgehende Anfragen stellen (hoch)
high-privilege-tool – exec/shell/delete/write-file-artige Tools (hoch)
injection-in-description – Überschreibungs-/Injektionsformulierungen in Tool-Beschreibungen (mittel)
leaked-secret – Token-/Schlüssel-ähnliche Zeichenfolgen in Tool-Metadaten (kritisch)
Architektur
bin/mcp-audit.js CLI entry (arg parsing, exit codes for CI)
src/scan.js orchestrator
src/mcpClient.js MCP Streamable-HTTP transport: initialize + tools/list
src/checks.js heuristic security checks -> findings
src/report.js grading (A–F), badge, Markdown/JSON outputRoadmap (dieses Skelett in das virale Ding verwandeln)
✅ stdio + npm-Transports – lokale (
--cmd) und veröffentlichte (--npm, über npx) Server scannen, nicht nur entfernte URLs. Dies ermöglicht das Scannen der Top-Server des Registers für den Launch-Audit. (PyPI/uvx-Äquivalent ist ein kleiner Folge-Schritt.)Statischer-Key- vs. OAuth-Erkennung – die Auth-Challenge / das Token-Format untersuchen.
Tiefere SSRF-Prüfung – tatsächlich Fetch-artige Tools gegen eine Canary-interne URL in einer Sandbox aufrufen.
✅ Batch-Modus + Rangliste –
mcpaudit-batch targets.txt→ bewerteter Bericht + Schlagzeilenstatistiken. Dieser bewertete Bericht ist das Launch-Artefakt: „Wir haben die 200 am häufigsten installierten MCP-Server geprüft.“✅ Registry-Fetcher (
mcpaudit-fetch) – HTTP-Ziele aus dem offiziellen MCP-Registry abrufen (nur Erkennung, führt niemals aus). npm-Pakete werden auskommentiert ausgegeben.--include-npmzum Opt-in.Einbettbares Abzeichen –
MCP Security: Ashields.io-artiges Abzeichen, das Server zu ihrer README hinzufügen (2026-Ranking-Signal und kostenlose Verbreitung für Sie).Registry-Präsenz – Auflistung auf mcp.so, smithery.ai, glama.ai, PulseMCP, offiziellem MCP-Registry, und PR zu punkpeye/awesome-mcp-servers. Ein Metadatenpaket vorbereiten, bei allen einreichen.
Lizenz
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenanceSecurity scanner for MCP servers. Detects prompt injection, command injection, auth bypass, and excessive permissions across tools, resources, and prompts.482MIT
- Alicense-qualityCmaintenanceSecurity auditor for MCP servers that enumerates tools, resources, and prompts, scans for injection patterns, classifies risk levels, and produces a scored report (0-100, grades A-F).2MIT
- Alicense-qualityAmaintenanceSecurity scanner for MCP servers — vet an MCP before you wire it into an agent. Detects prompt-injection, credential exfiltration (via taint analysis), RCE, and supply-chain risks, and catches cross-server exfil chains no single server reveals. Zero-dependency local CLI, SARIF output, CI-gateable, no account.43MIT
- AlicenseCqualityBmaintenanceSecurity scanner and MCP server that catches dangerous patterns in MCP servers and AI agent projects, such as leaked secrets, shell execution, and prompt-injection text. Runs as both a CLI and MCP server with CI-friendly severity gates.21MIT
Related MCP Connectors
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Scans MCP servers for tool poisoning, prompt injection and supply chain risks.
Grade MCP servers A to F with the open behavioral litmus. npm: full toolset; hosted: lookups only.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/andreolf/mcp-audit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server