Files
CyberStrikeAI/tools
2025-12-24 23:16:22 +08:00
..
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-23 22:29:45 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:18:21 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-12-19 23:48:28 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-22 00:07:29 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-24 21:06:09 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-18 23:31:34 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-12-24 23:16:22 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-14 00:30:33 +08:00
2025-11-14 00:30:33 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-12-24 23:16:22 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00
2025-11-21 23:20:41 +08:00

Tool Configuration Guide

Overview

Each tool ships with its own YAML configuration placed in the tools/ directory. This keeps definitions modular, easier to review, and simple to extend. The runtime automatically loads every .yaml / .yml file in that directory.

File Structure

The table below enumerates every supported top-level field. Double-check each entry before adding a new tool:

Field Required Type Description
name string Unique identifier. Prefer lowercase letters, digits, and hyphens.
command string Executable or script name. Must exist in $PATH or be an absolute path.
enabled bool Controls MCP registration. Disabled tools are ignored by the loader.
description string Full Markdown description for MCP resources/read and AI comprehension.
short_description Optional string 2050 character summary shown in tool lists. When omitted, the loader extracts the start of description.
args Optional string[] Static arguments prepended to every invocation—useful for default scan profiles.
parameters Optional array Runtime parameter definitions. See Parameter Definition for details.
arg_mapping Optional string Mapping strategy (auto/manual/template). Defaults to auto; override only for legacy tooling.

If a required field is missing or malformed, the loader skips that tool and logs a warning without blocking the service.

Tool Descriptions

Short Description (short_description)

  • Purpose: compact summary for tool listings and to minimise language model context usage.
  • Guideline: one concise sentence (2050 Chinese characters or English equivalents).
  • Example: "Network scanner for discovering hosts, open ports, and services"

Detailed Description (description)

Supports multi-line Markdown. Recommended contents:

  1. Capabilities what the tool does.
  2. Usage scenarios when to prefer this tool.
  3. Warnings permissions, runtime risks, side-effects.
  4. Examples optional walkthroughs or sample commands.

