Skip to content

HyperPS/kali-burp-mcp-bridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ kali-burp-mcp-bridge

The Ultimate AI-Powered Penetration Testing MCP Server

Python 3.10+ MCP Protocol Burp Suite Kali Linux License: MIT Stars

Connect Claude, ChatGPT, Cursor, and any MCP-compatible AI to your full Kali Linux + Burp Suite security toolkit.

Run nmap, sqlmap, metasploit, hydra, nuclei and 60+ more tools — all from a single chat prompt.

🚀 Quick Start · 🔧 All Tools · 🤖 AI Setup · 📖 Examples · 🙏 Credits


⚠️ Legal Disclaimer: This tool is intended for authorized penetration testing and security research only. Always obtain explicit written permission before testing any system you do not own. Misuse of this tool is illegal and unethical. The authors accept no liability for unauthorized use.

This project is not intended to be exposed publicly without authentication. The kali-burp-mcp-bridge server is designed to run locally or behind a trusted boundary (e.g., internal lab environment, VPN, or secured reverse proxy) and is expected to be protected by an authentication token or equivalent access control mechanism at deployment time.

The functions highlighted (Metasploit integration, CLI wrappers, file-based tooling, etc.) are intentionally designed for controlled offensive security environments where the operator is already trusted and authorized. This bridge acts as a thin execution layer between MCP and local security tooling — not as a hardened multi-tenant API service.


📌 What Is This?

kali-burp-mcp-bridge (entry point: server.py) is a Model Context Protocol (MCP) server that gives any AI assistant — Claude, ChatGPT, Cursor, and more — direct, real-time access to your Kali Linux security toolchain and Burp Suite REST API.

It bridges three powerful layers into one conversational interface:

You ──► AI Chat ──► server.py (MCP Server) ──► 🔴 Burp Suite REST API
                                           ├──► 🟡 Kali Linux CLI Tools
                                           └──► 🟢 Pure Python Security Modules

Instead of switching between terminals and GUI tools, you simply describe what you want:

"Scan 10.10.10.5 for open ports, identify services, and check for known CVEs"

And your AI assistant automatically calls nmap_scan, whatweb_scan, and search_cve_by_keyword for you.


🏗️ Architecture

╔══════════════════════════════════════════════════════════════╗
║           kali-burp-mcp-bridge  v3.0  (server.py)           ║
╠══════════════════════════════════════════════════════════════╣
║  🔴 Layer 1 — Burp Suite REST API  (port 9876)              ║
║     Proxy history · Active/passive scanner · Repeater        ║
║     Intruder · Collaborator OOB · Encoding · Config          ║
╠══════════════════════════════════════════════════════════════╣
║  🟡 Layer 2 — Kali Linux CLI Tools                          ║
║     nmap · masscan · nikto · gobuster · ffuf · dirb          ║
║     sqlmap · hydra · john · hashcat · metasploit             ║
║     whatweb · wpscan · nuclei · enum4linux · smbclient       ║
║     subfinder · amass · fierce · dnsx · sslscan              ║
║     curl · wget · netcat · openssl · whois · dig             ║
╠══════════════════════════════════════════════════════════════╣
║  🟢 Layer 3 — Pure Python Security Modules                  ║
║     JWT decode/forge/brute · CORS · HTTP smuggling           ║
║     SSRF probe · Cache poisoning · OAuth analysis            ║
║     GraphQL introspect · Session entropy · Param mining      ║
║     CVE lookup · GitHub secret scan · Exploit templates      ║
╚══════════════════════════════════════════════════════════════╝

  MCP Transport:  stdio (default)  |  SSE port 8082 (--transport sse)
  Burp REST API:  http://127.0.0.1:9876  (via BurpAI extension)

🚀 Quick Start

Step 1 — Clone the Repo

git clone https://github.com/yourusername/kali-burp-mcp-bridge.git
cd kali-burp-mcp-bridge

Step 2 — Install Python Dependencies

The script uses inline PEP 723 dependency metadata, so you can use uv for zero-config setup:

# Option A — using uv (recommended, auto-installs all deps)
pip install uv
uv run server.py

# Option B — using pip manually
pip install "requests>=2,<3" "mcp>=1.2.0,<2" "flask>=3,<4" "websocket-client>=1.6"
python3 server.py

Step 3 — Install Kali Security Tools

sudo apt-get update && sudo apt-get install -y \
  nmap masscan nikto gobuster dirb ffuf sqlmap \
  hydra john hashcat whatweb wpscan \
  enum4linux smbclient netcat-openbsd \
  curl wget whois dnsutils sslscan \
  amass subfinder fierce \
  metasploit-framework

