Skip to main content
Glama

Easy Email Verification

Start a bulk verification job

create_bulk_job

Start an asynchronous verification job. Use it for 21 or more addresses, or for ANY file the user attaches (read the addresses from the file). Up to 100000 addresses per call. Consumes one credit per unique address and the account needs enough credits for all of them (check with get_credits and tell the user the number before starting). Duplicates and lines that are not addresses are removed first. Lists larger than 10,000: suggest uploading the file on the dashboard (https://dashboard.easyemailverification.com/bulk-email-verification). If the user prefers the chat, send the list in parts of up to 5000: call this tool with parts_total and the first part, then append_bulk_emails with each other part; lists over 100000 become several jobs. Returns list_id (or jobs) and message_for_user: tell the user the job id, that you will report the status every 30 seconds, and the dashboard link. Then call get_bulk_status.

Input Schema

NameRequiredDescriptionDefault
nameNoOptional name of the list in English, shown in the dashboard (a list split into several jobs becomes "List <name> 1 of N"…)
emailsYesEmail addresses to verify (1 to 100000); with parts_total, the first part (up to 5000)
parts_totalNoOnly to send a large list in parts: the total number of parts of up to 5000 addresses, this call included

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / emails / description
      Previous value: -"Email addresses to verify (1 to 10000)"New value: +"Email addresses to verify (1 to 100000); with parts_total, the first part (up to 5000)"
    • changedInput schema / properties / emails / maxItems
      Previous value: -10000New value: +100000
    • changedInput schema / properties / name / description
      Previous value: -"Optional name of the list, shown in the dashboard"New value: +"Optional name of the list in English, shown in the dashboard (a list split into several jobs becomes \"List <name> 1 of N\"…)"
    • addedInput schema / properties / parts_total
      Added value: +{
      +  "description": "Only to send a large list in parts: the total number of parts of up to 5000 addresses, this call included",
      +  "maximum": 200,
      +  "minimum": 1,
      +  "type": "integer"
      +}
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses the credit cost model (one credit per unique address), that the account must hold enough credits for the whole list, that duplicates and non-address lines are stripped before processing, that the call is asynchronous, and that a job may split into several jobs. It also specifies the return payload and the obligation to report status every 30 seconds. None of this is inferable from readOnlyHint=false / destructiveHint=false alone.

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?

Purpose, threshold, and alternatives are front-loaded, and nearly every sentence carries operational content (cost, splitting, return values, next call). It is on the long side and the dashboard URL plus multi-step chat instructions add density, but there is little filler.

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 mutating, credit-consuming, asynchronous tool with no output schema, the description covers what the agent needs: prerequisites (credits), batching strategy for large inputs, return values (list_id / jobs, message_for_user), and the mandated follow-up call. Nothing essential to correct invocation is left out.

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?

Schema coverage is already 100%, so the baseline is 3; the description earns an extra point by explaining the cross-call workflow for parts_total (first part here, remaining parts via append_bulk_emails, up to 5000 per part, lists over 100000 becoming multiple jobs) and by tying name to the dashboard display. It mostly reinforces the schema rather than adding new per-parameter syntax.

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?

States a specific verb and resource up front: 'Start an asynchronous verification job.' It then distinguishes itself from siblings by threshold (21+ addresses) and by input type (any attached file), which separates it from verify_emails and append_bulk_emails without opening either schema.

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

Usage Guidelines5/5

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

Gives explicit decision rules: use this for 21+ addresses or any attached file; for lists over 10,000 suggest the dashboard; if the user prefers chat, split into parts of 5000 with parts_total then append_bulk_emails. It also names the prerequisite check (get_credits) and the follow-up call (get_bulk_status), so the agent knows both when to use it and what comes before and after.

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