| name | darknet-mcp-server-threat-intelligence |
| description | Dark web and threat intelligence MCP server with 66 tools for breach data, ransomware tracking, Tor access, malware analysis, and OSINT |
| triggers | ["check if this domain has been breached","search for ransomware activity targeting this company","analyze this malware hash across threat databases","investigate stealer logs for compromised credentials","fetch threat intelligence on this IP address","search dark web forums for this indicator","trace this bitcoin address for abuse reports","check if this URL is associated with phishing"] |
darknet-mcp-server Threat Intelligence
Skill by ara.so — MCP Skills collection.
Overview
darknet-mcp-server is a comprehensive MCP server providing 66 tools across 16 data sources for dark web and threat intelligence. It unifies breach databases (HIBP), ransomware tracking, Tor .onion access, malware analysis (Hybrid Analysis, MalwareBazaar), blockchain forensics, exploit databases (Vulners), stealer logs (Hudson Rock), and OSINT platforms into a single interface for AI agents.
Key capabilities:
- Breach intelligence: HIBP, IntelligenceX, paste searches
- Ransomware tracking: ransomware.live, ransomlook.io (12 active groups, 1000+ victims)
- Dark web access: 7 Tor tools for .onion fetching, scraping, searching
- Malware analysis: ThreatFox, MalwareBazaar, Hybrid Analysis, URLhaus
- Blockchain: Bitcoin transaction tracing, ChainAbuse reports
- IP/domain intel: AbuseIPDB, GreyNoise, AlienVault OTX, Pulsedive
- Exploit search: Vulners database
- Phishing: PhishTank, OpenPhish
Installation
npx (Zero Install)
npx darknet-mcp-server
npx darknet-mcp-server --check-tor
Local Clone
git clone https://github.com/badchars/darknet-mcp-server.git
cd darknet-mcp-server
bun install
bun run src/index.ts
MCP Client Configuration
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"darknet": {
"command": "npx",
"args": ["-y", "darknet-mcp-server"],
"env": {
"HIBP_API_KEY": "",
"INTELX_API_KEY": "",
"ABUSEIPDB_API_KEY": "",
"HUDSONROCK_API_KEY": "",
"HYBRID_API_KEY": "",
"VULNERS_API_KEY": "",
"OTX_API_KEY": "",
"PULSEDIVE_API_KEY": "",
"PHISHTANK_API_KEY": "",
"ABUSECH_AUTH_KEY": "",
"TOR_SOCKS_HOST": "127.0.0.1",
"TOR_SOCKS_PORT": "9050"
}
}
}
}
Claude Code:
claude mcp add darknet-mcp-server -- npx darknet-mcp-server
Cursor/Windsurf (.cursor/mcp.json or similar):
{
"mcpServers": {
"darknet": {
"command": "npx",
"args": ["-y", "darknet-mcp-server"]
}
}
}
Environment Variables
All API keys are optional. Many tools work without authentication:
export HIBP_API_KEY=your-key
export INTELX_API_KEY=your-key
export OTX_API_KEY=your-key
export ABUSEIPDB_API_KEY=your-key
export ABUSECH_AUTH_KEY=your-key
export PULSEDIVE_API_KEY=your-key
export HUDSONROCK_API_KEY=your-key
export VULNERS_API_KEY=your-key
export HYBRID_API_KEY=your-key
export PHISHTANK_API_KEY=your-key
export TOR_SOCKS_HOST=127.0.0.1
export TOR_SOCKS_PORT=9050
Tor Setup (Required for .onion Tools)
brew install tor
brew services start tor
sudo apt install tor
sudo systemctl start tor
sudo systemctl enable tor
docker run -d -p 9050:9050 dperson/torproxy
curl --socks5-hostname 127.0.0.1:9050 https://check.torproject.org
Tool Categories & Usage
1. Breach Intelligence (HIBP)
Tools: breachList, breachSearch, pasteSearch
await use_mcp_tool("darknet", "breachList", {
domain: "example.com"
});
await use_mcp_tool("darknet", "breachSearch", {
account: "user@example.com"
});
await use_mcp_tool("darknet", "pasteSearch", {
account: "admin@example.com"
});
Example investigation:
const domain = "target.com";
const breaches = await use_mcp_tool("darknet", "breachList", { domain });
const accountCheck = await use_mcp_tool("darknet", "breachSearch", {
account: `admin@${domain}`
});
const pastes = await use_mcp_tool("darknet", "pasteSearch", {
account: `admin@${domain}`
});
const stealerLogs = await use_mcp_tool("darknet", "stealer_domain", {
domain
});
2. Ransomware Tracking
Tools: ransomwareGroups, ransomwareRecent, ransomwareByGroup, ransomwareBySector, ransomwareByCountry, ransomlookRecent, ransomlookGroup
await use_mcp_tool("darknet", "ransomwareGroups", {});
await use_mcp_tool("darknet", "ransomwareRecent", {
days: 30
});
await use_mcp_tool("darknet", "ransomwareByGroup", {
group: "lockbit3"
});
await use_mcp_tool("darknet", "ransomwareBySector", {
sector: "healthcare"
});
await use_mcp_tool("darknet", "ransomlookRecent", {});
await use_mcp_tool("darknet", "ransomlookGroup", {
group: "lockbit3"
});
Example: Healthcare sector threat landscape
const healthcareVictims = await use_mcp_tool("darknet", "ransomwareBySector", {
sector: "healthcare"
});
const recentActivity = await use_mcp_tool("darknet", "ransomwareRecent", {
days: 90
});
const groups = new Set(healthcareVictims.map(v => v.group_name));
for (const group of groups) {
const groupVictims = await use_mcp_tool("darknet", "ransomwareByGroup", { group });
}
3. Tor & Dark Web Access
Tools: tor_fetch_onion, tor_scrape_onion, tor_search_onion, tor_check_availability, tor_exit_nodes, tor_check_exit, circl_onion_lookup
Prerequisites: Tor SOCKS5 proxy running on 127.0.0.1:9050
await use_mcp_tool("darknet", "tor_fetch_onion", {
onion_url: "http://example.onion/page.html"
});
await use_mcp_tool("darknet", "tor_scrape_onion", {
onion_url: "http://forum.onion/",
extract: ["links", "text"]
});
await use_mcp_tool("darknet", "tor_search_onion", {
onion_urls: [
"http://forum1.onion/threads",
"http://market2.onion/listings"
],
search_term: "stolen credentials"
});
await use_mcp_tool("darknet", "tor_check_availability", {
onion_url: "http://example.onion"
});
await use_mcp_tool("darknet", "tor_exit_nodes", {});
await use_mcp_tool("darknet", "tor_check_exit", {
ip: "185.220.101.1"
});
await use_mcp_tool("darknet", "circl_onion_lookup", {
onion_address: "example.onion"
});
Example: Dark web forum monitoring
const forumUrls = [
"http://darkforum1.onion/breaches",
"http://marketplace2.onion/credentials"
];
for (const url of forumUrls) {
const status = await use_mcp_tool("darknet", "tor_check_availability", {
onion_url: url
});
if (!status.available) continue;
const results = await use_mcp_tool("darknet", "tor_search_onion", {
onion_urls: [url],
search_term: "example.com database"
});
if (results.length > 0) {
for (const result of results) {
const content = await use_mcp_tool("darknet", "tor_fetch_onion", {
onion_url: result.url
});
}
}
}
4. Malware Analysis
Tools: threatfox_ioc, threatfox_malware, threatfox_tag, malwarebazaar_hash, malwarebazaar_recent, malwarebazaar_tag, urlhaus_url, urlhaus_host, urlhaus_recent, hybrid_search, hybrid_report, hybrid_submit
await use_mcp_tool("darknet", "threatfox_ioc", {
ioc: "185.220.101.1"
});
await use_mcp_tool("darknet", "threatfox_malware", {
malware: "emotet"
});
await use_mcp_tool("darknet", "threatfox_tag", {
tag: "ransomware"
});
await use_mcp_tool("darknet", "malwarebazaar_hash", {
hash: "d41d8cd98f00b204e9800998ecf8427e"
});
await use_mcp_tool("darknet", "malwarebazaar_recent", {
limit: 50
});
await use_mcp_tool("darknet", "malwarebazaar_tag", {
tag: "emotet"
});
await use_mcp_tool("darknet", "urlhaus_url", {
url: "http://malicious.example.com/payload.exe"
});
await use_mcp_tool("darknet", "urlhaus_host", {
host: "malicious.example.com"
});
await use_mcp_tool("darknet", "urlhaus_recent", {
limit: 100
});
await use_mcp_tool("darknet", "hybrid_search", {
hash: "d41d8cd98f00b204e9800998ecf8427e"
});
await use_mcp_tool("darknet", "hybrid_report", {
report_id: "64e3f2a1b4c5d6e7f8a9b0c1"
});
await use_mcp_tool("darknet", "hybrid_submit", {
file_path: "/path/to/sample.exe",
environment_id: 120
});
Example: Cross-platform malware correlation
const hash = "d41d8cd98f00b204e9800998ecf8427e";
const threatfox = await use_mcp_tool("darknet", "threatfox_ioc", { ioc: hash });
const bazaar = await use_mcp_tool("darknet", "malwarebazaar_hash", { hash });
const hybrid = await use_mcp_tool("darknet", "hybrid_search", { hash });
const malwareFamily = threatfox.malware || bazaar.signature;
const c2Servers = threatfox.ioc_type === "ip" ? [threatfox.ioc] : [];
for (const c2 of c2Servers) {
const abuse = await use_mcp_tool("darknet", "abuseipdb_check", { ip: c2 });
const otx = await use_mcp_tool("darknet", "otx_ip", { ip: c2 });
}
if (!hybrid || hybrid.length === 0) {
await use_mcp_tool("darknet", "hybrid_submit", {
file_path: "/path/to/sample",
environment_id: 120
});
}
5. Stealer Logs & Credentials (Hudson Rock)
Tools: stealer_domain, stealer_ip, stealer_cve (requires HUDSONROCK_API_KEY)
await use_mcp_tool("darknet", "stealer_domain", {
domain: "example.com"
});
await use_mcp_tool("darknet", "stealer_ip", {
ip: "192.168.1.1"
});
await use_mcp_tool("darknet", "stealer_cve", {
cve: "CVE-2023-12345"
});
Example: Credential exposure assessment
const domain = "corporate.com";
const stealerResults = await use_mcp_tool("darknet", "stealer_domain", { domain });
const uniqueUsers = new Set(stealerResults.flatMap(r =>
r.passwords.map(p => p.username)
));
const breaches = await use_mcp_tool("darknet", "breachList", { domain });
const intelx = await use_mcp_tool("darknet", "intelx_search", {
term: domain,
buckets: ["pastes", "darknet.forums"]
});
6. IP & Domain Intelligence
Tools: abuseipdb_check, abuseipdb_report, abuseipdb_blacklist, abuseipdb_bulk, greynoiseRiot, greynoiseQuick, greynoiseContext, greynoiseQuery, otx_ip, otx_domain, otx_hash, otx_url, pulsedive_indicator, pulsedive_threat
await use_mcp_tool("darknet", "abuseipdb_check", {
ip: "1.2.3.4"
});
await use_mcp_tool("darknet", "abuseipdb_report", {
ip: "1.2.3.4",
categories: [18, 22],
comment: "SSH brute force attempts from this IP"
});
await use_mcp_tool("darknet", "abuseipdb_blacklist", {
confidence_minimum: 90,
limit: 1000
});
await use_mcp_tool("darknet", "abuseipdb_bulk", {
ips: ["1.2.3.4", "5.6.7.8", "9.10.11.12"]
});
await use_mcp_tool("darknet", "greynoiseRiot", {
ip: "8.8.8.8"
});
await use_mcp_tool("darknet", "greynoiseQuick", {
ips: ["1.2.3.4", "8.8.8.8"]
});
await use_mcp_tool("darknet", "greynoiseContext", {
ip: "1.2.3.4"
});
await use_mcp_tool("darknet", "greynoiseQuery", {
query: "classification:malicious AND tags:ransomware"
});
await use_mcp_tool("darknet", "otx_ip", {
ip: "1.2.3.4"
});
await use_mcp_tool("darknet", "otx_domain", {
domain: "malicious.com"
});
await use_mcp_tool("darknet", "otx_hash", {
hash: "d41d8cd98f00b204e9800998ecf8427e"
});
await use_mcp_tool("darknet", "otx_url", {
url: "http://phishing.example.com/login"
});
await use_mcp_tool("darknet", "pulsedive_indicator", {
indicator: "1.2.3.4",
type: "ip"
});
await use_mcp_tool("darknet", "pulsedive_threat", {
threat_name: "emotet"
});
Example: Multi-source IP investigation
const ip = "185.220.101.1";
const [abuseipdb, greynoise, greynoiseContext, otx, pulsedive, torCheck] = await Promise.all([
use_mcp_tool("darknet", "abuseipdb_check", { ip }),
use_mcp_tool("darknet", "greynoiseQuick", { ips: [ip] }),
use_mcp_tool("darknet", "greynoiseContext", { ip }),
use_mcp_tool("darknet", "otx_ip", { ip }),
use_mcp_tool("darknet", "pulsedive_indicator", { indicator: ip, type: "ip" }),
use_mcp_tool("darknet", "tor_check_exit", { ip })
]);
const isMalicious = abuseipdb.abuseConfidenceScore > 75 ||
greynoiseContext.classification === "malicious" ||
pulsedive.risk === "high";
const isTor = torCheck.is_exit;
const pulseCount = otx.pulse_count;
7. Blockchain & Cryptocurrency
Tools: btc_balance, btc_transactions, btc_unspent, chainabuse_report
await use_mcp_tool("darknet", "btc_balance", {
address: "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"
});
await use_mcp_tool("darknet", "btc_transactions", {
address: "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
limit: 50
});
await use_mcp_tool("darknet", "btc_unspent", {
address: "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"
});
await use_mcp_tool("darknet", "chainabuse_report", {
address: "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"
});
Example: Ransomware payment tracking
const btcAddress = "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh";
const balance = await use_mcp_tool("darknet", "btc_balance", { address: btcAddress });
const txs = await use_mcp_tool("darknet", "btc_transactions", {
address: btcAddress,
limit: 100
});
const abuse = await use_mcp_tool("darknet", "chainabuse_report", {
address: btcAddress
});
const victimPayments = txs.filter(tx => tx.amount > 0);
const totalExtorted = victimPayments.reduce((sum, tx) => sum + tx.amount, 0);
8. Exploit Databases
Tools: vulners_search, vulners_exploit, vulners_cve (requires VULNERS_API_KEY)
await use_mcp_tool("darknet", "vulners_search", {
query: "apache struts rce"
});
await use_mcp_tool("darknet", "vulners_exploit", {
exploit_id: "EDB-ID:12345"
});
await use_mcp_tool("darknet", "vulners_cve", {
cve: "CVE-2023-12345"
});
Example: Vulnerability impact assessment
const cve = "CVE-2023-12345";
const vulnDetails = await use_mcp_tool("darknet", "vulners_cve", { cve });
const exploits = vulnDetails.exploits || [];
const stealerLogs = await use_mcp_tool("darknet", "stealer_cve", { cve });
const otx = await use_mcp_tool("darknet", "otx_cve", { cve });
9. Phishing & Malicious URLs
Tools: phishtank_check, phishtank_recent, openphish_recent
await use_mcp_tool("darknet", "phishtank_check", {
url: "http://paypal-verify.example.com/login"
});
await use_mcp_tool("darknet", "phishtank_recent", {
limit: 100
});
await use_mcp_tool("darknet", "openphish_recent", {
limit: 500
});
Example: Phishing campaign detection
const targetDomain = "example.com";
const phishtank = await use_mcp_tool("darknet", "phishtank_recent", { limit: 1000 });
const openphish = await use_mcp_tool("darknet", "openphish_recent", { limit: 1000 });
const targetedPhishing = phishtank.filter(p =>
p.target.toLowerCase().includes(targetDomain.toLowerCase()) ||
p.url.includes(targetDomain)
);
for (const phish of targetedPhishing) {
const urlhaus = await use_mcp_tool("darknet", "urlhaus_url", { url: phish.url });
}
10. IntelligenceX (Requires API Key)
Tools: intelx_search, intelx_phonebook, intelx_leaks, intelx_darknet
await use_mcp_tool("darknet", "intelx_search", {
term: "example.com",
buckets: ["darknet.forums", "pastes", "leaks", "domains"],
limit: 100
});
await use_mcp_tool("darknet", "intelx_phonebook", {
selector: "example.com",
selector_type: "domain"
});
await use_mcp_tool("darknet", "intelx_leaks", {
email: "admin@example.com"
});