Offensive Security MCP Servers

Production-ready, Dockerized MCP (Model Context Protocol) servers for offensive security tools. Enable AI assistants like Claude to perform security assessments, vulnerability scanning, and binary analysis.
<p align="center">
<img src="https://img.shields.io/badge/MCPs-38-brightgreen" alt="38 MCPs"/>
<img src="https://img.shields.io/badge/Tools-300+-orange" alt="300+ Tools"/>
<img src="https://img.shields.io/badge/Docker-Ready-blue" alt="Docker Ready"/>
</p>
Features
- 38 MCP Servers covering reconnaissance, web security, binary analysis, blockchain security, cloud security, code security, secrets detection, threat intelligence, OSINT, Active Directory, fuzzing, and more
- 300+ Security Tools accessible via natural language through Claude or other MCP clients
- Production Hardened - Non-root containers, minimal images, Trivy-scanned
- Docker Compose orchestration for multi-tool workflows
- CI/CD Ready with GitHub Actions for automated builds and security scanning
Quick Start
# Clone the repository
git clone https://github.com/FuzzingLabs/mcp-security-hub
cd mcp-security-hub
# Build all MCP servers
docker-compose build
# Start specific servers
docker-compose up nmap-mcp nuclei-mcp -d
# Verify health
docker-compose ps
Configure Claude Desktop / Claude Code
Important: You must build the images first with docker-compose build before using them.
Copy the example config to your Claude Desktop configuration:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"nmap": {
"command": "docker",
"args": ["run", "-i", "--rm", "--cap-add=NET_RAW", "nmap-mcp:latest"]
},
"nuclei": {
"command": "docker",
"args": ["run", "-i", "--rm", "nuclei-mcp:latest"]
},
"gitleaks": {
"command": "docker",
"args": ["run", "-i", "--rm", "-v", "/path/to/repos:/app/target:ro", "gitleaks-mcp:latest"]
},
"radare2": {
"command": "docker",
"args": ["run", "-i", "--rm", "-v", "/path/to/binaries:/samples:ro", "radare2-mcp:latest"]
}
}
}
For project-level config, copy .mcp.json to your project root. See examples/ for full configuration templates with all MCPs and volume mount patterns.
Available MCP Servers
Reconnaissance (8 servers)
Web Security (6 servers)
Binary Analysis (6 servers)
Blockchain Security (3 servers)
| Server | Tools | Description |
|---|
| daml-viewer-mcp | 1 | DAML access-control table generation and run tracking |
| medusa-mcp | 4 | High-performance smart contract fuzzer for Solidity |
| solazy-mcp | 8 | Solana sBPF static analysis and reverse engineering |
Cloud Security (3 servers)
Secrets Detection (1 server)
| Server | Tools | Description |
|---|
| gitleaks-mcp | 5 | Find secrets and credentials in git repos and files |
Exploitation (1 server)
Fuzzing (2 servers)
| Server | Tools | Description |
|---|
| boofuzz-mcp | 4 | Network protocol fuzzing using Boofuzz |
| dharma-mcp | 2 | Grammar-based test case generation |
OSINT (2 servers)
Threat Intelligence (2 servers)
Active Directory (1 server)
Password Cracking (1 server)
Code Security (1 server)
Meta (1 server)
| Server | Tools | Description |
|---|
| mcp-scan | - | Wrapper for mcp-scan - Scan MCP servers for vulnerabilities |
Usage Examples
Network Reconnaissance
You: "Scan 192.168.1.0/24 for web servers and identify technologies"
Claude: I'll perform a network scan and technology fingerprinting.
[Uses nmap-mcp to scan ports 80,443,8080]
[Uses whatweb-mcp to fingerprint discovered hosts]
Found 12 web servers:
- 192.168.1.10: Apache 2.4.52, WordPress 6.4
- 192.168.1.15: nginx 1.24, React application
...
Vulnerability Assessment
You: "Check example.com for common vulnerabilities"
Claude: I'll run a vulnerability scan using nuclei templates.
[Uses nuclei-mcp with cves, exposures, and misconfigurations templates]
Found 3 issues:
- HIGH: CVE-2024-1234 - Outdated jQuery version
- MEDIUM: Exposed .git directory
- INFO: Missing security headers
Binary Analysis
You: "Analyze this firmware image for security issues"
Claude: I'll extract and analyze the firmware.
[Uses binwalk-mcp to extract filesystem]
[Uses yara-mcp to scan for malware patterns]
[Uses capa-mcp to identify capabilities]
Analysis complete:
- Extracted 847 files from SquashFS filesystem
- Found hardcoded credentials in /etc/shadow
- Identified network backdoor capability
Security Hardening
All containers implement defense-in-depth:
| Control | Implementation |
|---|
| Non-root execution | Runs as mcpuser (UID 1000) |
| Minimal images | Alpine/Debian slim base images |
| Dropped capabilities | cap_drop: ALL, selective cap_add |
| No privilege escalation | security_opt: no-new-privileges:true |
| Read-only mounts | Sample directories mounted read-only |
| Resource limits | CPU and memory constraints |
| Health checks | Built-in container health monitoring |
| Vulnerability scanning | Trivy scans in CI/CD pipeline |
Project Structure
mcp-security-hub/
āāā reconnaissance/
ā āāā nmap-mcp/ # Port scanning
ā āāā shodan-mcp/ # Internet device search (wrapper)
ā āāā pd-tools-mcp/ # ProjectDiscovery tools (wrapper)
ā āāā whatweb-mcp/ # Web fingerprinting
ā āāā masscan-mcp/ # High-speed scanning
ā āāā zoomeye-mcp/ # Cyberspace search (wrapper)
ā āāā networksdb-mcp/ # IP/ASN/DNS lookups
ā āāā externalattacker-mcp/ # Attack surface mapping
āāā web-security/
ā āāā nuclei-mcp/ # Vulnerability scanning
ā āāā sqlmap-mcp/ # SQL injection
ā āāā nikto-mcp/ # Web server scanning (wrapper)
ā āāā ffuf-mcp/ # Web fuzzing
ā āāā burp-mcp/ # Burp Suite (wrapper)
āāā binary-analysis/
ā āāā radare2-mcp/ # Reverse engineering (wrapper)
ā āāā binwalk-mcp/ # Firmware analysis
ā āāā yara-mcp/ # Malware detection
ā āāā capa-mcp/ # Capability detection
ā āāā ghidra-mcp/ # Ghidra RE - pyghidra-mcp (headless)
ā āāā ida-mcp/ # IDA Pro (wrapper)
āāā blockchain/
ā āāā daml-viewer-mcp/ # DAML access-control analysis
ā āāā medusa-mcp/ # Smart contract fuzzing
ā āāā solazy-mcp/ # Solana analysis
āāā cloud-security/
ā āāā trivy-mcp/ # Container scanning (wrapper)
ā āāā prowler-mcp/ # Cloud auditing
ā āāā roadrecon-mcp/ # Azure AD enumeration
āāā code-security/
ā āāā semgrep-mcp/ # Static code analysis (wrapper)
āāā secrets/
ā āāā gitleaks-mcp/ # Secrets detection
āāā exploitation/
ā āāā searchsploit-mcp/ # Exploit database
āāā fuzzing/
ā āāā boofuzz-mcp/ # Network protocol fuzzing using Boofuzz
ā āāā dharma-mcp/ # Grammar-based test case generation
āāā osint/
ā āāā maigret-mcp/ # Username OSINT (wrapper)
ā āāā dnstwist-mcp/ # Typosquatting detection (wrapper)
āāā threat-intel/
ā āāā virustotal-mcp/ # Malware analysis (wrapper)
ā āāā otx-mcp/ # AlienVault OTX (wrapper)
āāā active-directory/
ā āāā bloodhound-mcp/ # AD attack paths (wrapper)
āāā password-cracking/
ā āāā hashcat-mcp/ # Hash cracking (wrapper)
āāā meta/
ā āāā mcp-scan/ # MCP security scanning
āāā scripts/
ā āāā setup.sh # Quick setup
ā āāā healthcheck.sh # Health verification
āāā tests/
ā āāā test_mcp_servers.py # Unit tests
āāā docker-compose.yml # Orchestration
āāā .github/workflows/ # CI/CD
Testing
# Run unit tests
pytest tests/ -v
# Build and test all Docker images
./scripts/test_builds.sh
# Test MCP protocol (after building)
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | \
docker run -i --rm nmap-mcp:latest
Legal & Compliance
These tools are for authorized security testing only.
Before using:
- Obtain written authorization from the target owner
- Define scope - targets, timeline, allowed activities
- Maintain audit logs of all operations
- Follow responsible disclosure for any findings
Unauthorized access to computer systems is illegal. Users are responsible for compliance with applicable laws.
Contributing
Contributions welcome! To add a new MCP server:
- Use
Dockerfile.template as your starting point
- Follow security hardening practices (non-root, minimal image)
- Include health checks and comprehensive README
- Ensure Trivy scan passes (no HIGH/CRITICAL vulnerabilities)
- Add tests to
tests/test_mcp_servers.py
Acknowledgments
License
MIT License - See LICENSE
<p align="center">
<strong>Maintained by <a href="https://fuzzinglabs.com">FuzzingLabs</a></strong>
<br>
<sub>Making AI-powered security testing accessible</sub>
</p>