Skip to main content
Glama

Faivelo Email

Send one email to many recipients

send_batch
Destructive

Send the same email to many recipients in ONE call. Use this instead of calling send_message in a loop whenever two or more people get a similar message (an announcement, invitations, a follow-up with each person's name). Write {{field}} in the subject, text or html and give each recipient its fields, e.g. {{first_name}}; a field a recipient lacks renders empty. Faivelo queues the batch, sends it at the plan's pace and tracks every recipient; the reply comes back at once with a batch id and each recipient as "queued" (poll get_batch_status for sent, delivered, bounced). Every recipient counts against the monthly send allowance like a single send. The whole batch is accepted or refused: over the plan's per-call cap or the remaining allowance, nothing is queued and the error says the cap (usage shows it as batch.recipientsPerCall). idempotencyKey is required and makes a retry safe: the same key returns the original batch instead of sending again.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fromYesThe sending mailbox, "updates@yourdomain.com" or "Acme Updates <updates@yourdomain.com>"
htmlNoHTML body; may contain {{field}} tokens (values are HTML-escaped)
textNoPlain-text body; may contain {{field}} tokens
labelsNoFree-form tags kept on the batch and echoed in its status and webhook events
replyToNoReply-To address, when replies should go somewhere other than the sending mailbox
subjectYesSubject line; may contain {{field}} tokens
fromNameNoFrom name for this batch only; overrides a name in from and the mailbox's own name
recipientsYesOne entry per recipient. Duplicate addresses are sent once.
idempotencyKeyYesRequired. A value unique to this batch (e.g. "launch-notice-2026-10"); repeating it returns the original batch instead of sending again

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / from / description
      Previous value: -"Full address of the sending mailbox, e.g. \"updates@yourdomain.com\""New value: +"The sending mailbox, \"updates@yourdomain.com\" or \"Acme Updates <updates@yourdomain.com>\""
    • addedInput schema / properties / fromName
      Added value: +{
      +  "description": "From name for this batch only; overrides a name in from and the mailbox's own name",
      +  "maxLength": 128,
      +  "type": "string"
      +}
  2. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only flag it as a write with open-world/destructive characteristics; the description adds substantial behavior: asynchronous queueing at the plan's pace, immediate 'queued' reply plus get_batch_status polling for delivered/bounced, monthly-allowance accounting, all-or-nothing batch acceptance with a per-call cap error (batch.recipientsPerCall), and idempotencyKey making retries safe. This is exactly the kind of context annotations cannot carry.

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?

Front-loaded with the routing decision and the sibling comparison, then layers token mechanics, async behavior, and caps in descending priority. Dense and long (several run-on clauses), but essentially every sentence carries distinct operational information; only minor tightening is possible.

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?

No output schema exists, so the description carries the return contract itself: immediate batch id, per-recipient 'queued' status, and the get_batch_status follow-up for terminal states. Combined with the cap/error semantics and idempotency behavior, an agent has everything needed to call and follow up on this 9-param tool.

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 100%, so the baseline is 3, and the description still adds real meaning beyond it: how {{field}} tokens flow from subject/text/html to each recipient's fields, that a missing field renders empty (not an error), and that idempotencyKey's repeat returns the original batch. It doesn't cover from/fromName/replyTo precedence depth, but the token and idempotency semantics are genuinely additive.

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+resource+scope ('Send the same email to many recipients in ONE call') and explicitly distinguishes itself from the sibling send_message by contrasting the loop pattern. An agent can route between send_batch and send_message 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 an explicit when-to-use rule ('whenever two or more people get a similar message') and names the alternative it replaces ('instead of calling send_message in a loop'), with concrete examples (announcement, invitations, follow-up). The only missing piece is when-not, but the trigger condition is stated positively and precisely.

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.