# Wordlists
sudo apt-get install -y wordlists seclists
sudo gunzip /usr/share/wordlists/rockyou.txt.gz 2>/dev/null || true

# Go-based tools (nuclei, dnsx, ffuf, gobuster latest)
go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
go install github.com/projectdiscovery/dnsx/cmd/dnsx@latest
go install github.com/ffuf/ffuf/v2@latest

You can also install any missing tool at any time by asking your AI: "Install nuclei" — the install_tool function handles apt, pip, and go automatically.

Step 4 — Connect Your AI

See the full connection guide below.


🤖 Connecting Your AI

🟣 Claude (Anthropic) — Claude Desktop App

Claude supports MCP natively via the Desktop app. This is the easiest and most powerful integration.

Find your config file:

OS Path
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
Windows %APPDATA%\Claude\claude_desktop_config.json
Linux ~/.config/Claude/claude_desktop_config.json

Add this to your config:

{
  "mcpServers": {
    "kali-burp": {
      "command": "python3",
      "args": ["/full/path/to/kali-burp-mcp-bridge/server.py"],
      "env": {
        "BURP_URL": "http://127.0.0.1:9876",
        "BURP_API_KEY": "",
        "TOOL_TIMEOUT": "120"
      }
    }
  }
}

Restart Claude Desktop. You will see the 🔧 tools icon in the chat interface confirming the MCP server is active.

For a remote Kali machine, use SSE mode:

# On your Kali machine
python3 server.py --transport sse --mcp-host 0.0.0.0 --mcp-port 8082
{
  "mcpServers": {
    "kali-burp-remote": {
      "url": "http://YOUR_KALI_IP:8082/sse"
    }
  }
}

🟢 Claude.ai (Web Interface)

Claude.ai supports MCP via remote SSE connections.

# Start SSE server on your machine
python3 server.py --transport sse --mcp-host 0.0.0.0 --mcp-port 8082

In Claude.ai settings, navigate to Integrations → Add MCP Server and enter:

http://YOUR_IP:8082/sse

For claude.ai to reach your server over the internet, expose the port or use a tunnel:

ngrok http 8082
# Then use the ngrok HTTPS URL in claude.ai

🟡 ChatGPT / OpenAI — Agents SDK

ChatGPT connects via the SSE transport using the OpenAI Agents SDK.

# Start SSE server first
python3 server.py --transport sse --mcp-port 8082
# pip install openai-agents
from agents import Agent, MCPServerSse
import asyncio

async def main():
    async with MCPServerSse(
        name="kali-burp",
        params={"url": "http://127.0.0.1:8082/sse"},
    ) as mcp_server:
        agent = Agent(
            name="PenTest Agent",
            instructions="You are an expert penetration tester. Use the available tools to help test targets.",
            mcp_servers=[mcp_server],
        )
        result = await agent.run("Scan 10.10.10.5 for open ports and identify services")
        print(result.final_output)

asyncio.run(main())

🔵 Cursor IDE

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "kali-burp": {
      "command": "python3",
      "args": ["/full/path/to/server.py"],
      "env": {
        "BURP_URL": "http://127.0.0.1:9876",
        "TOOL_TIMEOUT": "120"
      }
    }
  }
}

Restart Cursor. The tools appear automatically in the AI chat panel.


🟠 Windsurf (Codeium)

Add to your Windsurf MCP configuration file:

{
  "mcp": {
    "servers": {
      "kali-burp": {
        "command": "python3",
        "args": ["/full/path/to/server.py"],
        "env": {
          "BURP_URL": "http://127.0.0.1:9876"
        }
      }
    }
  }
}

⚪ Any MCP-Compatible Client (Generic SSE)

# Start in SSE mode
python3 server.py --transport sse --mcp-host 0.0.0.0 --mcp-port 8082

# Connect any MCP client to:
# http://YOUR_HOST:8082/sse

This works with LangChain MCP adapters, CrewAI, AutoGen, LlamaIndex, and any framework that supports the MCP SSE transport protocol.


🔧 Available Tools

🌐 Network Scanning

Tool Description
nmap_scan Port and service scan with custom flags (e.g. -sV -T4 --open)
nmap_vuln_scan Run all Nmap vuln NSE scripts against a target
nmap_os_detect OS fingerprinting with -O -sV -A
nmap_full_port_scan Scan all 65535 ports (slow but thorough)
nmap_udp_scan UDP scan for top N ports (requires root)
nmap_script Run any specific NSE script (e.g. smb-vuln-ms17-010)
masscan_fast Ultra-fast packet-level port sweep with configurable rate

