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(Model Context Protocol)サーバーにより、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経由で互換;スキル対応

Continue

クライアントMCP設定;コンテキスト用のルール/プロンプト

MCP経由で互換

LM Studio(>=0.3.17)

mcp.json;手動またはMCP提供のコンテキスト

MCP経由で互換

Ollama

その前段にMCPホスト

MCPホスト経由で互換

Aider

—

対象外

Open WebUI

MCP-to-OpenAPIブリッジ

MCPホストまたはブリッジ経由で互換

各クライアントの詳細な設定はdocs/AI_CLIENTS.mdを、任意のMCPクライアントで複数エージェントを調整する方法はdocs/ORCHESTRATION.mdを参照してください。


仕組み

2つのエントリポイントが1つのツールレジストリを共有します。オペレーターは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は、シェルを起動せずに、allowlist、引数チェック、ネットワークポリシーを通じてrun_toolとrun_pipelineを管理します。run_scriptは、デフォルトで無効の別の完全コード実行機能として残ります。Agent Skillsは実行パス外にあります:.claude/skills/が正規であり、scripts/sync-skills.shがポータブルミラーを使用するクライアント向けに.agents/skills/を生成します。


Related MCP server: toolgovern

なぜKali(または他のインストーラー)だけではだめなのか?

Kali/Parrot/BlackArchはツールを提供しますが、これは補完であり、置き換えではありません。すでに持っているマシン(Termuxを含む)で動作し、AIコントロールプレーンを追加して、インストール済みツールを1つの管理されたインターフェースで発見、推奨、連鎖、実行できます。すべてのツールが欲しいですか?ディストリビューションで十分です。明示的なポリシーの下でツールを選択して実行できるMCPクライアントが欲しいですか?それがこのギャップです。

信頼と安全性

セキュリティユーザーは偏執的であるべきです — ここで実行されるものとゲートされるものを正確に示します:

  • デフォルトで安全なMCP。 初期状態ではCYBERSEC_MCP_ALLOW_EXTERNAL=0がプライベート/ループバック範囲に解決されないネットワークターゲットを拒否し、CYBERSEC_MCP_ALLOW_SCRIPTS=0がrun_scriptを無効にします。外部スコープ/スクリプト実行には明示的にオプトインします。

  • 管理されたツール実行は1つのゲートを通過(mcp_server/security.py):レジストリのallowlist、シェルなし(create_subprocess_exec、決してshell=Trueではない)、引数のサニタイズ、ツールごとのブロックフラグのdenylist(例:sqlmap --os-shell、nmap -iL、ファイルリスト/ターゲットインジェクションフラグ)、ターゲット/ネットワークポリシー、レート制限、出力上限、タイムアウト。

  • 実行ポリシーはOSサンドボックスではありません。 許可されたツールはMCPプロセスユーザーの権限で実行され、一部のセキュリティツールは子プロセスを起動したりプラグインをロードしたりできます。run_scriptを無効化してもそのエンドポイントが無効になるだけです。MCPサーバーは最小権限ユーザーとして、または信頼できないターゲットに適した分離境界内で実行してください。

  • ツール認識ポリシーはソルバーのハードコーディングではありません。 ソルバーはレジストリ/アドバイザーからツールを選択します。ポリシーレイヤーは、実際のターゲットとヘッダー、ワードリスト、出力パス、設定ファイル、またはターゲットリストフラグを区別するのに十分なCLI文法のみを理解します。これにより、ファイルリスト/設定フラグがスコープチェックをバイパスすることなく、通常のコマンドを使用可能にします。

  • 監査証跡であり、漏洩ではない。 アクションは、ユーザーの状態ディレクトリ(デフォルトでは~/.local/state/cybersec-tools-mcp/audit.log)の下にある所有者のみ(0600)のローテーションログにJSONとして記録されます。スクリプト本体は永続化されません — 相関のために不可逆なSHA256 + 長さのみが記録され、資格情報の形をした文字列はツール引数から編集されます。

  • インストーラーでの最小権限。 ルートとして実行されますが、クローンされたリポジトリのビルドと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

マシンが準備できているか不明ですか?まず読み取り専用の事前チェックを実行してください — ルートは不要で、何もインストールしません:

./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を付与し、インストーラーがシステムパッケージを管理できるようにします。コンテナ内のコードはルート権限を持つものとして扱ってください。特に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以上のツールレジストリよりも見積もりが高くなることがあります。

