Skip to main content
Glama
ZatesloFL

Google Workspace MCP Server

by ZatesloFL

send_gmail_message

Send emails or replies via Gmail with optional CC, BCC, and threading support. Specify recipient, subject, body, and user email to manage email communication effectively.

Instructions

Sends an email using the user's Gmail account. Supports both new emails and replies.

Args: to (str): Recipient email address. subject (str): Email subject. body (str): Email body (plain text). cc (Optional[str]): Optional CC email address. bcc (Optional[str]): Optional BCC email address. user_google_email (str): The user's Google email address. Required. thread_id (Optional[str]): Optional Gmail thread ID to reply within. When provided, sends a reply. in_reply_to (Optional[str]): Optional Message-ID of the message being replied to. Used for proper threading. references (Optional[str]): Optional chain of Message-IDs for proper threading. Should include all previous Message-IDs.

Returns: str: Confirmation message with the sent email's message ID.

Examples: # Send a new email send_gmail_message(to="user@example.com", subject="Hello", body="Hi there!")

# Send an email with CC and BCC
send_gmail_message(
    to="user@example.com",
    cc="manager@example.com",
    bcc="archive@example.com",
    subject="Project Update",
    body="Here's the latest update..."
)

# Send a reply
send_gmail_message(
    to="user@example.com",
    subject="Re: Meeting tomorrow",
    body="Thanks for the update!",
    thread_id="thread_123",
    in_reply_to="<message123@gmail.com>",
    references="<original@gmail.com> <message123@gmail.com>"
)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bccNoOptional BCC email address.
bodyYesEmail body (plain text).
ccNoOptional CC email address.
in_reply_toNoOptional Message-ID of the message being replied to.
referencesNoOptional chain of Message-IDs for proper threading.
subjectYesEmail subject.
thread_idNoOptional Gmail thread ID to reply within.
toYesRecipient email address.
user_google_emailYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool sends emails (a write operation) and returns a confirmation message, which is basic behavioral context. However, it lacks details on permissions required (e.g., Gmail API scopes), rate limits, error handling, or whether it modifies existing data (e.g., thread updates), leaving gaps for a mutation tool.

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?

The description is well-structured and appropriately sized: it starts with a clear purpose statement, followed by organized sections for Args, Returns, and Examples. Every sentence adds value, such as explaining parameter roles and demonstrating use cases, with no redundant or verbose content.

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?

Given the tool's complexity (9 parameters, mutation operation) and no annotations, the description does a good job covering purpose, parameters, and examples. An output schema exists (implied by 'Returns'), so explaining return values isn't needed. However, it lacks details on behavioral aspects like authentication or error handling, which are important for a send-email tool, preventing a perfect score.

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 high (89%), so the baseline is 3. The description adds value by grouping parameters in the 'Args' section with brief explanations and providing examples that illustrate usage patterns (e.g., how 'thread_id' enables replies). This enhances understanding beyond the schema, though it doesn't fully compensate for the 11% coverage gap (e.g., 'user_google_email' lacks description in schema).

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 clearly states the tool's purpose: 'Sends an email using the user's Gmail account. Supports both new emails and replies.' It specifies the verb ('sends'), resource ('email'), and distinguishes its dual functionality (new emails and replies) from sibling tools like 'draft_gmail_message' (which only drafts) and 'send_message' (which is generic).

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?

The description provides clear context for usage: 'Supports both new emails and replies' and includes examples showing when to use it for new emails versus replies. However, it does not explicitly state when not to use it (e.g., vs. 'draft_gmail_message' for drafting without sending) or mention alternatives, which prevents a perfect score.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ZatesloFL/google_workspace_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server