Skip to main content
Glama

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

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

内置 AI 集成的网络安全工具包。 一个嵌入式 MCP(模型上下文协议) 服务器让支持 MCP 的客户端查询工具注册表、检查安装状态、为 CTF 类别或漏洞赏金目标推荐工具,并通过受治理的执行路径运行已安装的工具。跳转到 MCP 服务器(AI 集成)。

附带一个模块化安装程序,支持 Linux 和 Termux(Android),涵盖 670+ 工具、18 个模块、14 个配置文件和 12 种安装方法。

与众不同之处: 大多数工具包止步于安装工具。而这里,AI 还可以驱动它们——推断问题类型,从所有模块/配置文件中挑选合适的工具,并作为交互式伴侣与您协作。当您明确授权时,同一套 MCP 工具链可以进入自主求解循环。默认是伴侣;只有您要求时才自主。

兼容的客户端

客户端

集成方式

标签

Claude Code

.mcp.json(受跟踪)+ .claude/skills/

包含原生配置

Claude Desktop

claude_desktop_config.json

记录了配置示例

OpenCode

opencode.jsonc(受跟踪)+ .agents/skills/

已实测

Codex

.codex/config.toml(受跟踪)

包含原生配置

Gemini CLI

GEMINI.md + .gemini/settings.json(受跟踪)

包含原生配置

GitHub Copilot

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

CLI 已实测;VS Code 有文档

Hermes Agent

用户 ~/.hermes/config.yaml

已实测

OpenClaw

用户 ~/.openclaw/openclaw.json + .agents/skills/

已实测

Cursor / Cline / Goose

客户端 MCP 设置 + Agent Skills

通过 MCP 兼容;支持 skills

Continue

客户端 MCP 设置;规则/提示词用于上下文

通过 MCP 兼容

LM Studio (>=0.3.17)

mcp.json;手动或 MCP 提供的上下文

通过 MCP 兼容

Ollama

其前面的 MCP 主机

通过 MCP 主机兼容

Aider

—

不适用

Open WebUI

MCP 到 OpenAPI 的桥接

通过 MCP 主机或桥接兼容

参见 docs/AI_CLIENTS.md 了解每个客户端的详细配置,以及 docs/ORCHESTRATION.md 了解如何在任何 MCP 客户端上协调多个代理。


工作原理

两个入口点共享一个工具注册表。操作员运行 bash 安装程序将工具放到磁盘上;AI 代理与 MCP 服务器通信,通过其受治理的工具路径发现、推荐和执行这些相同的工具。tools_config.json 是模块定义、MCP 顾问读取的单一事实来源,CI 验证器保持 Python 和 bash 两侧同步。

工作原理:操作员运行 bash 安装程序将工具放到磁盘上;AI 代理驱动 MCP 服务器发现、推荐并执行它们。安装程序和 MCP 服务器在 tools_config.json 注册表及磁盘上已安装的工具处汇合,security.py 治理工具执行,CI 验证器保持 Python 和 bash 两侧同步。

Mermaid 源文件:assets/how-it-works.mmd。

阅读图表: 实线箭头表示运行时或安装操作;虚线箭头表示验证和上下文关系。客户端配置通过根感知启动器进入 FastMCP。security.py 通过允许列表、参数检查和网络策略治理 run_tool 和 run_pipeline,不调用 shell。run_script 仍然是一个独立的、默认禁用的完整代码执行能力。Agent Skills 位于执行路径之外:.claude/skills/ 是规范的,scripts/sync-skills.sh 为使用便携镜像的客户端生成 .agents/skills/。


Related MCP server: toolgovern

为什么不用 Kali(或其他安装程序)?

Kali/Parrot/BlackArch 提供工具;这是补充,而非替代。它运行在您已有的机器上(包括 Termux),并添加了一个 AI 控制平面,可以通过一个受治理的接口发现、推荐、链接和执行已安装的工具。想要所有工具?发行版就足够了。想要一个 MCP 客户端能在明确策略下选择并运行它们?那正是这个缺口。

信任与安全