インストーラーは12の異なるインストール方法で670以上のツールを調整します。時間は、スクリプト言語では高速化できないI/Oバウンドの操作に費やされます:

時間がかかるもの

理由

システムパッケージ (apt/dnf)

.deb/.rpm パッケージのダウンロードと展開、および依存関係の解決

Go ツール

モジュールのダウンロードと各バイナリのコンパイル

pipx (Python)

ツールごとに独立した venv を作成し、wheel をダウンロード

Cargo (Rust) クレート

ソースからのコンパイル — 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/binary のダウンロードを高速化する

  • 繰り返しインストールする場合は apt-cacher-ng プロキシを設定する


プロファイル

プロファイル

モジュール

説明

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、Bluetooth、SDR セキュリティ

lightweight

misc, networking, recon, web, cracking

趣味の倫理的ハッキングの必需品(HTB、THM、バグバウンティ)

crackstation

misc, cracking, crypto

ハッシュクラッキング

blueteam

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

ディフェンシブセキュリティ、IR、マルウェア解析

モジュール

モジュール

ツール数

説明

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 クラッキング、Bluetooth、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 脆弱性スキャン

インストールメソッド

メソッド

数

例

Git クローン

~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 は不要です。

スクリプト

目的

例

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(Model Context Protocol) は、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

モジュールを詳細調査:全ツール、インストール状況、どのプロファイルが使用しているか

get_profile_tools

プロファイルがインストールする全ツールをモジュールごとに表示

suggest_for_ctf

14カテゴリのCTFチャレンジ向けの厳選ツールを推奨

suggest_for_bounty

7種類のターゲット向けのバグバウンティ用ツールを、手法と一般的な脆弱性とあわせて推奨

guided_assessment

権限のあるターゲット向けのコンパニオン型解決支援アシスタント — 対象と発見内容を分類し、トリアージのゲートを返し、スキルを推奨し、全モジュール/プロファイルからツールを選定してステップバイステップで案内します。オプトインのautonomousは、run_tool・run_pipeline・別途ゲートされたrun_script機能上で自動ソルバーループを開始します

get_cve_info

CVE IDまたはニックネーム(例: log4shell)を、厳選したスキル、レジストリツール、モジュール、ライブなNVD/KEV/EPSS検索コマンドのマッピング

recommend_install

自然言語 → プロファイル/モジュール/ツールの推奨

list_profiles

ツール数とインストールコマンドを含む全14プロファイルを表示

run_tool

インストール済みツールを安全に実行(引数のサニタイズ、ネットワークポリシー、レート制限、監査ログ)。SSHを経由するリモート実行に対応

run_pipeline

シェルを挟まずにツールを安全にパイプ接続(strings the | grep flag)

run_script

明示的でサンドボックスなしの Python/Bash 実行のオプトイン。スクリプトごとのvenv選択に対応

manage_remote_hosts

リモートツール実行用のSSHリモートホストの追加、削除、一覧表示、テスト

コンテンツを学べるS P対応、MCPクライアントは各ツールとそのインストール状態を照会し、ガバナンスされたツール呼び出しを連結し、 出力を解析し、見つかった情報に基づいて方向転換できます。スクリプト実行には別途オプトインが必要です。

外部偵察 → アタックサーフェス(CYBERSEC_MCP_ALLOW_EXTERNAL=1 が必要、許可されたスコープのみ)

  • 「target.comのアタックサーフェスを列挙して、悪用可能なものをすべて検出する」 — amass / subfinder をファンアウト → httpx で名前解決とプローブ → whatweb でフィンガープリント → nuclei テンプレートを実行 → ffuf でコンテンツディスカバ… → そしてホストを露出度の順にランキングして、次のステップを提案します

  • 「/go?url= でオープンリダイレクトを発見 — それを武器化する」 — curl で検証し、SSRF / OAuthトークン盗用のPoCを組み立てて、悪用可能なコールバックを探します

ウェブアプリケーションの脆弱性を突く

  • 「ログインエンドポイントのSQLiを確認して攻略する」 — sqlmap で確認・ダンプ(破壊的な--os-shell / --os-cmd はポリシーでブロック)、その後 run_script で認証バイパスを自動化し、PoCに必要な範囲だけを取得します

  • 「GraphQLのイントロスペクションが有効 — それをマッピングしてIDORを探す」 — スキーマを取得し、クエリを生成し、オブジェクトIDをファジングして、認証済みレスポンスと未認証レスポンスを比較します

