Skip to main content
Glama

CI Integration Security uv update License: MIT Docker image Status: Under Active Development

    /\   /\        ______      __              _____
   (o ) ( o)      / ____/_  __/ /_  ___  _____/ ___/___  _____
    \ \_/ /      / /   / / / / __ \/ _ \/ ___/\__ \/ _ \/ ___/
  <==\   /==>   / /___/ /_/ / /_/ /  __/ /   ___/ /  __/ /__
     \ V /      \____/\__, /_.___/\___/_/   /____/\___/\___/
     /_ _\           /____/                          by 26zl
      |_|                     Toolkit

Cybersecurity-Toolkit mit integrierter KI-Anbindung. Ein eingebetteter MCP (Model Context Protocol)-Server fährt MCP-fähigen Clients, das Tool-Registry abzufragen, den Installationsstatus zu prüfen, Tools für eine CTF-Kategorie oder ein Bug-Bounty-Ziel zu empfehlen und installierte Tools über einen geschäften Ausführungspfad auszuführen. Menü MCP-Server (KI-Integration).

Gebündelt mit einem modularen Installer für Linux und Termux (Android) mit 670+ Tools, 18 Modulen, 14 Profilen und 12 Installationsmethoden.

Was es unterscheidet: Die meisten Toolkits stop at install tools. Hier kann ein KI sie auch steuern – den Problemtyp ableiten, die richtigen Tools aus allen Modulen/Profilen auswählen und mit dir als interaktiven Begleiter arbeiten. Wenn du es explizit autorisierst, kann dieselbe MCP-Toolketting einen autonome Lösungsschleife eintreten. Standardmäßig ein Begleiter; autonom nur auf deine Anforderung hin.

Funktioniert mit

Client

Integration / Kontext

Bezeichnung

Claude Code

.mcp.json (getrackt) + .claude/skills/

Native Konfiguration enthalten

Claude Desktop: Basic configuration documented

claude_desktop_config.json

Konfigurationsbeispiel dokumentiert

OpenCode

opencode.jsonc (getrackt) + .agents/skills

Live getestet

Codex

.codex/config.toml (getrackt)

Native Konfiguration enthalten

Gemini CLI

GEMINI.md + .gemini/settings.json (getrackt)

Native Konfiguration enthalten

GitHub Copilot

.mcp.json (CLI) + .github/copilot-instructions.md

CLI live getestet; VS Code dokumentiert

Hermes Agent

User ~/.hermes/config.yaml

Live getestet

OpenClaw

User ~/.openclaw/openclaw.json + .agents/skills/

Live getestet

Cursor / Cline / Goose

Client-MCPsettings + Agent Skills

Kompatibel über MCP; Skills unterstützt

Continue

Client-MCP-Einstellungen; Regeln/Prompts für Kontext

Kompatibel über MCP

LM Studio (>=0.3.17)

mcp.json; manuell oder MCP-bereitgestellter Kontext

Kompatibel über MCP

Ollama

MCP-Host davor

Kompatibel über einen MCP-Host

Aider

—

Nicht zutreffed

Open WebUI

MCP-zu-OpenAPI-Bücke

Kompatibel über MCP-Host or Bridge

Siehe docs/AI_CLIENTS.md für eine detaillierte Konfiguration pro Client und docs/ORCHESTRATION.md für die Koordination mehrerer AGENTen über jeden MCP-Client.


So funktioniert es

Zwei Einstiegspunkte teilen sich eine gemeinsame Tool-Registry. Ein Operator führt den Bash-Installer aus, um die Vertrag auf die Platte zu legen; ein KI-Agent spricht mit dem MCP-Server, um dieselben Werkzeuge zu entdecken, zu empfehlen und auszuführen. tools_config.json ist die einheitliche Quelle der Wahrheit, die die Module definieren und die MCP-Berater lesen, und CI-Validatorinnen halten die Python- und Bash-Seite synchron.

So funktioniert's: Ein Operator führt den Bash-Installer aus, um die Tools auf der Platte zu speichern; ein KI-Agent steuert den MCP-Server an, um sie zu entdecken, zu empfehlen und auszuführen. Der Installer und der MCP-Server treffen sich bei der Registry tools\_config.json und den installierten Werkzeugen auf der Platte, wobei security.py die Werkzeugausführung steuert und CI-Validatoren die Python- und Bash-Seite synchron halten.

Mermaid-Quelle: assets/how-it-works.mmd.

Diagramm lesen: Durchgezogene Pfeile sind Laufzeit- oder Installationsaktionen; gestrichelte Pfeile sind Validierungs- und Kontextbeziehungen. Client-Konfigurationen erfolgt den systemweiten Launcher, bevor sie FastMCP erreichen. security.py regelt run_tool und run_pipeline durch die Erlaubnisliste, Argumentprüfungen und Netzwerkeinstellungen, ohne eine Shell zu verwenden. run_script bleibt eine separate, standardmäßig deaktivierte Vollcode-Ausführungs-Funktion. Agent Skills bleiben außerhalb des Ausführungspfades: .claude/skills/ ist die maßgebliche Quelle und scripts/sync-skills.sh erzeugt .agents/skills/ für Clients, die den portablen Spiegel verwenden.


Related MCP server: toolgovern

Warum nicht einfach Kali?

Kali/Parrot/BlackArch liefern die Tools; das hier ist ergänzend, kein Ersatz. Es läuft auf der Box, die du bereits hast (inklusive Termux) und ergänzt eine KI-Kontrollierende Ebene, die installierte Werkzeuge durch eine gemeinsame, gesteuerte Schnittstelle entdecken, empfehlen, verketten und ausführen kann. Willst du alle Tools? Ein Distro installate reicht. Möchtest du einen MCP-Client, der sie unter expliziter Police auswählen und ausführen kann? Genau dafür ist das hier.

Vertrauen und Sicherheit

Sicherheitsnutzer sollten paranoid sein – hier ist genau, was läuft und was gesperrt ist:

  • Default-sichere MCP. Standardmaßig verwirft CYBERSEC_MCP_ALLOW_EXTERNAL=0 Netzwerkziele, die nicht in Private/private bzw. Loopback-Bereiche aufgelöst werden, und CYBERSEC_MCP_ALLOW_SCRIPTS=0 deaktiviert run_script. Du optierst die externen Bereiche / Skripting explizit ein.

  • Geschützte Ausführung geht durch eine Tor (mcp_server/security.py): Registry-Erlaubnisliste, keine Shell (create_subprocess_exec, niemals shell=True), Argument-Sanifizierung, per Tool blockierte/blockierte Flag-Ausschlussliste (z. B. sqlmap --os-shell, nmap -iL, Liste- oder Ziel-Injection-Flags), Ziel-/Netzwerk-Police, Ratenbegrenzung, Ausgabegrenzen, Timeouts.

  • Die Ausführungspolice ist keine OS-Sandbox. Erlaubte Tools laufen mit den Rechten des MCP-Prozessbenutzers, und einige Security-Tools könKinderprozesse starten oder Plugins laden können. run_script zu deaktivieren, deaktiviert nur diesen Endpoint. führe den MCP-Server als Benutzer mit minimalsten Rechten oder in einer Isolationsgrenze aus, die für unverträgliche Targets geeignet ist.

  • Werkzeug-erkannte Police ist keine Solver-Harter Code. Der Solver wählt die Tools aus der Registry/den Beratern; the Police squat nur genug CLI-Grammatik, um das echte Ziel von einer Flaggedatei, einer Wortliste, einem Ausgabepfad, einer Konfigurationsdatei oder dem Ziel-Listen-Flag zu unterscheiden. So bleiben Normalkommentarien verwendbar, ohne dass Datei-/Config-Flags die Scope-Prüfungen umgehen.

  • Audit-Protokoll, keine Leaks. Aktionen werden als JSON in ein besitzerbezogenes (0600) rotierenden Log unter dem Benutzer-State-Verzeichnis (~/.local/state/cybersec-tools-mcp/audit.log) protokolliert. Skriptinhalte werden nie gespeichert – nur SHA256 + Länge für die Korrelation wird protokolliert – und strings, die wie Anmeldedaten aussehen, werden aus Tool-Argumenten/Argumenten entfernt.

  • Least privilege im Installer. Er läuft als root, fällt aber für geklonte-Repo-Builds und pip/cargo/gem-Installationen auf den aufrufenden Benutzer ($SUDO_USER) zurück; binäre Releases werden, wenn Prüfsummen veröffentlicht wurden, per SHA256 verifiziert.

  • Dual-use-Tooling ist geschützt. C2- und Phishing-Frameworks (Sliver, Caldera, gophish, evilginx, …) sind standardmäßig eingeschaltet und werden nur mit --include-c2 installiert (die redteam/full-Profile); die MCP-Schicht zeigt das und führt sie niemals automatisch aus.

  • Nur autorisierte Nutzung. Siehe SECURITY.md, das Supply Chain Model und den Haftungsausschluss.


Installation

Alle erforderlichen Runtimes (Python, Go, Ruby, Java, Rust, Node.js), Entwicklungsbibliotheken, pipx und Build-Tools werden automatisch installiert. Einzige Voraussetzung ist ein unterstütztes Linux-Derivat. Windows und macOS werden nicht unterstützt (verwende WSL oder Docker).

Docker ist die einzige Ausnahme – installiere es manuell, wenn du C2-Frameworks, MobSF, BeEF, BloodHound, TheHive oder Cortex (--enable-docker) möchtest. Siehe Docker-Installationsdokumentation. GitHub-Authentifizierung wird empfohlen. Der Installer lädt ca. 30 Binary-Releasecodes, ~30+ API-Kali erforderlich zu GitHub hinunter. Interesser auf 60 Anfragen/Stunde ohne Token; mit Token 10000/Stunde. Einfachste Methode:

# Install gh CLI and log in (one-time) — the installer auto-detects it
sudo apt install gh && gh auth login

Alternativ kann man ein freie Access Token exportieren:

export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx

Aus dem aktuellen Release (gepirnt, stabil, empfohlen):

# Newest tag is on the Releases page: https://github.com/26zl/cybersec-toolkit/releases
git clone --depth 1 --branch v1.1.0 https://github.com/26zl/cybersec-toolkit.git && cd cybersec-toolkit && sudo ./install.sh

Aus main (neueste Tools, Fixes, Änderunge; kann unreales, Entwicklung enthalten):

git clone https://github.com/26zl/cybersec-toolkit.git && cd cybersec-toolkit && sudo ./install.sh

Dieses Installation installiert die Werkzeuge aus allen 18 Modulen. C2/Phishing Tools und Docker-Docker Images bleiben Trinkgeld Optional; --profile full --enable-docker für die gesamte Registry:

sudo ./install.sh --profile ctf                      # CTF tools only
sudo ./install.sh --profile redteam --enable-docker   # Red team + Docker C2
sudo ./install.sh --module web --module recon          # Specific modules
sudo ./install.sh --tool sqlmap --tool nmap            # Individual tools
sudo ./install.sh --dry-run --profile ctf              # Preview without installing

Unsicher? Erst eine schwere Flug-Vorabprüfung starten (ohne root, installiert nichts):

