Skip to main content
Glama

RelayShield Scam Checks

Score an email for phishing signals

check_email
Read-only

Scores a suspicious email for phishing signals from its parsed fields. Provide any of: from_address, from_name, reply_to, return_path, subject, body_text, and links (up to 25). Returns a risk level and score with the specific flags behind them; links in the email are also checked against RelayShield's threat-intelligence corpus. A verdict of unknown means nothing conclusive was found; this tool never reports an email as safe.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "check_email"
  }
}

Input Schema

NameRequiredDescriptionDefault
linksNoLinks found in the body, up to 25.
subjectNoMessage subject.
reply_toNoReply-To address, if present and different from from_address.
body_textNoPlain-text body, used for urgency/deadline/threat phrasing.
from_nameNoThe claimed sender's display name.
return_pathNoEnvelope sender, if available. Informational only.
from_addressNoThe claimed sender's address, e.g. alerts@phrase.com.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed32 schema fields changed
    • addedInput schema / properties / body_text / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / body_text / default
      Added value: +null
    • addedInput schema / properties / body_text / title
      Added value: +"Body Text"
    • removedInput schema / properties / body_text / type
      Removed value: -"string"
    • addedInput schema / properties / from_address / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / from_address / default
      Added value: +null
    • addedInput schema / properties / from_address / title
      Added value: +"From Address"
    • removedInput schema / properties / from_address / type
      Removed value: -"string"
    • addedInput schema / properties / from_name / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / from_name / default
      Added value: +null
    • addedInput schema / properties / from_name / title
      Added value: +"From Name"
    • removedInput schema / properties / from_name / type
      Removed value: -"string"
    • addedInput schema / properties / links / anyOf
      Added value: +[
      +  {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / links / default
      Added value: +null
    • removedInput schema / properties / links / items
      Removed value: -{
      -  "type": "string"
      -}
    • removedInput schema / properties / links / maxItems
      Removed value: -25
    • addedInput schema / properties / links / title
      Added value: +"Links"
    • removedInput schema / properties / links / type
      Removed value: -"array"
    • addedInput schema / properties / reply_to / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / reply_to / default
      Added value: +null
    • addedInput schema / properties / reply_to / title
      Added value: +"Reply To"
    • removedInput schema / properties / reply_to / type
      Removed value: -"string"
    • addedInput schema / properties / return_path / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / return_path / default
      Added value: +null
    • addedInput schema / properties / return_path / title
      Added value: +"Return Path"
    • removedInput schema / properties / return_path / type
      Removed value: -"string"
    • addedInput schema / properties / subject / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / subject / default
      Added value: +null
    • addedInput schema / properties / subject / title
      Added value: +"Subject"
    • removedInput schema / properties / subject / type
      Removed value: -"string"
    • addedInput schema / title
      Added value: +"check_emailArguments"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "result": {
      +      "title": "Result",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "result"
      +  ],
      +  "title": "check_emailOutput",
      +  "type": "object"
      +}
  2. First observed

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuine value by disclosing that links are checked against an external threat-intelligence corpus and that no 'safe' verdict is ever produced, but it says nothing about latency, quotas, or what happens when the input set is empty.

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?

Three tight sentences, front-loaded with purpose, then inputs, then output semantics. The parameter enumeration slightly duplicates the schema but is compact enough to be a useful at-a-glance summary rather than padding.

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

Completeness4/5

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

With an output schema present, the description needn't explain return shapes, yet it still usefully characterizes risk level, score, and flags. The one gap is that all seven parameters are optional and it never states what a call with no fields supplied does or what minimum input produces a meaningful verdict.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter is already documented, including the 25-link cap and the note that return_path is informational only. The description lists the same fields without adding new meaning such as accepted formats or which fields most influence scoring, so the baseline of 3 applies.

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 names a specific verb ('Scores') and resource ('a suspicious email') and scopes it to phishing signals derived from parsed fields. That resource framing cleanly separates it from the sibling check_link, check_breach, and check_wallet tools without needing to name them.

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 establishes the usage context (a suspicious email you already have parsed fields for) and explains how to interpret outcomes, including that 'unknown' means nothing conclusive and that a safe verdict is never returned. It stops short of explicitly routing the agent between this tool and the link-only sibling when the input is just a URL.

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