その他の Active Directory / 内部ネットワーク

  • 「10.10.0.0/24に低権限の資格情報 — ドメイン管理者パスを見つける」 — bloodhound でデータを収集し、impacket(GetUserSPNs.py)でKerberoast攻撃を仕掛け、hashcat でTGSをクラップし、netexec で横方向の移動を検証します — すべてKali VM上でSSH経由

  • 「DCSync権限を調べ、経路があればダンプする」 — レプリケーションACLを列挙し、DCに対して secretsdup.py を実行します

バイナリエクスプロイト・リバースエンジニアリング

  • 「この64ビットバイナリ用の ret2libc エクスプロイトを構築する」 — checksec / readelf でトリアージ、ROPgadgetでガジェットを探し、puts@plt 呼び出しを介してlibcをリークし、venv="pwntools" で完全な pwntools チェーンを作成して、ローカルでシェルを取得します

  • 「stripされたバイナリからアルゴリズムを復元する」 — objdump / radare2 のディスアセンブリを目的に応じた解析へパイプし、その後 run_cript で再実装して動作を検証します

暗号

  • 「このRSAを解読する — 小さな e 、複数の暗号文」 — 攻撃法(Håstad / common -modulus / Wiener)を検出し、venv内の pycryptodome + sympy で解いて平文を返します

  • 「このJWTはHS256で弱い鍵が使われている」 — 署名シークレットをクラックして管理者トークンを偽送します

ブルー チーム / 検知エンジニアリング

  • 「このテクニックについてSigmaルールを作成し、自分のSIEMに変換する」 — ルールを作成し、sigma-cliでターゲットバックエンド(Splunk / Elastic)用にレンダリングします

  • 「横移動の異常を調べるこのWindowsイベントログである」 — SigmaルールでEVXに対して chainsaw を実行し、ホストとタイムラインごとにヒットをまとめます

  • 「これらのサンプルからYARAルールを作成し、ツリー全体をスキャンする」 — yara のシグネチャを生成し、再帰的に実行します

DFIR / マルウェア・トリアージ

  • 「このメモリダンプをタイムライン化する」 — volatility3 のプラグイン(pslist、netscan、malfind)を一括実行し、それらを1つのストーリーに連結します

  • 「この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スタイルのチェック、キーとエンドポイントをgrepします

  • 「このWi-Fiキャプチャを監査する」 — ハンドシェイクを解析し、aircrack-ng / hashcat を実行します

  • 「このSolidityコントラクトを再入力攻撃の観点でレビューする」 — slither / mythril を実行し、検出結果を説明します

run_tool と run_pipeline は、引数のサニタイズ、ネットワークポリシー、レート制限、監査ログが適用されます。run_script はデフォルトでは無効です。有効にすることはMCPサーバーのファイルシステムとネットワーク権限での完全コード実行のオプトインになるためで、外部ターゲットへのポリシーはスクリプトをサンドボックス化しません。破壊的なフラグ(--os-shell、-rf、--exploit、…)はガバナンスされツールパスでブロックされます。テストが許可されたシステムに対してのみ使用してください。

クイックスタート