🕸️ Web Scanning and Fuzzing

Tool Description
nikto_scan Web server vulnerability scan by host and port
nikto_scan_url Nikto scan using a full URL (auto-detects HTTPS)
gobuster_dir Directory and file brute-force with extension support
gobuster_dns Subdomain brute-force via DNS resolution
gobuster_vhost Virtual host enumeration
dirb_scan Classic directory scan (fallback when gobuster unavailable)
ffuf_dir Fast web directory fuzzing using FUZZ placeholder
ffuf_param Parameter fuzzing with custom HTTP method and POST data
wpscan WordPress scanner for users, plugins, themes, and timthumbs
nuclei_scan Template-based vulnerability scanning (community templates)
nuclei_scan_list Nuclei against a file containing multiple target URLs
whatweb_scan Web technology fingerprinting with configurable aggression

💉 SQL Injection

Tool Description
sqlmap_scan Full SQL injection test on a URL
sqlmap_dbs Enumerate available databases
sqlmap_tables Enumerate tables within a specific database
sqlmap_dump Dump data from a database or table
sqlmap_os_shell Attempt OS command execution via SQLi
sqlmap_request_file Test from a saved Burp Suite request file

🔐 Brute Force and Hash Cracking

Tool Description
hydra_ssh SSH credential brute-force
hydra_ftp FTP credential brute-force
hydra_smb SMB credential brute-force
hydra_http_post HTTP POST login form attack with fail string
hydra_service Generic service attack (rdp, smtp, mysql, mssql, telnet, etc.)
john_crack John the Ripper with wordlist and optional rules
john_show Display previously cracked passwords
hashcat_crack GPU-accelerated cracking (MD5, NTLM, SHA1, bcrypt, etc.)

💣 Exploitation — Metasploit

Tool Description
msf_exploit Run an exploit with RHOSTS, LHOST, LPORT, PAYLOAD options
msf_generate_payload msfvenom payload generation (exe, elf, apk, ps1, dll, raw)
msf_search Search the Metasploit module database by keyword
msf_module_info Get detailed information on a specific module
msf_run_resource Execute a full multi-line Metasploit .rc resource script

🔍 Reconnaissance and OSINT

Tool Description
subfinder_enum Passive subdomain enumeration via OSINT sources
amass_enum Active and passive subdomain mapping
enumerate_subdomains crt.sh certificate transparency logs plus DNS resolution
fierce_dns DNS reconnaissance and zone transfer attempts
dnsx_resolve Fast DNS resolution with A, CNAME, MX, NS records
whois_lookup WHOIS data for a domain or IP address
dig_query DNS query for any record type via any nameserver
enum4linux SMB and LDAP enumeration for shares, users, and groups
smbclient_list_shares List SMB shares on a target
smbclient_connect Connect to an SMB share and execute commands
github_repo_secret_scan Scan GitHub repo commits for exposed API keys and secrets

🔑 JWT and Authentication Testing

Tool Description
jwt_decode Decode JWT header and payload, detect algorithm and expiry issues
jwt_forge_none_alg Generate alg:none bypass tokens (4 casing variants)
jwt_brute_secret Brute-force HS256 secret against common passwords or a wordlist
analyze_oauth_flow Detect OAuth misconfigurations: implicit flow, missing state, missing PKCE

🕵️ Advanced Web Vulnerability Testing

Tool Description
test_cors_misconfiguration Test CORS policy for origin reflection and credential leakage
detect_request_smuggling Raw socket HTTP smuggling detection (CL.TE and TE.CL techniques)
test_host_header_injection Host header injection via X-Forwarded-Host and OOB Collaborator
detect_cache_poisoning Unkeyed header cache poisoning detection
probe_ssrf SSRF via AWS/GCP/Azure metadata endpoints and Burp Collaborator OOB
scan_open_redirects Open redirect scanning across common URL parameters
mine_hidden_parameters Discover hidden parameters by comparing response length and status
graphql_introspect GraphQL schema extraction via introspection query
discover_api_endpoints_from_js Extract API paths, secrets, and external URLs from JavaScript files
analyze_session_entropy Token entropy analysis and sequential pattern detection

🎯 Payloads and Exploit Templates

