Kali MCP Server
About
A Kali Linux MCP server providing AI assistants with access to security tools.
Details
- Author
- k3nn3dy-ai
- Categories
- Developer Tools, Security, Infrastructure
Jump to
Setup
Install Kali MCP Server in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/k3nn3dy-ai/kali-mcp
Follow the installation instructions in the repository README, then restart your MCP client.
A Kali Linux MCP server providing AI assistants with access to security tools.
A production-ready MCP (Model Context Protocol) server running in a Kali Linux Docker container, providing AI assistants with access to 35 security tools covering the full offensive security lifecycle.
This project provides a Docker containerized MCP server that runs on Kali Linux, giving AI assistants (like Claude) access to a full suite of security and penetration testing tools. The server communicates via Server-Sent Events (SSE) or stdio and allows AI to execute commands in a controlled environment.
# Quick start with the helper script ./run_docker.sh # Or with Docker Compose docker compose up --build -d # Or manually: docker build -t kali-mcp-server . docker run -p 8000:8000 kali-mcp-server
# install dev dependencies ./run_tests.sh install # individual checks ./run_tests.sh typecheck # pyright ./run_tests.sh lint # ruff check . ./run_tests.sh format # ruff format . ./run_tests.sh test # pytest ./run_tests.sh test-tools # pytest tests/test_tools.py ./run_tests.sh test-session # pytest -k "session" # run install + typecheck + lint + tests ./run_tests.sh all
- Edit your Claude Desktop config file at~/Library/Application Support/Claude/claude_desktop_config.json:
{ "mcpServers": { "kali-mcp-server": { "transport": "sse", "url": "http://localhost:8000/sse", "command": "docker compose up -d" } } }
- Restart Claude Desktop
- Test with:/run nmap -F localhost
Runs nmap with predefined scan presets, generating both text and XML output.
/port_scan target=192.168.1.1 scan_type=quick /port_scan target=10.0.0.0/24 scan_type=aggressive ports=80,443,8080
Queries all DNS record types and attempts zone transfers.
/dns_enum domain=example.com /dns_enum domain=target.com record_types=a,mx,ns,txt
Runs a multi-stage reconnaissance pipeline with configurable depth.
/recon_auto target=example.com depth=quick /recon_auto target=10.0.0.1 depth=standard /recon_auto target=target.com depth=deep
/hydra_attack target=192.168.1.1 service=ssh username=admin passlist=/usr/share/wordlists/rockyou.txt /hydra_attack target=10.0.0.1 service=ftp userlist=users.txt passlist=passwords.txt threads=32
Supported Services:ssh, ftp, http-get, http-post-form, smb, mysql, rdp, telnet, vnc, pop3, imap, smtp
/payload_generate payload_type=reverse_shell platform=linux lhost=10.0.0.1 lport=4444 format=elf /payload_generate payload_type=meterpreter platform=windows lhost=10.0.0.1 format=exe
Payload Types:reverse_shell, bind_shell, meterpreterPlatforms:linux, windows, osx, php, pythonFormats:elf, exe, raw, python, php, war
Generates ready-to-use reverse shell commands with listener hints.
/reverse_shell lhost=10.0.0.1 shell_type=bash lport=4444 /reverse_shell lhost=10.0.0.1 shell_type=python lport=9999
Shell Types:bash, python, php, perl, powershell, nc, ruby, java
/encode_decode data="hello world" operation=encode format=base64 /encode_decode data="aGVsbG8gd29ybGQ=" operation=decode format=base64 /encode_decode data="<script>alert(1)</script>" operation=encode format=html
Identifies hash types by regex and returns Hashcat mode numbers and John format names.
/hash_identify hash_value=5d41402abc4b2a76b9719d911017c592 /hash_identify hash_value=$2y$10$abcdefghijklmnopqrstuuABCDEFGHIJKLMNOPQRSTUVWXYZ012345
Supported Types:MD5, SHA-1, SHA-256, SHA-512, bcrypt, SHA-512/256/MD5 Crypt, NTLM, Apache APR1, MySQL, Django
/enum_shares target=192.168.1.1 enum_type=all /enum_shares target=10.0.0.1 enum_type=smb username=admin password=pass
Enum Types:smb (smbclient + enum4linux), nfs (showmount), all
credential_store- Credential Management
Stores discovered credentials as JSON tied to the active session.
/credential_store action=add username=admin password=pass123 service=ssh target=10.0.0.1 /credential_store action=list /credential_store action=search username=admin
Parses both text and XML nmap output into structured JSON with hosts, open ports, services, OS detection, and script output.
/parse_nmap filepath=port_scan_10_0_0_1_quick_20240101_120000.txt /parse_nmap filepath=scan_results.xml
parse_tool_output- Generic Output Parser
Auto-detects and parses output from nikto, gobuster, dirb, hydra, or sqlmap.
/parse_tool_output filepath=nikto_results.txt /parse_tool_output filepath=gobuster_output.txt tool_type=gobuster
/vulnerability_scan target=127.0.0.1 scan_type=quick /vulnerability_scan target=example.com scan_type=comprehensive
Scan Types:quick, comprehensive, web, network
/web_enumeration target=http://example.com enumeration_type=full
/network_discovery target=192.168.1.0/24 discovery_type=comprehensive
The Docker container includes the following tools, all enabled for use through theruncommand:
All commands are allowed by default inside the container. The container itself is the security boundary.
- Container isolation: The server runs inside an isolated Docker container. Root is used inside the container because many security tools (nmap SYN scans, tcpdump, etc.) require raw socket access
- Input sanitization: Shell metacharacters (;,&,|) are stripped from all command input
- No host access: The container has no access to the host filesystem or network stack (unless volumes are explicitly mounted)
- Authorization required: Only use for legitimate security testing with proper authorization
- Local only: The container should not be exposed to the internet
- Docker
- Claude Desktop or other MCP client (SSE or stdio)
- Port 8000 available on your host machine
git clone https://github.com/yourusername/kali-mcp-server.git cd kali-mcp-server python -m venv .venv source .venv/bin/activate pip install -e ".[dev]"
# All checks ./run_tests.sh # Individual pyright # Type checking ruff check . # Linting ruff format . # Formatting pytest # All tests pytest tests/test_tools.py # Single file pytest -k "session" # Pattern match
Adding a new tool requires changes in three places:
- kali_mcp_server/tools.py- Implement the async function
- kali_mcp_server/server.py- Add dispatch inhandle_tool_request()and schema inlist_available_tools()
- tests/- Add tests in bothtest_tools.pyandtest_server.py
- Kali Linux for their security-focused distribution
- Anthropic for Claude and the MCP protocol
- The open-source security tools community
Built for security professionals and AI assistants
This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.
An AI penetration testing tool that uses natural language to operate various security tools like nmap, sqlmap, and metasploit.
A feature-rich gateway and proxy that federates MCP and REST services, unifying discovery, authentication, rate-limiting, and observability into a single endpoint for AI clients.
An MCP server for integrating with the Metasploit Framework, enabling payload generation and management.
An MCP server for integrating with the Metasploit Framework. Requires Metasploit Framework to be installed and msfrpcd to be running.
Integrates Volatility 3 memory analysis with FastAPI and MCP, exposing memory forensics plugins via REST APIs.
Boost security in your dev lifecycle via SAST, SCA, Secrets & IaC scanning with Cycode.
MCP access to cluster-wide L4 and L7 network traffic, packets, APIs, and complete payloads.
Model Context Protocol Servers Repository for OpenZeppelin Products
Enable AI agents to secure code with Semgrep.
Model Context Protocol server for Skycloak managed Keycloak. Manage clusters, realms, applications, SSO and users from any MCP client.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





