Cybersec Toolkit
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CYBERSEC_MCP_VENVS_DIR | No | Directory for Python virtual environments used by run_script. Default is '~/.ctf-venvs/'. | |
| CYBERSEC_MCP_ALLOW_SCRIPTS | No | Set to '1' to enable run_script (full code execution). Default is '0' (disabled). | 0 |
| CYBERSEC_MCP_ALLOW_EXTERNAL | No | Set to '1' to allow external network targets (outside private/loopback). Default is '0' (disabled). | 0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_toolsA | 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. |
| check_installedA | 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 '. |
| get_tool_infoA | 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). |
| suggest_for_ctfA | 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. |
| suggest_for_bountyA | 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). |
| get_cve_infoA | 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. |
| recommend_installA | 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. |
| list_profilesA | 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. |
| get_profile_toolsA | 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. |
| get_module_infoA | Get full details about a module: description, all tools, and management commands. |
| guided_assessmentA | 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. |
| run_toolA | 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. |
| run_pipelineA | Execute a pipeline of tools, piping stdout from each step into stdin of the next. Replaces shell piping (e.g. 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 |
| run_scriptA | 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. |
| manage_remote_hostsA | 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". |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
Each tool targets a distinct operation—registry lookup, install-status, execution, remote-host management, CVE mapping—and descriptions explicitly separate list_tools from get_tool_info and check_installed. The only mild risk is the cluster of list/get/profile/module tools, but their scopes are clearly differentiated.
Most tools follow a consistent get/list/suggest/run verb pattern (list_tools, get_cve_info, run_pipeline), and paired tools like suggest_for_ctf and suggest_for_bounty are parallel. Minor deviations such as check_installed, recommend_install, and guided_assessment keep it from a perfect 5.
15 tools sits at the upper end of the ideal range, but every tool has a distinct role, from registry discovery to execution and orchestration. No tool feels redundant or like padding.
The surface covers discovery, profiling, recommendation, CVE mapping, execution, pipelines, and remote hosts. Direct install/update/remove operations are only surfaced as commands inside get_tool_info rather than first-class tools, but run_script and run_tool provide workarounds, so the gap is minor.