./install.sh --doctor                                  # Distro, prerequisites, MCP server, tool registry

Im testen Docker

Bild „Prebuild“ pullen (kein Bau):

docker run --rm ghcr.io/26zl/cybersec-toolkit --profile ctf

Oder selbst bauen:

docker build -t cybersec-toolkit .
docker run --rm cybersec-toolkit --profile ctf

Podman ist ein Drop-in-Ersatz – docker durch podman ersetzen (oder alias docker=podman); rootless Builds und Leben funktionieren. Für das below Compose-Beispiel podman compose verwenden.

Oder die mitgelieferte Compose-Datei nutzen (installer-Dienst bauen und starten):

docker compose run --rm installer --profile ctf

Das Image gewährt dem Benutzer toolkit Passwortsudo da, damit der Installer System-Pakete verwalten kann. Behandle innercontainer-Code als dazu fähig; das Image ist kein Sicherheitsandbox, insbesondere wenn der run_script aktiviert ist oder die sensiblen Host-Pfade gemountet sind.

macOS (Apple Silicon): Bei beiden Befehlen --platform linux/amd64 anfangen, um über die x86-Emulator zu starten:

docker build --platform linux/amd64 -t cybersec-toolkit .
docker run --rm --platform linux/amd64 cybersec-toolkit --profile ctf

Termux (Android):

pkg install git
git clone https://github.com/26zl/cybersec-toolkit.git
cd cybersec-toolkit
./install.sh --profile lightweight
sudo ./install.sh --help                # Full help
sudo ./install.sh --list-profiles       # Show profiles
sudo ./install.sh --list-modules        # Show modules
sudo ./install.sh --skip-heavy          # Skip large/slow packages
sudo ./install.sh --skip-pipx           # Skip all pipx (Python) installs
sudo ./install.sh --skip-go             # Skip all Go tool installs
sudo ./install.sh --skip-cargo          # Skip all Cargo (Rust) installs
sudo ./install.sh --skip-gems           # Skip all Ruby gem installs
sudo ./install.sh --skip-git            # Skip all git clone installs
sudo ./install.sh --skip-binary         # Skip all binary release downloads
sudo ./install.sh --skip-source         # Skip build-from-source, snap, npm, and curl-pipe installs
sudo ./install.sh --fast                # Skip checksum verification (see Security note below)
sudo ./install.sh --require-checksums   # Fail if binary release has no checksum file
sudo ./install.sh --production          # Strict checksum preset for release downloads
sudo ./install.sh --upgrade-system      # Upgrade system packages before installing
sudo ./install.sh --list-sessions       # List install sessions and exit
sudo ./install.sh --rollback <id|last>  # Rollback tools installed in a session
sudo ./install.sh --version             # Show installer version and exit
sudo ./install.sh --enable-docker       # Pull Docker images
sudo ./install.sh --include-c2          # Include C2 frameworks (needs --enable-docker)
sudo ./install.sh -j 8                  # 8 parallel install jobs (default: 4)
sudo ./install.sh -v                    # Verbose / debug output

--tool installiert nur das angegebene Tool, ohne die vollständige Setup zu installiert. Ein-Trocken-Test-Sliedsungen zählen Installationseinträge über Methoden hin, die Schätzung kann also höher als der lokale 670+-Tool-Registrier.

Der Installer übernimmt die Installation von 670+ Tools über 12 verschiedene Methoden. Die Zeit wird vor allem durch I/O-intensive Vorgänge belegt, die keine Skripssprache beschleunigen kann:

Was Zeit kostet

Warum

Systempakete (apt/dnf)

Herunterladen und Entpacken der .deb/.rpm-Pakete sowie Auflösen von Abhängigkeiten

Go-Tools

Herunterladen von Modulen und Kompilieren jeder Binärdatei

pipx (Python)

Erstellen einer isolierten venv pro Tool und Herunterladen von wheels

Cargo (Rust) crates

Kompilieren aus dem Quellcode – Rust hat keine vorgefertigten Registry-Binärdateien

Git-Klone

Klonen jedes Repository

Binär-Releases

Herunterladen vorgefertigter Binärdateien von GitHub

Bash-Overhead

Array-Iteration, Logging, Fortschrittsbalken (vernachlässigbar)

Für die aktuellen Tool-Anzahlen pro Methode führe ./install.sh --dry-run aus – es gibt die Live-Aufschlüsselung aus, damit die Zahlen hier nicht veralten können. Die langsamsten Phasen sind diejenigen, die am meisten kompilieren oder entpacken (apt/dnf und Go), nicht die reine Tool-Anzahl: Cargo kompiliert aus dem Quellcode, deckt aber nur eine Handvoll Tools ab.

Der Installer parallelisiert bereits, wo möglich (standardmäßig -j 4). Methoden mit gemeinsamen Sperren (apt, pipx, cargo) müssen sequenziell laufen. Um die Installationszeit zu reduzieren:

  • Verwende --profile lightweight oder --module <name>, um nur das zu installieren, was du brauchst

  • Verwende --skip-cargo, um die Rust-Kompilierung zu überspringen (die langsamste Methode pro Tool)

  • Erhöhe die Parallelität mit -j 8 für schnellere Go/git/binary-Downloads

  • Richte einen apt-cacher-ng-Proxy für wiederholte Installationen ein


Profile

Profil

Module

Beschreibung

full

Alle 18

Vollständiges Sicherheits-Toolkit

ctf

misc, crypto, pwn, reversing, stego, forensics, cracking, web, mobile, blockchain

CTF-Wettbewerbe

redteam

misc, networking, recon, web, enterprise, pwn, mobile, cracking, cloud, wireless, reversing, crypto

Offensive Sicherheit

web

misc, networking, recon, web, llm

Webanwendungs-Tests

osint

misc, recon

OSINT-Sammlung

forensics

misc, forensics, blueteam, reversing, stego, cracking

Digitale Forensik und Incident-Response

pwn

misc, pwn, reversing, crypto

Binärausnutzung und Reverse Engineering

mobile

misc, mobile, web, reversing

Mobile Anwendungssicherheitstests

cloud

misc, cloud, containers, networking, recon

Cloud- und Container-Sicherheitsauditierung

blockchain

misc, blockchain, web, crypto

Smart-Contract-Auditierung und Blockchain-Sicherheit

wireless

misc, wireless, networking

WiFi-, Bluetooth- und SDR-Sicherheit

lightweight

misc, networking, recon, web, cracking

Hobby-Ethical-Hacking-Grundlagen (HTB, THM, Bug-Bounty)

crackstation

misc, cracking, crypto

Hash-Knacken

blueteam

misc, blueteam, forensics, reversing, mobile, containers, networking, cloud, recon

Defensive Sicherheit, IR, Malware-Analyse

Module

Modul

Tools

Beschreibung

misc

41

Post-Exploitation, Social Engineering, Wortlisten, Ressourcen, C2 (Docker + Loki)

networking

57

Port-Scanning, Paket-Erfassung, Tunneling, MITM, Protokoll-Tools

recon

84

Subdomain-Enumeration, OSINT, DNS, automatisierte Recon-Frameworks

web

60

Schwachstellen-Scanning, Fuzzing, SQLi, XSS, CMS-Scanner, API-Tests

crypto

14

RSA-Angriffe, Chiffre-Analyse, Hash-Angriffe, Constraint-Lösung

pwn

36

Exploit-Frameworks, Binärausnutzung, Fuzzing, Payload-Generierung

reversing

33

Disassembler, Debugger, Emulation, Java/Python-Reversing

forensics

57

Disk-/Speicherforensik, Datei-Carving, Timeline-Analyse, Log-Analyse, Hardware/Seriell

enterprise

80

Active Directory, Kerberos, Azure AD, Credential-Harvesting, laterale Bewegung

wireless

41

WiFi-Knacken, Bluetooth, SDR, Rogue-AP

cracking

34

Hash-Knacken (john, hashcat), Brute-Force, Wortlisten-Generierung

stego

15

Bild-/Audio-Steganographie, Erkennung, StegCracker

cloud

22

AWS/Azure/GCP-Sicherheitsauditierung, Checkov

containers

15

Docker/Kubernetes-Sicherheit (Grype, Syft, Kubescape, kubeaudit)

blueteam

36

IDS/IPS, SIEM, Incident-Response, Threat-Intelligence, Härtung, Malware-Analyse (YARA, ClamAV, FLOSS, Capa, Loki)

mobile

18

Android/iOS-App-Tests, APK-Analyse, MobSF (Docker)

blockchain

15

Smart-Contract-Auditierung (Slither, Mythril, Foundry, Aderyn), Blockchain-Forensik, Echidna (Docker)

llm

14

LLM-Red-Teaming, Prompt-Injection, Jailbreak-Tests, KI-Schwachstellen-Scanning

Installationsmethoden

Methode

Anzahl

Beispiele

Git-Klon

~197

GitHub-Repos mit Auto-Setup, Ressourcen, Wortlisten

Systempakete (apt/dnf/pacman/zypper)

~166

nmap, wireshark, john, hashcat

pipx

~137

sqlmap, impacket, bloodhound, volatility3

Go-Installation

~62

nuclei, subfinder, ffuf, httpx

Binärrelease

~51

gitleaks, chainsaw, findomain, FLOSS, Capa, Loki, Syft, Kubescape

Build aus dem Quellcode

~23

massdns, duplicut, AFLplusplus, honggfuzz

Docker

~12

Empire, MobSF, BeEF, BloodHound, TheHive, Cortex, PentAGI

Ruby-Gem

6

wpscan, evil-winrm, brakeman

Cargo (Rust)

8

feroxbuster, RustScan, pwninit, yara-x-cli

Speziell (curl-pipe)

4

Metasploit, Foundry, Steampipe, patator

Snap

1

zaproxy

npm

5

promptfoo, apk-mitm, surya, solgraph


Skripte nach der Installation

Alle Skripte erfordern Root-Rechte unter Linux (sudo) und unterstützen --help. Auf Termux ist kein Root erforderlich.

Skript

Zweck

Beispiel

scripts/verify.sh

Prüfen, welche Tools installiert sind

sudo ./scripts/verify.sh --module web --skip-heavy

scripts/update.sh

Alle installierten Tools aktualisieren

sudo ./scripts/update.sh --skip-system

scripts/remove.sh

Tools nach Modul entfernen

sudo ./scripts/remove.sh --module enterprise --yes

scripts/remove.sh --deep-clean

Alle Caches und Build-Artefakte bereinigen

sudo ./scripts/remove.sh --deep-clean --yes

scripts/backup.sh

Tool-Konfigurationen sichern/wiederherstellen

sudo ./scripts/backup.sh backup

--deep-clean entfernt den Go-Modul-/Build-Cache, den Cargo-Registry, pip/pipx/npm/gem-Caches, verwaiste pipx-venvs, veraltete Symlinks und Log-Dateien. Füge --remove-deps hinzu, um auch Rustup-Toolchains zu bereinigen.

MCP-Server (KI-Integration)