には [uv] が必要です(https://docs.astral.sh/uv/)。Claude Code はプロジェクトの .mcp.json を直接使用できます。デフォルトでは、スクリプトおよび外部ネットワークターゲットを無効化した状態でMCPサーバーをstdioで実行します:

{
  "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を再起動します。 /mcp には15個のツールが表示されます。

その他の MCP クライアント(Codex, Cursor, ローカルLLM)

MCPはオープンな標準規格なので、MCP対応のクライアントであれば同じstdioサーバーを利用できます。リポジトリのルートからの起動コマンド:

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 設定 UI または設定ファイルに同じ起動コマンドを追加します(クライアントの作業ディレクトリがリポジトリルートでない場合は絶対パスを使用してください)。

  • LM Studio (≥0.3.17) — LM Studio 自体が MCP ホストであるため、ブリッジは不要です。mcp.json(Cursor 表記、.mcp.json と同じ mcpServers 構造)にサーバーを追加します。LM Studio の作業ディレクトリはリポジトリルートではないため、絶対パスまたは git-root ラッパーを使用してください。LM Studio の API 経由で MCP を使用するには ≥0.4.0 と、/api/v1/chat や /v1/responses などの MCP 対応エンドポイントが必要です。

  • Ollama — Ollama はモデルランタイムであり、MCP ホストではありません。MCP 対応エージェント(例: Kit)を前面に配置し、上記の起動コマンドを指定してください。

  • その他のローカル LLM — 素のモデルは単独では MCP を話せません。任意の MCP 対応ホスト(LM Studio、Cline、Continue、Goose、Kit、または mcpo のような MCP→OpenAPI ブリッジ経由の Open WebUI)の背後で実行し、そのホストに上記の起動コマンドを指定してください。

セキュリティ上の注意: まずはこの 1 つのサーバーだけから始めてください。このサーバーはすでに引数のサニタイズ、ネットワーク許可リスト、レート制限、監査ログを強制し、スクリプト実行と外部ターゲットはデフォルトで無効になっています。承認されたスコープがない限りそれらはオフのままにし、人間がループ内でツール承認を行うホストを優先してください。

ベンダーに依存しないリポジトリの説明は 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 が必要で、OS サンドボックス化されておらず、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 標準ライブラリが含まれています。名前付き venv なしで requests、pycryptodome、beautifulsoup4、Pillow、または NumPy を使用する前に、cd mcp_server && uv sync --extra ctf-core でオプションのヘルパーセットをインストールしてください。CYBERSEC_MCP_VENVS_DIR を設定すると、デフォルトの ~/.ctf-venvs/ の場所を上書きできます。

手動スクリプト

manual_scripts/ ディレクトリには、AI がユーザーのために作成する永続的なスクリプト(複雑なエクスプロイト、多段階ソルバー、パーサー、プロトコルヘルパー、1 回の実行で消えるべきではない再利用可能なツール)が保存されます。コンパニオンモードでは、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 で実行してください。ネイティブ Windows チェックアウトは、ベンダー提供の Bats サブモジュールを CRLF で書き換え、$'\r' エラーを引き起こす可能性があります。

エージェントスキル

このリポジトリには、正規の .claude/skills/ ソースツリーの下に 872 のエージェントスキルが含まれています。Claude Code はそのツリーを直接発見します。scripts/sync-skills.sh は、互換性のあるクライアント向けにポータブルな .agents/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、サプライチェーン/製品セキュリティ)

  • multica-ai/andrej-karpathy-skills からの 1 のコーディングエージェントワークフロースキル(MIT)

  • 6 の CTF 方法論スキル(ctf-crypto、ctf-pwn、ctf-web、ctf-rev、ctf-forensics、ctf-stego)

  • 4 のバグバウンティ方法論スキル(bounty-recon、bounty-web、bounty-api、bounty-mobile)

  • BugHunter (claude-bug-bounty) からの 10 のバグバウンティワークフロースキル(MIT)

  • SnailSploit Claude-Red からの 58 の攻撃的方法論スキル(MIT)

  • Trail of Bits からの 14 のコード監査スキル(CC-BY-SA 4.0)

  • コミュニティプロジェクト mukul975/Anthropic-Cybersecurity-Skills からの 754 の運用ハウツー(Apache 2.0)

  • Transilience からの 4 の高レベルワークフロー(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 サーバー を参照してください。

サポートされているクライアント間でこれらのスキルを使用

エージェントスキルは Markdown とオプションのヘルパーファイルですが、発見とアクティブ化は MCP 機能ではなくクライアント機能です。Claude Code、OpenCode、Codex、Gemini CLI、GitHub Copilot、Cursor、Cline、Goose、Hermes、OpenClaw は、さまざまなパスまたは設定を通じてエージェントスキルをサポートしています。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 のヘルパースクリプト構文をチェックします。ベンダー提供のスキルヘルパースクリプトには、オプションのタスク固有 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 を先にインストールするよう求めるエラーで終了します。

Image

Module

Flag

Description

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 の使用に対応。ワイヤレスモジュールは自動スキップ(ハードウェアアクセスなし)、カーネルレベルのパッケージはフィルタリングされます。専用の CI ジョブがないため、リリースに影響する変更はローカルの WSL ディストリビューションで検証してください。リポジトリを 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 検証されます。厳格なチェックサムモードでは、到達できない場合はハードフェイルします。

--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 でリポジトリを操作するには、次の 3 つのオプションがあります。

  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(継承、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