安全用户应该多疑——这里确切说明运行什么、什么被门控:

  • 默认安全的 MCP。 开箱即用,CYBERSEC_MCP_ALLOW_EXTERNAL=0 拒绝不解析到私有/回环范围的网络目标,CYBERSEC_MCP_ALLOW_SCRIPTS=0 禁用 run_script。您明确选择加入外部范围/脚本。

  • 受治理的工具执行通过一个门(mcp_server/security.py):注册表允许列表、无 shell(create_subprocess_exec,绝不使用 shell=True)、参数清理、每个工具的阻止标志拒绝列表(例如 sqlmap --os-shell、nmap -iL、文件列表/目标注入标志)、目标/网络策略、速率限制、输出上限和超时。

  • 执行策略不是操作系统沙箱。 允许的工具以 MCP 进程用户的权限运行,某些安全工具可以启动子进程或加载插件。禁用 run_script 仅禁用该端点;以最小权限用户身份运行 MCP 服务器,或将其置于适合不可信目标的隔离边界内。

  • 工具感知策略不是求解器的硬编码。 求解器从注册表/顾问中选择工具;策略层只理解足够的 CLI 语法,以区分真实目标与头部、词表、输出路径、配置文件或目标列表标志。这使正常命令可用,同时不让文件列表/配置标志绕过范围检查。

  • 审计跟踪,而非泄漏。 操作以 JSON 记录到用户状态目录下仅所有者可读(0600)的轮转日志(默认为 ~/.local/state/cybersec-tools-mcp/audit.log)。脚本主体从不持久化——只记录不可逆的 SHA256 + 长度用于关联——并且凭据形状的字符串从工具参数中编辑掉。

  • 安装程序中的最小权限。 它以 root 身份运行,但对于克隆的仓库构建和 pip/cargo/gem 安装,会降级到调用用户($SUDO_USER);当发布校验和时,二进制发布会进行 SHA256 验证。

  • 双重用途工具被门控。 C2 和钓鱼框架(Sliver、Caldera、gophish、evilginx 等)默认关闭,仅通过 --include-c2(redteam/full 配置文件)安装;MCP 层反映这一点,从不自动运行它们。

  • 仅限授权使用。 参见 SECURITY.md、供应链模型和免责声明。


安装

所有必需的运行时(Python、Go、Ruby、Java、Rust、Node.js)、开发库、pipx 和构建工具都会自动安装。唯一的前提是受支持的 Linux 发行版。不支持 Windows 和 macOS(请使用 WSL 或 Docker)。

Docker 是唯一例外——如果您想要 C2 框架、MobSF、BeEF、BloodHound、TheHive 或 Cortex(--enable-docker),请手动安装。参见 Docker 安装文档。 建议进行 GitHub 身份验证。 安装程序会下载约 30 个二进制发布版,并对 GitHub 进行 30 多次 API 调用。没有身份验证,您将受限于 60 次请求/小时,某些下载可能会失败。有身份验证,限制为 5,000 次/小时。最简单的方式:

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

或者,导出一个个人访问令牌(无需任何作用域):

export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx

从最新发布版(固定且稳定——推荐):

# 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

从 main 分支(最新工具、修复和更改;可能包含未发布的工作):

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

这将安装所有 18 个模块的标准工具。C2/钓鱼工具和 Docker 镜像保持可选;当您明确想要当前平台支持的完整注册表时,使用 --profile full --enable-docker。要安装子集:

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

不确定机器是否就绪?先运行只读预检——它不需要 root,也不安装任何东西:

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

在 Docker 中试用

拉取预构建镜像(无需本地构建):

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

或者自行构建:

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

Podman 可作为直接替代品——将 docker 换成 podman(或 alias docker=podman);支持无根构建和运行。对于下面的 Compose 示例,使用 podman compose(需要安装 compose 提供程序)。

或者使用捆绑的 Compose 文件(构建并运行 installer 服务):

docker compose run --rm installer --profile ctf

该镜像授予 toolkit 用户无密码 sudo,以便安装程序管理系统包。将容器内的代码视为具有 root 能力;该镜像不是安全沙箱,尤其是在启用 run_script 或挂载敏感主机路径时。

macOS(Apple Silicon): 在两个命令中添加 --platform linux/amd64 以通过 x86 模拟运行:

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 仅安装指定工具,不运行完整的依赖设置。干运行时间估算按方法计算安装条目,因此估算值可能高于去重后的 670+ 工具注册表。

安装程序编排了 670+ 工具,跨越 12 种不同的安装方法。时间花在 I/O 密集型操作上,任何脚本语言都无法加速:

耗时项

原因

系统包(apt/dnf)

下载并解包 .deb/.rpm 包以及解析依赖

Go 工具

下载模块并编译每个二进制文件

pipx(Python)

为每个工具创建独立的 venv 并下载 wheel 包

Cargo(Rust)crates

从源码编译——Rust 没有预构建的注册表二进制

Git 克隆

克隆每个仓库

二进制发布

从 GitHub 下载预构建的二进制文件

Bash 开销

数组迭代、日志记录、进度条(可忽略)

要查看当前每种方法的工具数量,请运行 ./install.sh --dry-run——它会打印实时明细,因此这里的数字不会过时。最慢的阶段是编译或解包最多的阶段(apt/dnf 和 Go),而不是原始工具数量:Cargo 从源码编译,但只覆盖少数工具。

安装程序已经尽可能并行化(默认 -j 4)。具有共享锁的方法(apt、pipx、cargo)必须按顺序运行。要减少安装时间:

  • 使用 --profile lightweight 或 --module <name> 只安装你需要的

  • 使用 --skip-cargo 跳过 Rust 编译(每种工具最慢的方法)

  • 使用 -j 8 提高并行度,加快 Go/git/二进制下载

  • 设置 apt-cacher-ng 代理以重复安装


配置方案

Profile

Modules

Description

full

全部 18 个

完整的安全工具包

ctf

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

CTF 竞赛

redteam

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

进攻性安全

web

misc, networking, recon, web, llm

Web 应用测试

osint