MCP (Model Context Protocol) ist ein offener Standard, der KI-Assistenten die Nutzung externer Tools ermöglicht. Dieses Projekt enthält einen MCP-Server, der jeder MCP-fähigen KI (Claude Code, Claude Desktop, Cursor usw.) vollständigen Lesezugriff auf das 670+-Tool-Registry bietet – plus die Möglichkeit, Installationen zu prüfen, Profile zu empfehlen und Tools auszuführen. Die KI wird zu einem interaktiven Partner für ethisches Hacken: Sie kennt jedes Tool, weiß, welche du installiert hast, und kann sie für dich ausführen.

Was die KI tun kann

Tool

Was es tut

list_tools

Listet/filtert alle 670+ Tools nach Modul, Methode oder Installationsstatus (inkl. URLs)

check_installed

Prüft, ob ein Tool installiert ist (5 Erkennungsstrategien)

get_tool_info

Vollständige Details: Methode, Modul, URL, Installations-/Update-/Entfernungsbefehle

get_module_info

Modul im Detail: alle Tools, Installationsstatus, welche Profile es verwenden

get_profile_tools

Alle Tools anzeigen, die ein Profil installiert, gruppiert nach Modul

suggest_for_ctf

Kuratierte Tool-Empfehlungen für 14 CTF-Challenge-Kategorien

suggest_for_bounty

Bug-Bounty-Tool-Empfehlungen für 7 Zieltypen mit Methodik und häufigen Schwachstellen

guided_assessment

Companion-first-Lösungsassistent für ein autorisiertes Ziel – klassifiziert das Ziel/den Befund, gibt Triage-Gates, empfiehlt Fähigkeiten, wählt Tools aus allen Modulen/Profilen und führt Schritt für Schritt; opt-in autonomous startet eine Auto-Solver-Schleife über run_tool, run_pipeline und die separat abgesicherte run_script-Fähigkeit

get_cve_info

Ordnet eine CVE-ID oder einen Spitznamen (z.B. log4shell) kuratierten Fähigkeiten, Registry-Tools, Modulen und Live-NVD/KEV/EPSS-Abfragebefehlen zu

recommend_install

Natürliche Sprache → Profil-/Modul-/Tool-Empfehlung

list_profiles

Alle 14 Profile mit Tool-Anzahl und Installationsbefehlen

run_tool

Führt installierte Tools sicher aus (bereinigte Argumente, Netzwerk-Policy, Ratenbegrenzung, Audit-Logging). Unterstützt Remote-Ausführung über SSH

run_pipeline

Verkettet Tools sicher ohne Shell (strings binary | grep flag)

run_script

Explizite, unsandboxed Python/Bash-Ausführung als Opt-in. Unterstützt pro Skript venv-Auswahl

manage_remote_hosts

SSH-Remote-Hosts hinzufügen, entfernen, auflisten und testen für Remote-Tool-Ausführung

Der MCP-Client kann alle Tools und deren Installationsstatus abfragen, verwaltete Tool-Aufrufe verketten, die Ausgabe parsen und auf Basis der Ergebnisse umschalten. Die Skriptausführung erfordert ein separates Opt-in.

Externe Recon → Angriffsfläche (benötigt CYBERSEC_MCP_ALLOW_EXTERNAL=1, nur autorisierter Scope)

  • „Angriffsfläche für target.com ermitteln und alles Ausnutzbare markieren“ – verteilt amass / subfinder → löst auf und testet mit httpx → identifiziert mit whatweb → führt nuclei-Templates aus → Content-Discovery mit ffuf, dann bewertet es Hosts nach Exposition und schlägt nächste Schritte vor.

  • „Offener Redirect auf /go?url= gefunden – ausarbeiten“ – verifiziert mit curl, baut dann einen SSRF-/OAuth-Token-Diebstahl-PoC und testet auf einen ausnutzbaren Callback.

Web-Exploitation

  • „SQLi am Login-Endpunkt bestätigen und ausnutzen“ – sqlmap zum Bestätigen und Dumpen (destruktive --os-shell/--os-cmd sind durch die Richtlinie blockiert), dann run_script zum Automatisieren des Auth-Bypasses und um genug für einen PoC zu ziehen.

  • „GraphQL-Introspection ist aktiv – kartieren und IDOR jagen“ – zieht das Schema, generiert Abfragen, fuzzt Objekt-IDs und vergleicht authentifizierte vs. nicht authentifizierte Antworten.

Active Directory / intern

  • „Low-Priv-Creds auf 10.10.0.0/24 – finde einen Weg zu Domain Admin“ – sammelt mit bloodhound, Kerberoast mit impacket (GetUserSPNs.py), knackt das TGS in hashcat, validiert dann laterale Bewegung mit netexec – alles über die Kali-VM per SSH.

  • „Auf DCSync-Rechte prüfen und dumpen, falls der Pfad existiert“ – enumeriert Replikations-ACLs, führt dann secretsdump.py gegen den DC aus.

Binary-Exploitation & Reversing

  • „Ret2libc-Exploit für dieses 64-Bit-Binary bauen“ – triagiert mit checksec / readelf, findet Gadgets mit ROPgadget, leakt libc über einen puts@plt-Aufruf, schreibt dann die vollständige pwntools-Kette in venv="pwntools" und öffnet lokal eine Shell.

  • „Algorithmus aus diesem gestrippten Binary rekonstruieren“ – objdump / radare2-Disassemblierung in gezielte Analyse geleitet, dann eine run_script-Reimplementierung zur Verhaltensprüfung.

Crypto

  • „RSA brechen – kleines e, mehrere Ciphertexte“ – erkennt den Angriff (Håstad / Common-Modulus / Wiener) und löst ihn mit pycryptodome + sympy in einer venv, gibt Klartext zurück.

  • „Dieses JWT ist HS256 mit schwachem Schlüssel“ – knackt das Signing-Secret und fälscht ein Admin-Token.

Blue Team · Detection Engineering

  • „Sigma-Regel für diese Technik schreiben und in mein SIEM konvertieren“ – erstellt die Regel und rendert sie für das Ziel-Backend (Splunk / Elastic) über sigma-cli.

  • „Diese Windows-Ereignisprotokolle auf laterale Bewegung durchsuchen“ – führt chainsaw über die EVTX mit Sigma-Regeln aus, fasst dann Treffer nach Host und Zeitachse zusammen.

  • „YARA-Regeln aus diesen Samples erstellen und den Baum scannen“ – generiert yara-Signaturen und führt sie rekursiv aus.

DFIR – Malware-Triage

  • „Dieses Speicher-Dump in eine Timeline bringen“ – durchsucht volatility3-Plugins (pslist, netscan, malfind) und verknüpft sie zu einer Erzählung.

  • „Nach C2-Beaconing in diesem pcap suchen“ – tshark / tcpdump-Extraktion → suricata-Regeln → markiert periodische Callbacks.

  • „Statische Triage dieser verdächtigen Datei“ – file → strings → capa / yara, dann IOCs für Anreicherung extrahieren.

Cloud – Container – Betrieb

  • „AWS-Konto auf öffentliche S3 und riskante IAM prüfen“ – führt prowler / scoutsuite aus und zeigt nur die hohen Schweregrade.

  • „Dieses Image und k8s-Manifeste vor dem Deploy scannen“ – grype-Image-Scan plus kubescape-Config-Checks.

  • „Wie ist meine Redteam-Abdeckung – und Lücken schließen“ – vergleicht get_profile_tools("redteam") mit dem Installationsstatus und gibt die exakten Installationsbefehle aus.

Mobile – Wireless – Blockchain

  • „Statische Analyse dieser APK auf Geheimnisse und unsichere Speicherung“ – apktool / jadx dekompilieren → MobSF-artige Checks, dann nach Schlüsseln und Endpunkten suchen.

  • „Diese Wi-Fi-Aufnahme prüfen“ – parst den Handshake und führt aircrack-ng / hashcat dagegen aus.

  • „Dieses Solidity-Kontrakt auf Reentrancy prüfen“ – führt slither / mythril aus und erklärt die Ergebnisse.

run_tool und run_pipeline sind argumentbereinigt, netzwerküberwacht, ratenbegrenzt und audit-logged. run_script ist standardmäßig deaktiviert, da die Aktivierung ein Opt-in für vollständige Codeausführung mit den Dateisystem- und Netzwerkberechtigungen des MCP-Server-Benutzers ist; die Richtlinie für externe Ziele sandboxt Skripte nicht. Destruktive Flags (--os-shell, -rf, --exploit, …) sind im verwalteten Tool-Pfad blockiert. Verwenden Sie nur gegen Systeme, für die Sie autorisiert sind.

Schnellstart

Erfordert uv. Claude Code kann die verfolgte Projekt-.mcp.json direkt verwenden. Es führt den MCP-Server über stdio aus, wobei Skripte und externe Netzwerkziele standardmäßig deaktiviert sind:

{
  "mcpServers": {
    "cybersec-tools": {
      "command": "uv",
      "args": ["run", "--directory", "mcp_server", "fastmcp", "run", "server.py", "--transport", "stdio", "--no-banner"],
      "env": {
        "CYBERSEC_MCP_ALLOW_EXTERNAL": "0",
        "CYBERSEC_MCP_ALLOW_SCRIPTS": "0"
      }
    }
  }
}

Starten Sie Claude Code neu. Die 15 Tools erscheinen in /mcp.

Andere MCP-Clients (Codex, Cursor, lokale LLMs)

MCP ist ein offener Standard, daher funktioniert derselbe stdio-Server mit jedem MCP-fähigen Client. Vom Repository-Root aus lautet der Startbefehl:

uv run --directory mcp_server fastmcp run server.py --transport stdio --no-banner

--directory mcp_server ist relativ zum Arbeitsverzeichnis. Falls ein Client den Server aus einem Unterverzeichnis starten könnte, verwenden Sie den root-bewussten Launcher aus dem Repository-Root:

bash scripts/mcp-launch.sh

Von außerhalb des Repository verwenden Sie den absoluten Pfad des Launchers:

bash /path/to/cybersec-toolkit/scripts/mcp-launch.sh
  • Codex — Für das Projekt ist eine .codex/config.toml enthalten (sie löst zuerst das Git-Root auf und funktioniert so aus jedem Unterverzeichnis). Die primäre Konfiguration von Codex ist ~/.codex/config.toml; falls die Projektdatei nicht übernommen wird, kopieren Sie den Block [mcp_servers.cybersec-tools] in Ihre Home-Konfiguration.

  • Cursor / Continue / Cline / Goose — Fügen Sie denselben Startbefehl in der MCP-Einstellungs-UI oder der Konfigurationsdatei des Clients hinzu (verwenden Sie einen absoluten Pfad, wenn das Arbeitsverzeichnis des Clients nicht das Repository-Root ist).

  • LM Studio (≥0.3.17) — LM Studio ist selbst ein MCP-Host, es ist keine Brücke nötig. Fügen Sie den Server zu seiner mcp.json hinzu (Cursor-Notation, gleiche mcpServers-Struktur wie .mcp.json) und verwenden Sie einen absoluten Pfad oder den Git-Root-Wrapper, da das Arbeitsverzeichnis von LM Studio nicht das Repository-Root ist. Die Nutzung von MCP über die LM-Studio-API erfordert ≥0.4.0 und einen MCP-fähigen Endpunkt wie /api/v1/chat oder /v1/responses.

  • Ollama — Ollama ist eine Modell-Laufzeitumgebung, kein MCP-Host. Stellen Sie einen MCP-fähigen Agenten davor (z. B. Kit) und richten Sie ihn auf den oben genannten Startbefehl aus.

  • Andere lokale LLMs — ein reines Modell spricht von sich aus kein MCP. Betreiben Sie es hinter einem beliebigen MCP-fähigen Host (LM Studio, Cline, Continue, Goose, Kit oder Open WebUI über eine MCP→OpenAPI-Brücke wie mcpo) und richten Sie diesen Host auf den oben genannten Startbefehl aus.

