| name | mcp-security-hub |
| description | Use FuzzingLabs MCP Security Hub to integrate offensive security tools (Nmap, Nuclei, SQLMap, Ghidra, etc.) with AI assistants via Docker-based MCP servers |
| triggers | ["scan a network for vulnerabilities","analyze this binary with radare2","check for SQL injection vulnerabilities","find secrets in this git repository","fingerprint web technologies on this domain","perform security reconnaissance","audit cloud infrastructure for misconfigurations","fuzz this network protocol"] |
MCP Security Hub
Skill by ara.so — MCP Skills collection
Overview
MCP Security Hub is a collection of 38 production-ready, Dockerized MCP (Model Context Protocol) servers that bring offensive security tools to AI assistants. It enables Claude and other MCP clients to perform security assessments, vulnerability scanning, binary analysis, and penetration testing through natural language interactions.
Key capabilities:
- 300+ security tools across 13 categories (reconnaissance, web security, binary analysis, blockchain, cloud, OSINT, etc.)
- Docker-based architecture with security hardening (non-root, capability dropping, read-only mounts)
- Natural language interface to complex security tools
- Multi-tool orchestration via Docker Compose
- CI/CD-ready with automated builds and Trivy scanning
Installation
Prerequisites
- Docker and Docker Compose installed
- Claude Desktop or another MCP client
- Git for cloning the repository
Setup Steps
- Clone the repository:
git clone https://github.com/FuzzingLabs/mcp-security-hub
cd mcp-security-hub
- Build all MCP servers:
docker-compose build
Or build specific servers:
docker-compose build nmap-mcp nuclei-mcp sqlmap-mcp
- Configure Claude Desktop:
Edit your Claude Desktop config file:
- 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"]
},
"sqlmap": {
"command": "docker",
"args": ["run", "-i"
- Restart Claude Desktop to load the new MCP servers.
Key MCP Servers by Category
Reconnaissance
nmap-mcp - Port scanning and service detection:
docker-compose up nmap-mcp -d
whatweb-mcp - Web technology fingerprinting:
docker-compose up whatweb-mcp -d
masscan-mcp - High-speed port scanning:
docker-compose up masscan-mcp -d
Web Security
nuclei-mcp - Template-based vulnerability scanning:
docker-compose up nuclei-mcp -d
sqlmap-mcp - SQL injection testing:
docker-compose up sqlmap-mcp -d
ffuf-mcp - Web fuzzing:
docker-compose up ffuf-mcp -d
Binary Analysis
radare2-mcp - Reverse engineering (requires volume mount):
docker run -i --rm -v /path/to/binaries:/samples:ro radare2-mcp:latest
binwalk-mcp - Firmware analysis:
docker-compose up binwalk-mcp -d
yara-mcp - Malware pattern matching:
docker-compose up yara-mcp -d
Secrets Detection
gitleaks-mcp - Find credentials in repos:
docker run -i --rm -v /path/to/repo:/app/target:ro gitleaks-mcp:latest
Cloud Security
trivy-mcp - Container and IaC scanning:
docker-compose up trivy-mcp -d
prowler-mcp - Cloud security auditing:
docker-compose up prowler-mcp -d
Project Structure
mcp-security-hub/
├── reconnaissance/
│ ├── nmap-mcp/
│ ├── masscan-mcp/
│ ├── whatweb-mcp/
│ └── ...
├── web-security/
│ ├── nuclei-mcp/
│ ├── sqlmap-mcp/
│ ├── ffuf-mcp/
│ └── ...
├── binary-analysis/
│ ├── radare2-mcp/
│ ├── binwalk-mcp/
│ ├── yara-mcp/
│ └── ...
├── cloud-security/
│ ├── trivy-mcp/
│ ├── prowler-mcp/
│ └── ...
├── secrets/
│ └── gitleaks-mcp/
├── docker-compose.yml
└── examples/
└── .mcp.json (full config template)
Docker Compose Orchestration
Start multiple servers simultaneously:
docker-compose up nmap-mcp whatweb-mcp masscan-mcp -d
docker-compose up nuclei-mcp sqlmap-mcp ffuf-mcp -d
docker-compose up -d
docker-compose ps
docker-compose logs -f nmap-mcp
docker-compose down
Common Usage Patterns
Network Reconnaissance Workflow
docker-compose build nmap-mcp whatweb-mcp
docker-compose up nmap-mcp whatweb-mcp -d
Claude will orchestrate:
- nmap-mcp scans for ports 80, 443, 8080
- whatweb-mcp fingerprints each discovered host
- Consolidates results into a security assessment
Web Application Assessment
docker-compose build nuclei-mcp sqlmap-mcp ffuf-mcp
docker-compose up nuclei-mcp sqlmap-mcp ffuf-mcp -d
Binary Analysis Pipeline
docker run -i --rm -v /path/to/samples:/samples:ro radare2-mcp:latest &
docker-compose up binwalk-mcp yara-mcp capa-mcp -d
Secrets Scanning in CI/CD
docker run -i --rm \
-v $(pwd):/app/target:ro \
gitleaks-mcp:latest
Configuration Examples
Volume Mounts for File Analysis
For servers that need to access files (radare2, binwalk, gitleaks):
{
"mcpServers": {
"radare2": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/home/user/malware:/samples:ro",
"radare2-mcp:latest"
]
},
"gitleaks": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/home/user/projects:/app/target:ro",
"gitleaks-mcp:latest"
]
}
}
}
Network Capabilities
For servers requiring raw socket access (nmap, masscan):
{
"mcpServers": {
"nmap": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--cap-add=NET_RAW",
"nmap-mcp:latest"
]
}
}
}
API-Based Servers
For servers requiring API keys (use environment variables):
{
"mcpServers": {
"shodan": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "SHODAN_API_KEY",
"shodan-mcp:latest"
],
"env": {
"SHODAN_API_KEY": "${SHODAN_API_KEY}"
}
},
"virustotal": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "VT_API_KEY",
"virustotal-mcp:latest"
Building Individual Servers
Each server can be built independently:
cd reconnaissance/nmap-mcp
docker build -t nmap-mcp:latest .
docker run -i --rm --cap-add=NET_RAW nmap-mcp:latest
cd ../..
docker-compose build nmap-mcp
docker-compose run --rm nmap-mcp
Security Hardening Features
All containers implement:
- Non-root execution: Runs as
mcpuser (UID 1000)
- Capability dropping:
cap_drop: ALL with selective adds
- Read-only mounts: Sample directories are
:ro
- No new privileges:
security_opt: no-new-privileges:true
- Resource limits: CPU and memory constraints in docker-compose
- Minimal base images: Alpine/Debian slim
- Health checks: Built-in container monitoring
- Vulnerability scanning: Trivy scans in CI/CD
Example Dockerfile pattern:
FROM python:3.11-alpine
# Create non-root user
RUN addgroup -g 1000 mcpuser && \
adduser -D -u 1000 -G mcpuser mcpuser
# Install tool
RUN apk add --no-cache nmap nmap-scripts
# Switch to non-root
USER mcpuser
WORKDIR /app
# Copy MCP server
COPY --chown=mcpuser:mcpuser server.py .
CMD ["python", "server.py"]
Troubleshooting
MCP Server Not Appearing in Claude
-
Verify build completed:
docker images | grep mcp
-
Check Claude config syntax:
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json | python -m json.tool
-
Restart Claude Desktop completely (Quit, not just close window)
-
Check Docker daemon is running:
docker ps
Permission Denied Errors
For network scanning tools (nmap, masscan), add NET_RAW capability:
{
"command": "docker",
"args": ["run", "-i", "--rm", "--cap-add=NET_RAW", "nmap-mcp:latest"]
}
Volume Mount Issues
Ensure paths exist and use absolute paths:
{
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "/absolute/path/to/files:/samples:ro",
"radare2-mcp:latest"
]
}
Container Fails to Start
Check logs:
docker-compose logs nmap-mcp
docker logs $(docker ps -aq --filter name=nmap-mcp)
Verify health:
docker-compose ps
docker inspect nmap-mcp:latest
API Key Not Working
For API-based servers, ensure environment variables are exported:
export SHODAN_API_KEY="your-key-here"
export VT_API_KEY="your-key-here"
open -a "Claude"
Or set in Claude config:
{
"mcpServers": {
"shodan": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "SHODAN_API_KEY", "shodan-mcp:latest"],
"env": {
"SHODAN_API_KEY": "${SHODAN_API_KEY}"
}
}
}
}
Build Failures
Update Docker Compose schema version if needed:
version: '3.8'
Clean build cache:
docker-compose build --no-cache nmap-mcp
docker system prune -a
MCP Protocol Errors
Ensure MCP client (Claude Desktop) is up to date. The servers implement the Model Context Protocol specification and require compatible clients.
Advanced Usage
Custom MCP Server Development
Follow the project's structure to add new security tools:
new-category/
└── newtool-mcp/
├── Dockerfile
├── server.py
├── requirements.txt
└── README.md
Example server.py structure:
import json
import subprocess
import sys
def handle_request(request):
"""Handle MCP protocol requests"""
method = request.get("method")
params = request.get("params", {})
if method == "tools/list":
return {
"tools": [
{
"name": "scan_target",
"description": "Scan target with tool",
"inputSchema": {
"type": "object",
"properties": {
"target": {"type": "string"}
},
"required": ["target"]
}
}
]
}
elif method == "tools/call":
tool_name = params.get("name")
arguments = params.get("arguments", {})
if tool_name == "scan_target":
result = subprocess.run(
["tool", "scan", arguments["target"]],
capture_output=True,
text=True,
timeout=300
)
return {"content": [{"type": "text", : result.stdout}]}
{: }
__name__ == :
line sys.stdin:
request = json.loads(line)
response = handle_request(request)
(json.dumps(response))
sys.stdout.flush()
Multi-Stage Security Assessments
Combine multiple servers in a single workflow:
User: "Perform a full security assessment of example.com"
Claude orchestrates:
1. nmap-mcp: Port scan and service detection
2. whatweb-mcp: Technology fingerprinting
3. nuclei-mcp: CVE and misconfiguration scanning
4. sqlmap-mcp: SQL injection testing on discovered forms
5. ffuf-mcp: Directory and file fuzzing
6. gitleaks-mcp: Check if .git directory exposed and scan for secrets
Results consolidated into comprehensive report.
Resources
This skill enables AI coding agents to guide developers in deploying and using the MCP Security Hub for offensive security testing through natural language interactions with Claude and other MCP clients.