misc, recon

OSINT 情报收集

forensics

misc, forensics, blueteam, reversing, stego, cracking

数字取证与应急响应

pwn

misc, pwn, reversing, crypto

二进制利用与逆向工程

mobile

misc, mobile, web, reversing

移动应用安全测试

cloud

misc, cloud, containers, networking, recon

云与容器安全审计

blockchain

misc, blockchain, web, crypto

智能合约审计与区块链安全

wireless

misc, wireless, networking

WiFi、蓝牙和 SDR 安全

lightweight

misc, networking, recon, web, cracking

业余道德黑客必备(HTB、THM、漏洞赏金)

crackstation

misc, cracking, crypto

哈希破解

blueteam

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

防御性安全、应急响应、恶意软件分析

模块

Module

Tools

Description

misc

41

后渗透、社会工程学、字典、资源、C2(Docker + Loki)

networking

57

端口扫描、数据包捕获、隧道、MITM、协议工具

recon

84

子域枚举、OSINT、DNS、自动化侦察框架

web

60

漏洞扫描、模糊测试、SQLi、XSS、CMS 扫描器、API 测试

crypto

14

RSA 攻击、密码分析、哈希攻击、约束求解

pwn

36

漏洞利用框架、二进制利用、模糊测试、载荷生成

reversing

33

反汇编器、调试器、仿真、Java/Python 逆向

forensics

57

磁盘/内存取证、文件雕刻、时间线分析、日志分析、硬件/串口

enterprise

80

Active Directory、Kerberos、Azure AD、凭据收集、横向移动

wireless

41

WiFi 破解、蓝牙、SDR、流氓 AP

cracking

34

哈希破解(john、hashcat)、暴力破解、字典生成

stego

15

图像/音频隐写、检测、StegCracker

cloud

22

AWS/Azure/GCP 安全审计、Checkov

containers

15

Docker/Kubernetes 安全(Grype、Syft、Kubescape、kubeaudit)

blueteam

36

IDS/IPS、SIEM、应急响应、威胁情报、加固、恶意软件分析(YARA、ClamAV、FLOSS、Capa、Loki)

mobile

18

Android/iOS 应用测试、APK 分析、MobSF(Docker)

blockchain

15

智能合约审计(Slither、Mythril、Foundry、Aderyn)、区块链取证、Echidna(Docker)

llm

14

LLM 红队测试、提示注入、越狱测试、AI 漏洞扫描

安装方法

Method

Count

Examples

Git clone

~197

带有自动设置的 GitHub 仓库、资源、字典

系统包(apt/dnf/pacman/zypper)

~166

nmap, wireshark, john, hashcat

pipx

~137

sqlmap, impacket, bloodhound, volatility3

Go install

~62

nuclei, subfinder, ffuf, httpx

二进制发布

~51

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

从源码构建

~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

特殊(curl-pipe)

4

Metasploit, Foundry, Steampipe, patator

Snap

1

zaproxy

npm

5

promptfoo, apk-mitm, surya, solgraph


安装后脚本

所有脚本在 Linux 上都需要 root(sudo)并支持 --help。在 Termux 上,不需要 root。

Script

Purpose

Example

scripts/verify.sh

检查已安装了哪些工具

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

scripts/update.sh

更新所有已安装的工具

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

scripts/remove.sh

按模块移除工具

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

scripts/remove.sh --deep-clean

清除所有缓存和构建产物

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

scripts/backup.sh

备份/恢复工具配置

sudo ./scripts/backup.sh backup

--deep-clean 会移除 Go 模块/构建缓存、Cargo 注册表、pip/pipx/npm/gem 缓存、孤立的 pipx venv、过期的符号链接和日志文件。添加 --remove-deps 还可清除 Rustup 工具链。

MCP 服务器(AI 集成)

MCP(模型上下文协议) 是一种开放标准,允许 AI 助手使用外部工具。本项目包含一个 MCP 服务器,可为任何支持 MCP 的 AI(Claude Code、Claude Desktop、Cursor 等)提供对 670+ 工具注册表的完全读取访问权限——此外还能检查安装、推荐配置方案和执行工具。AI 成为道德黑客的交互式伙伴:它了解每个工具、你已安装哪些工具,并且可以为你运行它们。

AI 能做什么

工具

功能

list_tools

按模块、方法或安装状态列出/筛选全部 670+ 个工具(包含 URL)

check_installed

检查某个工具是否已安装(5 种检测策略)

get_tool_info

完整详情:方法、模块、URL、安装/更新/移除命令

get_module_info

深入剖析某个模块:全部工具、安装状态、哪些 profile 使用它

get_profile_tools

查看某个 profile 安装的所有工具,按模块分组

suggest_for_ctf

针对 14 个 CTF 挑战类别的精选工具推荐

suggest_for_bounty

针对 7 种目标类型的漏洞赏金工具推荐,附方法论和常见漏洞

guided_assessment

面向授权目标的 Companion 优先求解助手——对目标/发现进行分类,返回分流门控,推荐技能,从所有模块/profile 中挑选工具,并逐步引导;可选的 autonomous 会启动一个自动求解循环,遍历 run_tool、run_pipeline 以及单独门控的 run_script 能力