Sicherheitshinweis: Beginnen Sie mit genau diesem einen Server. Er erzwingt bereits Argumentbereinigung, Netzwerk-Allowlists, Ratenbegrenzung und Audit-Logging und wird standardmäßig mit deaktivierter Skriptausführung und deaktivierten externen Zielen ausgeliefert — lassen Sie beides deaktiviert, sofern Sie keinen autorisierten Scope haben, und bevorzugen Sie Hosts, die eine Human-in-the-loop-Genehmigung für Tools unterstützen.

Anbieterneutrale Repository-Anweisungen finden Sie in AGENTS.md (die nativ von Codex und vielen agentischen Tools gelesen wird); Claude Code liest CLAUDE.md.

Verbindung über WSL (z. B. Kali Linux)

Der MCP-Server läuft über stdio und funktioniert daher aus jeder Umgebung, die Claude Code spawnen kann. Um in WSL installierte Tools zu verwenden:

{
  "mcpServers": {
    "cybersec-tools": {
      "command": "wsl",
      "args": [
        "-d", "kali-linux",
        "bash", "-lc",
        "cd /path/to/cybersec-toolkit/mcp_server && uv run fastmcp run server.py --transport stdio --no-banner"
      ]
    }
  }
}

Verbindung über Docker

{
  "mcpServers": {
    "cybersec-tools": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "CYBERSEC_MCP_ALLOW_EXTERNAL=0", "-e", "CYBERSEC_MCP_ALLOW_SCRIPTS=0",
        "--entrypoint", "bash", "cybersec-toolkit",
        "-c",
        "cd /opt/cybersec-toolkit/mcp_server && uv run fastmcp run server.py --transport stdio --no-banner"
      ]
    }
  }
}

Skriptausführung

run_script ermöglicht der KI, Python- oder Bash-Skripte zu schreiben und auszuführen. Es erfordert CYBERSEC_MCP_ALLOW_SCRIPTS=1, ist nicht in einer Betriebssystem-Sandbox gekapselt und wird nicht durch CYBERSEC_MCP_ALLOW_EXTERNAL eingeschränkt. Durch die Aktivierung erhalten Skripte dieselben Dateisystem- und Netzwerkberechtigungen wie der MCP-Serverprozess. Überprüfen Sie generierten Code und den Scope, bevor Sie die Funktion aktivieren:

{
  "mcpServers": {
    "cybersec-tools": {
      "command": "uv",
      "args": ["run", "--directory", "mcp_server", "fastmcp", "run", "server.py", "--transport", "stdio", "--no-banner"],
      "env": {
        "CYBERSEC_MCP_ALLOW_SCRIPTS": "1",
        "CYBERSEC_MCP_ALLOW_EXTERNAL": "0"
      }
    }
  }
}

Venv-Unterstützung

Einige Pakete (z. B. pwntools) benötigen eine ältere Python-Version. Der Parameter venv ermöglicht der KI, den passenden Interpreter pro Skript zu wählen:

# One-time setup: create a venv with pwntools
python3.12 -m venv ~/.ctf-venvs/pwntools
~/.ctf-venvs/pwntools/bin/pip install pwntools z3-solver

Die KI verwendet dann automatisch run_script("from pwn import *; ...", venv="pwntools"). Die Standard-MCP-Umgebung enthält FastMCP und die Python-Standardbibliothek. Installieren Sie den optionalen Hilfssatz mit cd mcp_server && uv sync --extra ctf-core, bevor Sie requests, pycryptodome, beautifulsoup4, Pillow oder NumPy ohne ein benanntes Venv verwenden. Setzen Sie CYBERSEC_MCP_VENVS_DIR, um den Standardpfad ~/.ctf-venvs/ zu überschreiben.

Manuelle Skripte

Das Verzeichnis manual_scripts/ speichert dauerhafte Skripte, die die KI für den Benutzer erstellt – komplexe Exploits, mehrstufige Solver, Parser, Protokollhelfer und wiederverwendbare Tools, die nicht nach einer einzigen Ausführung verschwinden sollen. Im Companion-Modus schlägt die KI das Skript vor und schreibt und führt es erst nach Freigabe oder einem eindeutigen „continue" aus. Im opt-in-Modus autonomous kann die KI, wenn normale Tools und Pipelines keine Fortschritte mehr erzielen und Programmlogik den kleinsten zuverlässigen Weg darstellt, begrenzte Helfer über run_script schreiben, speichern und ausführen. Einfache Recon-/HTTP-Befehle wie curl bleiben run_tool-Aufrufe; Skripte sind für Logik gedacht, die Tools nicht sauber ausdrücken können.

Testen Sie den Server

cd mcp_server && uv run fastmcp dev server.py

Dadurch wird ein webbasierter MCP Inspector geöffnet, mit dem jedes Tool interaktiv getestet werden kann.

Siehe mcp_server/README.md für die Einrichtung mit Claude Desktop und die vollständige Dokumentation.

Hilfe willkommen

Dieses Projekt ist von Design bewusst groß ausgelegt, und Unterstützung von der Community ist sehr willkommen.

Nützliche Beiträge umfassen das Testen von Installationen auf verschiedenen Systemdistributionen, das Hinzufügen fehlender Tools, das Beheben von Paketen, die Verbesserung von MCP-Workflows, das Schreiben von Beispielen, die Beseitigung von Stolpersteinen in der Dokumentation sowie das Melden von rauen Kanten aus echten CTF-, Labor-, Bug-Bounty-, Pentest-, DFIR- oder Defensiv-Workflows.

Öffnen Sie ein Issue für größere Änderungen oder senden Sie einen fokussierten PR für kleine Korrekturen. Siehe CONTRIBUTING.md für die Validierungscheckliste.

Entwicklung

Öffentliche Dokumente für Mitwirkende liegen in CONTRIBUTING.md. Der Schnellstart ist:

git clone https://github.com/26zl/cybersec-toolkit.git && cd cybersec-toolkit
make setup    # submodules + MCP deps + skill mirror (Codex-ready)
make check    # core local checks — shellcheck, validators, bats, ruff, pytest

make help listet alle Shortcuts (lint, test, validate, curate, sync-skills, check-skills, mcp, docker, …); den tatsächlichen Befehl, den jedes Ziel ausführt, sehen Sie in CLAUDE.md bzw. AGENTS.md.

Das MCP-Python-Projekt verwendet uv mit [tool.uv] exclude-newer = "3 days". Auflösung einer neuen Abhängigkeit ignoriert absichtlich Pakete, die in den letzten 72 Stunden hochgeladen wurden, um den Wirkungskreis von Dependency Confusion und kompromittierten Releases zu verringern. Dependabot verwendet die passende dreitätige Ausfallsicherheit. Cooldown; der wöchentliche uv-Update-Workflow übernimmt dieselbe Richtlinie, die in den letzten 72 Stunden hochgeladen wurden, um den Blast-Radius von Dependency-Confusion und kompromittierten Releases zu reduzieren. Dependabot nutzt die dazu passende 3-Tage-Cooldown und der wöchentliche uv-Update-Workflow übernimmt dieselbe Richtlinie.

Diese Release-Alter-Richtlinie bezieht sich ausschließlich auf Bootstrap-/Runtime-Abhängigkeiten des Projekts: MCP-Python-Jacketage, CI-Aktionen und die Docker-Paketeingaben, die zum Start des Projekts benötigt werden. Sie hält die aus der Registry installierten Cybersicherheits-Tools nicht zurück und pinnt die auch nicht fest; diese Tools folgen absichtlich Flow des Modulinstallers und des Update-Flows, damit Administratoren aktuelle Scanner, Exploits, Signaturen und Recherchen-Werkzeuge erhalten.

Führen Sie die Shell-Tests on Linux oder WSL aus. Native Windows-Checkouts können die gebündelten Bats-Submodule mit CRLF umschreiben und zu $'\r'-Fehlern führen.

Agent Skills

Dieses Repository enthält 872 Agent Skills unter dem kanonischen Quellbaum .claude/skills/. Claude Code findet diesen Baum direkt; scripts/sync-skills.sh generiert den tragbaren Spiegel .agents/skills/ für kompatible Clients. Skills werden bei Bedarf aufgabenabhängig aktiviert – sie verbrauchen nicht permanent Kontext. Von diesen sind 31 projekteigene und 841 kuratierte aus Open-Source-Projekten – jeweils attribuiert unten und in THIRD_PARTY_NOTICES.md.

  • 10 projektspezifische Entwickler-Skills (add-tool, validate-all, module-scaffold, writeup-template, mcp-sync-check, security-wordlists, security-payloads, guided-assessment, skill-dependency-audit, skill-curation-router)

  • 4 Cross-Skill-Koordinatoren (finding-triage, security-comms, authorization-gate, evidence-hygiene), durch die andere Skills Findings, Kommunikation, Autorisierungsprozesse durchlaufen.

  • 7 Anker-Skills für Abdeckungslücken (GRC/Datenschutz, AI/LLM-Sicherheit, IoT/Embedded/Hardware, Mainframe, Telekom/5G, SAP/ERP, Lieferketten-/Produktsicherheit)

  • 1 Coding-Agent-Workflow-Skill flex multica-ai/andrej-karpathy-skills (MIT)

  • 6 CTF-Methodik-Skills (ctf-crypto, ctf-pwn, ctf-web, ctf-rev, ctf-forensics, ctf-stego)

  • 4 Bug-Bounty-Methodik-Skills (bounty-recon, bounty-web, bounty-api, bounty-mobile)

  • 10 Bug-Bounty-Workflow-Skills von BugHunter (claude-bug-bounty) (MIT)

  • 58 offensive Methodik-Skills von SnailSploit Claude-Red (MIT)

  • 14 Code-Audit-Skills von Trail of Bits (CC-BY-SA 4.0)

  • 74 operative How-Tos aus dem Community-Projekt mukul975/Anthropic-Cybersecurity-Skills (Apache 2.0)

  • 4 übergeordnete Workflows von Transilience

Sourcequellen- und Kategorieindex in .claude/skills/SKILLS.md.

Installieren als Claude-Code-Plugin

Das Repo funktioniert auch als Plugin-Marketplace (.claude-plugin/), sodass Sie die gesamte Skill-Bibliothek in beliebige Projekte laden können, ohne manuell zu klonen:

