ThreatFox
liveSecurityabuse.ch IOC feed — IPs, domains, URLs, hashes tied to malware families and campaigns.
Tools
search_iocrequired: indicatorLook up a specific indicator of compromise (IP, domain, URL, hash, etc.). Returns matching IOCs with malware family, confidence, threat-type, first/last seen, tags, references.
indicatorreqstringIP/domain/URL/hashexact_matchoptbooleanDefault trueTry it
recent_iocsIOCs added to ThreatFox in the last N days. Useful for daily threat-intel ingestion.
daysoptnumber1-7Try it
search_hashrequired: hashEverything ThreatFox knows about one file hash (md5 / sha1 / sha256), across BOTH relations it stores hashes in —
hashreqstringmd5/sha1/sha256Try it
search_malwarerequired: malwareIOCs tagged to a malware family (e.g., "Cobalt Strike", "Emotet", "QakBot").
malwarereqstringFamily namelimitoptnumberMax recordsTry it
Test with curl
The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.
curl -X POST https://gateway.pipeworx.io/threatfox/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'curl -X POST https://gateway.pipeworx.io/threatfox/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_ioc","arguments":{"indicator": "example"}}}'Use with the SDK
Install @pipeworx/sdk to call tools from any TypeScript/Node project.
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("search_ioc", {"indicator":"example"});// Or ask in plain English:
const answer = await px.ask("abuse");