get_cve_info

将 CVE ID 或昵称(如 log4shell)映射到精选技能、注册表工具、模块以及实时 NVD/KEV/EPSS 查询命令

recommend_install

自然语言 → profile/模块/工具推荐

list_profiles

全部 14 个 profile,含工具数量和安装命令

run_tool

安全地执行已安装工具(参数清洗、网络策略、速率限制、审计日志)。支持通过 SSH 远程执行

run_pipeline

无需 shell 即可安全地将工具串联(strings binary | grep flag)

run_script

显式、非沙箱化的 Python/Bash 执行,需选择启用。支持按脚本选择 venv

manage_remote_hosts

添加、移除、列出和测试用于远程工具执行的 SSH 远程主机

MCP 客户端可以查询每个工具及其安装状态,串联受治理的工具调用,解析输出,并根据发现结果调整方向。脚本执行需要单独选择启用。

外部侦察 → 攻击面(需要 CYBERSEC_MCP_ALLOW_EXTERNAL=1,仅限授权范围)

  • "枚举 target.com 的攻击面并标记任何可利用的点" —— 并行展开 amass / subfinder → 用 httpx 解析并探测 → 用 whatweb 进行指纹识别 → 运行 nuclei 模板 → 用 ffuf 做内容发现,然后按暴露程度对主机排序并提出后续步骤

  • "在 /go?url= 上发现开放重定向——将其武器化" —— 用 curl 验证,然后构建 SSRF / OAuth 令牌窃取 PoC,并探测可利用的回调

Web 漏洞利用

  • "确认并利用登录端点上的 SQL 注入" —— 用 sqlmap 确认并导出数据(破坏性的 --os-shell/--os-cmd 会被策略阻止),然后用 run_script 自动化认证绕过,只提取足以构成 PoC 的数据

  • "GraphQL introspection 已开启——绘制它并搜寻 IDOR" —— 拉取 schema,生成查询,对对象 ID 进行模糊测试,并对比已认证与未认证的响应

Active Directory / 内网

  • "在 10.10.0.0/24 上拿到低权限凭据——找到通往域管理员的路径" —— 用 bloodhound 收集,用 impacket(GetUserSPNs.py)执行 Kerberoast,用 hashcat 破解 TGS,然后用 netexec 验证横向移动——全部通过 SSH 在 Kali VM 上完成

  • "检查 DCSync 权限,如果路径存在则转储" —— 枚举复制 ACL,然后对域控运行 secretsdump.py

二进制漏洞利用与逆向

  • "为这个 64 位二进制构建 ret2libc 漏洞利用" —— 用 checksec / readelf 进行初步分析,用 ROPgadget 查找 gadget,通过 puts@plt 调用泄露 libc,然后在 venv="pwntools" 中编写完整的 pwntools 利用链并在本地弹出 shell

  • "从这个 stripped 二进制中恢复算法" —— 将 objdump / radare2 的反汇编结果送入针对性分析,然后用 run_script 重新实现以验证行为

密码学

  • "破解这个 RSA——小 e,多个密文" —— 检测攻击类型(Håstad / 共模 / Wiener),并在 venv 中用 pycryptodome + sympy 求解,返回明文

  • "这个 JWT 是 HS256 且密钥较弱" —— 破解签名密钥并伪造管理员令牌

蓝队 · 检测工程

  • "为这个技术编写 Sigma 规则并转换到我的 SIEM" —— 编写规则并通过 sigma-cli 渲染为目标后端(Splunk / Elastic)格式

  • "在这些 Windows 事件日志中搜寻横向移动" —— 用 Sigma 规则对 EVTX 运行 chainsaw,然后按主机和时间线汇总命中结果

  • "从这些样本构建 YARA 规则并扫描目录树" —— 生成 yara 签名并递归运行

DFIR · 恶意软件分类

  • "为这个内存转储建立时间线" —— 运行 volatility3 插件(pslist、netscan、malfind)并将结果串联成一个完整叙事

  • "在这个 pcap 中搜寻 C2 心跳" —— tshark / tcpdump 提取 → suricata 规则 → 标记周期性回连

  • "静态分析这个可疑文件" —— file → strings → capa / yara,然后提取 IOC 用于情报丰富

云 · 容器 · 运维

  • "审计这个 AWS 账户中的公开 S3 和风险 IAM" —— 运行 prowler / scoutsuite,只呈现高危发现

  • "部署前扫描这个镜像和 k8s 清单" —— grype 镜像扫描加 kubescape 配置检查

  • "我的红队覆盖情况如何——并修复缺口" —— 将 get_profile_tools("redteam") 与安装状态进行对比,并输出精确的安装命令

移动 · 无线 · 区块链

  • "静态分析这个 APK 中的密钥和不安全存储" —— apktool / jadx 反编译 → MobSF 风格检查,然后搜索密钥和端点

  • "审计这个 Wi-Fi 抓包" —— 解析握手包并对其运行 aircrack-ng / hashcat

  • "审查这个 Solidity 合约的重入漏洞" —— 运行 slither / mythril 并解释发现

