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 |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gmail_search | 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_unread | List unread emails from the inbox. Optionally filter by a pre-configured category such as navy, kids, financial, or action_required. |
| gmail_get_email | 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_summary | 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_summary | Get a summary of unread emails in one specific category. Returns email count and list of emails matching that category. |
| gmail_inbox_stats | Get current inbox statistics including total messages, unread count, starred count, and important message count. |
| gmail_get_priorities | 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_packages | 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_labels | List all Gmail labels including both system labels (INBOX, SENT, etc.) and user-created labels. Returns label names and IDs. |
| gmail_create_label | Create a new Gmail label with optional custom colors. Returns the new label's ID. |
| gmail_delete_label | Delete a Gmail label by name or ID. Cannot delete system labels. Requires confirmation. |
| gmail_rename_label | Rename an existing Gmail label. Cannot rename system labels. |
| gmail_add_label_to_messages | Add a label to one or more messages. Can specify messages by IDs or by search query. |
| gmail_remove_label_from_messages | Remove a label from one or more messages. Can specify messages by IDs or by search query. |
| gmail_get_categories | 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_ids | Mark specific emails as read using their message IDs. Requires confirmation to execute. |
| gmail_mark_as_read_by_query | Mark emails matching a search query as read. Use Gmail query syntax. Requires confirmation. |
| gmail_mark_as_unread_by_ids | Mark specific emails as unread using their message IDs. Requires confirmation to execute. |
| gmail_mark_as_unread_by_query | Mark emails matching a search query as unread. Use Gmail query syntax. Requires confirmation. |
| gmail_send_email | 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 |