# How to connect Gmail to Claude Cowork

```json
{
  "title": "How to connect Gmail to Claude Cowork",
  "toolkit": "Gmail",
  "toolkit_slug": "gmail",
  "framework": "Claude Cowork",
  "framework_slug": "claude-cowork",
  "url": "https://composio.dev/toolkits/gmail/framework/claude-cowork",
  "markdown_url": "https://composio.dev/toolkits/gmail/framework/claude-cowork.md",
  "updated_at": "2026-05-12T10:13:20.011Z"
}
```

## Introduction

Cowork is Anthropic's AI agent for knowledge work. Think of it as Claude Code for everything else. It works autonomously with your computer, local files, and applications to accomplish complex tasks.
This guide walks you through the easiest and most secure way to connect your Gmail account to Cowork via Composio Connect, enabling it to summarize unread emails from this morning, create draft replies to urgent messages, fetch contact details for recent senders, and more such actions on your behalf without compromising your account security.

## Also integrate Gmail with

- [ChatGPT](https://composio.dev/toolkits/gmail/framework/chatgpt)
- [OpenAI Agents SDK](https://composio.dev/toolkits/gmail/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/gmail/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/gmail/framework/claude-code)
- [Codex](https://composio.dev/toolkits/gmail/framework/codex)
- [Cursor](https://composio.dev/toolkits/gmail/framework/cursor)
- [VS Code](https://composio.dev/toolkits/gmail/framework/vscode)
- [OpenCode](https://composio.dev/toolkits/gmail/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/gmail/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/gmail/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/gmail/framework/cli)
- [Google ADK](https://composio.dev/toolkits/gmail/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/gmail/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/gmail/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/gmail/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/gmail/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/gmail/framework/crew-ai)

## Connect Gmail to Claude Cowork

### Connecting Gmail to Claude Cowork
1. Open Customize
In Claude Desktop, click Customize in the left sidebar, then select Connectors and click the + icon at the top.
2. Add the Composio MCP server
Click Add custom connector and paste in the Composio MCP server URL:

```bash
https://connect.composio.dev/mcp
```

## What is Claude Cowork?

Claude Cowork is Anthropic's agent for general knowledge work. It can use your computer, files, and connected applications to complete longer-running tasks across your work tools.
With Composio Connect, Cowork can securely access apps like Gmail through MCP without you sharing account credentials directly with the agent.

## What is the Gmail MCP server, and what's possible with it?

The Gmail MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Gmail account. It provides structured and secure access to your email, so your agent can search, read, draft, organize, and even manage contacts in your mailbox—all on your behalf.
- Advanced email search and retrieval: Effortlessly instruct your agent to fetch emails by sender, subject, label, date, or keywords, and even retrieve full message content or threads.
- Automated drafting and sending: Have your agent create new email drafts, craft replies, add CC/BCC, include attachments, and handle threading to streamline communication.
- Smart label and inbox organization: Let the agent create new labels, apply or remove labels from emails, and keep your inbox clutter-free by archiving or moving messages.
- Contact and thread management: Fetch your Gmail contacts, pull entire conversation threads, or download specific attachments to make follow-ups a breeze.
- Email and draft cleanup: Direct your agent to permanently delete emails or drafts, helping you maintain a tidy mailbox with minimal effort.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `GMAIL_ADD_LABEL_TO_EMAIL` | Modify email labels | Adds and/or removes specified Gmail labels for a message; ensure `message_id` and all `label_ids` are valid (use 'listLabels' for custom label IDs). |
| `GMAIL_BATCH_DELETE_MESSAGES` | Batch delete Gmail messages | Tool to permanently delete multiple Gmail messages in bulk, bypassing Trash with no recovery possible. Use when you need to efficiently remove large numbers of emails (e.g., retention enforcement, mailbox hygiene). Use GMAIL_MOVE_TO_TRASH instead when reversibility may be needed. Always obtain explicit user confirmation and verify a sample of message IDs before executing. High-volume calls may trigger 429 rateLimitExceeded or 403 userRateLimitExceeded errors; apply exponential backoff. |
| `GMAIL_BATCH_MODIFY_MESSAGES` | Batch modify Gmail messages | Modify labels on multiple Gmail messages in one efficient API call. Supports up to 1,000 messages per request for bulk operations like archiving, marking as read/unread, or applying custom labels. High-volume calls may return 429 rateLimitExceeded or 403 userRateLimitExceeded; apply exponential backoff. |
| `GMAIL_CREATE_EMAIL_DRAFT` | Create email draft | Creates a Gmail email draft. While all fields are optional per the Gmail API, practical validation requires at least one of recipient_email, cc, or bcc and at least one of subject or body. Supports To/Cc/Bcc recipients, subject, plain/HTML body (ensure `is_html=True` for HTML), attachments, and threading. Returns a draft_id that must be used as-is with GMAIL_SEND_DRAFT — synthetic or stale IDs will fail. When creating a draft reply to an existing thread (thread_id provided), leave subject empty to stay in the same thread; setting a subject will create a NEW thread instead. HTTP 429 may occur on rapid creation/send sequences; apply exponential backoff. |
| `GMAIL_CREATE_FILTER` | Create Gmail filter | Tool to create a new Gmail filter with specified criteria and actions. Use when the user wants to automatically organize incoming messages based on sender, subject, size, or other criteria. Note: you can only create a maximum of 1,000 filters per account. |
| `GMAIL_CREATE_LABEL` | Create label | Creates a new label with a unique name in the specified user's Gmail account. Returns a labelId (e.g., 'Label_123') required for downstream tools like GMAIL_ADD_LABEL_TO_EMAIL, GMAIL_BATCH_MODIFY_MESSAGES, and GMAIL_MODIFY_THREAD_LABELS — those tools do not accept display names. |
| `GMAIL_CREATE_PROMPT_POST` | Create Prompt Post | Send a one-shot prompt to the Sanity Content Agent. Stateless one-shot prompt endpoint. No thread management or message persistence. Ideal for simple, single-turn interactions. Use when you need to send a single prompt and receive a response without maintaining conversation context. |
| `GMAIL_DELETE_DRAFT` | Delete Draft | Permanently deletes a specific Gmail draft using its ID with no recovery possible; verify the correct `draft_id` and obtain explicit user confirmation before calling. Ensure the draft exists and the user has necessary permissions for the given `user_id`. |
| `GMAIL_DELETE_FILTER` | Delete Gmail filter | Tool to permanently delete a Gmail filter by its ID. Use when you need to remove an existing email filtering rule. |
| `GMAIL_DELETE_LABEL` | Delete label from account (permanent) | Permanently DELETES a user-created Gmail label from the account (not from a message). WARNING: This action DELETES the label definition itself, removing it from all messages. System labels (INBOX, SENT, UNREAD, etc.) cannot be deleted. To add/remove labels from specific messages, use GMAIL_ADD_LABEL_TO_EMAIL action instead. |
| `GMAIL_DELETE_MESSAGE` | Delete message | Permanently deletes a specific email message by its ID from a Gmail mailbox; for `user_id`, use 'me' for the authenticated user or an email address to which the authenticated user has delegated access. |
| `GMAIL_DELETE_THREAD` | Delete thread | Tool to immediately and permanently delete a specified thread and all its messages. This operation cannot be undone. Use threads.trash instead for reversible deletion. |
| `GMAIL_FETCH_EMAILS` | Fetch emails | Fetches a list of email messages from a Gmail account, supporting filtering, pagination, and optional full content retrieval. Results are NOT sorted by recency; sort by internalDate client-side. The messages field may be absent or empty (valid no-results state); always null-check before accessing messageId or threadId. Null-check subject and header fields before string operations. For large result sets, prefer ids_only=true or metadata-only listing, then hydrate via GMAIL_FETCH_MESSAGE_BY_MESSAGE_ID. |
| `GMAIL_FETCH_MESSAGE_BY_MESSAGE_ID` | Fetch message by message ID | Fetches a specific email message by its ID, provided the `message_id` exists and is accessible to the authenticated `user_id`. Spam/trash messages are excluded unless upstream list/search calls used `include_spam_trash=true`. Use `internalDate` (milliseconds since epoch) rather than header `Date` for recency checks. |
| `GMAIL_FETCH_MESSAGE_BY_THREAD_ID` | Fetch Message by Thread ID | Retrieves messages from a Gmail thread using its `thread_id`, where the thread must be accessible by the specified `user_id`. Returns a `messages` array; `thread_id` is not echoed in the response. Message order is not guaranteed — sort by `internalDate` to find oldest/newest. Check `labelIds` per message to filter drafts. Concurrent bulk calls may trigger 403 `userRateLimitExceeded` or 429; cap concurrency ~10 and use exponential backoff. |
| `GMAIL_FORWARD_MESSAGE` | Forward email message | Forward an existing Gmail message to specified recipients, preserving original body and attachments. Verify recipients and content before forwarding to avoid unintended exposure. Bulk forwarding may trigger 429/5xx rate limits; keep concurrency to 5–10 and apply backoff. Messages near Gmail's size limits may fail; reconstruct a smaller draft if needed. |
| `GMAIL_GET_ATTACHMENT` | Get Gmail attachment | Retrieves a specific attachment by ID from a message in a user's Gmail mailbox, requiring valid message and attachment IDs. Returns base64url-encoded binary data (up to ~25 MB); the downloaded file location is at data.file.s3url (also exposes mimetype and name; no s3key). Attachments exceeding ~25 MB may be exposed as Google Drive links — use GOOGLEDRIVE_DOWNLOAD_FILE when a Drive file_id is present instead. |
| `GMAIL_GET_AUTO_FORWARDING` | Get Auto-Forwarding Settings | Tool to get the auto-forwarding setting for the specified account. Use when you need to retrieve the current auto-forwarding configuration including enabled status, forwarding email address, and message disposition. |
| `GMAIL_GET_CONTACTS` | Get contacts | Fetches contacts (connections) for the authenticated Google account, allowing selection of specific data fields and pagination. Only covers saved contacts and 'Other Contacts'; email-header-only senders are out of scope. Contact records may have sparse data — handle missing fields gracefully. People API shares a per-user QPS quota; HTTP 429 requires exponential backoff (1s, 2s, 4s). |
| `GMAIL_GET_DRAFT` | Get Draft | Retrieves a single Gmail draft by its ID. Use this to fetch and inspect draft content before sending via GMAIL_SEND_DRAFT. The format parameter controls the level of detail returned. |
| `GMAIL_GET_FILTER` | Get Gmail filter | Tool to retrieve a specific Gmail filter by its ID. Use when you need to inspect the criteria and actions of an existing filter. |
| `GMAIL_GET_LABEL` | Get label details | Gets details for a specified Gmail label. Use this to retrieve label information including name, type, visibility settings, message/thread counts, and color. |
| `GMAIL_GET_LANGUAGE_SETTINGS` | Get Language Settings | Tool to retrieve the language settings for a Gmail user. Use when you need to determine the display language preference for the authenticated user or a specific Gmail account. |
| `GMAIL_GET_PEOPLE` | Get People | Retrieves either a specific person's details (using `resource_name`) or lists 'Other Contacts' (if `other_contacts` is true), with `person_fields` specifying the data to return. Scope is limited to the authenticated user's own contacts and 'Other Contacts' history only. |
| `GMAIL_GET_PROFILE` | Get Profile | Retrieves Gmail profile information (email address, aggregate messagesTotal/threadsTotal, historyId) for a user. messagesTotal counts individual emails; threadsTotal counts conversations; neither is per-label — use GMAIL_FETCH_EMAILS with label filters for label-specific counts. The returned historyId seeds incremental sync via GMAIL_LIST_HISTORY; if historyIdTooOld is returned, rescan with GMAIL_FETCH_EMAILS before resuming. Response may be wrapped under a top-level data field; unwrap before reading fields. A successful call confirms mailbox connectivity but not full mailbox access if granted scopes are narrow. Use the returned email address to dynamically identify the authenticated account rather than hard-coding it. |
| `GMAIL_GET_VACATION_SETTINGS` | Get Vacation Settings | Tool to retrieve vacation responder settings for a Gmail user. Use when you need to check if out-of-office auto-replies are configured and view their content. |
| `GMAIL_IMPORT_MESSAGE` | Import message | Tool to import a message into the user's mailbox with standard email delivery scanning and classification. Use when you need to add an existing email to a Gmail account without sending it through SMTP. This method doesn't perform SPF checks, so it might not work for some spam messages. |
| `GMAIL_INSERT_MESSAGE` | Insert message into mailbox | Tool to insert a message into the user's mailbox similar to IMAP APPEND. Use when you need to add an email directly to a mailbox bypassing most scanning and classification. This does not send a message. |
| `GMAIL_LIST_CSE_IDENTITIES` | List CSE identities | Tool to list client-side encrypted identities for an authenticated user. Use when you need to retrieve CSE identity configurations including key pair associations. |
| `GMAIL_LIST_CSE_KEYPAIRS` | List CSE key pairs | Tool to list client-side encryption key pairs for an authenticated user. Use when you need to retrieve CSE keypair configurations including public keys and enablement states. Supports pagination for large result sets. |
| `GMAIL_LIST_DRAFTS` | List Drafts | Retrieves a paginated list of email drafts from a user's Gmail account. Use verbose=true to get full draft details including subject, body, sender, and timestamp. Draft ordering is non-guaranteed; iterate using page_token until it is absent to retrieve all drafts. Newly created drafts may not appear immediately. Rapid calls may trigger 403 userRateLimitExceeded or 429 errors; apply exponential backoff (1s, 2s, 4s) before retrying. |
| `GMAIL_LIST_FILTERS` | List Gmail filters | Tool to list all Gmail filters (rules) in the mailbox. Use for security audits to detect malicious filter rules or before creating new filters to avoid duplicates. |
| `GMAIL_LIST_FORWARDING_ADDRESSES` | List forwarding addresses | Tool to list all forwarding addresses for the specified Gmail account. Use when you need to retrieve the email addresses that are allowed to be used for forwarding messages. |
| `GMAIL_LIST_HISTORY` | List Gmail history | Tool to list Gmail mailbox change history since a known startHistoryId. Use for incremental mailbox syncs. Persist the latest historyId as a checkpoint across sessions; without it, incremental sync is unreliable. An empty history list in the response is valid and means no new changes occurred. |
| `GMAIL_LIST_LABELS` | List Gmail labels | Retrieves all system and user-created labels for a Gmail account in a single unpaginated response. Primary use: obtain internal label IDs (e.g., 'Label_123') required by other Gmail tools — display names cannot be used as label identifiers and cause silent failures or errors. System labels (INBOX, UNREAD, SPAM, TRASH, etc.) are case-sensitive and must be used exactly as returned; INBOX, SPAM, and TRASH are read-only and cannot be added/removed via label modification tools. The Gmail search 'label:' operator accepts display names, but label_ids parameters in tools like GMAIL_FETCH_EMAILS require internal IDs from this tool — mixing conventions yields zero results silently. Do not hardcode label IDs across sessions; refresh via this tool on conflict errors. |
| `GMAIL_LIST_SEND_AS` | List send-as aliases | Lists the send-as aliases for a Gmail account, including the primary address and custom 'from' aliases. Use when you need to retrieve available sending addresses for composing emails. |
| `GMAIL_LIST_SMIME_INFO` | List S/MIME configs | Lists S/MIME configs for the specified send-as alias. Use when you need to retrieve all S/MIME certificate configurations associated with a specific send-as email address. |
| `GMAIL_LIST_THREADS` | List threads | Retrieves a list of email threads from a Gmail account, identified by `user_id` (email address or 'me'), supporting filtering and pagination. Spam and trash are excluded by default unless explicitly targeted via `label:spam` or `label:trash` in the query. |
| `GMAIL_MODIFY_THREAD_LABELS` | Modify thread labels | Adds or removes specified existing label IDs from a Gmail thread, affecting all its messages; ensure the thread ID is valid. To modify a single message only, use a message-level tool instead. |
| `GMAIL_MOVE_THREAD_TO_TRASH` | Trash thread | Moves the specified thread to the trash. Any messages that belong to the thread are also moved to the trash. |
| `GMAIL_MOVE_TO_TRASH` | Move to Trash | Moves an existing, non-deleted email message to the trash for the specified user. Trashed messages are recoverable and still count toward storage quota until purged. Prefer this over GMAIL_BATCH_DELETE_MESSAGES when recovery may be needed. For bulk operations, use GMAIL_BATCH_MODIFY_MESSAGES or GMAIL_BATCH_DELETE_MESSAGES instead of repeated calls to this tool. |
| `GMAIL_PATCH_LABEL` | Patch Label | Patches the specified user-created label. System labels (e.g., INBOX, SENT, SPAM) cannot be modified and will be rejected. |
| `GMAIL_PATCH_SEND_AS` | Patch send-as alias | Tool to patch the specified send-as alias for a Gmail user. Use when you need to update properties of an existing send-as email address such as display name, reply-to address, signature, default status, or SMTP configuration. |
| `GMAIL_REPLY_TO_THREAD` | Reply to email thread | Sends a reply within a specific Gmail thread using the original thread's subject; do not provide a custom subject as it will start a new conversation instead of replying in-thread. Requires a valid `thread_id` and at least one of `recipient_email`, `cc`, or `bcc`. Supports attachments via the `attachment` parameter with `name`, `mimetype`, and `s3key` fields. |
| `GMAIL_SEARCH_PEOPLE` | Search People | Searches contacts by matching the query against names, nicknames, emails, phone numbers, and organizations, optionally including 'Other Contacts'. Only searches the authenticated user's contact directory — people existing solely in message headers won't appear; use GMAIL_FETCH_EMAILS for those. Results may be zero or multiple; never auto-select from ambiguous results. Results paginate via next_page_token; follow until empty and deduplicate by email. Many records lack emailAddresses or names even when requested — handle missing keys. Directory/organization policies may suppress entries. |
| `GMAIL_SEND_DRAFT` | Send Draft | Sends an existing draft email AS-IS to recipients already defined within the draft. IMPORTANT: This action does NOT accept recipient parameters (to, cc, bcc). The Gmail API's drafts/send endpoint sends drafts to whatever recipients are already set in the draft's To, Cc, and Bcc headers - it cannot add or override recipients. If the draft has no recipients, you must either: 1. Create a new draft with recipients using GMAIL_CREATE_EMAIL_DRAFT, then send it 2. Use GMAIL_SEND_EMAIL to send a new email directly with recipients. Send is immediate and irreversible — confirm recipients and content before calling. No scheduling support; trigger at the desired UTC time externally. Gmail enforces ~25 MB message size limit and daily send caps (~500 recipients/day personal, ~2,000/day Workspace). |
| `GMAIL_SEND_EMAIL` | Send Email | Sends an email via Gmail API using the authenticated user's Google profile display name. Sends immediately and is irreversible — confirm recipients, subject, body, and attachments before calling. At least one of 'to' (or 'recipient_email'), 'cc', or 'bcc' must be provided. At least one of subject or body must be provided. Requires `is_html=True` if the body contains HTML. All common file types including PNG, JPG, PDF, MP4, etc. are supported as attachments. Gmail API limits total message size to ~25 MB after base64 encoding. To reply in an existing thread, use GMAIL_REPLY_TO_THREAD instead. No scheduled send support; enforce timing externally. |
| `GMAIL_SETTINGS_GET_IMAP` | Get IMAP Settings | Retrieves the IMAP settings for a Gmail user account, including whether IMAP is enabled, auto-expunge behavior, expunge behavior, and maximum folder size. |
| `GMAIL_SETTINGS_GET_POP` | Get POP settings | Tool to retrieve POP settings for a Gmail account. Use when you need to check the current POP configuration including access window and message disposition. |
| `GMAIL_SETTINGS_SEND_AS_GET` | Get send-as alias | Tool to retrieve a specific send-as alias configuration for a Gmail user. Use when you need to get details about a send-as email address including display name, signature, SMTP settings, and verification status. Fails with HTTP 404 if the specified address is not a member of the send-as collection. |
| `GMAIL_STOP_WATCH` | Stop watch notifications | Tool to stop receiving push notifications for a Gmail mailbox. Use when you need to disable watch notifications previously set up via the watch endpoint. |
| `GMAIL_UNTRASH_MESSAGE` | Untrash Message | Tool to remove a message from trash in Gmail. Use when you need to restore a previously trashed email message. |
| `GMAIL_UNTRASH_THREAD` | Untrash thread | Tool to remove a thread from trash in Gmail. Use when you need to restore a deleted thread and its messages. |
| `GMAIL_UPDATE_DRAFT` | Update draft | Updates (replaces) an existing Gmail draft's content in-place by draft ID. This action replaces the entire draft content with the new message - it does not patch individual fields. All fields are optional; if not provided, you should provide complete draft content to avoid data loss. |
| `GMAIL_UPDATE_IMAP_SETTINGS` | Update IMAP settings | Tool to update IMAP settings for a Gmail account. Use when you need to modify IMAP configuration such as enabling/disabling IMAP, setting auto-expunge behavior, or configuring folder size limits. |
| `GMAIL_UPDATE_LABEL` | Update Label | Tool to update the properties of an existing Gmail label. Use when you need to modify label name, visibility settings, or color. |
| `GMAIL_UPDATE_LANGUAGE_SETTINGS` | Update Language Settings | Tool to update the language settings for a Gmail user. Use when you need to change the display language preference for the authenticated user or a specific Gmail account. The returned displayLanguage may differ from the requested value if Gmail selects a close variant. |
| `GMAIL_UPDATE_POP_SETTINGS` | Update POP settings | Tool to update POP settings for a Gmail account. Use when you need to configure POP access window or message disposition behavior. |
| `GMAIL_UPDATE_SEND_AS` | Update send-as alias | Tool to update a send-as alias for a Gmail user. Use when you need to modify display name, signature, reply-to address, or SMTP settings for a send-as email address. Gmail sanitizes HTML signatures before saving. Addresses other than the primary can only be updated by service accounts with domain-wide authority. |
| `GMAIL_UPDATE_USER_ATTRIBUTES_VALUES` | Update User Attributes Values | Update user attribute values for a resource. Use this action to set or update custom attributes for a user within an organization or project. When setting a value for an attribute key that also exists in SAML, the Sanity value will take precedence and shadow the SAML value. |
| `GMAIL_UPDATE_VACATION_SETTINGS` | Update Vacation Settings | Tool to update vacation responder settings for a Gmail user. Use when you need to configure out-of-office auto-replies. |

## Supported Triggers

| Trigger slug | Name | Description |
|---|---|---|
| `GMAIL_EMAIL_SENT_TRIGGER` | Email Sent | Triggers when a Gmail message is sent by the authenticated user. It polls the 'SENT' label and emits metadata including sender, recipients, subject, timestamp, and thread ID. |
| `GMAIL_NEW_GMAIL_MESSAGE` | New Gmail Message Received Trigger | Triggers when a new message is received in Gmail. |

## Creating MCP Server - Stand-alone vs Composio SDK

The Gmail MCP server connects Claude Cowork to your Gmail account through Composio. Once connected, Cowork can use the available Gmail tools and triggers to complete tasks on your behalf.

## Complete Code

None listed.

## How to build Gmail MCP Agent with another framework

- [ChatGPT](https://composio.dev/toolkits/gmail/framework/chatgpt)
- [OpenAI Agents SDK](https://composio.dev/toolkits/gmail/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/gmail/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/gmail/framework/claude-code)
- [Codex](https://composio.dev/toolkits/gmail/framework/codex)
- [Cursor](https://composio.dev/toolkits/gmail/framework/cursor)
- [VS Code](https://composio.dev/toolkits/gmail/framework/vscode)
- [OpenCode](https://composio.dev/toolkits/gmail/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/gmail/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/gmail/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/gmail/framework/cli)
- [Google ADK](https://composio.dev/toolkits/gmail/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/gmail/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/gmail/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/gmail/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/gmail/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/gmail/framework/crew-ai)

## Related Toolkits

- [Outlook](https://composio.dev/toolkits/outlook) - Outlook is Microsoft's email and calendaring platform for unified communications and scheduling. It helps users stay organized with powerful email, contacts, and calendar management.
- [Slack](https://composio.dev/toolkits/slack) - Slack is a channel-based messaging platform for teams and organizations. It helps people collaborate in real time, share files, and connect all their tools in one place.
- [Gong](https://composio.dev/toolkits/gong) - Gong is a platform for video meetings, call recording, and team collaboration. It helps teams capture conversations, analyze calls, and turn insights into action.
- [Microsoft teams](https://composio.dev/toolkits/microsoft_teams) - Microsoft Teams is a collaboration platform that combines chat, meetings, and file sharing within Microsoft 365. It keeps distributed teams connected and productive through seamless virtual communication.
- [Slackbot](https://composio.dev/toolkits/slackbot) - Slackbot is a conversational automation tool for Slack that handles reminders, notifications, and automated responses. It boosts team productivity by streamlining onboarding, answering FAQs, and managing timely alerts—all right inside Slack.
- [2chat](https://composio.dev/toolkits/_2chat) - 2chat is an API platform for WhatsApp and multichannel text messaging. It streamlines chat automation, group management, and real-time messaging for developers.
- [Agent mail](https://composio.dev/toolkits/agent_mail) - Agent mail provides AI agents with dedicated email inboxes for sending, receiving, and managing emails. It empowers agents to communicate autonomously with people, services, and other agents—no human intervention needed.
- [Basecamp](https://composio.dev/toolkits/basecamp) - Basecamp is a project management and team collaboration tool by 37signals. It helps teams organize tasks, share files, and communicate efficiently in one place.
- [Chatwork](https://composio.dev/toolkits/chatwork) - Chatwork is a team communication platform with group chats, file sharing, and task management. It helps businesses boost collaboration and streamline productivity.
- [Clickmeeting](https://composio.dev/toolkits/clickmeeting) - ClickMeeting is a cloud-based platform for running online meetings and webinars. It helps businesses and individuals host, manage, and engage virtual audiences with ease.
- [Confluence](https://composio.dev/toolkits/confluence) - Confluence is Atlassian's team collaboration and knowledge management platform. It helps your team organize, share, and update documents and project content in one secure workspace.
- [Dailybot](https://composio.dev/toolkits/dailybot) - DailyBot streamlines team collaboration with chat-based standups, reminders, and polls. It keeps work flowing smoothly in your favorite messaging platforms.
- [Dialmycalls](https://composio.dev/toolkits/dialmycalls) - Dialmycalls is a mass notification service for sending voice and text messages to contacts. It helps teams and organizations quickly broadcast urgent alerts and updates.
- [Dialpad](https://composio.dev/toolkits/dialpad) - Dialpad is a cloud-based business phone and contact center system for teams. It unifies voice, video, messaging, and meetings across your devices.
- [Discord](https://composio.dev/toolkits/discord) - Discord is a real-time messaging and VoIP platform for communities and teams. It lets users chat, share media, and collaborate across public and private channels.
- [Discordbot](https://composio.dev/toolkits/discordbot) - Discordbot is an automation tool for Discord servers that handles moderation, messaging, and user engagement. It helps communities run smoothly by automating routine and complex tasks.
- [Echtpost](https://composio.dev/toolkits/echtpost) - Echtpost is a secure digital communication platform for encrypted document and message exchange. It ensures confidential data stays private and protected during transmission.
- [Egnyte](https://composio.dev/toolkits/egnyte) - Egnyte is a cloud-based platform for secure file sharing, storage, and governance. It helps teams collaborate efficiently while maintaining data compliance and security.
- [Google Meet](https://composio.dev/toolkits/googlemeet) - Google Meet is a secure video conferencing platform for virtual meetings, chat, and screen sharing. It helps teams connect, collaborate, and communicate seamlessly from anywhere.
- [Heartbeat](https://composio.dev/toolkits/heartbeat) - Heartbeat is a plug-and-play platform for building and managing online communities. It helps you organize users, channels, events, and discussions in one place.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Gmail MCP?

With a standalone Gmail MCP server, the agents and LLMs can only access a fixed set of Gmail tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Gmail and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Claude Cowork?

Yes, you can. Claude Cowork fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Gmail tools.

### Can I manage the permissions and scopes for Gmail while using Tool Router?

Yes, absolutely. You can configure which Gmail scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Gmail data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