run_tool 和 run_pipeline 经过参数清洗、网络策略限制、速率限制,并记录审计日志。run_script 默认关闭,因为启用它意味着以 MCP 服务器用户的文件系统和网络权限选择启用完整代码执行;外部目标策略不会对脚本进行沙箱隔离。破坏性标志(--os-shell、-rf、--exploit 等)在受治理的工具路径中被阻止。仅可对你有权测试的系统使用。

快速开始

需要 uv。Claude Code 可以直接使用项目跟踪的 .mcp.json。它通过 stdio 运行 MCP 服务器,默认禁用脚本和外部网络目标:

{
  "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"
      }
    }
  }
}

重启 Claude Code。这 15 个工具会出现在 /mcp 中。

其他 MCP 客户端(Codex、Cursor、本地 LLM)

MCP 是一个开放标准,因此同一个 stdio 服务器适用于任何支持 MCP 的客户端。从仓库根目录启动的命令是:

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

--directory mcp_server 是相对于工作目录的。如果客户端可能从子目录启动服务器,请使用仓库根目录中感知根目录的启动器:

bash scripts/mcp-launch.sh

从仓库外部使用时,请使用启动器的绝对路径:

bash /path/to/cybersec-toolkit/scripts/mcp-launch.sh
  • Codex — 项目中包含 .codex/config.toml(会先解析 Git 根目录,因此从任何子目录都能生效)。Codex 的主配置是 ~/.codex/config.toml;如果项目文件未被识别,请将 [mcp_servers.cybersec-tools] 块复制到你的主配置中。

  • Cursor / Continue / Cline / Goose — 在客户端的 MCP 设置界面或配置文件中添加相同的启动命令(如果客户端的工作目录不是仓库根目录,请使用绝对路径)。

  • LM Studio(≥0.3.17) — LM Studio 本身就是一个 MCP 主机,无需桥接。将服务器添加到其 mcp.json 中(使用 Cursor 记法,与 .mcp.json 相同的 mcpServers 结构),并使用绝对路径或 git-root 包装器,因为 LM Studio 的工作目录不是仓库根目录。通过 LM Studio 的 API 使用 MCP 需要 ≥0.4.0 版本以及支持 MCP 的端点,例如 /api/v1/chat 或 /v1/responses。

  • Ollama — Ollama 是模型运行时,不是 MCP 主机。请在它前面放置一个支持 MCP 的代理(例如 Kit),并将其指向上述启动命令。

  • 其他本地 LLM — 裸模型本身无法直接使用 MCP。请将其运行在任何支持 MCP 的主机后面(LM Studio、Cline、Continue、Goose、Kit,或通过 mcpo 等 MCP→OpenAPI 桥接的 Open WebUI),并将该主机指向上述启动命令。

安全说明:请仅从这一个服务器开始。它已经强制实施了参数清理、网络白名单、速率限制和审计日志记录,并且默认禁用脚本执行和外部目标——除非你有授权范围,否则请保持这些功能关闭,并优先选择支持人工介入工具审批的主机。

与供应商无关的仓库说明位于 AGENTS.md(Codex 和许多代理工具可直接读取);Claude Code 读取 CLAUDE.md。

从 WSL 连接(例如 Kali Linux)

MCP 服务器通过 stdio 运行,因此它可以在 Claude Code 能够启动的任何环境中工作。要使用 WSL 内安装的工具:

{
  "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"
      ]
    }
  }
}

从 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"
      ]
    }
  }
}

脚本执行

run_script 允许 AI 编写并执行 Python 或 Bash 脚本。它需要 CYBERSEC_MCP_ALLOW_SCRIPTS=1,不受操作系统沙箱保护,也不受 CYBERSEC_MCP_ALLOW_EXTERNAL 的约束。启用它将赋予脚本与 MCP 服务器进程相同的文件系统和网络权限。在启用前请审查生成的代码和范围:

