A specialized Model Context Protocol (MCP) server that enables you to search, read, delete and send emails from your Gmail account, leveraging an AI Agent to help with each operation.
Mixed quality across 11 tools. Strengths: all tools have descriptions (avg 127 chars, within baseline range), all have input schemas with typed properties, and parameter descriptions are present. Weaknesses: descriptions are functional but brief and lack context for LLM selection; no documented output schemas; parameter constraints are under-specified (missing enums, min/max bounds, format validation); no error handling guidance in descriptions; security patterns not evident in parameter design; tool composition has some redundancy (gmail_send_email_ai vs gmail_send_email_manual split increases complexity without clear mutual benefit).
Uses AI to generate and send an email or reply based on user instructions. User must specify AI or manual. This is AI.
Deletes a draft email by its ID.
Uses AI to generate and send an email or reply based on user instructions. User must specify AI or manual. This is AI.
Retrieves the full content of a specific Gmail draft by its ID.
Retrieves the full content of a specific Gmail message by its ID.
Lists all draft emails in the user's account.
No documented output/response schemas. LLMs cannot infer what fields each tool returns, forcing them to guess downstream field names and risk chaining failures.
Parameter constraints are underspecified. maxResults lacks min/max bounds (no limit on upper bound beyond informal '10' comment); date formats accept two formats but no regex or enum; email addresses lack format validation; no enums for label parameter.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 45 | - | v1 |
Lists recent Gmail messages from the user's inbox with optional filtering.
Searches Gmail messages using Gmail's search syntax.
Uses AI to generate and send an email or reply based on user instructions. User must specify AI or manual. This is AI.
Sends an email or reply with the provided content directly. User must specify AI or manual. This is manual.
Moves a Gmail message to the trash by its ID.
No error handling guidance in tool descriptions. LLMs have no idea what to do if a tool call fails, should they retry, call a lookup tool first, ask the user, or treat it as unrecoverable?
Tool descriptions are functional but brief (avg 127 chars). They explain WHAT but not WHEN or WHY. LLMs cannot distinguish between similar tools (list_emails vs search_emails) based on descriptions alone.
Redundant tool pair: gmail_send_email_ai + gmail_send_email_manual. Both do nearly the same thing; splitting into two tools increases LLM reasoning overhead without clear benefit. Consider merging into a single 'gmail_send_email' with optional 'generate_with_ai' flag.
Redundant tool triplet: gmail_create_draft_ai + gmail_edit_draft_ai + gmail_send_email_ai. All three invoke AI to generate content. The split adds cognitive load; consider a unified 'gmail_draft_with_ai' that can create or edit, plus a separate send step.
gmail_list_emails and gmail_search_emails are near-duplicates. Both retrieve email lists with similar filtering (date range, sender, subject). Tool descriptions do not clarify when to use list vs search. LLMs may invoke both unnecessarily.
No pagination support documented. gmail_list_emails and gmail_list_drafts accept maxResults but do not return a next_cursor or total_count. Large result sets could blow context; no way to fetch the next page.
Parameter 'label' on gmail_list_emails accepts free-form string with no enum or validation. LLMs may invent label names that don't exist, causing silent failures.
No destructive operation confirmation pattern. gmail_delete_draft and gmail_trash_message are irreversible but lack dry-run or confirmation-request capability. Agents could accidentally delete drafts without user consent.