/plugin marketplace add 26zl/cybersec-toolkit
/plugin install cybersec-toolkit@cybersec-toolkit

Das Plugin stellt die Skills unter .claude/skills/ bereit (deklariert über das skills-Feld in .claude-plugin/plugin.json). Der MCP-Server wird separat über .mcp.json konfiguriert – siehe MCP Server.

Diese Skills mit unterstützten Clients verwenden

Agent Skills sind Markdown plus optionale Hilfsdateien, aber das Entdecken und Aktivieren sind Clientfunktionen und keine MCP-Funktionen. Claude Code, OpenCode, Cursor, Gemini CLI, GitHub Copilot, Cursor, Cline, arXiv, Hermes und OpenClaw unterstützend Agent Skills über verschiedene Wege oder Einstellungen. scripts/sync-skills.sh spiegelt die .claude/skills/-Quelle des Repos nach .agents/skills/ für Clients, die diesen Speicherort verwenden:

scripts/sync-skills.sh            # mirror .claude/skills/ -> .agents/skills/
scripts/sync-skills.sh --check    # report drift without writing (exit 1 if out of date)

make setup (siehe Entwicklung) führt diesen Spiegelschritt für Sie aus.

.claude/skills/ bleibt die Installation der Wahrheit; .agents/skills/ wird generiert und in git ignoriert – daher die Synchronisierung nach der Bearbeitung eines Skills erneut aus. Weiter mit Continue und LM Studio können den MCP-Server nutzen, aber kein Kunde innerhalb hat die automatische Erkennung der SKILL.md-Dateien dieses Repos dokumentiert. Ein eigenständiger SKILLS.md-Index wäre nur manueller Kontext; er würde keine dynamische Aktivierung hinzufügen. Verwenden Sie Continue-Regeln/-Prompts oder stellen Sie ausgewählte Skill-Inhalte als Kontext in diesen Clients bereit. Siehe docs/AI_CLIENTS.md für die clientspezifischen Pfade und Einschränkungen.

scripts/validate_claude_skills.py prüft Skill-Metadaten, Indexzählungen, Aktualität der Kuratierung und die Syntax von Hilfsskripten für Python und PowerShell. Hinzuggezogene Hilfsskripte können auch optionale, task-spezifische Python-Importe enthalten. Diese Importe sind in .claude/skills/requirements.txt deklariert, das aus dem Import-Inventar der Hilfsskripte generiert wird:

python3 scripts/audit_skill_dependencies.py --check-declared
python3 scripts/audit_skill_dependencies.py --write-requirements
python3 -m pip install -r .claude/skills/requirements.txt

Skill-Ranking/Kuratierung befindet sich in .claude/skills/CURATION.md und .claude/skills/curation.json. Regenerieren Sie es mit:

python3 scripts/curate_claude_skills.py --write

Tool-Standorte

Tools, die nicht aus dem System verfügbar sind (pipx, Go, Cargo, git, Binärreleases), wurden Linux in /usr/local/bin/ installiert und in Termux nach $PREFIX/bin. Systempakete landen an ihrem üblichen Ort (/usr/bin/).

Methode

Binärpfad (Linux)

Binärpfad (Termux)

Datenpfad

pipx

/usr/local/bin/

$PREFIX/bin/

/opt/pipx/ oder ~/.local/pipx/

Go

/usr/local/bin/

$PREFIX/bin/

/opt/go/ oder ~/.go/

Cargo

/usr/local/bin/ (als Symlink)

$PREFIX/bin/ (als Symlink)

~/.cargo/

Git-Repos

/usr/local/bin/ (als Symlink)

$PREFIX/bin/ (als Symlink)

/opt/<repo>/ oder ~/tools/<repo>/

Binär-Versionen

/usr/local/bin/

Übersprungen (glibc mitz Bionic inkompatibel)

--

Docker-Images (optional)

Wird nur mit --enable-docker benutzt. Wenn --enable-docker gesetzt ist, aber Docker nicht installiert ist, bricht die Installation mit der Aufforderung ab, zuerst Docker zu installieren.

Bild

Modul

Flag

Beschreibung

bcsecurity/empire

misc

--enable-docker --include-c2

Empire C2

spiderfoot/spiderfoot

misc

--enable-docker

SpiderFoot OSINT

beefproject/beef

web

--enable-docker

BeEF Browser-Exploitation

opensecurity/mobile-security-framework-mobsf

mobile

--enable-docker

MobSF

specterops/bloodhound

enterprise

--enable-docker

BloodHound CE

trailofbits/echidna

blockchain

--enable-docker

Echidna Smart-Contract-Fuzzer

strangebee/thehive:latest

blueteam

--enable-docker

TheHive IR-Plattform

thehiveproject/cortex:latest

blueteam

--enable-docker

Cortex-Analyse

zeek/zeek:latest

blueteam

--enable-docker

Zeek Netzwerkanalyse

wagga40/zircolite:latest

blueteam

--enable-docker

Zircolite EVTX-Erkennung

vxcontrol/pentagi:latest

llm

--enable-docker

PentAGI autonomes Pentesting

Distributionsunterstützung

Debian/Ubuntu/Kali ist das primäre Ziel – die vollständige Registry mit über 670 Paketen ist dort verfügbar und hat die stärkste Testabdeckung. Fedora/Arch/openSUSE haben ~10–20 automatisch übersprungene Pakete (distributionsspezifisch) und werden vom Integrations-Workflow abgedeckt. WSL und ARM werden praktisch unterstützt, haben aber noch keine dedizierten CI-Jobs. Windows und macOS werden erkannt und mit einer klaren Fehlermeldung blockiert.

Plattform

Status

WSL

Unterstützt für Installationen und MCP-Nutzung. Drahtloses Modul wird automatisch übersprungen (kein Hardwarezugriff) und Kernel-Level-Pakete werden gefiltert. Validieren Sie releasekritische Änderungen in einer lokalen WSL-Distribution, da es noch keinen dedizierten CI-Job gibt. Siehe den Windows-Defender-Hinweis unten, wenn Sie das Repository auf einem Windows-gemounteten Pfad aufbewahren.

ARM (aarch64/armv7)

Unterstützt mit automatischen Überspringungen für x86-only-Binärversionen und Build-from-Source-Tools. Noch kein dedizierter CI-Job.

Termux (Android)

Unterstützt. Noch kein dedizierter CI-Job. Kein sudo erforderlich. Docker/snap/Binärversionen/Build-from-Source werden übersprungen (Bionic-inkompatibel).

Windows (nativ)

Nicht unterstützt. Verwenden Sie WSL.

macOS

Nicht unterstützt. Verwenden Sie den Docker-Container.

Andere Linux-Distributionen

Alles ohne unterstützten Paketmanager (apt/dnf/pacman/zypper) – z. B. NixOS, Gentoo, Void, Alpine, Slackware – wird erkannt und mit einer klaren Fehlermeldung blockiert. Verwenden Sie stattdessen das Docker-Image.

Lieferkettenmodell

Dieser Installer lädt Code aus dem Internet herunter und führt ihn aus. Unter Linux läuft er als root (sudo); unter Termux läuft er in der Benutzer-Sandbox der App (kein root).

  • Systempakete: GPG-signiert von den Repos Ihrer Distribution (apt, dnf, pacman, zypper, pkg)

  • pipx/Go/Cargo/Gem/npm: Downloads aus Registries (keine Signaturprüfung, pipx in venvs isoliert)

  • Binärversionen: SHA256-verifiziert, wenn eine Prüfsummendatei verfügbar ist, harter Fehlschlag bei Abweichung. Verwenden Sie --require-checksums oder das --production-Preset, um auch dann fehlzuschlagen, wenn keine Prüfsummendatei veröffentlicht wird. Warnung: --fast deaktiviert alle Prüfsummenprüfungen, einschließlich für Versionen, die Prüfsummen veröffentlichen – nicht in Produktions- oder CI-Umgebungen verwenden

  • MCP-Python-Abhängigkeiten: Von uv mit einem 3-Tage-exclude-newer-Fenster aufgelöst; Dependabot wartet ebenfalls 3 Tage, bevor er Abhängigkeits-PRs vorschlägt. Dies gilt nicht für installierte Sicherheitstools

  • Go-SDK: SHA256-verifiziert gegen die von go.dev veröffentlichten Hashes, wenn verfügbar; warnt bei API-Fehler, harter Fehlschlag mit --require-checksums

  • Git-Repos: Geklont bei HEAD, Abhängigkeiten in isolierten venvs installiert (setup.py wird NICHT ausgeführt)

  • Build from Source: Führt make aus (als root unter Linux) – überprüfen Sie, was Sie bauen

  • Toolkit-Docker-Build: Ubuntu- und uv-Quellen sind digest-pinned, während apt-Pakete aus den aktuellen signierten Ubuntu-Repos aufgelöst werden; Neubauten sind nicht bit-für-bit reproduzierbar

  • Optionale Tool-Images: Über veränderliche Tags statt Digests gezogen, einschließlich mehrerer expliziter latest-Tags. --production pinnt oder verifiziert diese Images nicht

Die Datei .versions protokolliert, was installiert wurde und wann.

Bekannte Einschränkungen

Die Prüfsummenprüfung ist standardmäßig best-effort. Einige Upstream-Versionen veröffentlichen keine Prüfsummen oder Signaturen, sodass Downloads in diesen Fällen ohne kryptografische Prüfung fortgesetzt werden können. Verwenden Sie --production (oder --require-checksums), um fehlzuschlagen, wenn keine Prüfsummendatei verfügbar ist. Dieses Preset pinnt keine Git-Klone, Sprachpaket-Registries oder Build-from-Source-Tools; diese folgen weiterhin ihren Upstream-Release-Kanälen. Go-SDK-Downloads werden gegen go.dev SHA256-verifiziert, wenn die API erreichbar ist; der strikte Prüfsummenmodus schlägt hart fehl, wenn dies nicht der Fall ist.

--fast überspringt alle Prüfsummenprüfungen für Binärversionen (sowohl SHA256-Prüfungen als auch die Warnung bei fehlenden Prüfsummen), einschließlich Versionen, die doch Prüfsummen veröffentlichen. Dies tauscht Integritätsprüfung gegen Geschwindigkeit. Es schließt sich gegenseitig mit --require-checksums und --production aus. Verwenden Sie --fast nicht in CI-Pipelines oder Umgebungen, in denen die Integrität der Lieferkette wichtig ist.

Windows-Defender-Falschpositive

Wenn Sie dieses Repo auf einen Windows-gemounteten Pfad klonen (z. B. C:\Users\<you>\... oder einen beliebigen Ordner, der von Windows aus sichtbar ist, während Sie in WSL arbeiten), können Microsoft Defender und andere AV-Produkte einzelne Dateien unter Quarantäne stellen. Defensive Inhalte – IOC-Referenztabellen, Beispiel-obfuskiertes PowerShell, Malware-Analyse-Snippets, Exploit-PoC-Strings in .claude/skills/, writeups/ und Teile von mcp_server/ – enthalten dieselben Byte-Strings, die echte Angreifer verwenden, sodass signatur- und ML-basierte Engines sie markieren können. Häufige Erkennungen umfassen Trojan:Script/Wacatac.B!ml, HackTool:* und generische Heur.*-Befunde.

