Skip to main content
Glama

messages_send_email

Destructive

Compose and send an email — with subject, CC/BCC, and attachments. Use for email; for chat messages (Telegram/WhatsApp/livechat) use messages.send instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ccNoEmail addresses to CC. OMIT to skip.
bccNoEmail addresses to BCC. OMIT to skip.
textNoEmail body.
subjectNoEmail subject line. Required for new emails; for replies it auto-generates 'Re: ...' when omitted.
attachmentsNoArray of integer file IDs to attach.
in_workspaceNoRun this one call in this workspace id instead of the session's. Nothing is stored; other sessions are not affected.
recipient_emailNoRecipient email address (e.g. 'john@example.com'). Provide to start a new email thread; OMIT to reply in the current email thread.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / in_workspace
      Added value: +{
      +  "description": "Run this one call in this workspace id instead of the session's. Nothing is stored; other sessions are not affected.",
      +  "type": "integer"
      +}
  2. Added
  3. Removed
  4. Added

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, openWorldHint=true, idempotentHint=false and readOnlyHint=false, so the agent knows this is an irreversible external write. The description adds no behavioral context beyond that (no irreversibility warning, no auth/recipient-verification note, no delivery semantics), so with annotations carrying the safety profile a 3 is appropriate.

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?

Two short sentences, zero filler, with the capability statement front-loaded and the routing rule immediately after. Every clause earns its place.

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 7-parameter tool with full schema coverage and complete annotations, the description covers purpose and channel routing adequately; the reply-vs-new-thread and workspace-scoping behavior are fully specified in the schema. It stops just short of noting that sending is irreversible, but nothing essential to correct invocation is missing.

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%; the description only echoes field names (subject, CC/BCC, attachments) already documented in the schema. It adds no format or reply-vs-new-thread semantics beyond what the schema's own parameter descriptions provide, so 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 concrete verb pair ('Compose and send') and resource ('an email') plus the salient fields (subject, CC/BCC, attachments). It explicitly distinguishes itself from the chat-messaging sibling messages.send, so an agent can route 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?

Names the alternative explicitly ('for chat messages (Telegram/WhatsApp/livechat) use messages.send instead') and gives the condition that selects it (email vs chat channel). This is the when/when-not/alternative pattern in two sentences.

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.