
Pentester Mcp Security Tools
- 1 installs
- 10 repo stars
- Updated August 4, 2026
- aradotso/security-skills
Pentester-MCP is a Claude skill for an MCP server that gives AI assistants access to 200+ penetration-testing tools inside a Docker sandbox.
About
Pentester-MCP is a Model Context Protocol server that lets AI assistants run 200+ open-source penetration-testing tools like nmap, sqlmap, ffuf, and impacket. A developer runs it inside a Docker sandbox so an agent such as Claude Desktop or Cursor can execute security tools autonomously with timeout enforcement and output truncation. Each tool is wrapped with AI-optimized documentation and safe argument handling to prevent shell injection.
- MCP server exposing 200+ penetration-testing tools
- Runs tools inside a Docker sandbox with safe argument handling
- Config-toggle each tool for Claude Desktop or Cursor
Pentester Mcp Security Tools by the numbers
- 1 all-time installs (skills.sh)
- Ranked #1,835 of 2,203 Security skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
pentester-mcp-security-tools capabilities & compatibility
Free and self-hosted; no API keys, runs via local Docker or a Kali/Parrot host.
- Capabilities
- security audit · vulnerability scanning · reconnaissance · orchestration
- Works with
- docker
- Use cases
- security audit · orchestration
- Platforms
- Linux · macOS
- Runs
- Runs locally
- Pricing
- Free
What pentester-mcp-security-tools says it does
Pentester-MCP provides Model Context Protocol (MCP) integration for 200+ open-source penetration testing and cybersecurity tools.
Each tool is wrapped as an MCP server with AI-optimized documentation, safe argument handling, timeout enforcement, and output truncation to prevent shell injection and system pollution.
npx skills add https://github.com/aradotso/security-skills --skill pentester-mcp-security-toolsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1 |
|---|---|
| repo stars | ★ 10 |
| Last updated | August 4, 2026 |
| Repository | aradotso/security-skills ↗ |
What it does
Let an AI assistant run 200+ pentest tools through MCP inside a Docker sandbox against a target.
Who is it for?
Security engineers who want AI agents to run many pentest tools safely and autonomously.
Skip if: Users without Docker or authorization to test the targets.
When should I use this skill?
You want an AI assistant to execute nmap, sqlmap, ffuf, or other security tools via MCP.
What you get
200+ tools run in a sandbox with safe args, timeouts, and truncated output over MCP.
By the numbers
- 200+ integrated tools
- Config toggles tools true/false in example-config.yaml
Files
Pentester-MCP Security Tools
Skill by ara.so — Security Skills collection.
Pentester-MCP provides Model Context Protocol (MCP) integration for 200+ open-source penetration testing and cybersecurity tools. It enables AI assistants (Claude Desktop, Cursor, etc.) to autonomously execute security tools like nmap, sqlmap, ffuf, gobuster, nuclei, impacket, and hundreds more within a secure Docker sandbox.
Each tool is wrapped as an MCP server with AI-optimized documentation, safe argument handling, timeout enforcement, and output truncation to prevent shell injection and system pollution.
Installation
Docker Sandbox (Recommended)
The Docker approach isolates all 200+ tools in a container, avoiding host system pollution:
# Clone repository
git clone https://github.com/halilkirazkaya/pentester-mcp.git
cd pentester-mcp
# Configure desired tools in configs/example-config.yaml
# Set tools to true/false based on your needs
# Build and start container
docker compose up -d --build
# Verify container is running
docker ps | grep pentester-mcpLocal Execution (Advanced)
For Kali Linux, Parrot OS, or systems with tools pre-installed:
# Clone and setup
git clone https://github.com/halilkirazkaya/pentester-mcp.git
cd pentester-mcp
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txtConfiguration
Tool Selection
Edit configs/example-config.yaml to enable/disable tools:
# Reconnaissance Tools
nmap: true
masscan: true
amass: true
subfinder: true
nuclei: true
# Web Exploitation
sqlmap: true
ffuf: true
gobuster: true
nikto: true
dirsearch: true
# Network & AD
impacket: true
responder: true
evil_winrm: true
bloodhound: false
# Password Tools
hydra: true
john: true
hashcat: falseMCP Client Configuration
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"pentester_mcp": {
"command": "docker",
"args": [
"exec",
"-i",
"pentester-mcp",
"/app/.venv/bin/python",
"/app/server.py"
]
}
}
}Cursor
Add to Cursor's MCP settings:
{
"mcpServers": {
"pentester_mcp": {
"command": "docker",
"args": [
"exec",
"-i",
"pentester-mcp",
"/app/.venv/bin/python",
"/app/server.py"
]
}
}
}Local Execution Configuration
For host-based execution, modify the configuration:
{
"mcpServers": {
"pentester_mcp": {
"command": "/path/to/pentester-mcp/.venv/bin/python",
"args": ["/path/to/pentester-mcp/server.py"]
}
}
}Tool Categories & Examples
Reconnaissance
Nmap - Network scanning and port enumeration:
# tools/nmap_mcp.py structure (auto-generated)
import subprocess
from typing import Optional
def run_nmap(
target: str,
flags: str = "-sV -sC",
timeout: int = 300
) -> dict:
"""
Execute nmap scan against target.
Args:
target: IP or hostname to scan
flags: Nmap flags (e.g., -sV -sC -p-)
timeout: Maximum execution time in seconds
"""
cmd = ["nmap"] + flags.split() + [target]
result = subprocess.run(
cmd,
capture_output=True,
text=True,
timeout=timeout
)
return {
"stdout": result.stdout[:8000], # Truncated
"stderr": result.stderr[:8000],
"returncode": result.returncode
}Usage via AI:
- "Scan 192.168.1.1 with nmap using default scripts"
- "Run aggressive nmap scan on target.com"
Web Exploitation
SQLMap - Automated SQL injection testing:
# tools/sqlmap_mcp.py
def run_sqlmap(
url: str,
flags: str = "--batch --random-agent",
timeout: int = 600
) -> dict:
"""
Execute SQLMap against URL.
Args:
url: Target URL with parameter
flags: SQLMap options
timeout: Max execution time
"""
cmd = ["sqlmap", "-u", url] + flags.split()
# Safe execution without shell=True
result = subprocess.run(cmd, capture_output=True, text=True, timeout=timeout)
return {"output": result.stdout[:8000]}FFUF - Web fuzzing:
# tools/ffuf_mcp.py
def run_ffuf(
url: str,
wordlist: str,
flags: str = "-c -v",
timeout: int = 300
) -> dict:
"""
Execute ffuf directory/file fuzzer.
Args:
url: Target URL with FUZZ keyword
wordlist: Path to wordlist file
flags: Additional ffuf options
"""
cmd = ["ffuf", "-u", url, "-w", wordlist] + flags.split()
result = subprocess.run(cmd, capture_output=True, text=True, timeout=timeout)
return {"output": result.stdout[:8000]}Active Directory & Network
Impacket Suite - AD exploitation tools:
# tools/impacket_secretsdump_mcp.py
def run_secretsdump(
target: str,
username: str,
password: Optional[str] = None,
hashes: Optional[str] = None,
timeout: int = 300
) -> dict:
"""
Extract credentials from domain controller.
Args:
target: DC IP or hostname
username: Domain username
password: Password (or use hashes)
hashes: LM:NTLM hash format
"""
cmd = ["secretsdump.py"]
if hashes:
cmd.extend(["-hashes", hashes])
cmd.append(f"{username}@{target}")
# Execute with proper error handling
result = subprocess.run(cmd, capture_output=True, text=True, timeout=timeout)
return {"credentials": result.stdout[:8000]}Password Cracking
Hydra - Brute force authentication:
# tools/hydra_mcp.py
def run_hydra(
target: str,
service: str,
username: str,
wordlist: str,
flags: str = "-t 4",
timeout: int = 600
) -> dict:
"""
Brute force login credentials.
Args:
target: Target IP/hostname
service: Service (ssh, ftp, http-post-form, etc.)
username: Username to test
wordlist: Password list path
flags: Additional options
"""
cmd = ["hydra", "-l", username, "-P", wordlist] + flags.split() + [target, service]
result = subprocess.run(cmd, capture_output=True, text=True, timeout=timeout)
return {"results": result.stdout[:8000]}Common Patterns
AI-Driven Recon Workflow
When an AI assistant has Pentester-MCP configured, it can autonomously chain tools:
1. Initial Scan: "Scan example.com for open ports"
- AI executes:
nmap -sV -sC example.com
2. Web Discovery: AI detects port 80/443 open
- Auto-executes:
ffuf -u https://example.com/FUZZ -w /wordlists/common.txt
3. Vulnerability Testing: AI finds /admin directory
- Auto-executes:
sqlmap -u https://example.com/admin?id=1 --batch
Environment Variables for Credentials
Never hardcode secrets. Use environment variables:
# Set credentials in container
docker exec pentester-mcp sh -c 'export TARGET_USER=$TARGET_USER'
# Reference in AI queries
# "Use credentials from $TARGET_USER and $TARGET_PASS environment variables"Custom Tool Configurations
Create custom config files for specific engagements:
# configs/web-pentest.yaml
nmap: true
ffuf: true
gobuster: true
sqlmap: true
nikto: true
nuclei: true
# Disable AD tools
impacket: false
bloodhound: false
responder: falseUpdate docker-compose.yml to use custom config:
services:
pentester-mcp:
volumes:
- ./configs/web-pentest.yaml:/app/config.yamlUnified Server Architecture
Instead of registering 235 individual MCP servers, Pentester-MCP uses a single unified server (server.py) that dynamically loads enabled tools:
# server.py (simplified structure)
from fastmcp import FastMCP
import importlib
import yaml
mcp = FastMCP("Pentester MCP")
# Load configuration
with open("config.yaml") as f:
config = yaml.safe_load(f)
# Dynamically register enabled tools
for tool_name, enabled in config.items():
if enabled:
module = importlib.import_module(f"tools.{tool_name}_mcp")
mcp.tool(module.run_tool)
# Start server
if __name__ == "__main__":
mcp.run()Troubleshooting
Container Not Running
# Check container status
docker ps -a | grep pentester-mcp
# View logs
docker logs pentester-mcp
# Restart container
docker compose down
docker compose up -d --buildTool Not Found Errors
If AI reports tool not found:
1. Verify tool is enabled in configs/example-config.yaml 2. Rebuild container: docker compose up -d --build 3. Check tool binary exists in container: docker exec pentester-mcp which nmap
Timeout Issues
For long-running scans, increase timeout in tool invocation:
# Most tools accept timeout parameter
run_nmap(target="10.0.0.0/24", flags="-p-", timeout=1800) # 30 minutesOutput Truncation
All tools truncate output to 8000 characters to prevent context overflow. For full output:
# Execute directly in container for full output
docker exec -it pentester-mcp nmap -p- target.com > full_output.txtPermission Denied (Local Execution)
When running locally, some tools require root:
# Run with sudo
sudo /path/to/.venv/bin/python server.py
# Or add user to sudoers for specific tools
echo "$USER ALL=(ALL) NOPASSWD: /usr/bin/nmap" | sudo tee /etc/sudoers.d/pentesterLegal & Ethical Use
CRITICAL: Only use these tools on systems you own or have explicit written authorization to test. Unauthorized penetration testing is illegal. This project is for:
- Authorized security assessments
- Bug bounty programs with scope
- Educational lab environments
- Your own infrastructure testing
Always obtain proper authorization before running any security tools.
Related skills
FAQ
How many tools are exposed?
200+ open-source penetration-testing and cybersecurity tools, each wrapped as an MCP server.
How is it kept safe?
Tools run in a Docker sandbox with safe argument handling, timeout enforcement, and output truncation.