Gmail
Manage your Gmail inbox � send and read emails, organize with labels, manage drafts and threads, handle attachments, and configure vacation auto-reply through…
What it can do
- Gmail List Messages: List messages in the mailbox. Supports Gmail search syntax for filtering (e.g., from:, to:, subject:, is:unread, has:attachment).
- Gmail Get Message: Get a specific message by ID. Returns headers, body, labels, and metadata. Use format=full for parsed body or format=raw for RFC 2822.
- Gmail Send Message: Send an email message. Supports plain text and HTML body, CC, BCC, and replying to threads.
What data it sees
Do you need an account
An API key from the service settings is required
Manage your Gmail inbox � send and read emails, organize with labels, manage drafts and threads, handle attachments, and configure vacation auto-reply through 28 MCP tools.
Features
- Send, read, and search emails with Gmail search syntax
- Manage drafts (create, update, send)
- Organize with labels (create, update, apply to messages)
- Thread-based conversation management
- Batch operations for bulk label changes and deletions
- Attachment retrieval
- Vacation auto-reply settings
- Full OAuth 2.0 authentication with refresh tokens
28 Tools
Messages (10): List, get, send, delete, trash, untrash, modify labels, batch delete, batch modify, get attachment
Drafts (6): List, get, create, update, delete, send
Labels (5): List, get, create, update, delete
Threads (5): List, get, modify labels, trash, untrash
Settings (2): Get profile, update vacation auto-reply
Configuration
GOOGLE_CLIENT_ID� OAuth 2.0 Client ID from Google Cloud ConsoleGOOGLE_CLIENT_SECRET� OAuth 2.0 Client SecretGOOGLE_REFRESH_TOKEN� Refresh token with Gmail scope
How to connect
How to connect Gmail to Claude
The server address to paste into Claude settings:
https://gmail-mcp--node2flow.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Gmail to ChatGPT
The server address to paste into ChatGPT settings:
https://gmail-mcp--node2flow.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Gmail to Cursor
The server address to paste into Cursor settings:
https://gmail-mcp--node2flow.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (28)
Raw names from tools/list. Only developers need these.
| gmail_list_messages | List messages in the mailbox. Supports Gmail search syntax for filtering (e.g., from:, to:, subject:, is:unread, has:attachment). |
| gmail_get_message | Get a specific message by ID. Returns headers, body, labels, and metadata. Use format=full for parsed body or format=raw for RFC 2822. |
| gmail_send_message | Send an email message. Supports plain text and HTML body, CC, BCC, and replying to threads. |
| gmail_delete_message | Permanently delete a message. This action is irreversible — use gmail_trash_message for safe deletion. |
| gmail_trash_message | Move a message to the trash. Can be undone with gmail_untrash_message. |
| gmail_untrash_message | Remove a message from the trash, restoring it to its original location. |
| gmail_modify_message | Add or remove labels on a message. Use this to mark as read/unread, star/unstar, or apply custom labels. |
| gmail_batch_delete | Permanently delete multiple messages at once. Maximum 1000 IDs per request. Irreversible. |
| gmail_batch_modify | Add or remove labels on multiple messages at once. Maximum 1000 IDs per request. |
| gmail_get_attachment | Get attachment data for a message. Returns base64url-encoded data. Find attachment IDs in the message payload parts. |
| gmail_list_drafts | List all drafts in the mailbox. |
| gmail_get_draft | Get a specific draft by ID, including the draft message content. |
| gmail_create_draft | Create a new draft email. The draft can be sent later with gmail_send_draft. |
| gmail_update_draft | Update an existing draft with new content. Replaces the entire draft message. |
| gmail_delete_draft | Delete a draft. This permanently removes the draft. |
| gmail_send_draft | Send an existing draft. The draft is removed from the drafts list after sending. |
| gmail_list_labels | List all labels in the mailbox, including system labels (INBOX, SENT, etc.) and user-created labels. |
| gmail_get_label | Get details for a specific label, including message and thread counts. |
| gmail_create_label | Create a new user label for organizing messages. |
| gmail_update_label | Update a label name, visibility, or color. |
| gmail_delete_label | Delete a user-created label. System labels cannot be deleted. Messages with this label are not deleted. |
| gmail_list_threads | List email threads (conversations). Supports the same search syntax as gmail_list_messages. |
| gmail_get_thread | Get all messages in a thread (conversation). Returns the complete email chain. |
| gmail_modify_thread | Add or remove labels on all messages in a thread. |
| gmail_trash_thread | Move all messages in a thread to the trash. |
| gmail_untrash_thread | Remove all messages in a thread from the trash. |
| gmail_get_profile | Get the authenticated user's Gmail profile — email address, total message count, total thread count, and history ID. |
| gmail_update_vacation | Enable or disable vacation auto-reply (out of office) with custom response message. |