Skip to main content
Glama

Phishing / Smishing Link Check

phishing_link_check
Read-onlyIdempotent

Check the links in a suspicious text message (smishing) or e-mail before anyone taps them. Paste the whole message or a single URL: every link is extracted, followed through URL shorteners to its real destination, and judged on observable signals — domain age from RDAP, impersonation of Korean banks/couriers/telecoms/portals and global brands incl. AI services such as ChatGPT/Claude/Gemini (brand keyword, lookalike spelling, or the brand domain worn as a subdomain), ClickFix pages (a fake "verify you are human" check that has the visitor paste a command into Win+R/PowerShell), Android APK downloads, punycode, public phishing/malware feeds, and DechoNet's own impersonation tracking. Use this when a user asks whether a link or message is a scam. Verdicts: danger, suspicious, unreachable, official (lands on the brand's own domain), no_signals (no warning signs found — never present this as "safe"). Read-only: the first 64 KB of the landing page is read but scripts never run, and the message text is not stored; requires no API key; rate-limited. Returns per-link verdicts with reasons and a shareable report link.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textYesThe suspicious message exactly as received (any language), or just the URL. Up to 5 links are checked.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
linksYes
verdictYesdanger | suspicious | unreachable | official | no_signals | no_links
reportUrlYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), and the description adds substantial behavioral context beyond them: only the first 64 KB is read, scripts never run, message text is not stored, no API key is needed, and the tool is rate-limited. The full verdict taxonomy (danger, suspicious, unreachable, official, no_signals) is disclosed, including the important caveat that no_signals must never be presented as 'safe'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is dense and long-winded in places (the bank/courier/telecom/brand enumeration is heavy), but it is front-loaded with the core purpose and every clause carries information: signals, verdicts, read-only guarantees, and limits. Little is filler, though tightening the brand-signal list would improve scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with an output schema and comprehensive annotations, the description covers what the tool does, when to call it, what it will and will not do, and how to interpret each verdict. The explicit warning that no_signals is not 'safe' is exactly the kind of interpretive guidance an agent needs and cannot get from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only one parameter at 100% schema coverage, the baseline is 3, but the description adds real meaning: it clarifies that the input may be a whole pasted message (in any language) or a single URL, and discloses the operational limit of 5 links per call. That is more than the schema conveys, though the exact handling of messages with more than 5 links is left implicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Check the links in a suspicious text message or e-mail') and elaborates on the exact scope: link extraction, shortener resolution, and signal-based judgment. That scope is unmistakably distinct from siblings like dns_lookup, whois_lookup, or security_scan, which an agent can rule out without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a crisp usage trigger: 'Use this when a user asks whether a link or message is a scam.' That is clear routing context. It stops short of a perfect 5 because it never names an alternative tool or states when-not to use it (e.g. for scanning an entire site vs a single link, where security_scan or owasp_check would apply).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources