Skip to main content
Glama
README.md
<div align="center">

# ๐Ÿ‰ kali-mcp

### Your AI, holding a full Kali Linux toolkit.

**kali-mcp turns any MCP-compatible AI assistant into a hands-on penetration
testing partner** โ€” it drives 27+ real Kali security tools through 123
AI-callable actions, and hands the AI clean, verified, structured findings
instead of raw terminal noise.

[![Tests](https://github.com/Neeraj829784/kali-mcp/actions/workflows/test.yml/badge.svg)](https://github.com/Neeraj829784/kali-mcp/actions)
[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://python.org)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)

**123 MCP tools ยท 27+ Kali binaries ยท autonomous hunt mode ยท verification oracles + interactsh OOB + IDOR/access-control + race & secrets scanners ยท 7 attack-chain templates ยท ~450 tests**

[Quick Start](#-quick-start) ยท [Documentation](docs/README.md) ยท [Tool Reference](docs/tools.md)

</div>

---

```
You:  "Scan 10.10.10.5 and tell me what's worth attacking."

AI:   โ†’ scan_host("10.10.10.5")
      โ†’ open ports 22, 80, 445 โ€” fans out nikto + gobuster + nuclei + enum4linux in parallel
      โ†’ 14 findings extracted, verified, and deduplicated
      โ†’ attack chain found:  Exposed .git  โ†’  leaked creds  โ†’  Admin Panel
      โ†’ next moves suggested:  hydra on SSH, sqlmap on the login form
```

You describe intent. The AI drives the tools. kali-mcp makes the results
trustworthy.

## โœจ Why kali-mcp

- **๐Ÿง  Structured, not raw.** Every scan result becomes a clean *finding*
  (`host`, `severity`, `confidence`, `evidence`) โ€” never a wall of terminal text.
  โ†’ [The Finding Pipeline](docs/finding-pipeline.md)
- **๐ŸŽฏ Low false positives.** Findings are actively re-verified (soft-404
  baselines, catch-all clustering, `.git`/`.env` content proof), evidence-anchored,
  and cross-tool corroborated. The AI can't inflate what the tools didn't prove.
  โ†’ [False-Positive Reduction](docs/false-positive-reduction.md)
- **๐Ÿ”— Impact, not just bugs.** Individual findings are correlated into named
  attack chains with ready-to-paste narratives. โ†’ [Attack Chains](docs/attack-chains.md)
- **๐Ÿ›ฐ๏ธ Change detection.** Passive recon sweeps diff against previous runs and
  surface *newly exposed* assets โ€” where the bounties are.
  โ†’ [Continuous Recon](docs/continuous-recon.md)
- **๐Ÿ—‚๏ธ Memory.** A persistent asset inventory and full engagement lifecycle,
  from scope to client-ready report. โ†’ [Engagements](docs/engagements.md)
- **๐Ÿ”’ Safety-first.** stdio-only (no exposed network), scope allow/deny
  enforcement, argument-injection guards, an encrypted credential vault, and a
  full audit log. โ†’ [Security Model](docs/security.md)

## ๐Ÿš€ Quick Start

```bash
# 1. Clone & install
git clone https://github.com/Neeraj829784/kali-mcp.git
cd kali-mcp
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"

# 2. Verify
python3 -c "from server import mcp; print('Ready')"
```

Then point your AI client at it:

```json
{
  "mcpServers": {
    "kali-mcp": {
      "command": "/path/to/kali-mcp/.venv/bin/python",
      "args": ["/path/to/kali-mcp/server.py"]
    }
  }
}
```

Ask it to run `server_health()` to confirm the tools are installed, then
`scan_host("<your-authorized-target>")`.

Full setup โ€” including the security tools kali-mcp drives โ€” is in the
**[Installation guide](docs/installation.md)**.

## ๐Ÿ“š Documentation

Everything lives in **[`docs/`](docs/README.md)**:

| Start here | Concepts | Scope & assets | Reference |
|---|---|---|---|
| [Installation](docs/installation.md) | [Finding Pipeline](docs/finding-pipeline.md) | [Program Scope](docs/program-scope.md) | [Tool Reference](docs/tools.md) |
| [Configuration](docs/configuration.md) | [False-Positive Reduction](docs/false-positive-reduction.md) | [Asset Inventory](docs/asset-inventory.md) | [Security Model](docs/security.md) |
| [Workflows](docs/workflows.md) | [Attack Chains](docs/attack-chains.md) | [Continuous Recon](docs/continuous-recon.md) | [Deployment](docs/deployment.md) |
| [Engagements](docs/engagements.md) | | | [Testing](docs/testing.md) |

## โš–๏ธ Responsible use

kali-mcp runs real offensive tooling. **Only test systems you own or are
explicitly authorized to test.** Use [programs](docs/program-scope.md) to encode
your authorization boundary and stay inside it. You are responsible for how you
use this tool.

## ๐Ÿ“„ License

MIT โ€” see [LICENSE](LICENSE).

TDQS

B3.2/5.0

Scored across 101 tools

Disambiguation2/5

Many tools have overlapping purposes: multiple port scanners (nmap_port_scan, nmap_xml_scan, fast_port_scan), multiple subdomain tools (subfinder_enumerate, amass_enum, theharvester_search, recon_sweep), and two parallel scope management systems (scope_* and program_scope_*). An agent would frequently struggle to pick the correct tool without reading full details.

Naming Consistency3/5

There are two main conventions: category_action (nmap_port_scan, scope_add, asset_mark_host) and verb_noun (get_job_status, list_artifacts). Some names like server_health, html_to_text, and pcap_protocols break the pattern entirely. It's readable but not uniform.

Tool Count1/5

101 tools is far beyond reasonable for a single MCP server. The calibration specifies 50+ as an extreme mismatch, and this server has more than double that. The sheer number overwhelms tool selection and creates unnecessary redundancy.

Completeness5/5

The toolset covers the entire penetration testing lifecycle: recon (nmap, subfinder, theharvester), scanning (nikto, nuclei, gobuster), exploitation (sqlmap, hydra, metasploit), post-exploitation (ssh_exec, creds_store), and reporting (generate_pentest_report, analyze_findings). No obvious gaps for the Kali Linux domain.

Maintenance

ActivitySlowing
ResponsivenessNo issues