chungus-kali-mcp
Provides tools for GraphQL API security testing, including scanning for vulnerabilities and testing authentication and authorization.
Grants AI agents direct access to a Kali Linux penetration testing toolkit, enabling execution of a wide range of security tools such as nmap, sqlmap, and netexec.
Enables persistent interaction with Metasploit Framework sessions, allowing exploitation, post-exploitation, and payload generation.
Allows connecting to and managing OpenVPN connections for lab environments.
Allows connecting to and managing WireGuard connections for lab environments.
Provides WordPress vulnerability scanning via wpscan.
Click on "Install 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., "@chungus-kali-mcpScan target.htb with nmap and show open ports"
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.
chungus-kali-mcp
IMPORTANT - Highly recommended to run this inside a Kali VM, not your base system.
A Model Context Protocol (MCP) server that gives AI agents (Cursor, Claude, Copilot, etc.) direct access to a Kali Linux penetration testing toolkit. The MCP server runs natively on your Kali VM as a single Node.js process — tool calls spawn CLI commands directly on the host. No Docker, no Flask, no HTTP middle layer.
Inspired by zebbern-kali-mcp. See ATTRIBUTION.md.
Related MCP server: Kali-Mcp-Toolkit
Architecture
Unlike the upstream Docker design (MCP client on host → HTTP → Flask in container), chungus-kali-mcp is a single-process server:
┌─────────────────────────────────────────────────────────────┐
│ Kali Linux VM │
│ │
│ AI Agent (Cursor / Claude / Copilot) │
│ │ │
│ ▼ MCP (stdio) │
│ chungus-kali-mcp (Node.js) │
│ │ │
│ ├── src/tools/ 155 MCP tool handlers │
│ ├── src/managers/ SSH, MSF, pivot, VPN, … │
│ ├── src/runners/ kali-tools, forensics, js │
│ ├── src/parsers/ output-parser │
│ └── child_process / node-pty │
│ │ │
│ ▼ │
│ Kali CLI tools (nmap, sqlmap, impacket-*, netexec, …) │
└─────────────────────────────────────────────────────────────┘Component | Location | Role |
MCP server |
| Registers 155 tools, speaks MCP over stdio |
Tool handlers |
| Zod-validated inputs → manager/runner calls |
Managers |
| Stateful sessions (SSH, reverse shells, Metasploit, pivot, VPN, callback catcher, CTF) |
Runners |
| Stateless CLI wrappers (kali-tools, forensics, js-analysis) |
Parsers |
| Structured output parsing (nmap XML, nuclei JSONL, gobuster text) |
Network init |
| HTB routes, |
Request flow: AI Agent → MCP tool → Node handler → spawn / node-pty → Kali CLI → JSON result back.
Quick Start
1. Install on Kali VM
git clone <your-repo-url>
cd chungus-kali-mcp
npm install
npm run buildVerify the server starts (it will wait on stdio for an MCP client):
node dist/index.js
# Ctrl+C to exit — normally Cursor/VS Code launches this for youOptional: link the binary globally:
npm link
# then use command "chungus-kali-mcp" in MCP config2. Add to Cursor / VS Code
Project config (.cursor/mcp.json or .vscode/mcp.json):
{
"mcpServers": {
"chungus-kali-mcp": {
"command": "node",
"args": ["/path/to/chungus-kali-mcp/dist/index.js"]
}
}
}Or with npm link:
{
"mcpServers": {
"chungus-kali-mcp": {
"command": "chungus-kali-mcp"
}
}
}Restart the editor — the agent can now call all 155 tools.
3. Docker parity setup (optional)
Stock Kali packages cover most APT tools. To match the parent Docker image extras (Go tools, pip tools, /opt clones):
sudo ./scripts/kali-docker-parity.sh # essentials
sudo ./scripts/kali-docker-parity.sh --full # + PEAS, PetitPotam, krbrelayx, etc.4. HTB / lab networking (optional)
export HTB_ROUTES=10.129.0.0/16,10.10.0.0/16
export EXTRA_HOSTS=target.htb:10.10.10.5
./scripts/kali-init.shNetwork init also runs automatically when the MCP server starts.
MCP Tool Modules
19 modules, 155 tools total. Full spec in TOOL_CATALOG.json.
# | Module | Tools | Description |
1 |
| 35 | Nmap, Nikto, Gobuster, Dirb, SQLMap, Hydra, John, Nuclei, FFuf, Hashcat, Commix, Dalfox, WhatWeb, masscan, katana, amass, and more |
2 |
| 15 | Active Directory — netexec, BloodHound, impacket, Responder, evil-winrm, certipy, bloodyAD, coercion |
3 |
| 6 | binwalk, steghide, exiftool, foremost, strings, Volatility3 |
4 |
| 6 | getJS, jsluice, xnLinkFinder, ParamSpider, TruffleHog, js-beautify |
5 |
| 6 |
|
6 |
| 8 | SSH session lifecycle — connect, execute, upload/download, transfer estimates |
7 |
| 8 | Reverse shell listeners, commands, payload generation, file transfer |
8 |
| 5 | Persistent |
9 |
| 13 | Chisel, Ligolo-ng, SSH tunnels, socat, ProxyChains config |
10 |
| 3 | WireGuard & OpenVPN connect/disconnect/status |
11 |
| 11 | GraphQL, JWT, FFUF, Nuclei, rate-limit and auth-bypass tests |
12 |
| 3 | URL (whatweb + fetch fallback), WAF, security headers |
13 |
| 5 | searchsploit search, nmap-based suggestions, exploit copy |
14 |
| 6 | msfvenom generation, HTTP hosting, one-liners |
15 |
| 4 | Upload/download on Kali and target sessions (chunked + SHA256) |
16 |
| 9 | Built-in HTTP + DNS callback listener for isolated networks |
17 |
| 7 | CTFd API — challenges, flags, scoreboard |
18 |
| 4 |
|
19 |
| 1 | Structured parsing of nmap XML, nuclei JSONL, gobuster text |
Renames from upstream
Upstream | chungus-kali-mcp |
|
|
| (removed — direct execution) |
|
|
Expected Kali Tools
chungus-kali-mcp does not bundle tools — it expects a standard Kali install (or equivalent). Run sudo ./scripts/kali-docker-parity.sh for Docker-image parity. The health tool reports availability by category (network, web, dns, brute, ad, forensics, js, pivot, exploit).
Network Scanning
Tool | Description |
nmap | Port scanning, service/version detection, NSE scripts |
masscan | High-speed port scanner |
sslscan | SSL/TLS configuration analysis |
Web Application Scanning
Tool | Description |
nikto | Web server vulnerability scanner |
gobuster | Directory/file/DNS brute-forcing |
dirb | Web content scanner |
wpscan | WordPress vulnerability scanner |
sqlmap | Automated SQL injection |
ffuf | Fast web fuzzer |
nuclei | Template-based vulnerability scanner |
katana | Web crawler |
amass | Attack surface mapping |
commix | Command injection exploitation |
ghauri | Advanced SQL injection detection |
dalfox | XSS scanning and exploitation |
byp4xx | 403 Forbidden bypass |
whatweb | Technology detection |
Subdomain & DNS Enumeration
Tool | Description |
subfinder | Passive subdomain discovery |
httpx | HTTP probing and technology detection |
assetfinder | Subdomain discovery via various sources |
waybackurls | URLs from the Wayback Machine |
fierce | DNS reconnaissance |
subzy | Subdomain takeover checking |
massdns | High-performance DNS resolver |
mapcidr | CIDR range manipulation |
Brute Force & Password Cracking
Tool | Description |
hydra | Network login brute-forcer |
john | John the Ripper password cracker |
hashcat | GPU-accelerated hash cracking |
Active Directory
Tool | Description |
netexec | SMB/LDAP/WinRM (replaces crackmapexec) |
impacket-* | AD attack scripts (secretsdump, GetNPUsers, psexec, wmiexec, …) |
bloodhound-python | AD relationship graphing |
certipy-ad | ADCS exploitation |
bloodyAD | AD privilege escalation |
responder | LLMNR/NBT-NS poisoner |
evil-winrm | WinRM shell with upload/download |
coercer / petitpotam | Authentication coercion |
ldapdomaindump | LDAP domain information |
JavaScript Analysis
Tool | Description |
getJS | Extract JavaScript files from pages |
jsluice | Extract URLs, paths, and secrets from JS |
xnLinkFinder | Link and parameter discovery from JS |
ParamSpider | Parameter discovery from web archives |
TruffleHog | Secret scanning across repos and files |
js-beautify | JavaScript deobfuscation/beautification |
Forensics & CTF
Tool | Description |
binwalk | Firmware analysis and file extraction |
steghide / stegseek | Steganography tools |
exiftool | Metadata reader/writer |
foremost | File carving/recovery |
volatility3 | Memory forensics framework |
radare2 | Reverse engineering (quick triage via strings tool) |
sleuthkit | Disk forensics utilities |
Exploitation & Payloads
Tool | Description |
metasploit-framework |
|
searchsploit | Exploit-DB search |
API Testing
Tool | Description |
jwt_tool | JWT analysis and exploitation |
clairvoyance | GraphQL schema introspection |
Pivoting & VPN
Tool | Description |
chisel | TCP/UDP tunnel over HTTP |
ligolo-proxy | Ligolo-ng tunneling |
socat | Port forwarding and relay |
openvpn, wg-quick | VPN clients |
proxychains4 | Proxy routing |
Privilege Escalation (with --full setup)
Tool | Location |
LinPEAS |
|
WinPEAS |
|
Wordlists
Default paths reference Kali standard locations: rockyou.txt, SecLists, /usr/share/wordlists/dirb/.
Configuration
Environment Variables
Variable | Default | Description |
|
| Working directory for scans, payloads, CTF files |
|
| Directory for VPN config files ( |
| — | Comma-separated CIDRs to route (e.g. |
| — | Comma-separated |
|
| Streaming startup detection timeout (seconds) |
VPN configs
Place OpenVPN or WireGuard configs in VPN_DIR (default ~/.chungus-kali-mcp/vpn/), then use the vpn_connect MCP tool.
Node dependencies
Package | Purpose |
| MCP server protocol |
| Tool input validation |
| Metasploit PTY sessions |
Design Decisions
Decision | Rationale |
Native VM, no Docker | Direct access to host network, VPN interfaces ( |
Single Node process | Eliminates HTTP client/server split; lower latency, simpler deployment |
CLI spawning | Reuses Kali's installed tools ( |
Custom callback catcher | HTTP + DNS listener for isolated CTF/pentest networks where webhook.site can't reach targets |
Heavy-task semaphore | Max 5 concurrent long scans (nmap, nuclei, gobuster) to avoid overwhelming the VM |
TOOL_CATALOG.json | Machine-readable contract for all 155 tools; parity-tested in CI |
Project Structure
chungus-kali-mcp/
├── src/
│ ├── index.ts # MCP server entry (stdio)
│ ├── config.ts # paths, env vars
│ ├── lib/ # command-executor, tool-config, session-registry, health
│ ├── tools/ # MCP tool registration (155 tools)
│ ├── managers/ # SSH, reverse shell, MSF, pivot, VPN, callback, CTF, AD, …
│ ├── runners/ # Stateless CLI wrappers (kali-tools, forensics, js)
│ └── parsers/ # output-parser (nmap XML, nuclei JSONL, gobuster text)
├── scripts/
│ ├── kali-init.sh # HTB routes, hosts, TUN setup
│ ├── kali-docker-parity.sh # Install Docker-image tool parity on Kali VM
│ └── extract-catalog.py # (upstream only) regenerate from parent Python reference
├── test/ # Catalog + registration parity tests
├── .github/workflows/ci.yml # GitHub CI (build, lint, test)
├── .gitignore
├── CHEATSHEET.md # Quick reference for all 155 MCP tools
├── TOOL_CATALOG.json # All 155 tools — source of truth
├── COMMAND_PATTERNS.md # Handler types and command patterns
├── ATTRIBUTION.md # Credit to original zebbern-kali-mcp author
├── package.json
└── README.mdUsage
Once connected, ask your AI assistant to use the Kali tools:
"Scan 10.10.10.5 with nmap" "Run nuclei against example.com" "Connect to the HTB VPN and start recon" "Enumerate AD with bloodhound against dc01.corp.local" "Start a callback listener on port 8080"
The assistant calls MCP tools directly on the Kali VM — no manual commands needed.
Development
npm run dev # tsx src/index.ts (stdio MCP server)
npm run build # compile to dist/
npm run lint # tsc --noEmit
npm test # verify 155 tools registered vs TOOL_CATALOG.json
npm run extract-catalog # (upstream only) regenerate from parent Python referenceSee AGENTS.md for contributor/agent guidance.
Security Warning
This server provides unrestricted access to powerful penetration testing tools.
Never expose the Kali VM to the public internet
Only run on isolated networks or authorized test environments
Ensure you have proper authorization before testing any systems
The server typically runs as root on Kali — required for many pentest tools but increases risk
MCP uses stdio transport — only local editor/agent processes should launch the server
Contributing
Contributions welcome. Please open a pull request with a clear summary and test notes (npm test must pass).
Built on the Model Context Protocol · Node.js reimplementation of zebbern-kali-mcp by Zebbern
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityBmaintenanceAn MCP server that exposes over 20 standard penetration testing utilities, such as Nmap, SQLMap, and OWASP ZAP, as callable tools for AI agents. It enables natural language control over complex security workflows for automated and interactive penetration testing.90
- Alicense-qualityDmaintenanceAn MCP server that exposes over 500 Kali Linux security tools to AI models for automated penetration testing and security auditing. It includes modules for tool execution, interactive terminal management, and sandboxed code editing across 12 security categories.16Apache 2.0
- Flicense-qualityDmaintenanceA penetration testing MCP server that runs 20 hacking tools inside a Kali Linux Docker container, enabling AI assistants to execute security scans and attacks via natural language.2
- AlicenseAqualityDmaintenanceA Docker-based MCP server that grants AI agents direct access to a comprehensive Kali Linux penetration testing toolkit through an isolated container environment.10041MIT
Related MCP Connectors
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cryptopepy/chungus-kali-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server