Important:

  • Tool menus and MCP summaries use short_description when available.
  • Without short_description, the loader trims the first line or first 100 characters of description.
  • Full descriptions are accessible through the MCP resources/read endpoint (tool://<tool_name>).

Parameter Definition

Each parameter object accepts the fields below:

  • name (required) parameter key used in CLI construction and MCP schema.
  • type (required) string, int/integer, bool/boolean, array, etc.
  • description (required) Markdown-friendly explanation including purpose, format rules, example values, and safety notes.
  • required boolean; when true, missing values cause the executor to return an error.
  • default fallback value applied if the caller omits the argument.
  • flag CLI switch such as -u or --url.
  • position zero-based index for positional arguments.
  • format rendering strategy:
    • flag (default)--flag value / -f value
    • combined--flag=value
    • positional → appended according to position
    • template → uses the template string
  • template placeholder string (supports {flag}, {value}, {name}) when format: "template".
  • options array of allowed values; surfaced as enum entries in the MCP schema.

Format Reference

  • flag: pass the flag and the value separately.
    Example: flag: "-u"-u https://example.com

  • positional: insert according to position.
    Example: position: 0 → becomes the first positional argument.

  • combined: join flag and value in one token.
    Example: flag: "--level", format: "combined"--level=3

  • template: custom rendering.
    Example: template: "{flag} {value}" → fully manual control.

Reserved Parameters

  • additional_args allows users to append arbitrary CLI fragments. The executor tokenises the string (preserving quoted groups) and appends the resulting list to the command.
  • scan_type for scanners like nmap, replacing default scan switches (e.g., -sV -sC).
  • action consumed by server-side branching logic and intentionally not forwarded to the command line.

Parameter Description Checklist

When documenting a parameter, include:

  1. Purpose what the value controls.
  2. Format rules accepted patterns (URL, CIDR, path, etc.).
  3. Example values list several realistic samples.
  4. Notes permissions, performance impact, or other caveats.

Suggested style: Markdown lists, bold emphasis for key cautions, and code blocks for complex examples.

Example

description: |
  Target IP address or domain. Accepts single IPs, ranges, CIDR blocks, or hostnames.

  **Example values**
  - Single IP: "192.168.1.1"
  - Range: "192.168.1.1-100"
  - CIDR: "192.168.1.0/24"
  - Domain: "example.com"

  **Notes**
  - Required; cannot be empty.
  - Validate address format before running to avoid false positives.

Parameter Types

Boolean

  • true → adds only the flag (no value).
  • false → suppresses the flag.
  • Accepts true/false, 1/0, and "true"/"false".
- name: "verbose"
  type: "bool"
  description: "Enable verbose output"
  required: false
  default: false
  flag: "-v"
  format: "flag"

String

Most common parameter type; accepts any string value.

Integer

Use for numeric inputs (ports, levels, limits).

- name: "level"
  type: "int"
  description: "Level of detail, 1-5"
  required: false
  default: 3
  flag: "--level"
  format: "combined"  # --level=3

Array

Automatically converted to a comma-separated string.

- name: "ports"
  type: "array"
  description: "List of ports to scan"
  required: false
  # Input: [80, 443, 8080]
  # Output: "80,443,8080"

Special Parameters

additional_args

- name: "additional_args"
  type: "string"
  description: "Extra CLI arguments; separate multiple options with spaces"
  required: false
  format: "positional"

Examples:

  • additional_args: "--script vuln -O"["--script", "vuln", "-O"]
  • additional_args: "-T4 --max-retries 3"["-T4", "--max-retries", "3"]

Notes:

  • Quoted strings are preserved.
  • Validate user input to avoid command injection.
  • Appended at the end of the final command.

scan_type

- name: "scan_type"
  type: "string"
  description: "Overrides default scan switches"
  required: false
  format: "positional"

Examples:

  • scan_type: "-sV -sC"
  • scan_type: "-A"

Notes:

  • Replaces default entries in the tools args list.
  • Separate multiple flags with spaces.

Complete Example (nmap)

name: "nmap"
command: "nmap"
args: ["-sT", "-sV", "-sC"]
enabled: true

short_description: "Network scanner for discovering hosts, open ports, and services"

description: |
  Network mapping and port scanning utility.

  **Highlights**
  - Host discovery
  - Port scanning
  - Service identification
  - OS fingerprinting
  - NSE-based vulnerability checks

parameters:
  - name: "target"
    type: "string"
    description: "Target IP or domain"
    required: true
    position: 0
    format: "positional"

  - name: "ports"
    type: "string"
    description: "Port range, e.g., 1-1000"
    required: false
    flag: "-p"
    format: "flag"

  - name: "scan_type"
    type: "string"
    description: "Override scan switches, e.g., '-sV -sC'"
    required: false
    format: "positional"

  - name: "additional_args"
    type: "string"
    description: "Extra nmap arguments, e.g., '--script vuln -O'"
    required: false
    format: "positional"

Adding a New Tool

  1. Create a YAML file in tools/ (e.g., tools/mytool.yaml).
  2. Fill out the top-level fields and parameter list.
  3. Provide defaults and rich descriptions wherever possible.
  4. Run go run cmd/test-config/main.go to validate the configuration.
  5. Restart the service (or trigger a reload) so the UI and MCP registry pick up the change.

Template

name: "tool_name"
command: "command"
enabled: true

short_description: "One-line summary"

description: |
  Detailed description with Markdown formatting.

parameters:
  - name: "target"
    type: "string"
    description: "Explain the expected value, format, examples, and caveats"
    required: true
    position: 0
    format: "positional"

  - name: "option"
    type: "string"
    description: "Optional flag parameter"
    required: false
    flag: "--option"
    format: "flag"

  - name: "verbose"
    type: "bool"
    description: "Enable verbose mode"
    required: false
    default: false
    flag: "-v"
    format: "flag"

  - name: "additional_args"
    type: "string"
    description: "Extra CLI options separated by spaces"
    required: false
    format: "positional"

Validation & Troubleshooting

  • Verify required fields: name, command, enabled, description.
  • Ensure parameter definitions use supported types and formats.
  • Watch server logs for warnings when a tool fails to load.
  • Use go run cmd/test-config/main.go to inspect parsed tool metadata.

Best Practices

  1. Parameter design expose common flags individually; leverage additional_args for advanced scenarios.
  2. Documentation combine short_description with thorough description to balance brevity and clarity.
  3. Defaults provide sensible default values, especially for frequently used options.
  4. Validation prompts describe expected formats and highlight constraints to help the AI and users avoid mistakes.
  5. Safety warn about privileged commands, destructive actions, or high-impact scans.

Disabling a Tool

Set enabled: false or remove/rename the YAML file. Disabled tools disappear from the UI and MCP inventory.

  • Main project README: ../README.md
  • Tool list samples: tools/*.yaml
  • API overview: see the main README