Kali MCP Server
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., "@Kali MCP Serverscan example.com for open ports and web vulnerabilities"
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.
🐉 Kali MCP Server - Web Penetration Testing
A Model Context Protocol (MCP) server built on Kali Linux Docker container, providing AI-assisted web penetration testing tools with proper input sanitization and formatted output.
🚀 Features
Security Tools Included
Tool | Purpose | Category |
Nmap | Port scanning, service detection, OS fingerprinting | Network |
Nikto | Web server vulnerability scanning | Web Vuln |
SQLMap | SQL injection testing | Web Vuln |
WPScan | WordPress security assessment | CMS |
DIRB | Directory brute-forcing | Discovery |
Gobuster | Fast directory/DNS/vhost enumeration | Discovery |
FFUF | Web fuzzing | Discovery |
SearchSploit | Exploit database search | Research |
SSLScan | SSL/TLS analysis | Crypto |
WhatWeb | Web technology identification | Recon |
WAFW00F | WAF detection | Recon |
Nuclei | Template-based vulnerability scanning | Web Vuln |
Key Features
✅ Non-root execution with proper network capabilities
✅ Input sanitization to prevent command injection
✅ Formatted output for easy reading
✅ Async execution for non-blocking operations
✅ Output persistence for report generation
✅ Rate limiting to prevent abuse
✅ Docker isolation for security
Related MCP server: ikaliMCP Server
📦 Installation
Prerequisites
Docker Engine 20.10+
Docker Compose v2.0+
4GB RAM minimum (8GB recommended)
10GB disk space
Quick Start
# Clone or download the project
cd kali-mcp-server
# Build the Docker image
docker-compose build
# Start the server
docker-compose up -d
# Check logs
docker-compose logs -f
# Verify it's running
curl http://localhost:8010/healthBuild Only
docker build -t kali-mcp-server:latest .Run Manually
docker run -d \
--name kali-mcp \
--cap-add NET_RAW \
--cap-add NET_ADMIN \
-p 8010:8010 \
-v kali-outputs:/app/outputs \
kali-mcp-server:latest🔧 Configuration
Environment Variables
Variable | Default | Description |
|
| Server bind address |
|
| Server port |
|
| Enable debug logging |
|
| Default tool timeout (seconds) |
|
| Maximum allowed timeout |
| - | WPScan vulnerability database API token |
Claude Desktop Integration
Add to your Claude Desktop config (~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"kali-pentest": {
"url": "http://localhost:8010/sse"
}
}
}Or for Docker execution:
{
"mcpServers": {
"kali-pentest": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--cap-add=NET_RAW",
"--cap-add=NET_ADMIN",
"-p", "8010:8010",
"kali-mcp-server:latest"
]
}
}
}🛠️ Available Tools
1. Network Scanning
nmap_scan
nmap_scan(
target="192.168.1.1", # IP, hostname, or CIDR
ports="80,443,8080", # Port specification
scan_type="version", # default, syn, connect, udp, version, aggressive, vuln
scripts="http-enum,ssl-enum", # NSE scripts
timing=3, # 0-5 (paranoid to insane)
timeout=600
)2. Web Vulnerability Scanning
nikto_scan
nikto_scan(
target="http://example.com",
port=80,
ssl=False,
tuning="123bde", # Test categories
timeout=600
)sqlmap_scan
sqlmap_scan(
target_url="http://example.com/page?id=1",
data="username=admin", # POST data
parameter="id", # Specific param to test
level=3, # 1-5
risk=2, # 1-3
technique="BEUST", # Injection techniques
dbms="mysql", # Target DBMS
tables=True, # Enumerate tables
timeout=600
)wpscan_scan
wpscan_scan(
target="http://wordpress-site.com",
enumerate="vp,vt,u", # plugins, themes, users
plugins_detection="aggressive",
api_token="your_token"
)3. Directory Discovery
dirb_scan
dirb_scan(
target="http://example.com",
wordlist="big", # common, big, small
extensions="php,html,txt",
recursive=True,
timeout=600
)gobuster_scan
gobuster_scan(
target="http://example.com",
mode="dir", # dir, dns, vhost
wordlist="medium",
extensions="php,html",
threads=40,
timeout=600
)ffuf_fuzz
ffuf_fuzz(
target="http://example.com/FUZZ",
wordlist="common",
method="GET",
headers="X-Custom:value",
filter_code="404,500",
threads=50
)4. Information Gathering
whatweb_scan
whatweb_scan(
target="http://example.com",
aggression=3 # 1-4
)wafw00f_detect
wafw00f_detect(
target="http://example.com",
list_all=True
)sslscan_scan
sslscan_scan(
target="example.com",
port=443,
show_certs=True
)5. Exploit Research
searchsploit_search
searchsploit_search(
search_term="apache 2.4.49",
exact_match=False,
exclude="dos,windows"
)6. Vulnerability Scanning
nuclei_scan
nuclei_scan(
target="http://example.com",
templates="cves,vulnerabilities",
severity="high,critical",
tags="rce,sqli",
rate_limit=150
)🔒 Security Considerations
Input Sanitization
All inputs are validated and sanitized:
Targets: Validated as IP, CIDR, hostname, or URL
Ports: Validated format, range checks
Parameters: Regex filtering, dangerous character removal
Paths: Allowed directory whitelist
Dangerous Patterns Blocked
; | & ` $ ( ) { } > < || && ../ %00 \n \rNon-Root Execution
The container runs as pentester user (UID 1000) with limited capabilities:
cap_add:
- NET_RAW # Required for SYN scans
- NET_ADMIN # Network configuration
- NET_BIND_SERVICE # Bind to low ports📋 Web Pentest Workflow
Recommended Scanning Order
1. Reconnaissance
├── whatweb_scan # Identify technologies
├── wafw00f_detect # Check for WAF
└── nmap_scan (ports) # Open ports/services
2. Discovery
├── gobuster_scan (dir) # Directory enumeration
├── gobuster_scan (dns) # Subdomain enumeration
└── ffuf_fuzz # Parameter fuzzing
3. Vulnerability Assessment
├── nikto_scan # General web vulnerabilities
├── nuclei_scan # Template-based scanning
├── sslscan_scan # SSL/TLS issues
└── wpscan_scan # If WordPress detected
4. Targeted Testing
├── sqlmap_scan # SQL injection
└── searchsploit_search # Find exploits
5. Reporting
└── Review /app/outputs # All scan results saved📁 Project Structure
kali-mcp-server/
├── Dockerfile # Kali Linux container setup
├── docker-compose.yml # Orchestration
├── requirements.txt # Python dependencies
├── README.md # This file
├── src/
│ ├── __init__.py
│ ├── main.py # FastMCP server & tools
│ ├── validators.py # Input sanitization
│ ├── formatters.py # Output formatting
│ └── config.py # Settings management
├── config/
│ └── claude_desktop_config.json
├── scripts/ # Helper scripts
└── wordlists/ # Custom wordlists🐛 Troubleshooting
Container Won't Start
# Check logs
docker-compose logs kali-mcp
# Verify capabilities
docker run --rm --cap-add NET_RAW kali-mcp-server nmap --versionScans Timing Out
# Increase timeout
docker-compose exec kali-mcp env DEFAULT_TIMEOUT=900
# Or pass timeout parameter
nmap_scan(target="...", timeout=900)Permission Denied
# Ensure proper capabilities
docker run --cap-add NET_RAW --cap-add NET_ADMIN ...Tool Not Found
# Enter container and verify
docker-compose exec kali-mcp which nmap nikto sqlmap📜 License
MIT License - Use responsibly and only on authorized systems.
⚠️ Legal Disclaimer
This tool is for authorized security testing only. Unauthorized access to computer systems is illegal. Always:
Get written permission before testing
Define scope clearly
Document all activities
Report findings responsibly
The authors assume no liability for misuse of this tool.
🤝 Contributing
Fork the repository
Create feature branch
Add tests for new tools
Submit pull request
📞 Support
For issues and feature requests, open a GitHub issue with:
Environment details
Steps to reproduce
Expected vs actual behavior
Relevant logs
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/eversonwbm/kali-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server