Scannt MCP server, Source-Trees und Packages auf Sicherheitslücken, Protokoll-Konformität und Coverage-Gaps.
Auch bekannt als devlab-group/mcp-scanner
- Stars
- 35
- Tools
- —
- Downloads, 30 Tage
- —
- Neueste Version
- —
- Letzter Commit
- 20. Okt. 2026
- Lizenz
- Apache-2.0
Was ist scanner MCP?
scanner ist ein MCP server. Scannt MCP server, Source-Trees und Packages auf Sicherheitslücken, Protokoll-Konformität und Coverage-Gaps.
Zusammenfassung generiert aus dem README des Projekts
Über scanner MCP server
Die Hauptfunktion von mcp-scanner ist die Absicherung von Model Context Protocol Implementierungen durch das Auditieren von Live-Servern, Source-Trees und Packages. Entwickler nutzen dieses Tool, um Sicherheitslücken zu identifizieren, die Protokoll-Konformität zu verifizieren und Coverage-Gaps in ihren MCP-Deployments zu finden. Es unterstützt verschiedene Scan-Methoden, darunter das Scannen von Remote-URLs, die Analyse lokaler Source-Trees und die Inspektion von npm-Packages, ohne dabei Install-Scripts auszuführen.
User können den Scanner gegen Remote-Endpoints, lokale stdio-Server oder bestehende Client-Configs ausführen. Für High-Security-Umgebungen bietet das Tool einen Runtime-stdio-Modus, der statisch gelinkte ELF-Executables innerhalb eines Containers ausführt. Es bietet Deep-Inspection-Capabilities wie die Source-to-Sink Dataflow-Analyse für Go, Python, JavaScript, TypeScript, Java und Rust sowie Checks auf Prompt Injection und Tool Poisoning.
Die Integration in CI/CD-Pipelines erfolgt über spezifische Exit-Codes und die Möglichkeit, Ergebnisse im SARIF-Format auszugeben. Der Scanner nutzt verschiedene Probe-Levels, um die Interaktion zu steuern – von einfachem Auslesen von Deklarationen bis hin zum Senden von malformed Protokoll-Nachrichten, um die Rejection-Logik zu testen. Er benötigt libyara für Signature Matching und kann via Go installiert werden.
Was du damit machen kannst
- 1Quellcode-Sicherheit verifizierenFühre eine Dataflow-Analyse über mehrere Dateien in einem lokalen Repository durch.
- 2npm-Packages sicher inspizierenScanne ein veröffentlichtes Package auf Sicherheitslücken, ohne dessen Installations-Scripts auszuführen.
Geschrieben aus dem README des Projekts. Jeder Use Case wurde gegen ein Zitat daraus geprüft.
Automatisierte Checks
Geluften am 14. Nov. 2026Vollständiger Bericht →Noch nicht verifiziert. Ein Server benötigt einen Score von 80, keine kritischen Befunde und genug Daten für unsere Prüfung. Wie die Checks funktionieren · Was du für mehr Punkte verbessern kannst
- Source Repository verknüpft und erreichbardevlab-group/mcp-scanner is public and reachablegithub.com/devlab-group/mcp-scanner ↗Bestanden
- Paket nennt dieses Repository als QuelleNicht geprüft
- Build-Provenienz (Sigstore-Attestierung)Nicht geprüft
- Open Source Lizenz (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗Bestanden
- Commit oder Release im letzten JahrLast commit or release 2026-10-20github.com/devlab-group/mcp-scanner ↗Bestanden
- OpenSSF ScorecardNicht geprüft
- Package-Name ähnelt keinem populären PackageNicht geprüft
- Keine kritischen Advisories im Paket oder seinen AbhängigkeitenNicht geprüft
- Keine versteckten Anweisungen an das Modell0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersBestanden
- Destruktive Tools sind markiertNicht geprüft
- Remote-Endpoint beantwortet den MCP-HandshakeNicht geprüft
README
Auf GitHub ansehenmcp-scanner
A security scanner for Model Context Protocol servers. It scans live servers,
source trees, and packages, and reports both findings and coverage gaps.
SAFE requires every required analyzer to finish without a reported coverage
gap:
COMPLETED + SAFE required analysis ran, nothing blocking
COMPLETED + UNSAFE required analysis ran, something blocking
PARTIAL + UNKNOWN an analyzer could not finish
ERROR + UNKNOWN an analyzer failed
SKIPPED + UNKNOWN no analyzer produced usable analysis
Timeouts, crashes, unexplained files, and missing statuses downgrade the scan.
An analyzer error is never self-excusing; only an explicit best-effort policy
can exempt it. A known limitation is that any recorded file-skip reason accounts
for all skipped files, so some incomplete file scans can still be SAFE.
Install
go install github.com/devlab-group/mcp-scanner/cmd/mcp-scanner@latest
Signature matching requires libyara and a tagged build:
# Debian, Ubuntu
sudo apt install libyara-dev pkg-config
# Fedora, RHEL
sudo dnf install yara-devel pkgconf-pkg-config
# macOS
brew install yara pkg-config
make build-yara
See the YARA installation guide
for source builds. If /usr/local/lib is outside the linker path, run
sudo ldconfig or set LD_LIBRARY_PATH=/usr/local/lib. Builds without the
tag report YARA as unavailable.
Use
Scan a remote server:
mcp-scanner remote https://mcp.example.com/mcp
Scan a trusted stdio server as a child process:
mcp-scanner stdio -- npx -y @example/mcp-server
This runs the target on your machine with your privileges. For untrusted code,
use source or package, which do not execute it. runtime stdio runs only an
absolute, statically linked ELF executable in a container and needs a trusted
snapshot.
Scan the servers declared in your MCP client configuration:
mcp-scanner known-configs --run
--run scans remote entries. Stdio entries are skipped unless you also pass
--include-stdio, and any skipped stdio entry makes the command exit 3.
Scan a source tree, or a published package:
mcp-scanner source ./my-mcp-server
mcp-scanner package npm:@example/mcp-server@1.4.0
Gate a pipeline:
mcp-scanner remote https://mcp.example.com/mcp --format sarif --output results.sarif --fail-on high
Exit codes:
| Code | Meaning |
|---|---|
| 0 | scan completed, policy passed |
| 1 | bad flags or configuration |
| 2 | scan completed, policy failed |
| 3 | scan could not determine an answer |
| 4 | the scanner itself broke |
--fail-on defaults to high, so a pipeline that never sets it still stops
on a high or critical finding. Pass --fail-on none to report without
gating.
Treat exit code 3 as a pipeline failure. It means the scan did not finish.
What it checks
- MCP protocol conformance, capability declarations against actual behaviour, and how the server handles malformed input
- Authentication, token validation and session binding
- Prompt injection, tool poisoning, hidden Unicode and credential harvesting in the text a server hands a model
- Source-to-sink dataflow across files, in Go, Python, JavaScript, TypeScript, Java and Rust
- Mismatch between what a tool says it does and what its handler reaches
- Dependency vulnerabilities and package contents, without running install scripts
- Optional sandboxed confirmation of static findings
- Optional model-assisted review that supplements deterministic evidence
Scanning safely
By default, the scanner discovers capabilities without invoking real tools.
--active-probes none connect and read declarations
--active-probes safe also send malformed protocol messages a correct server must reject
--active-probes tool-calls permit tools named with --allow-tool-call
safe is the default. Its tools/call probes use an invalid name or a name
that does not exist, which a conforming server rejects before dispatch.
A loose server may dispatch such a request before validating the name. No
setting invokes arbitrary declared tools on a live server or sends intentionally
destructive requests. The runtime analyzer can invoke declared tools only inside
its sandbox.
Documentation
Development
make check # gofmt, vet, test, race, vulnerability scan, version check
make build
Three rules hold the design together: SAFE must mean the analysis ran,
every finding carries evidence, and every analyzer reports what it did not
look at.
Security
Report vulnerabilities privately. See SECURITY.md.
License
Apache License 2.0. See LICENSE. Binaries also include the third-party components listed in THIRD_PARTY_NOTICES.
scanner MCP Fragen
Welche Sprachen werden bei der Source-to-Sink Dataflow-Analyse unterstützt?
Der Scanner unterstützt Dataflow-Analysen über Dateien hinweg in Go, Python, JavaScript, TypeScript, Java und Rust.
Ist es sicher, Live-Server zu scannen?
Ja, standardmäßig nutzt der Scanner 'safe' active Probes, die malformed Protokoll-Nachrichten senden, die ein konformer Server ablehnen muss, ohne dabei beliebige Tools aufzurufen.