{
  "markdown": "# phishunt-mcp\n\n**Model Context Protocol (MCP) server for [phishunt.io](https://phishunt.io).**\n\nExposes the public phishing-domains feed as MCP tools so AI agents can look up\nsuspicious domains, list phishings by targeted brand, and sync detection deltas.\n\n- **Endpoint**: `https://mcp.phishunt.io/` (HTTP JSON-RPC 2.0, POST)\n- **Protocol version**: 2025-11-25\n- **Auth**: none (data is CC0)\n- **License (data)**: CC0-1.0 · **License (code)**: MIT\n\n## Tools\n\n| Name | Purpose |\n|---|---|\n| `check_domain` | Is this host (or a list of up to 20) in the active phishunt feed? Exact match; misses are checked against the archive. |\n| `list_brand_phishings` | List active phishings targeting a brand (e.g. `microsoft`). |\n| `get_recent_detections` | Delta sync: detections since an ISO date. |\n| `get_brand_metadata` | Curated brand metadata (display name, category, AI characterisation, active count). |\n| `get_cert_metadata` | Factual metadata for an abused TLS intermediate CA (operator, root, key type, siblings). |\n| `search_phishings` | Free-text search across active phishing URLs/domains/IPs (min 3 chars). |\n| `analyze_url` | Passive phishing-signal analysis of any URL/domain - returns a single adjudicated `verdict` (phishing / likely_phishing / suspicious / no_evidence / not_assessed) plus the supporting evidence (URL-shape heuristics, stored score/verdict if known, external-feed cross-reference, historical detections). Unknown suspicious domains are auto-queued for full analysis. |\n| `analyze_url_deep` | ACTIVE deep analysis of a URL (contacts the target: HTTP + TLS cert + RDAP + NS + GeoIP, SOCKS5-isolated) and re-scores it with the full 5-layer engine. Slow (5-15s), token-gated, and rate-limited (shared 50/day budget, single-flight) — requires `DEEP_TOKEN` configured on this Worker; use only when `analyze_url` is inconclusive. |\n| `get_related_infrastructure` | Find infrastructure/content overlap for a known indicator (shared IP, cert, nameservers, favicon, etc.); surfaces the possible campaign / suspected cluster it belongs to. |\n| `get_campaigns` | List possible campaigns / suspected clusters (shared-infrastructure groupings), optionally filtered by brand or active-only. |\n| `get_campaign` | Full detail for one possible campaign / suspected cluster: evidence breakdown, every member indicator, export links. |\n\n## Use with Claude Desktop / Claude.ai / other MCP clients\n\nAdd to your MCP client config:\n\n```json\n{\n  \"mcpServers\": {\n    \"phishunt\": {\n      \"url\": \"https://mcp.phishunt.io/\"\n    }\n  }\n}\n```\n\n## Quick test\n\n```bash\ncurl -sX POST https://mcp.phishunt.io/ \\\n  -H 'content-type: application/json' \\\n  -d '{\"jsonrpc\":\"2.0\",\"method\":\"tools/list\",\"id\":1}' | jq .\n```\n\n## Secrets\n\n`analyze_url_deep` needs a `DEEP_TOKEN` Worker secret (the backend's\n`X-Phishunt-Deep-Token`). Without it configured, the tool still appears in\n`tools/list` but fails clean on `tools/call` — it never reaches the backend.\n\n```bash\nwrangler secret put DEEP_TOKEN\n```\n\n## Develop\n\n```bash\nnpm install\nnpm run dev          # wrangler dev on http://localhost:8787\nMCP_URL=http://localhost:8787 npm test\n```\n\n## Deploy\n\n```bash\nnpm run deploy       # wrangler deploy\nMCP_URL=https://mcp.phishunt.io npm test\n```\n",
  "bytes": 3227,
  "sha": "a923f494dddbe657e4a304099ebfa11e587e8f5c25bfbc95a531b5e674673447",
  "repo_slug": "0xdaniellopez/phishunt-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_0xdaniellopez_phishunt_cf0c6bad/readme"
}