Dies sind Falschpositive im Kontext eines Sicherheits-Toolkits. Um mit dem Repo unter Windows zu arbeiten, haben Sie drei Optionen:

  1. Fügen Sie eine Defender-Ausnahme für den Repo-Ordner hinzu (empfohlen für einen persönlichen Entwicklungsrechner). Führen Sie von einer erhöhten PowerShell aus:

    Add-MpPreference -ExclusionPath "C:\path\to\cybersec-toolkit"
  2. Stellen Sie einzelne Dateien aus der Quarantäne wieder her über Windows-Sicherheit -> Viren- & Bedrohungsschutz -> Schutzverlauf -> „Auf Gerät zulassen". Pro Datei, verhindert jedoch keine erneute Erkennung bei Updates.

  3. Bewahren Sie das Repo im WSL-Dateisystem auf (z. B. ~/cybersec-toolkit in Ihrer Distribution). Defender scannt die vhdx von WSL2 standardmäßig nicht, sodass keine Erkennungen auftreten. scripts/sync-wsl.sh erledigt dies bereits für das MCP-Server-Unterverzeichnis.

Von Defender entfernte Dateien erscheinen als D in git status. Der Inhalt bleibt in der Git-Historie erhalten; stellen Sie ihn mit git checkout -- <path> wieder her, sobald eine Ausnahme eingerichtet ist.

Lizenz

MIT-Lizenz – siehe LICENSE für Details.

Dieses Repository verteilt auch Komponenten von Drittanbietern unter deren eigenen Bedingungen weiter, einschließlich einiger unter CC-BY-SA-4.0 (ShareAlike, nicht in MIT umlizenzierbar). Wenn Sie gebündelte Inhalte weiterverteilen oder anpassen, befolgen Sie diese Bedingungen – siehe THIRD_PARTY_NOTICES.md.

Für den Beitrags-Workflow und die Erwartungen an Reviews siehe CONTRIBUTING.md. Für Erwartungen an das Community-Verhalten siehe CODE_OF_CONDUCT.md. Für die Meldung von Schwachstellen siehe SECURITY.md.

Haftungsausschluss

Dieses Projekt wird nur für Bildungs-, Verteidigungs- und ausdrücklich autorisierte Sicherheitstests bereitgestellt. Verwenden Sie es nur auf Systemen, die Sie besitzen oder für die Sie eine schriftliche Genehmigung zur Bewertung haben, und befolgen Sie alle geltenden Gesetze, Regeln des Engagements, Lizenzen von Drittanbieter-Tools und Dienstbedingungen.

Das Toolkit enthält offensive und defensive Tools mit doppeltem Verwendungszweck. Einige Befehle können Netzwerke scannen, Exploits ausführen, Systeme modifizieren oder Sicherheitswarnungen auslösen. MCP/AI-Integrationen sind durch Sicherheitsrichtlinien geschützt, aber die Benutzer bleiben dafür verantwortlich, Umfang, Eingabeaufforderungen, Befehle und Ausgaben zu überprüfen, bevor sie Aktionen ausführen.

Dieses Repository verteilt die Sicherheitstools selbst nicht; es installiert öffentlich verfügbare Open-Source-Projekte aus ihren offiziellen Upstream-Quellen zum Installationszeitpunkt. Es ist nur für rechtmäßige, autorisierte Nutzung bestimmt.

Das Projekt wird „wie besehen" ohne Gewährleistung bereitgestellt. Die Betreuer sind nicht verantwortlich für Missbrauch, Schäden, Datenverlust, Dienstunterbrechungen oder rechtliche Konsequenzen aus der Nutzung dieses Toolkits.

Inhalte von Drittanbietern werden unter ihrer ursprünglichen Lizenz gebündelt – siehe THIRD_PARTY_NOTICES.md.

Available Tools

15 tools
check_installedA
Read-onlyIdempotent

Check if a specific cybersecurity tool is installed on the system.

Uses multiple detection strategies: .versions tracking, PATH lookup, pipx binary name fallback, /opt directory check, and docker image check.

When host is provided, checks installation on the remote host via SSH using 'which '.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNoOptional remote host name (as configured via manage_remote_hosts).
tool_nameYesName of the tool to check (as listed in tools_config.json).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so safety is covered. The description adds real value beyond that by enumerating the five detection strategies and disclosing that a host argument switches to an SSH-based 'which <binary>' check. Only the absence of failure-mode or return-behavior detail keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, followed by the detection strategies and the remote-host behavior. Three short paragraphs, every sentence carrying information, with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be recounted, and annotations cover the safety profile. Between purpose, detection strategies, and remote-host semantics, an agent has everything needed to call this correctly in either local or remote mode.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented and the baseline is 3. The description still adds meaning by explaining what host actually causes (remote SSH installation check) and anchoring tool_name to tools_config.json, going beyond the schema's phrasing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Check if a specific cybersecurity tool is installed on the system.' This is clearly distinct from run_tool, list_tools, or get_tool_info. It does not explicitly name or route away from those siblings, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by explaining that supplying host triggers a remote SSH check, which hints at the local-vs-remote decision. However, it never says when to use this versus list_tools or get_tool_info, and offers no exclusions or prerequisites. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cve_infoA
Read-onlyIdempotent

Map a CVE to the toolkit's tools, skills, and modules, plus live-lookup commands.

Local-first and deterministic: accepts a CVE id (e.g. "CVE-2021-44228") or a common nickname (e.g. "log4shell", "eternalblue", "zerologon", "printnightmare") and returns the curated exploitation skills, mapped registry tools with install status, and relevant modules.

For live CVSS / CISA KEV / EPSS data it returns ready-to-run run_tool("curl", ...) commands rather than fetching itself — those hit external hosts and are subject to the CYBERSEC_MCP_ALLOW_EXTERNAL policy. Always clear the authorization-gate skill before testing.

ParametersJSON Schema
NameRequiredDescriptionDefault
cveYesA CVE id (CVE-YYYY-NNNN) or a known vulnerability nickname.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial context beyond the annotations: local-first/deterministic behavior, that it returns ready-to-run run_tool("curl", ...) commands rather than performing network fetches, that external lookups are gated by CYBERSEC_MCP_ALLOW_EXTERNAL, and that an authorization-gate skill must be cleared first. This explains the openWorldHint=false annotation and the safety profile rather than merely restating it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the one-line purpose, then groups the input contract, return behavior, and safety prerequisite into distinct, information-dense paragraphs. No sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be enumerated, and the description still previews the return shape (skills, tools with install status, modules). It is complete for normal use, though it omits edge-case behavior such as an unknown or ambiguous CVE id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description goes further by listing concrete nickname examples ('log4shell', 'eternalblue', 'zerologon', 'printnightmare') and the CVE-YYYY-NNNN form, which helps the agent normalize input beyond the schema's brief wording.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource ('map a CVE to the toolkit's tools, skills, and modules') and specifies the accepted input forms (CVE id or nickname). It is readily distinguishable from siblings like get_tool_info and get_module_info, which operate on the toolkit's own inventory rather than mapping an external CVE.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains when it acts locally versus when it defers to curl commands, and names a hard prerequisite ('always clear the authorization-gate skill before testing'). It gives clear operating context but does not name an alternative tool for cases the caller might prefer instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_module_infoB
Read-onlyIdempotent

Get full details about a module: description, all tools, and management commands.

ParametersJSON Schema
NameRequiredDescriptionDefault
moduleYesModule name (e.g. "web", "pwn", "forensics").

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=false, so the safety profile is covered. The description adds that it returns the module description, its tools, and management commands, but says nothing about unknown-module behavior or result size.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that names the resource first and enumerates the payload; nothing is padded or redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one documented parameter, read-only annotations, and an output schema that carries the return structure, the description covers everything needed to invoke the tool correctly. Only the installed/prerequisite condition is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter with 100% schema description coverage, including examples ('web', 'pwn', 'forensics'). The description adds no meaning beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('module') plus the shape of what comes back (description, tools, management commands). It is distinguishable from sibling get_tool_info by operating on a module rather than a tool, though it never explicitly names that sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisite (e.g. must the module be installed first?), and no routing toward alternatives like get_tool_info or list_tools. The agent must infer the context entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_profile_toolsA
Read-onlyIdempotent

List every tool that a specific profile would install.

Given a profile name, returns the complete list of tools grouped by module, with install status for each. This lets you see exactly what you get before running the install command.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileYesProfile name (e.g. "ctf", "redteam", "web", "full").

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so the safety profile is fully covered. The description adds that results are grouped by module with per-tool install status, which is useful, but does not disclose anything about auth or rate limits beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and efficiently sized at two short sentences. There is mild redundancy, since 'List every tool that a specific profile would install' and 'returns the complete list of tools' carry nearly the same information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a one-parameter, read-only tool with an output schema present and annotations covering safety, the description supplies everything needed to invoke it correctly. Return-value details are appropriately left to the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single 'profile' parameter already documents example values ('ctf', 'redteam', 'web', 'full'). The description only restates 'Given a profile name,' adding no format or validation detail beyond the schema — the baseline 3 for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'List every tool that a specific profile would install' — and adds scope detail, returning tools grouped by module. This clearly separates it from siblings like list_tools (all tools) and get_tool_info (single tool).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description supplies a concrete use context: 'This lets you see exactly what you get before running the install command,' which implies previewing before install. It stops short of naming explicit alternatives (e.g., list_profiles for discovering valid names), so it is clear but not fully exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tool_infoB
Read-onlyIdempotent

Get detailed information about a cybersecurity tool.

Returns the tool's install method, module, URL, installation status, module description, and management commands (install, update, remove).

ParametersJSON Schema
NameRequiredDescriptionDefault
tool_nameYesName of the tool to look up.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=false, so the safety profile is covered. The description adds that the result includes install method, module, URL, install status and management commands, which is useful behavioral context, but it says nothing about what happens for an unknown tool_name or any rate limits. Given annotations carry the main burden, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, purpose front-loaded, no filler. The second sentence enumerating return fields is slightly redundant given an output schema exists, which keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Since an output schema exists, the description need not explain return values, so its core obligation is purpose plus routing. Purpose is covered; what's missing is any signal about when to prefer this over list_tools, check_installed, or get_module_info, and what happens on a bad tool name.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single documented parameter, so the baseline 3 applies. The description adds no format, casing, or matching-rule detail (e.g., exact name vs alias) beyond the schema's 'Name of the tool to look up.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Get detailed information about a cybersecurity tool') and even enumerates the fields returned, so an agent knows exactly what comes back. It does not, however, differentiate itself from nearby siblings like get_module_info or check_installed, which also return tool/module metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use statement. The description never mentions list_tools (browse the catalog) or check_installed (installation state), even though this tool overlaps heavily with both, leaving the agent to infer routing from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

guided_assessmentA
Destructive

Plan, guide, or autonomously solve a security task over the MCP toolchain.

