Skip to main content
Glama
andreolf
by andreolf

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" --json

Scannen Sie einen veröffentlichten Server (gestartet über npx -y <package>):

node bin/mcp-audit.js --npm @modelcontextprotocol/server-filesystem --timeout 20000

Scannen 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.md

targets.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.md

mcpaudit-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 }}"   # optional

Der 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 checks

Was geprüft wird (Startheuristiken – erweitern Sie diese)

  • no-auth – Server akzeptiert initialize ohne 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 output

Roadmap (dieses Skelett in das virale Ding verwandeln)

  1. 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.)

  2. Statischer-Key- vs. OAuth-Erkennung – die Auth-Challenge / das Token-Format untersuchen.

  3. Tiefere SSRF-Prüfung – tatsächlich Fetch-artige Tools gegen eine Canary-interne URL in einer Sandbox aufrufen.

  4. Batch-Modus + Ranglistemcpaudit-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.“

  5. Registry-Fetcher (mcpaudit-fetch) – HTTP-Ziele aus dem offiziellen MCP-Registry abrufen (nur Erkennung, führt niemals aus). npm-Pakete werden auskommentiert ausgegeben. --include-npm zum Opt-in.

  6. Einbettbares AbzeichenMCP Security: A shields.io-artiges Abzeichen, das Server zu ihrer README hinzufügen (2026-Ranking-Signal und kostenlose Verbreitung für Sie).

  7. 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

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

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

  • A
    license
    -
    quality
    C
    maintenance
    Security scanner for MCP servers. Detects prompt injection, command injection, auth bypass, and excessive permissions across tools, resources, and prompts.
    48
    2
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Security 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).
    2
    MIT
  • A
    license
    -
    quality
    A
    maintenance
    Security 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.
    43
    MIT
  • A
    license
    C
    quality
    B
    maintenance
    Security 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.
    2
    1
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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