Skip to main content
Glama
flt-sudo

gmail-mcp-server

by flt-sudo

Send Gmail message

gmail_send_message

Send a plain-text email to specified recipients from a stored Gmail account, with optional CC, BCC, and account selection. Requires send access; returns confirmation with message and thread IDs.

Instructions

Send a new plain-text email from one of the stored accounts. REQUIRES the account to have been added with access: "send".

Args:

  • to (string[], required), cc (string[], optional), bcc (string[], optional): recipient addresses.

  • subject (string, required), body (string, required): plain text (v1 — no HTML, no attachments).

  • account (string, optional): email or alias to send FROM. Omit for the default account.

Returns: confirmation echoing the sending account, recipients, and the new message and thread ids.

Examples:

  • {"to": ["alice@example.com"], "subject": "Meeting notes", "body": "Attached below..."}

  • {"to": ["a@x.com"], "cc": ["b@x.com"], "subject": "Hi", "body": "...", "account": "work"}

Error Handling: if the account was added read-only, this returns an instruction to re-add it with access: "send" (use gmail_create_draft instead if the account should not send).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ccNoCC recipients.
toYesRecipient email addresses.
bccNoBCC recipients.
bodyYesPlain-text message body.
accountNoEmail or alias of the account to use. Omit to use the default account. Call gmail_list_accounts if unsure.
subjectYesMessage subject.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, and the description is consistent. It adds the requirement of 'send' access, describes the return confirmation (sending account, recipients, message and thread ids), and explains the error path for read-only accounts. No contradiction with annotations.

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 well-structured with Args, Returns, Examples, and Error Handling sections. The first sentence front-loads the core purpose. It is detailed but not redundant; every section adds information an agent needs.

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 mutation tool with 6 parameters and no output schema, the description covers the required access, parameter semantics, return format, error handling, and a routing alternative. An agent can confidently invoke it correctly.

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 description coverage is 100%, so the baseline is 3. The description adds value by providing concrete examples, clarifying the 'account' parameter as an email or alias with a default, and noting that cc/bcc are optional arrays. This goes beyond the schema's terse descriptions.

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 'Send a new plain-text email from one of the stored accounts' – a specific verb and resource, and explicitly notes constraints (plain-text, no HTML/attachments) that distinguish it from siblings like gmail_create_draft and gmail_reply_to_thread.

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?

It explicitly states the prerequisite (account must have been added with access: 'send'), explains the default account behavior, and gives a clear alternative (gmail_create_draft) with the condition when to use it. The error handling section reinforces this.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.