An orchestrator on top of the registry, advisors, install checks, audit logging, and execution policy. Bootstrap commands use the governed execute_tool() path, so target scope, external-network, shell-injection, and blocked-flag checks apply.

By DEFAULT it auto-detects the right workflow + tools for the problem (workflow/ target_type="auto") and acts as a companion: it returns classification, triage gates, recommended skills, reporting next steps, a plan, tool install status, next actions, and the full MCP toolchain surface WITHOUT auto-running commands in this initial call. The agent can then run tools step by step as the user approves. The heaviest mode (autonomous) starts the auto-solver contract: it bootstraps triage, then the client agent continues with the full MCP toolchain (registry/advisors/install checks/run_tool/run_pipeline and separately gated run_script). When registry tools and pipelines are not enough, autonomous mode may create, save, and run scoped helper scripts for the user, persisting reusable ones under manual_scripts/. Simple recon/HTTP commands such as curl remain run_tool calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo"companion" (default) or "autonomous" (opt-in).companion
targetYesURL, hostname/IP, or local file path to assess.
findingNoOptional short finding summary to classify for triage/report routing. Raw finding text is used locally but not echoed in the result.
workflowNo"auto" (default — inferred), "bounty", "ctf", or "generic".auto
intensityNo"low" (default) or "medium". Medium may include low-volume nmap.low
max_stepsNoMaximum number of bootstrap steps autonomous mode auto-executes.
target_typeNo"auto" (default — inferred from the target) or an explicit type: bounty type (web_app/api/cloud/network/iot/mobile_app) or CTF category.auto
authorization_confirmedNoRequired before any network step executes.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (destructiveHint=true, openWorldHint=true), the description discloses governed execution checks ('target scope, external-network, shell-injection, and blocked-flag checks'), confirms no auto-run in the default call, and explains that autonomous mode may create, save, and run scoped helper scripts, persisting reusable ones under manual_scripts/. It also states that authorization_confirmed is required before any network step executes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and is dense with useful operational detail. It is a bit paragraph-heavy and could be more scannable, but given the complexity of the orchestration behavior, most sentences earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be fully explained, yet the description still summarizes what companion mode returns and what autonomous mode bootstraps. Combined with the annotations and 100% schema coverage, the definition gives an agent enough context to choose and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameter semantics already live in the input schema. The description largely repeats default values and enum-like options (mode companion/autonomous, workflow auto, target_type auto) without adding substantial syntax or format guidance beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific compound verb+resource: 'Plan, guide, or autonomously solve a security task over the MCP toolchain.' It immediately positions the tool as an 'orchestrator on top of the registry, advisors, install checks, audit logging, and execution policy,' which cleanly distinguishes it from sibling tools like run_tool, run_pipeline, and suggest_for_*.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly explains the default companion mode versus opt-in autonomous mode, and explicitly routes simple recon/HTTP commands to run_tool instead. It does not, however, give a full when-not-to-use rule or spell out the exact conditions under which autonomous mode should be preferred over companion mode, leaving some inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_profilesA
Read-onlyIdempotent

List all 14 available installation profiles with details.

Each profile is a curated set of modules targeting a specific use case. Shows module count, tool count, and install command for each profile. Profiles range from 'osint' (2 modules) to 'full' (18 modules, 670+ tools).

Returns: All profiles with descriptions, module lists, tool counts, and install commands.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and closed-world behavior, so the safety profile is covered. The description adds genuine context beyond that: exactly 14 profiles, the osint-to-full size range, and that each is a curated module set. The 'Returns' sentence overlaps the output schema and is somewhat redundant.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and size, and the supporting sentences are short. The trailing 'Returns:' block restates what the earlier sentence ('Shows module count, tool count, and install command') already established, which is mild duplication.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is not strictly required, and the description supplies scope, size, and content shape. It is essentially complete for a zero-param read tool, with the only gap being guidance on when to prefer it over adjacent discovery tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. Schema coverage is 100% and the description correctly implies no filtering options.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List all 14 available installation profiles') with explicit scope and quantitative detail. Clear enough to distinguish from siblings like get_profile_tools or recommend_install, which deal with a single profile or a recommendation rather than the full catalog.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the discovery framing but never stated: it does not say when to call this versus get_profile_tools, recommend_install, or check_installed. No exclusions or prerequisites are given, though the context is reasonably inferable for a list tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_toolsA
Read-onlyIdempotent

List and filter the 670+ cybersecurity tools in the registry.

Returns the tools drawn from tools_config.json — the same registry the installer and the advisors share — with the total count, the filters still available to narrow the results, and one entry per tool. Combine the filters to scope the list: module="web" for web tools, method="pipx" for Python-packaged tools, installed_only=True for only what is on this host. Start here to discover what exists before check_installed or get_tool_info.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNoFilter by install method. One of apt, pipx, go, cargo, gem, git, binary, docker, snap, special, source, npm.
moduleNoFilter by module (e.g. "web", "pwn", "forensics"). 18 modules available.
installed_onlyNoIf true, only return tools that are currently installed.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, closed-world behavior, so the safety profile is covered. The description adds valuable context about data provenance (drawn from tools_config.json, shared with installer/advisors) and return shape (total count, available filters, one entry per tool), which goes beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action, then provides provenance, filter examples, and entry-point guidance. Efficient and well-ordered, though the provenance sentence is slightly verbose for a list tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering safety, the description fills remaining gaps: data source, filter combinations, and the tool's role in the workflow relative to siblings. Nothing essential is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so baseline is 3, but the description adds semantic value by giving concrete examples of the three filters and showing combinations, which helps an agent reason about filter interaction beyond the schema's individual parameter docs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list/filter) and resource (670+ cybersecurity tools in the registry), and grounds it in the shared tools_config.json registry. Distinguishes from siblings by naming check_installed and get_tool_info as downstream steps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Start here to discover what exists before check_installed or get_tool_info,' giving a clear entry-point role, and offers concrete filter combinations (module="web", method="pipx", installed_only=True) to guide use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_remote_hostsA
Destructive

Add, list, test, or remove the SSH hosts that run_tool can target remotely.

Manages the remote-host registry that lets run_tool (and check_installed) run a tool on a remote Kali/Linux box over SSH instead of locally, so the tool only has to be installed on the remote. The action selects the operation: "list" shows every configured host; "add" registers or updates a host (needs name and hostname, plus optional user, port, ssh_key, and a tool_allowlist that restricts which tools may run there); "remove" deletes a host by name; "test" opens an SSH connection to confirm the host is reachable.

Connections use StrictHostKeyChecking=accept-new, so the key presented on the first connection is pinned in ~/.ssh/known_hosts and any later change is rejected. Verify that first fingerprint out-of-band for a host you do not control, or add the key to known_hosts before "test".

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoHost name (required for add/remove/test).
portNoSSH port (default 22).
userNoSSH username (default "kali").kali
actionYesOperation to perform: "list", "add", "remove", or "test".
ssh_keyNoPath to SSH private key (e.g. "~/.ssh/id_kali").
hostnameNoIP address or hostname of the remote machine (required for add).
descriptionNoHuman-readable description of the host.
tool_allowlistNoComma-separated list of allowed tool names (e.g. "nmap,gobuster,sqlmap"). None means all tools allowed.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive/openWorld/non-idempotent, and the description adds genuinely new behavioral context: the StrictHostKeyChecking=accept-new policy, that the first-seen key is pinned in ~/.ssh/known_hosts and later changes are rejected, and the out-of-band fingerprint verification advice. That is security-relevant disclosure beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads purpose, then enumerates actions, then ends with the SSH key-pinning caveat. Every paragraph adds information, though the per-action enumeration is dense and slightly overlaps the schema's own descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-action mutation tool with side effects, an output schema present (so returns need no explanation), and full annotation coverage, the description supplies the missing pieces: action semantics, credential requirements, and the connection-security caveat. An agent has enough to select actions and call them correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3, but the description adds real meaning: which parameters each action requires (name for add/remove/test, hostname for add) and what tool_allowlist actually does (restricts which tools may run on that host, with None meaning all). It stops short of restating defaults like user='kali' or port=22.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Starts with a specific verb set (add/list/test/remove) and a concrete resource (SSH remote hosts), and names the dependent sibling tools run_tool and check_installed. An agent can immediately distinguish this registry-management tool from the execution tools in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains that the action parameter selects the operation and gives per-action conditions (add needs name+hostname, remove takes a name, test opens a connection), plus the prerequisite context that hosts enable remote execution via run_tool. It does not, however, state explicit when-not-to-use cases or an ordering rule such as 'add before test before run_tool'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recommend_installA
Read-onlyIdempotent

Recommend which profile, modules, or individual tools to install.

Analyzes a natural-language description of what the user wants to do and recommends the best installation approach — from a full profile down to just a few individual tools. Avoids installing everything when only a subset is needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesNatural-language description of what the user wants to do.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is covered. The description adds useful context by clarifying this is an advisory recommendation engine rather than an installer, despite the 'install' in the name, and explains the over-install avoidance behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action in the first sentence, followed by scope and rationale. All sentences are relevant, though the second sentence could be slightly trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a present output schema, full parameter documentation, and complete annotations, the description covers everything an agent needs to select and invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single 'task' parameter, so the schema already explains it. The description's reference to a 'natural-language description of what the user wants to do' merely restates the schema, adding no syntax or format detail beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (recommend) and resource (profile, modules, or individual tools to install), and scopes the output range from a full profile down to a few tools. It does not explicitly name or contrast with siblings like list_profiles or get_profile_tools, but the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage ('Analyzes a natural-language description of what the user wants to do') and gives a rationale ('Avoids installing everything when only a subset is needed'), but provides no explicit when-to-use guidance or alternatives among the many sibling tools (list_profiles, get_profile_tools, check_installed).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_pipelineA
Destructive

Execute a pipeline of tools, piping stdout from each step into stdin of the next.

Replaces shell piping (e.g. strings binary | grep flag) with a safe, no-shell alternative. Each step is validated individually (allowlist, argument sanitization, policy checks) before any process starts.

Each step's stdout and stderr are bounded to 200KB as they are read, and an intermediate step's bounded stdout is what gets piped into the next step. If any step hits that cap, the returned truncated flag is set and the final stdout carries a truncation marker.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNoReserved for future use. Currently only local execution is supported.
stepsYesList of dicts, each with 'tool' (required) and 'args' (optional) keys. Max 10 steps per pipeline.
timeoutNoGlobal timeout for entire pipeline in seconds (default 120, max 300).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, openWorldHint=true and readOnlyHint=false, but the description still adds real value: per-step validation before any process starts, a 200KB per-step stdout/stderr cap, a truncation marker, and the returned `truncated` flag. It omits what happens to earlier steps if a later step fails, which matters for a destructive pipeline, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, followed by the motivating example, then the safety/bounding guarantees. Every sentence carries concrete information (validation order, 200KB cap, truncation marker) with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be re-described, and the description covers the semantics an agent needs: step structure, validation, bounding, and truncation signaling. The main residual gap is failure/partial-execution behavior across steps in a destructive multi-step run.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema itself documents `host` (reserved), the step-list shape with the max-10 constraint, and the timeout default/max. The description adds no further parameter-level syntax or semantics, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Execute a pipeline of tools') plus the precise mechanism (stdout piped to stdin of the next step), which implicitly separates it from the single-invocation siblings run_tool and run_script. It does not explicitly name those alternatives, so an agent still has to infer the routing, keeping it short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for when to reach for it: replacing shell piping such as `strings binary | grep flag` with a safe, no-shell alternative. That is a concrete usage trigger, though it stops short of explicitly contrasting with run_tool/run_script or stating when not to use a pipeline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_scriptA
Destructive

Write and execute a Python or Bash script, returning its output.

Writes the code to a temporary file, executes it via python3/bash, and returns stdout/stderr. The temp file is deleted after execution. Requires CYBERSEC_MCP_ALLOW_SCRIPTS=1. This is an explicit full-code execution opt-in: scripts are not OS-sandboxed and are not constrained by CYBERSEC_MCP_ALLOW_EXTERNAL.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe script source code to execute.
venvNoOptional Python venv name from ~/.ctf-venvs/ (e.g. "pwntools"). Allows using a different Python with specific packages installed. Ignored for language="bash". If not set, uses the MCP server's Python.
timeoutNoMaximum execution time in seconds (default 120, max 300).
languageNo"python" (default) or "bash".python
working_dirNoWorking directory for the script (default: system temp dir).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive/openWorld/non-idempotent, and the description meaningfully extends them: it discloses the temp-file write-then-delete lifecycle, the interpreter used, and two independent gating/containment flags. The non-sandboxing warning is exactly the kind of consequence an agent needs before calling a mutating execution tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences, front-loaded with what the tool does and the effect, followed by execution mechanics and then the opt-in/containment caveats. Every sentence contributes information an agent would not otherwise have.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value explanation is unnecessary, and the description covers the remaining risk surface: execution mechanism, cleanup, and the two environment flags governing permission and containment. Nothing material is missing for a correct call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the venv, timeout, language, and working_dir semantics are already fully documented in the schema, including defaults and the venv/bash interaction. The description adds no parameter-level detail beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence gives a specific verb+resource pair ('Write and execute a Python or Bash script') plus the scope of the effect ('returning its output'), which is enough to separate it from sibling run_tool and run_pipeline. Nothing about the action is left ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly states the precondition for use (CYBERSEC_MCP_ALLOW_SCRIPTS=1) and the security posture (not OS-sandboxed, not bound by CYBERSEC_MCP_ALLOW_EXTERNAL). It stops short of naming when to reach for run_tool/run_pipeline instead of scripting an ad-hoc program, so it lacks an explicit alternative-routing clause.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_toolA
Destructive

Execute an installed cybersecurity tool or system utility and return its output.

Runs tools from the 670+ registry as well as ~120 standard system utilities (strings, file, curl, grep, base64, xxd, jq, etc.) that are allowed without being in the registry. Arguments are sanitized to prevent shell injection. Timeout is clamped to 1-300s. Output is truncated at 200KB.

Network tools (including curl, wget, ping, etc.) are restricted to local/private targets by default. Set CYBERSEC_MCP_ALLOW_EXTERNAL=1 to allow external targets.

When host is provided, the tool is executed on the remote host via SSH. The tool does not need to be installed locally — only on the remote host.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoCommand-line arguments as a string (e.g. "--version" or "-sV 10.0.0.1").
hostNoOptional remote host name (as configured via manage_remote_hosts).
timeoutNoMaximum execution time in seconds (default 120, max 300).
tool_nameYesName of the tool to run (registry tool or system utility).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructive/openWorld/non-idempotent, and the description adds substantial context on top: argument sanitization against shell injection, timeout clamping to 1-300s, 200KB output truncation, default local/private network restriction with an env-var escape hatch, and SSH semantics where the tool need only exist on the remote host.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then layered constraints in short, well-separated paragraphs. Every sentence carries operational information (sanitization, timeout clamp, truncation, network policy, SSH) with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a high-risk execution tool: safety profile is covered by annotations, argument and host semantics by the description, and return values by the existing output schema. An agent has everything needed to call it correctly and safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning for 'host' (executed remotely via SSH, tool need not be installed locally) and for 'args' (sanitized to prevent shell injection). Timeout and tool_name semantics are largely left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Execute') and resource ('an installed cybersecurity tool or system utility') plus the outcome ('return its output'). It clearly separates itself from siblings like run_script and run_pipeline by scoping to registry tools and a fixed set of allowed system utilities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives rich context: registry vs. ~120 built-in system utilities, network tools restricted to local/private targets unless CYBERSEC_MCP_ALLOW_EXTERNAL=1, and remote execution when host is supplied. It never explicitly says when to prefer run_script/run_pipeline or the suggest/recommend siblings, so routing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suggest_for_bountyA
Read-onlyIdempotent

Suggest cybersecurity tools for a bug bounty target type.

Provides curated tool recommendations with installation status, methodology steps (starting with scope verification), common vulnerabilities, and quick wins for 7 target types: web_app, api, mobile_app, cloud, network, iot, llm.

Also accepts aliases: web/webapp (web_app), rest/graphql (api), android/ios/mobile (mobile_app), aws/azure/gcp/k8s (cloud), infra/infrastructure (network), firmware/embedded (iot).

ParametersJSON Schema
NameRequiredDescriptionDefault
target_typeYesType of bug bounty target (e.g. "web_app", "api", "cloud").

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so safety is covered. The description adds real behavioral value by disclosing what the response contains: curated tools with installation status, methodology steps starting with scope verification, common vulnerabilities, and quick wins.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose in the first sentence, then supporting detail. The alias list is somewhat long but each entry maps useful input strings, so it earns its place; no filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, yet the description still sketches the response shape. Combined with the enum-free parameter being fully enumerated, the definition is complete enough for an agent to invoke correctly, missing only explicit sibling routing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% but the schema has no enum for target_type; the description supplies the seven valid values (web_app, api, mobile_app, cloud, network, iot, llm) and the accepted aliases, which the schema alone does not convey. This meaningfully extends parameter semantics beyond the structured field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Suggest cybersecurity tools') plus the scope ('for a bug bounty target type'), immediately distinguishing it from the sibling suggest_for_ctf. An agent can tell what this returns without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context of use is implied by 'bug bounty target type' and the enumerated target list, but there is no explicit when-to-use / when-not guidance and no routing to alternatives such as suggest_for_ctf or guided_assessment. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

suggest_for_ctfA
Read-onlyIdempotent

Suggest cybersecurity tools for a CTF challenge category.

Provides curated tool recommendations with installation status for 14 challenge types: web, crypto, pwn, reversing, forensics, stego, misc, networking, wireless, osint, cloud, mobile, blockchain, llm.

Also accepts aliases: re/rev (reversing), binary/exploitation (pwn), steganography (stego), network (networking), recon (osint), etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
challenge_typeYesType of CTF challenge (e.g. "web", "crypto", "pwn").

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so safety is covered. The description adds useful operational context beyond them: that recommendations are curated and include installation status, and that 14 named categories are supported. It does not discuss result size or ordering, but the output schema presumably covers returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then the category list and alias list in separate, scannable sentences. Slightly list-heavy, but each element earns its place by supporting valid parameter values.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, output-schema-backed read tool, the description covers what it does, the full valid value space, and the fact that install status is included. Nothing critical is missing; only cross-tool routing is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter, so the baseline is 3, but the description goes further by enumerating all 14 accepted challenge_type values and a set of aliases (re/rev, binary/exploitation, steganography, network, recon). Since the schema declares no enums, this enumeration is genuinely additive and prevents wrong-value calls.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Suggest cybersecurity tools for a CTF challenge category'), which the agent can immediately act on. It does not name or contrast with the obvious sibling suggest_for_bounty, so differentiation from that near-twin is left implicit via the word 'CTF'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for a CTF challenge category' implies the use context, but there is no explicit when-to-use / when-not guidance and no reference to the adjacent suggest_for_bounty or recommend_install tools. The agent must infer that this is the CTF-scoped path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv1.2.1
    • Changedlist_tools2 fields changed
      • changedInput schema / properties / method / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "enum": [
        +      "apt",
        +      "pipx",
        +      "go",
        +      "cargo",
        +      "gem",
        +      "git",
        +      "binary",
        +      "docker",
        +      "snap",
        +      "special",
        +      "source",
        +      "npm"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / method / description
        Previous value: -"Filter by install method (apt, pipx, go, cargo, gem, git, binary, docker, snap, special, source, npm)."New value: +"Filter by install method. One of apt, pipx, go, cargo, gem, git,\nbinary, docker, snap, special, source, npm."
    • Changedmanage_remote_hosts2 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"One of \"list\", \"add\", \"remove\", \"test\"."New value: +"Operation to perform: \"list\", \"add\", \"remove\", or \"test\"."
      • addedInput schema / properties / action / enum
        Added value: +[
        +  "list",
        +  "add",
        +  "remove",
        +  "test"
        +]
  2. 15 tool updatesv1.2.0
    • First observedcheck_installed
    • First observedget_cve_info
    • First observedget_module_info
    • First observedget_profile_tools
    • First observedget_tool_info
    • First observedguided_assessment
    • First observedlist_profiles
    • First observedlist_tools
    • First observedmanage_remote_hosts
    • First observedrecommend_install
    • First observedrun_pipeline
    • First observedrun_script
    • First observedrun_tool
    • First observedsuggest_for_bounty
    • First observedsuggest_for_ctf

TDQS

A3.9/5.0

Scored across 15 tools

Disambiguation4/5

Most tools have distinct roles (registry discovery, install planning, advisory, execution, remote management), but there is some overlap between advisory/orchestration tools like guided_assessment, recommend_install, and suggest_for_* that could cause hesitation. Descriptions help clarify, so boundaries are mostly clear.

Naming Consistency4/5

Names are consistently snake_case and mostly follow a verb_noun pattern (get_tool_info, list_tools, run_tool). Minor deviations like guided_assessment (adjective_noun) and suggest_for_ctf (verb_preposition_noun) are readable but slightly break the pattern.

Tool Count5/5

15 tools is well within the ideal range and each tool serves a distinct purpose across discovery, installation, execution, and orchestration. No tool feels redundant or unnecessary for the toolkit's scope.

Completeness4/5

The surface covers registry discovery, profile/module insight, install recommendation, tool execution (single, pipeline, script), remote host management, and high-level orchestration. Minor gaps exist: no direct install/uninstall/update tool (though commands are surfaced via get_tool_info) and no explicit audit-log viewer.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables aggregation, filtering, transformation, and composition of tools from multiple MCP servers through a single proxy with tool views.
    5
    AGPL 3.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides a security and context-control layer that multiplexes multiple MCP servers behind a single endpoint, scanning tool definitions and results, enforcing authorization, rate limiting, and audit logging, and dynamically retrieving tools to manage context window usage.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to run server-side security audits through callable tools that sweep attack surfaces, trace source-to-sink reachability, verify live findings, and manage scope, recon, chains, manuals, intelligence, and memory from any MCP client.
    8,479 npm
    501
    MIT