PhishClean MCP server
Helps an agent decide whether something is safe before a person acts on it: check a link or an email body for phishing, read raw email headers for SPF/DKIM/DMARC results and spoofing, decode a JWT and flag its security problems, and scan source code or page HTML for leaked API keys and phishing forms. Everything runs on the text you send; nothing is fetched or stored.
https://www.phishclean.com/mcp
Transport: Streamable HTTP. No account or API key is needed; keyless calls are limited to 1000 an hour per IP.
Connect
- Claude (claude.ai or Claude Desktop): Settings > Connectors > Add custom connector, then paste the URL above. It is also listed in the Claude connector directory as PhishClean.
- Claude Code:
claude mcp add --transport http phishclean https://www.phishclean.com/mcp - Cursor (
~/.cursor/mcp.json):{"mcpServers": {"phishclean": {"url": "https://www.phishclean.com/mcp"}}} - VS Code (
.vscode/mcp.json):{"servers": {"phishclean": {"type": "http", "url": "https://www.phishclean.com/mcp"}}} - Any other client: add a remote (Streamable HTTP) server with the URL above.
To raise the limit, send a PhishClean API key as Authorization: Bearer pk_live_.... Get one at phishclean.com/developers.
Tools
All tools are read-only and run on the text you send. Nothing is fetched or stored.
- Check a link for phishing (
check_link): Check a URL for phishing signals: brand lookalike domains, suspicious TLDs, raw IP addresses, plain HTTP, @-tricks, encoded hostnames, punycode, and tokens in the query string. Looks at the URL only; it does not visit it. Returns riskLevel (safe, caution, danger) and the signals found. - Check an email for phishing (
check_email): Analyze the body text of an email for phishing indicators: urgency and threats, requests for passwords or payment, too-good-to-be-true offers, link text that hides a different domain, generic greetings and attachment lures. Returns an overall riskLevel, the number of indicators, and each indicator with a severity, a short title and a sentence quoting the phrase that triggered it. It reads the text only: it does not check the sender, the headers (use analyze_headers) or open any link. - Analyze email headers (
analyze_headers): Analyze raw email headers: SPF, DKIM and DMARC results, relay hops, and spoofing signs such as a Reply-To or Return-Path that differs from the From domain. Returns the From/To/Subject/Date/Message-ID/Return-Path values, the SPF, DKIM and DMARC verdicts as reported by the receiving server, red/amber/green flags explaining what they mean, and each relay hop with its server names, timestamp and delay. It reads what the headers say; it does not look up DNS. - Decode and check a JWT (
decode_jwt): Decode a JSON Web Token without verifying it and flag security issues: alg 'none', weak algorithms, expired or very long-lived tokens, missing standard claims and sensitive data in the payload. Returns the decoded header and payload, the signature segment as given, and a list of red/amber warnings. It cannot tell whether the signature is valid. - Scan code for leaked secrets (
scan_secrets): Scan source code or config text for leaked credentials: AWS, Stripe, GitHub, Google, Slack, Twilio and SendGrid keys, private keys, bearer tokens and similar. Returns whether anything was found, whether a private key is among the matches, and each match as the secret type, a weight and its first 20 characters. Known test and example keys are skipped. - Scan a web page's HTML (
scan_page): Scan a web page's HTML for phishing and security signals: password forms posting to another domain, hidden iframes, brand/domain mismatch, JWTs in the URL and hardcoded secrets. Returns a risk score and the signals found. You supply the HTML; nothing is fetched.