PwnBridge
OfficialProvides tools to run security assessments on a remote Kali Linux machine, including reconnaissance, web testing, exploitation, and static/dynamic analysis.
Enables execution of Metasploit modules for exploitation tasks via the 'metasploit_exec' tool.
Integrates OWASP ZAP for dynamic application security testing (DAST) with support for multiple authentication modes and parallel scanning.
Click on "Deploy 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., "@PwnBridge Scan example.com for open ports"
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.
⚠️ AUTHORIZED USE ONLY — Only test systems you own or have explicit written permission to test. Unauthorized access to computer systems is illegal.
What is PwnBridge?
PwnBridge is a Model Context Protocol (MCP) server that bridges AI assistants to a Kali Linux machine over SSH. Ask Claude, ChatGPT, or Gemini to run a port scan, test for SQL injection, or perform a full SAST/DAST security assessment — the AI translates intent into commands, executes them on your Kali box, streams back results, and keeps a full audit trail.
┌─────────────────────────────────────────────────────────────────────────┐
│ │
│ Claude Desktop ──── stdio ────┐ │
│ │ │
│ ChatGPT ──────── HTTP/SSE ───►│ PwnBridge ──── SSH ────► Kali Linux │
│ │ (11 tools) │
│ Gemini CLI ───── HTTP/SSE ───►│ │
│ │ │
└─────────────────────────────────────────────────────────────────────────┘Dual Transport
Transport | Clients | Protocol |
stdio | Claude Desktop | MCP native (spawned process) |
HTTP / SSE | ChatGPT, Gemini CLI, any MCP client | Streamable HTTP + legacy SSE |
Related MCP server: K-MCP: Kali Model Context Protocol Server
Tools
Reconnaissance & Scanning
Tool | Description |
| Port scanning — quick, service, OS, full, stealth, UDP profiles |
| Web server vulnerability and misconfiguration detection |
| CMS, framework, and technology fingerprinting |
Web Application Testing
Tool | Description |
| SQL injection detection and exploitation |
| Directory, file, subdomain, and vhost enumeration |
| Web fuzzing with |
Exploitation & Auth Testing
Tool | Description |
| Password brute-force — SSH, FTP, HTTP, SMB, RDP, and more |
| Non-interactive Metasploit module execution |
Security Analysis
Tool | Description |
| Static analysis — Semgrep + Bandit + Gitleaks + Graudit in parallel, versioned reports |
| Dynamic analysis — OWASP ZAP + Nuclei, 5 auth modes, versioned reports |
Utility
Tool | Description |
| Raw shell command passthrough (escape hatch for advanced scenarios) |
Quick Start
Prerequisites
Kali Linux machine accessible over SSH (VM, VPS, or bare metal)
Node.js 22+ on your local machine
1. Clone & Install
git clone https://github.com/1mr0-tech/simple-kali-mcp.git pwnbridge
cd pwnbridge
npm install2. Configure
cp .env.example .envEdit .env — minimum required:
SSH_HOST=192.168.1.100 # Your Kali machine IP
SSH_USER=kali
SSH_PRIVATE_KEY_PATH=~/.ssh/id_rsa # Recommended over password3. Build
npm run build4. Connect Your AI Assistant
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"pwnbridge": {
"command": "node",
"args": ["/absolute/path/to/pwnbridge/dist/index.js", "--stdio"]
}
}
}Restart Claude Desktop. All 11 tools appear automatically.
ChatGPT
Option A — MCP Connector (ChatGPT Plus / Team / Enterprise):
node dist/index.js --http # starts on port 3000In ChatGPT → Settings → Connected Apps → Add MCP Server → http://your-server:3000/mcp
Option B — Custom GPT Actions (legacy):
Import the auto-generated schema: http://your-server:3000/openapi.yaml
Gemini CLI
Add to ~/.gemini/settings.json:
{
"mcpServers": {
"pwnbridge": {
"httpUrl": "http://your-server:3000/mcp",
"headers": { "x-api-key": "your-key-here" }
}
}
}SAST Scanning
Run static analysis on a local codebase. Code is synced to Kali via SFTP, scanned in parallel, then deleted — only the report is kept.
AI: "Run a SAST scan on /Users/me/projects/backend, project name backend-api"What runs on Kali:
┌─────────────────────────────────────────────────────────────────┐
│ SFTP Upload (8 concurrent streams) │
│ /Users/me/projects/backend → /tmp/kali-sast-abc123/src/ │
└───────────────────────┬─────────────────────────────────────────┘
│ parallel
┌───────────────┼───────────────┬──────────────┐
▼ ▼ ▼ ▼
Semgrep Bandit Gitleaks Graudit
(multi-lang) (Python*) (secrets) (lang-aware)
│ │ │ │
└───────────────┴───────────────┴──────────────┘
│ consolidated report
▼
~/kali-mcp-reports/sast/backend-api/v002_20240120_091500_sast_all.mdBandit is automatically skipped if no .py files are found.
Graudit uses language auto-detection to target the right rule databases (e.g. python,js,code).
Report Naming
~/kali-mcp-reports/
sast/
{project}/
v001_20240115_103000_sast_all.md
v002_20240120_091500_sast_semgrep+bandit.md
v003_20240125_140000_sast_all.mdDAST Scanning
Run dynamic analysis against a live web application.
AI: "Run a full authenticated DAST scan on http://192.168.1.50, form login at /login"Authentication modes:
| How it works |
| Standard unauthenticated crawl |
| Injects |
| Injects |
| Injects |
| Generates ZAP Automation Framework YAML — full login flow |
What runs on Kali (parallel):
ZAP (spider → passive scan → active scan)
+
Nuclei (CVE + template detection)
│
▼
~/kali-mcp-reports/dast/192.168.1.50/v001_20240115_103000_dast_full_form-auth.mdReport Naming
~/kali-mcp-reports/
dast/
{host}/
v001_20240115_103000_dast_baseline_unauth.md
v002_20240116_090000_dast_full_form-auth.md
v003_20240118_143000_dast_full_bearer-auth.mdConfiguration Reference
Variable | Default | Description |
| — | Required. Kali machine IP or hostname |
|
| SSH port |
| — | Required. SSH username |
| — | SSH password (prefer key auth) |
| — | Path to private key — |
| — | Passphrase for encrypted private key |
|
| HTTP server port |
|
| HTTP bind address |
| — | API key to protect the HTTP endpoint |
|
| Default command timeout (5 min) |
|
| nmap timeout (10 min) |
|
| sqlmap timeout (15 min) |
|
| SAST scan timeout (15 min) |
|
| DAST scan timeout (30 min) |
|
| Local audit log file |
|
| Report directory on Kali |
Audit Logging
Every command is logged with a full timestamp:
{"timestamp":"2024-01-15 10:30:00","level":"info","message":"COMMAND_EXECUTED",
"tool":"nmap_scan","command":"nmap -T4 -F 192.168.1.1","target":"192.168.1.1"}Log: ./logs/audit.log — rotates at 50MB, keeps 5 files.
Server Commands
# HTTP mode — ChatGPT / Gemini
npm run start:http
# stdio mode — Claude Desktop (usually auto-launched)
npm run start:stdio
# Health check
curl http://localhost:3000/healthSecurity Considerations
Concern | Mitigation |
Unauthorized access | Set |
Credential theft | Use SSH key auth over password |
Command injection | Tool schemas use enums and typed params — only |
Audit trail | All commands logged with timestamp, tool, target, and full command string |
Source code exposure | SAST uploads code temporarily — deleted immediately after scan |
Network exposure | Restrict port 3000 at firewall level; bind to |
Tool Requirements on Kali
Tool | Install |
nmap | Pre-installed |
nikto |
|
sqlmap | Pre-installed |
gobuster |
|
ffuf |
|
whatweb | Pre-installed |
hydra | Pre-installed |
metasploit | Pre-installed |
semgrep |
|
bandit |
|
gitleaks |
|
graudit |
|
zaproxy |
|
nuclei |
|
Troubleshooting
SSH connection fails:
ssh -i ~/.ssh/id_rsa kali@<host>Tool not appearing in Claude Desktop:
Verify absolute path in
claude_desktop_config.jsonRestart Claude Desktop after config changes
Check logs:
~/Library/Logs/Claude/(macOS)
ZAP / Nuclei / Semgrep not found:
apt install zaproxy nuclei gitleaks graudit
pip install semgrep banditLicense
MIT — see LICENSE for details.
Built for authorized security professionals. Assess responsibly.
Available Tools
11 toolsdast_scanA
Perform Dynamic Application Security Testing (DAST) against a running web application. Runs OWASP ZAP (spider + passive/active scan) and Nuclei (CVE/template detection) in parallel on the Kali machine. Supports unauthenticated and authenticated scans (HTTP Basic, Bearer token, Cookie injection, Form-based login). Generates a versioned consolidated report saved on Kali.
Inputs: target_url (required), token, password, username, +9 more.
ffuf_fuzzB
Run ffuf web fuzzer against a target URL on the remote Kali machine. Place the keyword FUZZ anywhere in the URL, headers, or body to mark the injection point. Useful for directory discovery, parameter fuzzing, and virtual host enumeration.
Inputs: url (required), data, method, threads, +3 more.
gobuster_scanB
Run Gobuster directory/file/subdomain enumeration against a target on the remote Kali machine. Discovers hidden paths, files, and virtual hosts through brute-force enumeration.
Inputs: url (required), mode, threads, wordlist, +2 more.
hydra_attackC
Run Hydra password brute-force/dictionary attack against a target service on the remote Kali machine. Supports SSH, FTP, HTTP, SMB, and many other protocols.
Inputs: target (required), service (required), port, threads, +5 more.
metasploit_execB
Execute a Metasploit Framework module non-interactively on the remote Kali machine via msfconsole. Runs a single module with provided options and exits cleanly. Only for authorized penetration testing engagements.
Inputs: module (required), options (required), payload, run_command.
nikto_scanA
Run a Nikto web server vulnerability scan against a target URL on the remote Kali machine. Detects dangerous files, outdated software, and common web server misconfigurations.
Inputs: url (required), ssl, port, extra_args.
nmap_scanB
Run an nmap port scan against a target host or network on the remote Kali machine. Use for reconnaissance: discovering open ports, running services, and OS detection.
Inputs: target (required), ports, scan_type, extra_args.
sast_scanA
Perform Static Application Security Testing (SAST) on a local code directory. Syncs code to Kali Linux via SFTP, runs Semgrep (multi-language), Bandit (Python), Gitleaks (secrets), and Graudit (language-targeted pattern matching) in parallel, then generates a versioned consolidated security report saved to the Kali machine. Uploaded source code is deleted after scanning.
Inputs: local_path (required), project_name (required), tools, exclude_patterns.
shell_execA
Execute an arbitrary shell command on the remote Kali Linux machine. WARNING: This is an escape hatch for advanced scenarios — prefer specific tools. Only use for commands not covered by dedicated tools.
Inputs: command (required), timeout_ms.
sqlmap_scanC
Run sqlmap SQL injection testing against a target URL on the remote Kali machine. Detects and exploits SQL injection vulnerabilities in web applications.
Inputs: url (required), data, dbms, dump, +2 more.
whatweb_fingerprintB
Run WhatWeb web technology fingerprinting against a target URL on the remote Kali machine. Identifies web technologies, CMS, frameworks, server software, and plugin versions.
Inputs: url (required), aggression.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Most tools have clearly distinct purposes tied to specific security tools or scan types. However, gobuster_scan and ffuf_fuzz overlap in web content/vhost enumeration, and dast_scan partially overlaps with nikto_scan and sqlmap_scan for web vulnerability detection. shell_exec is generic but explicitly framed as an escape hatch.
All tool names use consistent snake_case and follow a predictable tool/object + action pattern (e.g., nmap_scan, sqlmap_scan, hydra_attack, metasploit_exec). The differing action suffixes reflect actual function without breaking the naming convention.
Eleven tools is well-scoped for a remote Kali penetration-testing bridge. Each tool covers a meaningful stage or capability, and the set avoids being either thin or bloated.
The set covers reconnaissance, scanning, enumeration, fingerprinting, brute force, exploitation, SAST, DAST, and a generic shell escape. Minor gaps remain for dedicated post-exploitation, pivoting, credential cracking, or report retrieval, though metasploit_exec and shell_exec allow workarounds.
Maintenance
Related MCP Connectors
AI pentesting: run scans, triage vulnerabilities, review PRs, manage schedules and assets.
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Security scanner for AI agents and MCP servers: injection, jailbreak, tool abuse.
34 security tools for AI agents: phishing links, exposure maps, DNS, SSL, PQC, history, pivots.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to execute penetration testing commands and security tools on Kali Linux remotely. Supports automated reconnaissance, vulnerability scanning, and CTF solving through integration with 25+ offensive security tools like nmap, gobuster, and nuclei.16-
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to a Kali Linux terminal for executing security tools, managing interactive shell sessions, and performing penetration testing, CTF challenges, and security research tasks.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to perform penetration testing and security assessments by exposing 60+ Kali Linux security tools including network scanning, web security testing, password cracking, exploitation frameworks, and OSINT capabilities through an AI-friendly interface.2MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to run Kali Linux security tools in an isolated Docker container for tasks like network scanning, port checking, and service enumeration.79 npm1MIT