Skip to main content
Glama

Send a new email

send_email

Writes and sends an email to someone, and opens the thread their answer will land in. The text goes out as given, so this is the tool for a message a person has read and approved. With "send_at" it is scheduled instead: nothing leaves until then, and list_scheduled_sends shows it waiting.

Input Schema

NameRequiredDescriptionDefault
ccNoWho else receives it, in copy. Everyone on the mail sees these.
toYesWho it is written to. The thread is filed under the first of them.
bccNoWho else receives it without the others being told. A blind copy is kept on the sending alone: the thread records the visible recipients only.
bodyYesThe text of the message, as the contact will read it. Plain text, in their language.
fromYesThe address to send from: one of the account inbound addresses, or one of the other names of a mailbox, which is what brings the answer back into that mailbox. Call list_sender_addresses to find them, aliases included.
send_atNoWhen it should leave, if not now: a date and time with its offset, such as "2026-10-12T08:30:00+03:00", at most a year ahead. Without an offset it is read in the zone of the person this connection acts for. Left out, it leaves at once.
subjectYesThe subject line, up to 255 characters.
attachmentsNoFiles to send along, up to 10 and 7 MiB in total. Each one is named EITHER by "upload_id", a file already pushed to a slot from create_attachment_upload, OR inline by "filename" and "content_base64". Prefer the upload for anything but a few lines of text: a file written out as base64 has to be produced character by character, which a real document overruns long before the 7 MiB cap.
contact_nameNoThe name of the recipient, recorded on their fiche when we open one.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose real behavior: text is sent verbatim, scheduling holds delivery until send_at, and the thread created is where replies land. It stops short of stating whether a send is irreversible, what happens on failure, or what the tool returns, which matters for an outbound mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose and the thread side effect, then the approval gate, then the scheduling variant. No filler and nothing important buried.

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?

For a send tool with no output schema, the description explains the key consequence (a thread is opened for the reply) and the scheduling path. It does not cover what the call returns or auth/permission requirements on the from address, which is the one remaining gap for an agent invoking it correctly.

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 coverage is 100%, so all nine parameters are already documented in detail, including send_at's format and offset rule and the attachment upload-vs-inline choice. The description adds only the cross-tool pointer that scheduled sends are visible via list_scheduled_sends, which is a marginal gain over the schema. Baseline 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?

States a specific verb and resource ('writes and sends an email') plus a non-obvious side effect ('opens the thread their answer will land in'). This distinguishes it from save_compose_draft, reply_to_conversation, and forward_conversation without needing the schema.

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?

Gives a clear selection rule: 'the text goes out as given, so this is the tool for a message a person has read and approved', which implicitly routes unreviewed text elsewhere. It also names list_scheduled_sends as the follow-up for the send_at path, but never explicitly names reply_to_conversation as the alternative for answering an existing thread, leaving a notable sibling boundary to inference.

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