Problem
The Common MCP Tools section of README.md documents ten MCP tool names that hexstrike_mcp.py does not register:
| Documented | Registered in hexstrike_mcp.py |
|---|---|
rustscan_scan() | rustscan_fast_scan() |
masscan_scan() | masscan_high_speed() |
amass_enum() | amass_scan() |
wpscan_scan() | wpscan_analyze() |
ghidra_analyze() | ghidra_analysis() |
gdb_debug() | gdb_analyze() |
angr_analyze() | angr_symbolic_execution() |
prowler_assess() | prowler_scan() |
scout_suite_audit() | scout_suite_assessment() |
kube_bench_check() | kube_bench_cis() |
None of the documented names occurs anywhere in hexstrike_mcp.py or hexstrike_server.py, and tools are registered only through @mcp.tool() decorators (there are no aliases or dynamic registration), so an agent or operator following the README and calling e.g. rustscan_scan() gets a tool-not-found error instead of a scan. This section is also the reference users quote when writing prompts for the MCP client.
Change
Replace the ten stale names with the names the v6 MCP client actually registers. Only the names are touched; descriptions, ordering and the rest of the document are unchanged (10 insertions, 10 deletions, single file).
Validation
Docs-only change, checked against the client source. The list of documented names and the list of @mcp.tool()-decorated functions were compared directly:
import re
registered = set(re.findall(r"@mcp\.tool\(\)\s*\n\s*def (\w+)\(", open("hexstrike_mcp.py", encoding="utf-8").read()))
documented = re.findall(r"^- `(\w+)\(\)` - ", open("README.md", encoding="utf-8").read(), re.M)
print(sorted(n for n in documented if n not in registered))Before:
['rustscan_scan', 'masscan_scan', 'amass_enum', 'wpscan_scan', 'ghidra_analyze',
'gdb_debug', 'angr_analyze', 'prowler_assess', 'scout_suite_audit', 'kube_bench_check']After: [] (150 registered tools, 21 documented names).
The repository has no test suite or CI workflow that covers documentation, so no further checks were run; nothing else in the code base is affected.