ekay
Runs Docker security audits and container hardening checks against Docker environments.
Uses Falco for runtime security monitoring of cloud-native and containerized workloads.
Enables API security testing workflows focused on GraphQL endpoints.
Manages and inspects Kubernetes Helm chart configurations.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ekayStart an authorized engagement on scanme.nmap.org and show me the results."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
EKay
Concurrent MCP cybersecurity orchestrator for authorized testing
EKay keeps a HexStrike-class tool catalog (Nmap, Nuclei, SQLMap, Hashcat, Prowler, …) but does not copy HexStrike’s architecture. HexStrike is one MCP planner calling tools one stage at a time. EKay is a trigger bus: each agent has a predicate and fires concurrently.
PhD / Kali lab project. Author: rohm8358. MIT license.
Use only on assets you own or have written permission to test. Phishing, password spraying, wireless, and AD tools stay restricted until
EKAY_ALLOW_INTRUSIVE=1.
How EKay is different (and more advanced) than HexStrike
Topic | HexStrike-AI | EKay |
Control flow | Single LLM planner, sequential tool calls | TriggerBus — many agents, each with a predicate, parallel |
API shell | Documented | No raw shell API |
Auth | Local Flask, no login | Same default: no token. Optional |
Scope | Wrong flags can scan out of scope | ScopeGuard before every binary |
Tool schemas | 150+ MCP tools dumped every LLM turn | 7 meta MCP tools; catalog is queried |
Health | Historically blocked on many |
|
Dangerous tools | Same path as nmap | Risk classes + |
Evidence | Logs / visual cards | Append-only JSONL with argv + output tails |
New families | Weak on phishing-sim, BloodHound, wifi, reporting | 117 new tools: API, Instagram OSINT, mobile app lab, wifi, phishing-sim, AD/Azure, reporting |
Binding | Reports of binding beyond loopback | Default 127.0.0.1 |
Windows | Known crash class |
|
EKay is not “zero-bug software”. It is designed to remove HexStrike’s classes of faults (open command API, no scope, sequential planner, schema bloat). Tests cover scope, arg sanitization, intrusive gating, and concurrent agents.
Related MCP server: AI-Pentest-MCP
Architecture
LLM / Cursor / Claude
| MCP (7 tools)
v
ekay/mcp_server.py ---> HTTP 127.0.0.1:8787
|
+-- ScopeGuard
+-- ToolRunner (no shell=True)
+-- TriggerBus (thread pool)
|- ReconAgent trigger: engagement.started
|- OsintAgent trigger: engagement.started + osint
|- HttpProbeAgent trigger: port.open in {80,443,...}
|- NucleiAgent trigger: same ports (PARALLEL with HTTP)
|- EvidenceAgent trigger: start/tool eventsWhen recon finishes, EKay emits port.open events. httpx and nuclei start at the same time, not after each other.
Honest tooling note (read this)
No — downloading EKay does not make all 234 tools “healthy.”
EKay is an orchestrator + catalog, like HexStrike. It does not ship Nmap, Nuclei, Hashcat, Gophish, MobSF, etc. inside the git repo.
Status | Meaning |
| Binary found on |
| Binary installed, but blocked until |
| Not installed on this Kali — run will return |
After clone:
sudo ./scripts/install_kali.sh # best-effort apt/go/pip
python3 -m ekay doctor # shows ready / missing / gated
python3 ekay/server.py
curl -s http://127.0.0.1:8787/health | jq '{catalog,ready,missing,gated}'Cursor MCP lists only_ready=true by default, so the LLM should not call tools that are not on PATH.
git clone https://github.com/rohm8358/ekay.git
cd ekay
python3 -m venv ekay-env
source ekay-env/bin/activate
pip install -r requirements.txt
# Terminal 1 — same idea as hexstrike_server.py
python3 ekay/server.pyIn another terminal:
python3 -m ekay health
python3 -m ekay tools --origin ekay
python3 -m ekay compare
python3 -m ekay engage scanme.nmap.org
sleep 10
python3 -m ekay agents
python3 -m ekay run nmap scanme.nmap.orgOr: ./scripts/demo_kali.sh
curl (HexStrike-style — no Authorization header)
curl -s http://127.0.0.1:8787/health | jq .
curl -s http://127.0.0.1:8787/api/tools | jq '.count'
curl -s 'http://127.0.0.1:8787/api/tools?origin=ekay' | jq '.tools[].name'
curl -s -X POST http://127.0.0.1:8787/api/engagements \
-H "Content-Type: application/json" \
-d '{"target":"scanme.nmap.org"}' | jq .
curl -s http://127.0.0.1:8787/api/agents | jq .
curl -s -X POST http://127.0.0.1:8787/api/tools/nmap/run \
-H "Content-Type: application/json" \
-d '{"target":"scanme.nmap.org","args":["-Pn"]}' | jq '.returncode,.duration_ms'Cursor / Claude MCP
Same two-process model as HexStrike (hexstrike_server.py + hexstrike_mcp.py).
Start the server:
python3 ekay/server.pyAdd this to Cursor MCP (
~/.cursor/mcp.jsonor Claude desktop config). No token.
{
"mcpServers": {
"ekay": {
"command": "python3",
"args": ["/absolute/path/ekay/ekay/mcp_server.py", "--server", "http://127.0.0.1:8787"],
"timeout": 300
}
}
}MCP tools (intentionally small): ekay_health, ekay_list_tools, ekay_run_tool, ekay_start_engagement, ekay_agent_jobs, ekay_evidence, ekay_vs_hexstrike.
Tests
pip install -r requirements.txt
python3 -m pytest -qTool catalog (all names)
Legend: Previous = already in HexStrike’s arsenal. New = added in EKay (not in the HexStrike README).
Counts: 117 Previous + 117 New = 234 catalog entries (GET /health → catalog).
Mobile note: “Phone” tools here are for authorized mobile-app / owned-device assessment (MobSF, Frida, ADB, MVT). EKay does not wrap remote spyware or unauthorized phone takeover.
Network / pentest
Status | Tools |
Previous | nmap, rustscan, masscan, autorecon, arp-scan, nbtscan, rpcclient, enum4linux, enum4linux-ng, smbmap, responder, netexec |
New | naabu, bettercap, ligolo-ng, chisel, proxychains, socat, nmap-nse-vuln, rustscan-ultrarange |
API security testing
Status | Tools |
Previous | jwt-tool, ffuf, zap (generic web; weak dedicated API pack) |
New | kiterunner, schemathesis, mitmproxy, mitmdump, postman, insomnia, httpie, curl-impersonate, graphw00f, clairvoyance, inql, graphql-cop, graphqlmap, restler, apisprout, openapi-generator, spectral |
Web application pentest
Status | Tools |
Previous | gobuster, feroxbuster, dirsearch, ffuf, dirb, httpx, katana, hakrawler, nuclei, nikto, sqlmap, wpscan, arjun, dalfox, wafw00f, jaeles, testssl, sslscan, sslyze, whatweb, jwt-tool, wfuzz, commix, nosqlmap, tplmap, x8, zap, qsreplace |
New | wapiti, hakrawler-deep, gau-plus, waymore, urlfinder, cariddi, interactsh-client, notify |
OSINT / recon / Instagram
Status | Tools |
Previous | amass, subfinder, fierce, dnsenum, theharvester, gau, waybackurls, paramspider, sherlock, social-analyzer, recon-ng, maltego, spiderfoot, trufflehog, subjack, aquatone, anew, uro |
New | dnsx, gitleaks, osintgram, instaloader, toutatis, insto, maigret, socialscan, holehe, ghunt, phoneinfoga, blackbird, twint, snscrape, metagoofil, exiflooter, photon, finalrecon, reconspider, osrframework |
Password cracking / authentication
Status | Tools |
Previous | hydra, john, hashcat, medusa, patator, crackmapexec, evil-winrm, hash-identifier, hashid, ophcrack |
New | cewl, crunch, cupp, username-anarchy, impacket-secretsdump, impacket-getnpusers, impacket-smbclient, impacket-psexec, sprayhound |
Active Directory / identity
Status | Tools |
Previous | (NetExec/CME-class only — no BloodHound/Azure pack) |
New | bloodhound, bloodhound-python, pingcastle, kerbrute, o365spray, roadtx, aadinternals, graphrunner, mfasweep |
Cloud / container
Status | Tools |
Previous | prowler, scout-suite, trivy, kube-hunter, kube-bench, docker-bench-security, falco, checkov, terrascan, pacu, kubectl, helm, aws, az, gcloud, clair, cloudmapper, cloudsploit, opa |
New | grype, steampipe, s3scanner, cloudbrute, enumerate-iam |
Binary / reverse engineering (lab)
Status | Tools |
Previous | gdb, radare2, ghidra, binwalk, checksec, ropgadget, ropper, one-gadget, pwntools, angr, msfvenom, strings, objdump, readelf, upx, xxd, hexdump, pwninit |
New | — |
Forensics / IR
Status | Tools |
Previous | volatility3, foremost, steghide, exiftool, autopsy, photorec, testdisk, stegsolve, bulk-extractor, zsteg, outguess, scalpel |
New | yara, osqueryi, sleuthkit |
Wireless (authorized RF only)
Status | Tools |
Previous | — |
New | aircrack-ng, airmon-ng, airodump-ng, aireplay-ng, wifite, kismet, hcxdumptool, hcxpcapngtool, reaver, bully, fern-wifi-cracker, wifiphisher |
Phishing / social-engineering simulation (approved campaigns only)
Status | Tools |
Previous | — |
New | gophish, king-phisher, setoolkit, evilginx2, modlishka, swaks, hiddeneye, zphisher, socialfish |
Mobile app / owned-device assessment
Status | Tools |
Previous | — |
New | mobsf, frida, frida-ps, objection, apktool, jadx, jadx-gui, drozer, adb, apkleaks, quark-engine, mvt-android, mvt-ios |
Reporting
Status | Tools |
Previous | — |
New | faraday-cli, sysreptor, pwndoc, defectdojo |
New-only list (117 — copy/paste)
naabu bettercap ligolo-ng chisel proxychains socat nmap-nse-vuln rustscan-ultrarange kiterunner schemathesis mitmproxy mitmdump postman insomnia httpie curl-impersonate graphw00f clairvoyance inql graphql-cop graphqlmap restler apisprout openapi-generator spectral wapiti hakrawler-deep gau-plus waymore urlfinder cariddi interactsh-client notify dnsx gitleaks osintgram instaloader toutatis insto maigret socialscan holehe ghunt phoneinfoga blackbird twint snscrape metagoofil exiflooter photon finalrecon reconspider osrframework cewl crunch cupp username-anarchy impacket-secretsdump impacket-getnpusers impacket-smbclient impacket-psexec sprayhound bloodhound bloodhound-python pingcastle kerbrute o365spray roadtx aadinternals graphrunner mfasweep grype steampipe s3scanner cloudbrute enumerate-iam aircrack-ng airmon-ng airodump-ng aireplay-ng wifite kismet hcxdumptool hcxpcapngtool reaver bully fern-wifi-cracker wifiphisher gophish king-phisher setoolkit evilginx2 modlishka swaks hiddeneye zphisher socialfish mobsf frida frida-ps objection apktool jadx jadx-gui drozer adb apkleaks quark-engine mvt-android mvt-ios yara osqueryi sleuthkit faraday-cli sysreptor pwndoc defectdojo
Intrusive/restricted binaries will not execute until:
export EKAY_ALLOW_INTRUSIVE=1and the target is inside EKAY_SCOPE.
HTTP API
Endpoint | Auth | Description |
| no |
|
| no (unless token) | Full per-tool status list |
| no (unless | Filter |
| no (unless |
|
| no (unless | Start concurrent agents |
| no (unless | Job list |
| no (unless | JSONL records |
| no (unless | Difference list |
There is no /api/command.
Configuration
Variable | Default | Meaning |
| empty | Optional. Empty = HexStrike-style open local API |
|
| Bind address |
|
| Bind port |
|
| Allowed hosts/CIDRs |
|
| Hydra/Hashcat/Gophish/wifi/AD dump |
|
| Agent thread pool |
|
| Seconds per binary |
What a supervisor should see in 5 minutes
GET /healthshowsarchitecture: trigger-bus-concurrent,catalog,ready,missing,gated.python3 -m ekay doctorexplains what is actually installed.POST /api/engagementsreturns multipleagents_fired_on_start.GET /api/agentsshows recon plus http_probe and nuclei overlapping in time (if those ports exist / tools installed).Out-of-scope host returns 403.
hydrawithoutEKAY_ALLOW_INTRUSIVEreturnsblocked_reason(gated), missing tools returnblocked_reason(not a crash).pytest -qis green.
Disclaimer
EKay wraps local security programs. Installing Nuclei does not make EKay “autonomous pentest.” The LLM still needs a human engagement, a scope file, and verification of findings. Social-engineering modules are simulation platforms (e.g. Gophish) for approved awareness tests, not crimeware. Mobile entries (Frida, ADB, MobSF) are for apps and devices you own or are contracted to test — not remote phone hacking.
This server cannot be deployed
Maintenance
Related MCP Connectors
AI pentesting: run scans, triage vulnerabilities, review PRs, manage schedules and assets.
DORA OS Conductor — 16-tool meta-orchestrator for DORA compliance workflow automation.
Threat modeling, code/cloud/pipeline scanning, shadow-AI discovery, compliance checks and fixes.
Enrich, search, assess, and manage threat intelligence through 80+ typed MCP tools.
Related MCP Servers
- AlicenseCqualityDmaintenanceAn automated penetration testing framework that enables intelligent security assessments through reconnaissance, vulnerability scanning, and controlled exploitation. Features AI-driven workflow management with comprehensive reporting for authorized security testing.2714 npm7BSD 3-Clause
- FlicenseNot gradedqualityDmaintenanceEnables natural-language-driven security testing by orchestrating multiple pen-testing tools through MCP, with automated scan execution and AI-assisted vulnerability summarization.-
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to perform safe, authorized penetration testing by managing engagements, enforcing scope and risk policies, and orchestrating tools like Nmap, Nuclei, and Subfinder.-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to orchestrate 100+ security tools over MCP for authorized penetration testing, including recon, scanning, exploitation, attack-chain planning, and knowledge-base retrieval.5Apache 2.0