scamcheck
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENAI_API_KEY | No | Optional OpenAI (or OpenAI-compatible) API key. Enables the AI second-opinion layer; without it the tool runs rules-only. | |
| SCAMCHECK_HOME | No | Data directory for scamcheck's local memory, cases, feeds, lists and history (default ~/.scamcheck). | |
| OPENAI_BASE_URL | No | Optional base URL for an OpenAI-compatible service or self-hosted proxy. | |
| SCAMCHECK_REGION | No | Default region used when interpreting national phone numbers, e.g. IN, US, GB (default IN). | |
| ANTHROPIC_API_KEY | No | Optional Anthropic API key. Alternative to OPENAI_API_KEY for the AI second-opinion layer. | |
| SCAMCHECK_AI_MODEL | No | Optional model name used for the AI layer (default gpt-4o-mini). |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_messageA | Analyze an SMS, chat message, email body or full conversation transcript for scam signals. Runs fully offline and returns an explainable verdict (LIKELY SAFE / SUSPICIOUS / LIKELY SCAM / SCAM) with a 0-100 score, the exact matched signals, the matched scam playbook, and a deterministic intelligence briefing (scam type, kill-chain stage, attacker goals, payment rail, likely next moves, verification steps). Use this before advising a user to act on any unsolicited message. |
| check_urlA | Fetch public HTTP(S) metadata for one link: redirect chain, final URL and page title, TLS issuer/version, RDAP domain age, and flags for plain HTTP, raw IP hosts, punycode lookalikes and shorteners. This is the ONLY scamcheck tool that touches the network. Private, loopback and link-local targets are refused. It reads metadata; it is not a sandbox and does not execute page content. |
| check_numberA | Parse and classify a phone number or SMS sender ID offline: validity, E.164 form, country, line type, premium-rate ranges, country mismatch, and local blocklist/allowlist reputation. No network access. |
| extract_entitiesA | Extract stable, deduplicated indicators from a scam message or case: URLs/domains, phone numbers, sender IDs, emails, UPI IDs, BTC/ETH/TRX wallets, IFSC codes, Telegram handles, WhatsApp invites and APK links. Offline; useful for building blocklists or a case file. |
| open_caseA | Open a local evidence case and optionally attach the analysed text. Evidence is SHA-256 hashed at collection time and stored under ~/.scamcheck (mode 0700). Use this when a user wants to report a scam or preserve proof; the case can later be exported with the CLI (--case-export) or turned into a complaint draft (--report). |
| scamcheck_infoA | Return the scamcheck version, whether analysis is offline, where local data lives, and which capabilities this build has. |
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 6 tools
Each tool targets a distinct action and input type: check_number for phone numbers, check_message for message verdicts, check_url for URL metadata, extract_entities for indicator extraction, open_case for evidence cases, and scamcheck_info for server metadata. Although check_message and extract_entities both accept message text, their outputs and use cases are clearly differentiated in the descriptions.
Five of six tools follow a clear verb_noun pattern (check_number, extract_entities, open_case, check_message, check_url). The outlier scamcheck_info is a noun-based info tool, which is a minor deviation but still readable and predictable.
Six tools is well-scoped for an offline scam analysis server. Each tool covers a necessary capability—message analysis, number check, URL check, entity extraction, case opening, and info—without redundancy or bloat.
The core scam-analysis surface is complete for messages, phone numbers, URLs, and indicator extraction. However, case management is a dead end in the MCP layer: open_case exists but there is no tool to retrieve, list, or export cases (those functions are only in the CLI).