{
  "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 支持

某些包(例如 pwntools)需要较旧版本的 Python。venv 参数让 AI 可以为每个脚本选择正确的解释器:

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

然后 AI 会自动使用 run_script("from pwn import *; ...", venv="pwntools")。默认的 MCP 环境包含 FastMCP 和 Python 标准库。在使用 requests、pycryptodome、beautifulsoup4、Pillow 或 NumPy 而不使用命名 venv 之前,请先运行 cd mcp_server && uv sync --extra ctf-core 安装可选的辅助工具集。设置 CYBERSEC_MCP_VENVS_DIR 可覆盖默认的 ~/.ctf-venvs/ 位置。

手动脚本

manual_scripts/ 目录存储 AI 为用户创建的持久化脚本——复杂的漏洞利用、多步骤求解器、解析器、协议辅助工具,以及不应在一次执行后就消失的可复用工具。在伴生模式下,AI 会先提出脚本,然后仅在获得批准或明确的"继续"指令后才编写并运行它。在可选的 autonomous 模式下,如果常规工具和流水线无法取得进展,且编程逻辑是最小的可靠路径,AI 可以通过 run_script 编写、保存并运行有范围限制的辅助脚本。curl 等简单的侦察/HTTP 命令仍作为 run_tool 调用;脚本用于工具无法清晰表达的逻辑。

测试服务器

cd mcp_server && uv run fastmcp dev server.py

这将打开一个基于 Web 的 MCP Inspector,用于交互式测试每个工具。

有关 Claude Desktop 设置和完整文档,请参阅 mcp_server/README.md。

寻求帮助

这个项目在设计上规模较大,非常欢迎社区帮助。

有用的贡献包括:在不同发行版上测试安装、添加缺失的工具、修复包映射、改进 MCP 工作流、编写示例用例、完善文档,以及报告来自真实 CTF、实验室、漏洞赏金、渗透测试、DFIR 或防御工作流中的粗糙之处。

对于较大的更改请提交 issue,对于小修复请发送有针对性的 PR。验证清单请参阅 CONTRIBUTING.md。

开发

公共贡献者文档位于 CONTRIBUTING.md。快速入门如下:

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 列出所有快捷方式(lint、test、validate、curate、sync-skills、check-skills、mcp、docker 等);每个目标运行的原始命令在 CLAUDE.md / AGENTS.md 中。

MCP Python 项目使用 uv,并带有 [tool.uv] exclude-newer = "3 days"。新的依赖解析有意忽略最近 72 小时内上传的包,以缩小依赖混淆和受损版本的影响范围。Dependabot 使用匹配的 3 天冷却期,每周的 uv 更新工作流也继承相同的策略。

此发布年龄策略仅适用于项目引导/运行时依赖:MCP Python 包、CI 操作以及运行项目所需的 Docker 构建输入。它不会延迟或固定从注册表安装的网络安全工具;这些工具有意遵循其模块安装器和更新流程,以便操作员能够获得最新的扫描器、漏洞利用、签名和研究工具。

在 Linux 或 WSL 上运行 shell 测试。原生 Windows 检出可能会将 vendored Bats 子模块重写为 CRLF,并导致 $'\r' 错误。

Agent Skills

此仓库在规范的 .claude/skills/ 源树中提供了 872 个 Agent Skills。Claude Code 直接发现该树;scripts/sync-skills.sh 为兼容客户端生成可移植的 .agents/skills/ 镜像。Skills 会根据任务按需激活——它们不会永久占用上下文。其中 31 个是项目自编的,841 个是从开源项目精选的——每个都在下方和 THIRD_PARTY_NOTICES.md 中注明出处。

  • 10 个项目特定的开发者技能(add-tool、validate-all、module-scaffold、writeup-template、mcp-sync-check、security-wordlists、security-payloads、guided-assessment、skill-dependency-audit、skill-curation-router)

  • 4 个跨技能协调器(finding-triage、security-comms、authorization-gate、evidence-hygiene),其他技能通过它们路由发现结果、通信、授权检查和证据清理

  • 7 个覆盖缺口锚定技能(GRC/隐私、AI/LLM 安全、IoT/嵌入式/硬件、大型机、电信/5G、SAP/ERP、供应链/产品安全)

  • 1 个来自 multica-ai/andrej-karpathy-skills 的编码代理工作流技能(MIT)

  • 6 个 CTF 方法论技能(ctf-crypto、ctf-pwn、ctf-web、ctf-rev、ctf-forensics、ctf-stego)

  • 4 个漏洞赏金方法论技能(bounty-recon、bounty-web、bounty-api、bounty-mobile)

  • 10 个来自 BugHunter (claude-bug-bounty) 的漏洞赏金工作流技能(MIT)

  • 58 个来自 SnailSploit Claude-Red 的进攻性方法论技能(MIT)

  • 14 个来自 Trail of Bits 的代码审计技能(CC-BY-SA 4.0)

  • 754 个来自社区项目 mukul975/Anthropic-Cybersecurity-Skills 的操作性操作指南(Apache 2.0)

  • 4 个来自 Transilience 的高级工作流(MIT)

来源和分类索引位于 .claude/skills/SKILLS.md。

安装为 Claude Code 插件

该仓库兼作插件市场(.claude-plugin/),因此你可以将整个技能库拉入任何项目,而无需手动克隆:

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

该插件在 .claude/skills/ 下公开技能(通过 .claude-plugin/plugin.json 中的 skills 字段声明)。MCP 服务器通过 .mcp.json 单独配置——请参阅 MCP Server。

在支持的客户端中使用这些技能

Agent Skills 是 Markdown 加可选的辅助文件,但发现和激活是客户端功能,而非 MCP 功能。Claude Code、OpenCode、Codex、Gemini CLI、GitHub Copilot、Cursor、Cline、Goose、Hermes 和 OpenClaw 通过不同的路径或设置支持 Agent Skills。scripts/sync-skills.sh 将仓库的 .claude/skills/ 源镜像到 .agents/skills/,供使用该位置的客户端使用:

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(参见开发)会为你运行此镜像步骤。

.claude/skills/ 始终是唯一的事实来源;.agents/skills/ 是生成且被 git 忽略的,因此在编辑技能后请重新运行同步。Continue 和 LM Studio 可以使用 MCP 服务器,但这两个客户端目前都没有记录对此仓库 SKILL.md 文件的自动发现。独立的 SKILLS.md 索引只能作为手动上下文;它不会增加按需激活。在这些客户端中请使用 Continue 规则/提示,或将选定的技能内容作为上下文提供。有关客户端特定的路径和限制,请参阅 docs/AI_CLIENTS.md。

scripts/validate_claude_skills.py 检查技能元数据、索引计数、精选新鲜度以及 Python 和 PowerShell 辅助脚本的语法。Vendored 技能辅助脚本还可以有可选的任务特定 Python 导入。这些导入在 .claude/skills/requirements.txt 中声明,由辅助脚本导入清单生成:

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

技能排名/精选位于 .claude/skills/CURATION.md 和 .claude/skills/curation.json。使用以下命令重新生成:

python3 scripts/curate_claude_skills.py --write

工具位置

非系统工具(pipx、Go、Cargo、git、二进制发布)安装在 Linux 上的 /usr/local/bin/ 和 Termux 上的 $PREFIX/bin。系统包安装在其默认位置(/usr/bin/)。

方法

二进制位置(Linux)

二进制位置(Termux)

数据位置

pipx

/usr/local/bin/

$PREFIX/bin/

/opt/pipx/ 或 ~/.local/pipx/

Go

/usr/local/bin/

$PREFIX/bin/

/opt/go/ 或 ~/.go/

Cargo

/usr/local/bin/(符号链接)

$PREFIX/bin/(符号链接)

~/.cargo/

Git 仓库

/usr/local/bin/(符号链接)

$PREFIX/bin/(符号链接)

/opt/<repo>/ 或 ~/tools/<repo>/

二进制发布

/usr/local/bin/

跳过(glibc 与 Bionic 不兼容)

--

Docker 镜像(可选)

仅在 --enable-docker 时使用。如果未安装 Docker 且设置了 --enable-docker,安装程序会退出并报错,要求你先安装 Docker。

镜像

模块

标志

描述

bcsecurity/empire

misc

--enable-docker --include-c2

Empire C2

spiderfoot/spiderfoot

misc

--enable-docker

SpiderFoot OSINT

beefproject/beef

web

--enable-docker

BeEF 浏览器利用

opensecurity/mobile-security-framework-mobsf

mobile

--enable-docker

MobSF

specterops/bloodhound

enterprise

--enable-docker

BloodHound CE

trailofbits/echidna

blockchain

--enable-docker

Echidna 智能合约模糊测试器

strangebee/thehive:latest

blueteam

--enable-docker

TheHive IR 平台

thehiveproject/cortex:latest

blueteam

--enable-docker

Cortex 分析

zeek/zeek:latest

blueteam

--enable-docker

Zeek 网络分析

wagga40/zircolite:latest

blueteam

--enable-docker

Zircolite EVTX 检测

vxcontrol/pentagi:latest

llm

--enable-docker

PentAGI 自主渗透测试

发行版支持

Debian/Ubuntu/Kali 是主要目标 —— 完整的 670+ 注册表在那里可用,并且测试覆盖最强。Fedora/Arch/openSUSE 有约 10-20 个软件包被自动跳过(发行版特定),并由集成工作流覆盖。WSL 和 ARM 在实践中受支持,但尚无专门的 CI 任务。Windows 和 macOS 会被检测到并以清晰的错误消息阻止。

平台

状态

WSL

支持安装和 MCP 使用。无线模块自动跳过(无硬件访问权限),内核级软件包被过滤。在本地 WSL 发行版中验证发布关键变更,因为尚无专门的 CI 任务。如果你将仓库放在 Windows 挂载路径上,请参阅下面的 Windows Defender 说明。

ARM (aarch64/armv7)

支持,自动跳过仅限 x86 的二进制发布和从源码构建的工具。尚无专门的 CI 任务。

Termux (Android)

支持。尚无专门的 CI 任务。无需 sudo。Docker/snap/二进制发布/从源码构建被跳过(Bionic 不兼容)。

Windows (原生)

不支持。请使用 WSL。

macOS

不支持。请使用 Docker 容器。

其他 Linux 发行版

任何没有受支持包管理器(apt/dnf/pacman/zypper)的系统 —— 例如 NixOS、Gentoo、Void、Alpine、Slackware —— 会被检测到并以清晰的错误阻止。请改用 Docker 镜像。

供应链模型

此安装程序会从互联网下载并运行代码。在 Linux 上它以 root(sudo)身份运行;在 Termux 上它在应用的用户沙箱中运行(无 root)。

  • 系统软件包:由您的发行版仓库(apt、dnf、pacman、zypper、pkg)进行 GPG 签名

  • pipx/Go/Cargo/Gem/npm:从注册表下载(无签名验证,pipx 隔离在 venv 中)

  • 二进制发布:当校验和文件可用时进行 SHA256 验证,不匹配则硬失败。使用 --require-checksums 或 --production 预设可在没有发布校验和文件时也失败。警告: --fast 会禁用所有校验和验证,包括那些确实发布校验和的发布 —— 不要在生产或 CI 环境中使用

  • MCP Python 依赖:由 uv 以 3 天 exclude-newer 窗口解析;Dependabot 在提出依赖 PR 前也会等待 3 天。这不适用于已安装的安全工具

  • Go SDK:当可用时,根据 go.dev 发布的哈希进行 SHA256 验证;API 失败时警告,使用 --require-checksums 时硬失败

  • Git 仓库:在 HEAD 处克隆,依赖安装在隔离的 venv 中(不执行 setup.py)

  • 从源码构建:运行 make(在 Linux 上以 root 身份)——请审查您正在构建的内容

  • 工具包 Docker 构建:Ubuntu 和 uv 源码是摘要固定的,而 apt 软件包从当前签名的 Ubuntu 仓库解析;重建并非逐位可复现

  • 可选工具镜像:通过可变标签而非摘要拉取,包括几个显式的 latest 标签。--production 不固定或验证这些镜像

.versions 文件记录已安装的内容和时间。

已知限制

默认情况下,校验和验证是尽力而为的。某些上游发布不发布校验和或签名,因此在这些情况下下载可能在没有加密验证的情况下进行。使用 --production(或 --require-checksums)在没有校验和文件可用时失败关闭。此预设不固定 Git 克隆、语言包注册表或从源码构建的工具;这些仍跟踪其上游发布渠道。Go SDK 下载在 API 可访问时根据 go.dev 进行 SHA256 验证;严格校验和模式在 API 不可访问时硬失败。

--fast 跳过二进制发布的所有校验和验证(包括 SHA256 检查和缺失校验和警告),包括那些确实发布校验和的发布。这以完整性验证换取速度。它与 --require-checksums 和 --production 互斥。不要在 CI 管道或供应链完整性重要的环境中使用 --fast。

Windows Defender 误报

如果您将此仓库克隆到 Windows 挂载路径(例如 C:\Users\<you>\... 或任何在 WSL 中工作时从 Windows 可见的文件夹),Microsoft Defender 和其他防病毒产品可能会隔离单个文件。防御性内容 —— IOC 参考表、示例混淆的 PowerShell、恶意软件分析片段、.claude/skills/、writeups/ 以及 mcp_server/ 部分中的漏洞 PoC 字符串 —— 包含真实攻击者使用的相同字节字符串,因此基于签名和 ML 的引擎可能标记它们。常见检测包括 Trojan:Script/Wacatac.B!ml、HackTool:* 和通用 Heur.* 判定。

在安全工具包的上下文中,这些是误报。要在 Windows 上使用该仓库,您有三个选项:

  1. 为仓库文件夹添加 Defender 排除项(推荐用于个人开发机器)。从提升的 PowerShell 运行:

    Add-MpPreference -ExclusionPath "C:\path\to\cybersec-toolkit"
  2. 从隔离区恢复单个文件,通过 Windows 安全 -> 病毒和威胁防护 -> 保护历史 -> “允许在设备上”。按文件操作,但不会阻止更新时重新检测。

  3. 将仓库保留在 WSL 文件系统内(例如发行版中的 ~/cybersec-toolkit)。Defender 默认不扫描 WSL2 的 vhdx,因此不会发生检测。scripts/sync-wsl.sh 已经为 MCP 服务器子目录执行此操作。

被 Defender 删除的文件将在 git status 中显示为 D。内容保留在 git 历史中;一旦排除项到位,使用 git checkout -- <path> 恢复。

许可证

MIT 许可证 —— 详情请参见 LICENSE。

此仓库还根据其自身条款重新分发第三方组件,包括一些在 CC-BY-SA-4.0 下(ShareAlike,不可重新许可为 MIT)。如果您重新分发或改编捆绑内容,请遵循这些条款 —— 参见 THIRD_PARTY_NOTICES.md。

有关贡献工作流和审查期望,请参见 CONTRIBUTING.md。 有关社区行为期望,请参见 CODE_OF_CONDUCT.md。 有关漏洞报告,请参见 SECURITY.md。

免责声明

本项目仅用于教育、防御和明确授权的安全测试。仅对您拥有或已获得书面许可评估的系统使用,并遵守所有适用的法律、交战规则、第三方工具许可证和服务条款。

该工具包包括双重用途的进攻性和防御性工具。某些命令可以扫描网络、执行漏洞利用、修改系统或触发安全警报。MCP/AI 集成受安全策略保护,但用户在运行操作前仍负责审查范围、提示、命令和输出。

此仓库不重新分发安全工具本身;它在安装时从官方上游来源安装公开可用的开源项目。它仅用于合法、授权的使用。

本项目“按原样”提供,不提供任何保证。维护者不对使用此工具包造成的误用、损坏、数据丢失、服务中断或法律后果负责。

第三方内容按其原始许可证捆绑 —— 参见 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