Skip to main content
Glama

HubVibe: Pay-per-Call Agent Tools: Web Search, Email Verify, KYC Screening, Stocks, Crypto, News

Verify an email address before you send

hubvibe_email_verify
Read-onlyIdempotent

Email verification / email validation: will mail to this address arrive? Checked live at the source: syntax, the domain's DNS (MX, null MX, no such domain) and its own mail server, asked whether the mailbox exists and whether it accepts any address (catch-all). No message sent. Flags disposable domains, role accounts (info@), free providers and typos (gmial.com). Verdict: deliverable, undeliverable, risky or unknown, with the reason. Input: email. $0.10 per call. Returns: email, normalized, local_part, domain, domain_ascii, verdict, reason, syntax_valid, domain_exists, accepts_mail, mx[{host, priority}], mail_provider, mailbox{checked, exists, catch_all, smtp_code, smtp_message, mx_host}, disposable, role_account, free_provider, did_you_mean, disposable_list_as_of, notes[], checked_at.

Input Schema

NameRequiredDescriptionDefault
emailYesOne email address, such as jane@example.com.
languageNoOptional BCP-47 language tag (en, ja, ko, pt-BR): the human-readable strings of the result (notes, details, reasons) are translated into this language; data, codes, numbers and URLs are untouched. Default: as produced.

Output Schema

