Gmail MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HA_WEBHOOK_URL | No | The Home Assistant webhook URL (e.g., http://homeassistant.local:8123/api/webhook/gmail_summary) | |
| GOOGLE_CLIENT_ID | Yes | Your Google OAuth client ID from Google Cloud Console | |
| HA_LONG_LIVED_TOKEN | No | Your Home Assistant long-lived access token | |
| GOOGLE_CLIENT_SECRET | Yes | Your Google OAuth client secret from Google Cloud Console |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gmail_searchA | Search emails using Gmail query syntax. Returns a list of matching emails with subject, sender, date, and snippet. Use Gmail search operators like 'from:', 'to:', 'subject:', 'is:unread', 'has:attachment', 'after:', 'before:'. |
| gmail_list_unreadB | List unread emails from the inbox. Optionally filter by a pre-configured category such as navy, kids, financial, or action_required. |
| gmail_get_emailA | Get the full content of a specific email by its Gmail message ID. Returns subject, sender, recipients, date, labels, and full body text. |
| gmail_daily_summaryC | Generate a summary of recent emails organized by category. Shows unread counts and top emails in each category (Navy, Kids, Financial, Action Items). |
| gmail_category_summaryC | Get a summary of unread emails in one specific category. Returns email count and list of emails matching that category. |
| gmail_inbox_statsB | Get current inbox statistics including total messages, unread count, starred count, and important message count. |
| gmail_get_prioritiesA | Get priority emails based on the 'known_priorities' category in categories.yaml. Searches for emails matching configured senders (Navy, schools, family) and subjects (orders, deployments, scouts, financial alerts). Automatically excludes routine items like autopay confirmations. |
| gmail_get_packagesA | Get package delivery and shipping notification emails. Finds tracking info from Amazon, UPS, FedEx, USPS, and other carriers. Always includes read emails since you want to track all pending deliveries. |
| gmail_list_labelsA | List all Gmail labels including both system labels (INBOX, SENT, etc.) and user-created labels. Returns label names and IDs. |
| gmail_create_labelB | Create a new Gmail label with optional custom colors. Returns the new label's ID. |
| gmail_delete_labelA | Delete a Gmail label by name or ID. Cannot delete system labels. Requires confirmation. |
| gmail_rename_labelA | Rename an existing Gmail label. Cannot rename system labels. |
| gmail_add_label_to_messagesB | Add a label to one or more messages. Can specify messages by IDs or by search query. |
| gmail_remove_label_from_messagesB | Remove a label from one or more messages. Can specify messages by IDs or by search query. |
| gmail_get_categoriesA | List the configured email categories and their matching rules. Shows how emails are automatically categorized based on sender, subject, and labels. |
| gmail_mark_as_read_by_idsA | Mark specific emails as read using their message IDs. Requires confirmation to execute. |
| gmail_mark_as_read_by_queryA | Mark emails matching a search query as read. Use Gmail query syntax. Requires confirmation. |
| gmail_mark_as_unread_by_idsA | Mark specific emails as unread using their message IDs. Requires confirmation to execute. |
| gmail_mark_as_unread_by_queryA | Mark emails matching a search query as unread. Use Gmail query syntax. Requires confirmation. |
| gmail_send_emailB | Send an email. Can send new emails or reply to existing threads. Requires confirmation before sending. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Inbox Statistics | Current inbox statistics including unread count |
| Daily Summary | Daily email summary organized by category |
TDQS
Scored across 20 tools
Most tools have distinct purposes, such as gmail_get_email for retrieving full content and gmail_search for querying emails. However, some overlap exists between gmail_list_unread and gmail_category_summary, which both handle unread emails by category, potentially causing confusion. Overall, descriptions help clarify boundaries, but minor ambiguities remain.
All tool names follow a consistent snake_case pattern with a 'gmail_' prefix and descriptive verb_noun combinations, such as gmail_create_label and gmail_send_email. This predictability makes it easy for agents to understand and select tools without confusion or inconsistency in naming conventions.
With 20 tools, the count is borderline high for a Gmail-focused server, as it may feel heavy and could indicate over-specialization. While the tools cover various aspects like labels, summaries, and email management, a more streamlined set might improve usability without sacrificing functionality.
The tool set provides comprehensive coverage for Gmail operations, including CRUD for labels (create, delete, rename), email lifecycle management (send, read/unread, search), and specialized functions like summaries and package tracking. No significant gaps are apparent, ensuring agents can handle most email-related tasks effectively.