Content
# Kali MCP Server
Remote-ready Model Context Protocol (MCP) server for penetration testing automation.
Runs as an SSE-based MCP server behind Nginx (TLS + header token auth). Tools are
defined as JSON under `tools/`.
## What This Repo Contains
1. MCP server exposing tool execution and workflows
2. SSE transport for remote clients
3. Production deployment templates (Nginx + Let's Encrypt + systemd)
4. SQLite persistence for engagements, tool runs, and findings
5. Parsers for turning tool output into structured data
6. Report generation helpers
## Quick Links
1. Overview: `docs/00-overview.md`
2. Architecture: `ARCHITECTURE.md`
3. Local dev: `docs/10-local-development.md`
4. EC2 deploy (Nginx + TLS + systemd): `docs/20-ec2-deployment.md`
5. Operations: `docs/30-operations.md`
6. Troubleshooting: `docs/40-troubleshooting.md`
7. Workflows usage: `WORKFLOWS.md`
8. Adding tools: `ADDING_TOOLS.md`
9. MCP client configs: `client-configs/README.md`
## Key Defaults
1. Public entrypoint: `:443` (Nginx)
2. Private app bind: `127.0.0.1:8765` (uvicorn)
3. Auth header: `X-MCP-Token`
The MCP app assumes Nginx handles TLS and auth.
## Run Locally (SSE)
```bash
python3 -m venv venv
./venv/bin/pip install -r requirements.txt
./venv/bin/python -m uvicorn src.server.sse_app:create_sse_app --factory --host 127.0.0.1 --port 8765
```
## Testing
```bash
./venv/bin/python -m pytest
```
## Deployment Templates
1. Nginx: `deploy/nginx/site.conf`
2. systemd: `deploy/systemd/kali-mcp.service`
## MCP Client Configs
Ready-to-adapt JSON configs are in `client-configs/`:
1. Cursor: `client-configs/cursor/mcp.json`
2. VS Code: `client-configs/vscode/mcp.json`
3. Claude: `client-configs/claude/`
4. Antigravity: `client-configs/antigravity/mcp_config.json`
These files use placeholders/environment variables for `X-MCP-Token`; do not
commit the real token.
## Configuration
Base config is `config/default.json`. Common environment overrides:
1. `KALI_DB_PATH`
2. `KALI_OUTPUT_DIR`
3. `KALI_TOOLS_DIR`
4. `KALI_ALLOWED_HOSTS` (comma-separated Host headers allowed by MCP transport security)
## Security Notes
1. Keep the token out of Git: do not commit `.env`.
2. Do not expose `:8765` publicly; it should be localhost-only behind Nginx.
Connection Info
You Might Also Like
everything-claude-code
Complete Claude Code configuration collection - agents, skills, hooks,...
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
cc-switch
All-in-One Assistant for Claude Code, Codex & Gemini CLI across platforms.
servers
Model Context Protocol Servers
servers
Model Context Protocol Servers
Time
A Model Context Protocol server for time and timezone conversions.