NameRequiredDescriptionDefault
resultYes
statusYes
workerYes
price_usdYes
provenanceYes
receipt_idYes
attributionNo
receipt_urlYes
billing_warningNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed23 schema fields changed
    • removedOutput schema / description
      Removed value: -"The 200 body of every paid /work call. `result` is the worker's own output (its schema is per route); everything else is the same on every /work route. A receipt for the job is at `receipt_url`."
    • removedOutput schema / properties / attribution / description
      Removed value: -"Present only when the result's text was machine-translated: the credit to show with it."
    • removedOutput schema / properties / attribution / items / description
      Removed value: -"A credit."
    • removedOutput schema / properties / attribution / items / properties
      Removed value: -{
      -  "text": {
      -    "description": "Credit.",
      -    "examples": [
      -      "Translated by Google"
      -    ],
      -    "type": "string"
      -  },
      -  "url": {
      -    "description": "Link.",
      -    "examples": [
      -      "https://translate.google.com"
      -    ],
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / attribution / items / required
      Removed value: -[
      -  "text",
      -  "url"
      -]
    • removedOutput schema / properties / attribution / items / type
      Removed value: -"object"
    • removedOutput schema / properties / billing_warning / description
      Removed value: -"Present only when the charge was recorded with a caveat."
    • removedOutput schema / properties / billing_warning / examples
      Removed value: -[
      -  "settlement pending"
      -]
    • removedOutput schema / properties / price_usd / description
      Removed value: -"What this call cost, in USD."
    • removedOutput schema / properties / price_usd / examples
      Removed value: -[
      -  0.02
      -]
    • removedOutput schema / properties / provenance / description
      Removed value: -"How the result was produced: which providers ran and how long each took."
    • removedOutput schema / properties / provenance / properties
      Removed value: -{
      -  "attempts": {
      -    "description": "Provider attempts made, including retries and failovers.",
      -    "examples": [
      -      1
      -    ],
      -    "type": "integer"
      -  },
      -  "elapsed_ms": {
      -    "description": "Wall-clock milliseconds for the whole job.",
      -    "examples": [
      -      340
      -    ],
      -    "type": "integer"
      -  },
      -  "providers_used": {
      -    "description": "Providers that served the job.",
      -    "examples": [
      -      [
      -        "coinbase-advanced-trade-public"
      -      ]
      -    ],
      -    "items": {
      -      "description": "Provider name.",
      -      "examples": [
      -        "coinbase-advanced-trade-public"
      -      ],
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "steps": {
      -    "description": "Every step the job ran, in order.",
      -    "items": {
      -      "description": "One step of the job.",
      -      "properties": {
      -        "ms": {
      -          "description": "Milliseconds the step took.",
      -          "examples": [
      -            312
      -          ],
      -          "type": "integer"
      -        },
      -        "ok": {
      -          "description": "Whether the step succeeded.",
      -          "examples": [
      -            true
      -          ],
      -          "type": "boolean"
      -        },
      -        "provider": {
      -          "description": "Provider that served the step.",
      -          "examples": [
      -            "coinbase-advanced-trade-public"
      -          ],
      -          "type": "string"
      -        },
      -        "reason": {
      -          "description": "Failure reason, on a failed step.",
      -          "examples": [
      -            "provider_timeout"
      -          ],
      -          "type": "string"
      -        },
      -        "step": {
      -          "description": "Step name inside the worker.",
      -          "examples": [
      -            "quote"
      -          ],
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "step",
      -        "ok",
      -        "ms"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  }
      -}
    • removedOutput schema / properties / provenance / required
      Removed value: -[
      -  "steps",
      -  "providers_used",
      -  "attempts",
      -  "elapsed_ms"
      -]
    • removedOutput schema / properties / receipt_id / description
      Removed value: -"Receipt id for this job."
    • removedOutput schema / properties / receipt_id / examples
      Removed value: -[
      -  "rcpt_9f1c2b3a4d5e6f70"
      -]
    • removedOutput schema / properties / receipt_url / description
      Removed value: -"Where to fetch the machine-readable receipt (free, no payment)."
    • removedOutput schema / properties / receipt_url / examples
      Removed value: -[
      -  "/work/receipts/rcpt_9f1c2b3a4d5e6f70"
      -]
    • removedOutput schema / properties / result / properties
      Removed value: -{
      -  "accepts_mail": {
      -    "description": "The domain has somewhere to deliver mail (MX or address fallback); null when not looked up.",
      -    "examples": [
      -      true
      -    ],
      -    "type": [
      -      "boolean",
      -      "null"
      -    ]
      -  },
      -  "checked_at": {
      -    "description": "When this node read the source (UTC). Nothing here is cached.",
      -    "examples": [
      -      "2026-09-26T18:00:00Z"
      -    ],
      -    "format": "date-time",
      -    "type": "string"
      -  },
      -  "did_you_mean": {
      -    "description": "A likely intended address when the domain looks like a typo of a common provider.",
      -    "examples": [
      -      "jane@gmail.com"
      -    ],
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "disposable": {
      -    "description": "The domain is a known throwaway-mail domain.",
      -    "examples": [
      -      false
      -    ],
      -    "type": "boolean"
      -  },
      -  "disposable_list_as_of": {
      -    "description": "Date of the disposable-domain list used.",
      -    "examples": [
      -      "2026-09-28"
      -    ],
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "domain": {
      -    "description": "The domain as given.",
      -    "examples": [
      -      "github.com"
      -    ],
      -    "type": "string"
      -  },
      -  "domain_ascii": {
      -    "description": "The domain in ASCII (punycode for internationalised names); null when invalid.",
      -    "examples": [
      -      "github.com"
      -    ],
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "domain_exists": {
      -    "description": "The domain exists in DNS; null when not looked up.",
      -    "examples": [
      -      true
      -    ],
      -    "type": [
      -      "boolean",
      -      "null"
      -    ]
      -  },
      -  "email": {
      -    "description": "The address as given.",
      -    "examples": [
      -      "support@github.com"
      -    ],
      -    "type": "string"
      -  },
      -  "free_provider": {
      -    "description": "A free consumer mail provider (gmail.com, outlook.com...).",
      -    "examples": [
      -      false
      -    ],
      -    "type": "boolean"
      -  },
      -  "local_part": {
      -    "description": "The part before @.",
      -    "examples": [
      -      "support"
      -    ],
      -    "type": "string"
      -  },
      -  "mail_provider": {
      -    "description": "Who runs the domain's mail (google, microsoft, yahoo, zoho, proton, amazon_ses...); null when not recognised.",
      -    "examples": [
      -      "google"
      -    ],
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "mailbox": {
      -    "description": "What the mail server said.",
      -    "properties": {
      -      "catch_all": {
      -        "description": "The server also accepted a random address on the domain; null when not tested.",
      -        "examples": [
      -          false
      -        ],
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "checked": {
      -        "description": "The mail server gave a yes-or-no answer about the mailbox.",
      -        "examples": [
      -          true
      -        ],
      -        "type": "boolean"
      -      },
      -      "exists": {
      -        "description": "The mailbox exists; null when it could not be proved.",
      -        "examples": [
      -          true
      -        ],
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "mx_host": {
      -        "description": "The mail server that answered.",
      -        "examples": [
      -          "aspmx.l.google.com"
      -        ],
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "smtp_code": {
      -        "description": "The server's reply code to the mailbox question.",
      -        "examples": [
      -          250
      -        ],
      -        "type": [
      -          "integer",
      -          "null"
      -        ]
      -      },
      -      "smtp_message": {
      -        "description": "The server's reply text, trimmed.",
      -        "examples": [
      -          "2.1.5 OK"
      -        ],
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "checked",
      -      "exists",
      -      "catch_all",
      -      "smtp_code",
      -      "smtp_message",
      -      "mx_host"
      -    ],
      -    "type": "object"
      -  },
      -  "mx": {
      -    "description": "The domain's mail servers, in the order mail tries them.",
      -    "examples": [
      -      []
      -    ],
      -    "items": {
      -      "description": "One mail server.",
      -      "properties": {
      -        "host": {
      -          "description": "Mail server host.",
      -          "examples": [
      -            "aspmx.l.google.com"
      -          ],
      -          "type": "string"
      -        },
      -        "priority": {
      -          "description": "MX preference (lower is tried first).",
      -          "examples": [
      -            1
      -          ],
      -          "type": "integer"
      -        }
      -      },
      -      "required": [
      -        "host",
      -        "priority"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  "normalized": {
      -    "description": "Local part with the domain lower-cased and punycoded; null when the syntax is invalid.",
      -    "examples": [
      -      "support@github.com"
      -    ],
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "notes": {
      -    "description": "Caveats; empty when none.",
      -    "examples": [
      -      []
      -    ],
      -    "items": {
      -      "description": "A caveat.",
      -      "examples": [
      -        "Role address: it usually reaches a team or a shared inbox, not one person."
      -      ],
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "reason": {
      -    "description": "Why the verdict is what it is.",
      -    "enum": [
      -      "mailbox_exists",
      -      "invalid_syntax",
      -      "domain_not_found",
      -      "domain_accepts_no_mail",
      -      "no_mail_server",
      -      "mailbox_not_found",
      -      "disposable_domain",
      -      "accept_all_domain",
      -      "smtp_refused",
      -      "smtp_try_later",
      -      "smtp_unreachable",
      -      "smtp_inconclusive"
      -    ],
      -    "examples": [
      -      "mailbox_exists"
      -    ],
      -    "type": "string"
      -  },
      -  "role_account": {
      -    "description": "The local part is a role (info, sales, support...), not a person.",
      -    "examples": [
      -      true
      -    ],
      -    "type": "boolean"
      -  },
      -  "syntax_valid": {
      -    "description": "The address is well-formed.",
      -    "examples": [
      -      true
      -    ],
      -    "type": "boolean"
      -  },
      -  "verdict": {
      -    "description": "deliverable: the mail server confirmed the mailbox. undeliverable: bad syntax, no such domain, no mail server, or no such mailbox. risky: disposable domain or a server that accepts every address. unknown: the server would not say.",
      -    "enum": [
      -      "deliverable",
      -      "undeliverable",
      -      "risky",
      -      "unknown"
      -    ],
      -    "examples": [
      -      "deliverable"
      -    ],
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / result / required
      Removed value: -[
      -  "email",
      -  "normalized",
      -  "local_part",
      -  "domain",
      -  "domain_ascii",
      -  "verdict",
      -  "reason",
      -  "syntax_valid",
      -  "domain_exists",
      -  "accepts_mail",
      -  "mx",
      -  "mail_provider",
      -  "mailbox",
      -  "disposable",
      -  "role_account",
      -  "free_provider",
      -  "did_you_mean",
      -  "disposable_list_as_of",
      -  "notes",
      -  "checked_at"
      -]
    • removedOutput schema / properties / status / description
      Removed value: -"Present only on a delivered result."
    • removedOutput schema / properties / worker / description
      Removed value: -"Catalog name of the worker that ran."
    • removedOutput schema / properties / worker / examples
      Removed value: -[
      -  "market.quote"
      -]
    • removedOutput schema / title
      Removed value: -"email.verify response"
  2. Changed1 schema field changed
    • addedOutput schema / properties / attribution
      Added value: +{
      +  "description": "Present only when the result's text was machine-translated: the credit to show with it.",
      +  "items": {
      +    "description": "A credit.",
      +    "properties": {
      +      "text": {
      +        "description": "Credit.",
      +        "examples": [
      +          "Translated by Google"
      +        ],
      +        "type": "string"
      +      },
      +      "url": {
      +        "description": "Link.",
      +        "examples": [
      +          "https://translate.google.com"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "text",
      +      "url"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  3. Added

TDQS

A4.4/5.0
Behavior5/5

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

The description adds substantial behavioral context beyond the annotations: it discloses that checks are live at the source, that no message is sent, that the tool queries the destination mail server about mailbox existence and catch-all behavior, and that the call costs $0.10. These details are highly relevant for an agent deciding whether to invoke a read-only external verification tool.

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?

The description is front-loaded with purpose and key behavioral guarantees, which is effective. It is somewhat dense and includes a long enumeration of return fields that is partly redundant with the output schema, but the information remains relevant and well organized.

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?

Given the rich annotations, 100% schema coverage, and the presence of an output schema, the description is complete. It explains what is checked, what is not done (no message sent), what verdicts mean, what flags are returned, and the cost, leaving no critical agent-facing gap.

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%, and the schema fully documents both the required email parameter and the optional language parameter. The description adds 'Input: email' and enumerates return fields, but it does not add meaning beyond the schema for the language parameter or the email format. Baseline 3 is appropriate because the schema carries parameter semantics.

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 states a specific verb and resource: verify/validate an email address and answer whether mail will arrive. It clearly distinguishes the task from generic DNS or contact screening by naming the exact checks performed (syntax, MX, mailbox, catch-all, disposable/role/free/typo flags) and the verdict categories.

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?

The title and description imply the primary use case: verifying an address before sending mail, with the reassurance that no message is sent. However, it does not explicitly name alternatives such as hubvibe_domain_dns for DNS-only checks or hubvibe_contact_screen for broader contact screening, nor does it state when not to use this tool.

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.