From gmail-mcp
Guidance for using the Gmail MCP tools effectively — search query syntax, labeling conventions, safe send patterns, attachment handling, and unsubscribe flows. Load when the user asks about email, their inbox, or anything involving the `mcp__gmail__*` tools.
npx claudepluginhub bengold/gmail-mcpThis skill uses the workspace's default tool permissions.
This skill covers how to use the bundled Gmail MCP server correctly.
Enforces C++ Core Guidelines for writing, reviewing, and refactoring modern C++ code (C++17+), promoting RAII, immutability, type safety, and idiomatic practices.
Provides patterns for shared UI in Compose Multiplatform across Android, iOS, Desktop, and Web: state management with ViewModels/StateFlow, navigation, theming, and performance.
Implements Playwright E2E testing patterns: Page Object Model, test organization, configuration, reporters, artifacts, and CI/CD integration for stable suites.
This skill covers how to use the bundled Gmail MCP server correctly.
Gmail's query language is the most powerful way to filter. Prefer it over listing + client-side filtering.
| Intent | Query |
|---|---|
| Unread in inbox | in:inbox is:unread |
| From a person | from:alice@x.com |
| With attachments | has:attachment |
| Large messages | larger:5M |
| Time window | newer_than:7d, older_than:1y, after:2026/01/01 |
| Specific label | label:work |
| Category | category:promotions (also: updates, social, forums) |
| Thread with X | from:alice OR to:alice |
| Exact phrase | "launch plan" |
| Exclude | -from:noreply@ |
INBOX, SENT, DRAFT, TRASH, SPAM, UNREAD, STARRED, IMPORTANT, CATEGORY_PERSONAL, CATEGORY_PROMOTIONS, CATEGORY_SOCIAL, CATEGORY_UPDATES, CATEGORY_FORUMS.
Common label recipes:
INBOX.UNREAD.UNREAD.STARRED.gmail_trash (don't add TRASH manually).gmail_create_draft, show the draft, then gmail_send_draft after user confirmation.gmail_reply — it handles In-Reply-To, References, and threadId for correct threading.gmail_forward — it builds the proper "Forwarded message" quote.gmail_send / gmail_reply / gmail_forward without the user seeing the final content first.gmail_get_attachment returns base64 content inline for files ≤ 1 MB; otherwise metadata only. Save to the user's workspace with a descriptive filename.attachments array with { filename, mimeType, dataBase64 }. Use standard base64, NOT base64url. Keep each attachment under ~10 MB to stay well inside Worker limits.gmail_inspect_unsubscribe to see what's available.gmail_unsubscribe to act on it — it will:
List-Unsubscribe=One-Click) when supported.mailto: command the sender requested.gmail_batch_modify_labels (up to 1000 ids per call) over looping gmail_modify_labels.All list tools accept pageToken. When the user asks for "all" of something, either page until exhaustion (be careful — quota is 250 units/user/second) or offer to process the first page and continue on request.
gmail_delete unless the user explicitly says "permanently delete". gmail_trash is the safe default.To recipients, From a real person) without confirmation.