scamgate
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SCAMGATE_RDAP | No | Controls domain-age (RDAP) lookups. 'off' (default): no lookups, the rule never fires. 'cache': uses ages already cached; never goes online. 'live': looks up unknown domains (3 s timeout) and caches the answer. | off |
| XDG_CACHE_HOME | No | Base directory used to locate the feed cache ($XDG_CACHE_HOME/scamgate) when SCAMGATE_CACHE_DIR is not set. | |
| SCAMGATE_CONFIG | No | Path to your own copy of rules.yaml to override weights, thresholds, brand lists and word lists. | |
| SCAMGATE_NO_FEEDS | No | When set to 'warn', running blind (no feeds cached) turns the hook's link approval into a warning instead. | |
| SCAMGATE_BLOCKLIST | No | Path to your own blocklist file instead of the bundled src/scamgate/data/blocklist.txt. | |
| SCAMGATE_CACHE_DIR | No | Directory where the feed cache lives. Falls back to $XDG_CACHE_HOME/scamgate, else ~/.cache/scamgate. | $XDG_CACHE_HOME/scamgate or ~/.cache/scamgate |
| SCAMGATE_STATE_DIR | No | Directory where the ask/deny log, signing key and payee history are stored. | ~/.local/state/scamgate |
| SCAMGATE_AUTO_UPDATE | No | When set to 1, a long-running `scamgate serve` refreshes the feeds by itself (only when the lists are 6 hours old). Set to 0 to turn it off. | |
| SCAMGATE_URLHAUS_AUTH_KEY | No | abuse.ch Auth-Key required to enable the URLhaus feed. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_urlA | Check a link before opening it. Returns a verdict: decision (allow | ask | deny), risk_score 0-100, plain-English reasons, and checked_host, the host the link really opens. If the decision is ask, stop and show the reasons to the human. If deny, do not proceed. Results are advisory, not a guarantee. |
| check_paymentA | Check a payment before making it. Returns a verdict: decision (allow | ask | deny), risk_score 0-100 and plain-English reasons. If the decision is ask, stop and show the reasons to the human. If deny, do not proceed. Results are advisory, not a guarantee. |
| update_feedsA | Refresh scamgate's phishing lists now. Use it when a scamgate verdict or status says the lists are missing or stale. Takes no arguments: it always downloads the default lists from their fixed sources, and does nothing if they were refreshed in the last hour. With automatic refresh on, the lists also refresh by themselves every 6 hours. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 3 tools
Each tool targets a distinct object and action: verifying a URL, verifying a payment, and refreshing phishing feeds. An agent can never confuse check_url with check_payment, and update_feeds is clearly a maintenance operation gated on stale/missing list status.
All three names follow the same verb_noun snake_case pattern (check_url, check_payment, update_feeds). The shared check_ prefix for the two verdict tools even reinforces the shared output contract.
Three tools is a narrow but coherent surface for a scam-verdict service, and each one earns its place with no filler. It sits at the low edge of the comfortable range, leaving little room for additional check types.
The core lifecycle is covered: verdicts for links and payments plus a way to remediate stale feed data, with consistent allow/ask/deny semantics. Gaps exist for other scam vectors (email senders, phone numbers, domains, QR/app downloads), which agents would have to handle elsewhere.