Tool Description
get_payloads Return payloads for: sqli, xss, ssti, ssrf, xxe, lfi, cmd_injection, open_redirect
get_all_payload_types List all available payload categories
generate_exploit_template Generate a ready-to-run Python exploit script for a vulnerability type
auto_exploit_from_scan Pull Burp scanner findings and auto-generate exploit scripts per issue
build_intruder_attack Load Burp Intruder with generated payloads for a given attack type

🔬 CVE Intelligence

Tool Description
lookup_cve Full CVE details from NVD including CVSS v3 score and references
search_cve_by_keyword Keyword-based CVE search against the NVD database
tech_to_cves Map a detected technology and version to known CVEs
github_advisory_search GitHub Security Advisories by ecosystem, severity, or keyword

🔒 SSL and TLS Testing

Tool Description
sslscan Test SSL/TLS ciphers, protocols, and known vulnerabilities
testssl Comprehensive TLS testing with testssl.sh
openssl_check_cert Display full certificate chain and certificate details

🌊 Burp Suite REST API

Category Tools
Proxy get_proxy_http_history, get_proxy_http_history_regex, get_proxy_websocket_history, get_proxy_websocket_history_regex, set_proxy_intercept_state
Scanner burp_active_scan, burp_passive_scan, burp_get_scan_status, burp_cancel_scan, get_scanner_issues
Repeater send_http1_request, send_http2_request, create_repeater_tab, replay_and_diff
Intruder send_to_intruder, build_intruder_attack
Collaborator generate_collaborator_payload, get_collaborator_interactions
Encoding base64_encode, base64_decode, url_encode, url_decode, generate_random_string
Config output_project_options, output_user_options, set_project_options, set_user_options, set_task_execution_engine_state, get_active_editor_contents, set_active_editor_contents

⚙️ System and Workflow Tools

Tool Description
recon_target Full recon pipeline: nmap + whatweb + whois + subdomains + CVE hints
full_web_audit Complete web audit: nikto + gobuster + CORS + param mining + JS analysis
chain_vulnerabilities_into_narrative Build structured attack chain narratives from Burp scanner findings
list_all_tools List every available tool organized by category
list_installed_tools Show which Kali tools are installed vs missing
install_tool Auto-install any missing tool via apt-get, pip, or go install
install_wordlists Install rockyou, dirb, and SecLists wordlists
run_command Execute any arbitrary bash command directly
curl_request HTTP request with full control over method, headers, data, and proxy
wget_download Download files from a URL
nc_banner_grab Service banner grabbing via netcat
burp_health_check Verify Burp REST API connectivity

📖 Usage Examples

Once server.py is connected to your AI assistant, just speak naturally:

Reconnaissance

"Run a full port scan on 10.10.10.5 and identify all running services"
"Enumerate subdomains for example.com and resolve their IP addresses"
"Do a WHOIS lookup and a service scan on 192.168.1.0/24"
"Find subdomains of target.com using both subfinder and amass"
"Check what web technologies are running on https://target.com"

Web Application Testing

"Test https://target.com for SQL injection vulnerabilities"
"Run a full web audit on https://target.com"
"Check for CORS misconfigurations on https://api.target.com"
"Fuzz for hidden directories and files on https://target.com"
"Scan https://target.com/graphql for introspection and exposed types"
"Find hidden parameters on https://target.com/search"
"Extract API endpoints and secrets from https://target.com/app.bundle.js"

JWT and Authentication

"Decode this JWT and check for vulnerabilities: eyJhbGciOiJIUzI1NiJ9..."
"Try an alg:none signature bypass on this token"
"Brute-force the HS256 secret on this JWT using rockyou.txt"
"Analyze this OAuth authorization URL for security issues"

Exploitation

"Generate a Windows x64 reverse shell payload for 192.168.1.10 port 4444"
"Run the EternalBlue exploit against 10.10.10.4"
"Use sqlmap to dump all databases from https://target.com/vuln?id=1"
"Brute-force SSH on 10.10.10.5 using rockyou.txt"
"Generate a Python cookie stealer exploit for the XSS at https://target.com/search?q="
"Search Metasploit for Apache Struts exploit modules"

Intelligence

"What CVEs affect Apache 2.4.49?"
"Look up CVE-2021-44228 Log4Shell and explain the risk"
"Scan the GitHub repo owner/repo for exposed API keys in recent commits"
"Map all known CVEs for nginx 1.14.0"

Burp Suite Automation

"Get the last 100 requests from Burp proxy history"
"Launch an active scan against https://target.com"
"Show me all high and critical issues from the Burp scanner"
"Generate a Burp Collaborator payload for out-of-band testing"
"Send this HTTP request to Burp Repeater and show me the response"
"Build an Intruder attack with XSS payloads against this request template"

⚙️ Configuration Reference

Environment Variables

Variable Default Description
BURP_URL http://127.0.0.1:9876 Burp Suite REST API endpoint
BURP_API_KEY (empty) API key for Burp authentication if required
TOOL_TIMEOUT 120 Maximum execution time in seconds for CLI tools
TIMEOUT 30 HTTP request timeout in seconds

Command Line Flags

python3 server.py [OPTIONS]

  --burp-url TEXT        Burp REST API URL       (default: http://127.0.0.1:9876)
  --api-key TEXT         Burp API key            (default: empty)
  --transport TEXT       stdio or sse            (default: stdio)
  --mcp-host TEXT        SSE server bind host    (default: 127.0.0.1)
  --mcp-port INT         SSE server port         (default: 8082)
  --timeout INT          HTTP request timeout    (default: 30)
  --tool-timeout INT     CLI tool timeout        (default: 120)
  --debug                Enable debug logging

Common Launch Commands

# Default stdio mode — for Claude Desktop, Cursor, local AI tools
python3 server.py

# SSE mode — for claude.ai web, ChatGPT Agents SDK, remote clients
python3 server.py --transport sse

# SSE mode, publicly accessible, custom port
python3 server.py --transport sse --mcp-host 0.0.0.0 --mcp-port 8082

# With Burp API key and debug output
python3 server.py --api-key YOUR_KEY --debug

# Full custom configuration
python3 server.py \
  --burp-url http://127.0.0.1:9876 \
  --api-key YOUR_KEY \
  --transport sse \
  --mcp-host 0.0.0.0 \
  --mcp-port 8082 \
  --tool-timeout 300 \
  --debug

🔌 Burp Suite Setup

To enable the Burp Suite REST API layer:

  1. Install Burp Suite Professional or Community Edition from portswigger.net/burp
  2. Open Burp Suite and go to the BApp Store
  3. Install the BurpAI extension (search for "BurpAI" or "Burp MCP")
  4. The extension starts a REST server on http://127.0.0.1:9876 automatically
  5. Launch server.py — it connects to Burp automatically

Without Burp Suite, all Kali CLI tools and Pure Python security modules work perfectly. Burp integration is optional but unlocks scanner results, proxy history, Collaborator OOB interactions, and Intruder automation.



🔐 Security Considerations

  • Only run this tool against systems you own or have explicit written authorization to test
  • The run_command tool provides full shell access — run in a VM or container for isolation
  • Bind the SSE server to 127.0.0.1 unless you have proper network-level access controls in place
  • Keep BURP_API_KEY secret and rotate it regularly
  • Output files and tool logs may contain sensitive data — handle and store them securely
  • Set conservative TOOL_TIMEOUT values to prevent long-running or runaway processes

🙏 Credits

This project stands on the shoulders of giants in the security community.

👤 Daniel S. — PortSwigger

For pioneering and publishing the foundational web application security research that powers this bridge. The CORS testing, HTTP request smuggling detection, web cache poisoning, Host header injection, and OAuth misconfiguration modules are all directly inspired by PortSwigger's world-class research. The Web Security Academy is the best free security training resource on the planet, and Burp Suite Pro is the industry-standard tool that makes the REST API integration layer possible.

👤 Daniel Allen

For contributions to the real-world penetration testing workflows, (PortSwigger MCP - Extension)

🛠️ Open Source Tools Integrated

Tool Author / Project
Nmap Gordon Lyon (Fyodor)
Metasploit Framework Rapid7
SQLMap Bernardo Damele & Miroslav Stampar
Nuclei ProjectDiscovery
Subfinder ProjectDiscovery
dnsx ProjectDiscovery
Gobuster OJ Reeves
ffuf Joona Hoikkala
Amass OWASP
Hydra Van Hauser / THC
Nikto Chris Sullo
Hashcat Jens Steube
John the Ripper Openwall
WhatWeb Andrew Horton
WPScan WPScan Team
Fierce Mark Schwager
SSLScan rbsec
FastMCP MCP Community
Burp Suite PortSwigger

📄 License

MIT License — see LICENSE for full terms.


Built with ❤️ for the security research community

For authorized testing only. Hack responsibly.

Star this repo if it helped your work!

About

kali-burp-mcp-bridge is a Model Context Protocol (MCP) server that gives any AI assistant (Claude, ChatGPT, Cursor, and more) direct access to your Kali Linux security toolchain and Burp Suite REST API — turning your AI into a fully-equipped penetration tester.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages