Sending mail from an assistant is common; sending it with a file from Google Drive attached, or pulling every attachment off a thread onto disk, is not. Credentials are your own — an OAuth client or a service account with impersonation — so nothing is brokered elsewhere.
A collection of Google-native tools for MCP — Gmail and Calendar — run through bunx and integrated with clients such as Claude and Cursor. Attachment handling is the recent addition: sending from local files or Google Drive in the same message, drafts with attachments, and downloading every attachment on an email.
- Email sent with attachments from local file paths or Google Drive file ids, mixed in the same message (google_gmail_send_email)
- Drafts created with attachments (google_gmail_draft_email)
- Every attachment on an email downloaded to local storage (google_gmail_download_attachments)
- Automatic MIME type detection, filename sanitisation, and custom filenames that override the original
- Gmail's 25MB limit enforced before the send, and name conflicts resolved by automatic renaming
- The Downloads folder detected automatically on Windows, macOS and Linux
- Calendar tools alongside Gmail in the same server, and a one-click .mcpb install from the releases page
Bun, since it runs through bunx. Then either OAuth — a client id, client secret and a token path you choose — or a service account with a client email, private key and a user to impersonate. One or the other, not both.
One command plus a key — bunx --no-cache google-mcp@latest, then supply credentials
