Sec Amass MCP
MCP server for OWASP Amass - Subdomain enumeration and attack surface mapping
Ask AI about Sec Amass MCP
Powered by Claude · Grounded in docs
I know everything about Sec Amass MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
sec-amass-mcp
A Model Context Protocol (MCP) server for OWASP Amass - the premier open-source tool for subdomain enumeration and attack surface mapping. This server enables AI assistants to perform comprehensive reconnaissance and asset discovery via natural language.
Overview
This MCP server provides a bridge between AI assistants and OWASP Amass, executing commands via SSH on a remote Kali Linux system. It exposes all major Amass capabilities including subdomain enumeration, intelligence gathering, change tracking, and visualization generation.
Key Features
- Subdomain Enumeration - Passive (OSINT), active (DNS), and brute-force discovery
- Intelligence Gathering - Reverse WHOIS, ASN lookup, CIDR investigation
- Attack Surface Tracking - Monitor infrastructure changes over time
- Graph Database - Query and manage discovered assets
- Visualization Export - D3.js, Vis.js, Maltego, GEXF formats
- Configurable Data Sources - Support for 50+ OSINT APIs
Prerequisites
1. Kali Linux with Amass
Amass must be installed on a Kali Linux system:
# Option 1: Package manager
sudo apt update && sudo apt install amass
# Option 2: Go install (latest version)
go install -v github.com/owasp-amass/amass/v4/...@master
2. SSH Access Configuration
Key-based SSH authentication to your Kali system is required. Configure a host alias in ~/.ssh/config:
Host kali
HostName 192.168.1.100
Port 22
User your-username
IdentityFile ~/.ssh/id_ed25519
Test connectivity:
ssh kali amass -version
3. Optional: Sudoers Configuration
If Amass requires elevated privileges on your Kali system:
echo "your-username ALL=(ALL) NOPASSWD: /usr/bin/amass" | sudo tee /etc/sudoers.d/amass
Installation
git clone https://github.com/schwarztim/sec-amass-mcp.git
cd sec-amass-mcp
npm install
npm run build
Configuration
Environment Variables
| Variable | Default | Description |
|---|---|---|
AMASS_SSH_HOST | kali | SSH host alias for Kali system |
AMASS_TIMEOUT | 600000 | Command timeout in milliseconds (10 min default) |
Claude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"amass": {
"command": "node",
"args": ["/path/to/sec-amass-mcp/dist/index.js"],
"env": {
"AMASS_SSH_HOST": "kali",
"AMASS_TIMEOUT": "600000"
}
}
}
}
Amass Configuration (Optional)
For enhanced results, configure API keys in ~/.config/amass/config.yaml on your Kali system:
scope:
domains:
- example.com
options:
resolvers:
- 8.8.8.8
- 1.1.1.1
data_sources:
- name: SecurityTrails
credentials:
apikey: your-api-key
- name: Shodan
credentials:
apikey: your-api-key
Available Tools
amass_enum
Perform DNS enumeration and subdomain discovery.
Parameters:
domain(required) - Target domain to enumeratepassive- OSINT-only mode (no DNS queries, stealthier)active- Enable DNS resolution validationbrute- Enable brute-force subdomain discoverywordlist- Custom wordlist path for brute-forcerecursive- Recursively brute-force discovered subdomainsjson- Output results in JSON formatsrc- Show data source for each resultip- Include IP addresses in outputasn- Filter by ASN numberscidr- Filter by CIDR rangestimeout- Custom timeout in milliseconds
amass_intel
Gather intelligence about an organization's attack surface.
Parameters:
domain- Target domain for investigationorg- Organization name for reverse WHOIS lookupasn- ASN numbers to investigateip- IP address to investigatecidr- CIDR ranges to investigatewhois- Enable reverse WHOIS lookupsactive- Enable active intelligence gathering
amass_track
Track attack surface changes over time.
Parameters:
domain(required) - Target domain to tracklast- Compare against last N enumerationssince- Compare since date (format: 2006-01-02)history- Show full enumeration history
amass_db
Query and manage the Amass graph database.
Parameters:
domain- Filter by domainnames- Show discovered subdomain namesip- Show discovered IP addressesasn- Show ASN informationcidr- Show CIDR rangessummary- Show summary statisticslist- List available enumerations
amass_viz
Generate visualizations from enumeration data.
Parameters:
domain- Filter by domaind3- Output path for D3.js HTML visualizationvisjs- Output path for Vis.js HTML visualizationmaltego- Output path for Maltego CSVgexf- Output path for GEXF graph format
amass_brute
Dedicated brute-force subdomain discovery.
Parameters:
domain(required) - Target domainwordlist(required) - Path to wordlist filerecursive- Recursively brute-force discoveriesmin_for_recursive- Minimum subdomains before recursion
amass_config
Check Amass configuration and available data sources.
Parameters:
check- Validate configuration filelist_sources- List all available data sources
amass_version
Get the installed Amass version.
Usage Examples
Passive Enumeration (Stealthy)
{
"tool": "amass_enum",
"arguments": {
"domain": "example.com",
"passive": true,
"src": true
}
}
Active Enumeration with IP Resolution
{
"tool": "amass_enum",
"arguments": {
"domain": "example.com",
"active": true,
"ip": true,
"json": true
}
}
Comprehensive Brute-Force
{
"tool": "amass_enum",
"arguments": {
"domain": "example.com",
"brute": true,
"recursive": true,
"wordlist": "/usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt"
}
}
Organization Intelligence
{
"tool": "amass_intel",
"arguments": {
"org": "Example Corporation",
"whois": true
}
}
Track Infrastructure Changes
{
"tool": "amass_track",
"arguments": {
"domain": "example.com",
"last": 5
}
}
Generate D3 Visualization
{
"tool": "amass_viz",
"arguments": {
"domain": "example.com",
"d3": "/tmp/example-graph.html"
}
}
Security Considerations
- This tool is designed for authorized security testing only
- Always obtain proper authorization before scanning any domain
- Passive mode (
-passive) minimizes detection risk - Active and brute-force modes generate significant DNS traffic
- Configure rate limiting via Amass config to avoid detection
Troubleshooting
SSH Connection Issues
# Test SSH connectivity
ssh kali echo "Connection successful"
# Test Amass availability
ssh kali amass -version
Timeout Errors
For large scopes, increase the timeout:
{
"arguments": {
"domain": "example.com",
"timeout": 1800000
}
}
No Results
- Check if DNS resolvers are accessible from Kali
- Verify API keys are configured correctly
- Try passive mode first to test OSINT sources
References
License
MIT License - see LICENSE for details.
Disclaimer
This tool is provided for educational and authorized security testing purposes only. Users are responsible for ensuring they have proper authorization before scanning any systems or networks. Unauthorized scanning may violate laws and regulations.
