You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Enterprise-grade MCP server for offensive security tools
Built in Go with zero external dependencies. Multi-transport (stdio/SSE/WebSocket), tool chaining,
structured parsing, report generation, plugin system, rate limiting, caching, and audit logging.
go install github.com/yasindce1998/redhands/cmd/redhands@latest
Drop JSON files in REDHANDS_PLUGINS_DIR (default ./plugins/) and they appear in tools/list automatically.
Configuration
All settings via environment variables:
Variable
Default
Description
REDHANDS_TOOLSETS
(all)
Comma-separated toolsets to enable
REDHANDS_TIMEOUT
5m
Execution timeout per tool call
REDHANDS_MAX_OUTPUT
10485760
Max output bytes per execution (10MB)
REDHANDS_RATE_LIMIT
10
Token bucket refill rate (requests/sec)
REDHANDS_RATE_BURST
20
Token bucket burst capacity
REDHANDS_CACHE_TTL
5m
Result cache TTL
REDHANDS_CACHE_SIZE
100
Max cached results (LRU eviction)
REDHANDS_AUDIT_FILE
audit.jsonl
Audit log file path
REDHANDS_TRANSPORT
stdio
Transport mode: stdio, sse, or ws
REDHANDS_SSE_ADDR
:8080
SSE HTTP listen address
REDHANDS_WS_ADDR
:8081
WebSocket listen address
REDHANDS_AUTH
none
Auth mode: none, apikey, or mtls
REDHANDS_API_KEY
—
API key (required when auth=apikey)
REDHANDS_TLS_CERT
—
TLS certificate path
REDHANDS_TLS_KEY
—
TLS private key path
REDHANDS_TLS_CA
—
CA certificate for mTLS client verification
REDHANDS_PLUGINS_DIR
./plugins
Directory for JSON plugin definitions
Toolset Filtering
Enable only specific toolsets:
# AD/internal assessmentexport REDHANDS_TOOLSETS=nmap,impacket,crackmapexec,certipy,sliver,crack
# External web assessmentexport REDHANDS_TOOLSETS=nmap,recon,web,fuzz,scan,vuln
# Network analysisexport REDHANDS_TOOLSETS=nmap,scan,tshark,tunnel
# All tools (default when unset)export REDHANDS_TOOLSETS=
Security
Binary allowlist — only known security tools can be executed
Shell metacharacter rejection on all inputs
Target validation — strict format checks for IPs, domains, URLs
Output size cap — 10MB per execution
Execution timeout — configurable per tool call
Rate limiting — token bucket prevents abuse
Authentication — API key or mTLS for remote transports
Full audit trail — every tool invocation logged as JSONL
Development
make build # Build binary to bin/
make test# Run tests with race detector
make lint # Run golangci-lint
make docker # Build Docker image
make install # Install binary to /usr/local/bin
make install-tools # Install security tools (PROFILE=minimal|web|network|ad|all)
make check-deps # Check which tools are available
Docker
# Build and run
docker build -t redhands .
docker run -i redhands
# With Docker Compose (SSE mode)
docker compose up
# With authentication
REDHANDS_API_KEY=mysecret docker compose --profile secure up
The Docker image includes all supported security tools pre-installed:
Go tools: subfinder, httpx, nuclei, ffuf, katana, gobuster, gau
Releases: chisel, ligolo-ng, kubedagger
License
MIT
Disclaimer
RedHands is provided for authorized security testing, education, and research purposes only. You are solely responsible for ensuring you have explicit, written permission before using this tool against any system, network, or application. Unauthorized access to computer systems is illegal and punishable under applicable law including the Computer Fraud and Abuse Act (CFAA), Computer Misuse Act, and equivalent legislation worldwide.
The authors and contributors of RedHands accept no liability for misuse or damage caused by this software. Use responsibly and ethically.
About
RedHands is an MCP (Model Context Protocol) server that exposes offensive security tools to AI agents.