gmail
Server Details
A MCP server for Gmail that lets you search, read, and draft emails and replies.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- mintmcp/servers
- GitHub Stars
- 6
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Score is being calculated. Check back soon.
Available Tools
11 toolsadd_labelsInspect
Add one or more labels to an email message. Use list_labels to find label IDs. Common system label IDs: INBOX, STARRED, IMPORTANT, UNREAD, SPAM, TRASH.
| Name | Required | Description | Default |
|---|---|---|---|
| emailId | Yes | Email ID to add labels to (from search_email or get_email) | |
| labelIds | Yes | Array of label IDs to add (e.g., ['STARRED', 'Label_123']) |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| message | Yes | |
| labelIds | No | |
| threadId | Yes |
create_labelInspect
Create a new Gmail label. Labels can be used to organize emails. After creation, use add_labels to apply the label to messages.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the new label (e.g., 'Projects/Alpha' for nested labels) | |
| labelListVisibility | No | Whether to show the label in the label list: labelShow (default), labelShowIfUnread, or labelHide | |
| messageListVisibility | No | Whether to show the label in the message list: show (default) or hide |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | Yes | |
| type | No | |
| message | Yes |
delete_labelDestructiveInspect
Permanently delete a Gmail label. This removes the label from all messages but does not delete the messages themselves. Only user-created labels can be deleted; system labels (INBOX, SENT, etc.) cannot be removed.
| Name | Required | Description | Default |
|---|---|---|---|
| labelId | Yes | ID of the label to delete (from list_labels) |
Output Schema
| Name | Required | Description |
|---|---|---|
| labelId | Yes | |
| message | Yes |
draft_emailInspect
Create a new email draft saved to the Drafts folder. Use this when composing an email to review or send later. The draft can be sent using send_draft. Plain text is automatically formatted with markdown. Optionally provide HTML for rich formatting.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | CC recipient email addresses | |
| to | Yes | Recipient email addresses (e.g., ['user@example.com']) | |
| bcc | No | BCC recipient email addresses | |
| subject | Yes | Email subject line | |
| body_html | No | Optional HTML version for rich formatting | |
| body_text | Yes | Plain text email body. Supports markdown formatting |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| message | Yes | |
| createdMessage | Yes |
draft_replyInspect
Create a reply draft to an existing email, maintaining the conversation thread. Use this to compose a response that can be reviewed before sending. Automatically adds 'Re: ' prefix to subject and preserves email threading. The reply_all parameter determines whether to reply to all original recipients or just the sender. Plain text supports markdown formatting.
| Name | Required | Description | Default |
|---|---|---|---|
| email_id | Yes | ID of the email to reply to (from search_email or get_email) | |
| body_html | No | Optional HTML version for rich formatting | |
| body_text | Yes | Reply message text. Supports markdown formatting | |
| reply_all | No | true: reply to sender and all recipients. false: reply only to sender. Default: true |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| message | Yes | |
| createdMessage | Yes |
get_attachmentRead-onlyInspect
Download an email attachment by its ID. Use after get_email to fetch the actual attachment content. Pass the filename and mimeType from get_email's attachment metadata. Text files (txt, csv, json, html, xml, md) are returned as decoded text. Images (png, jpg, gif, webp) are returned as viewable image content. Other files are returned as base64-encoded data. Attachments over 10MB are rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| emailId | Yes | Email ID from search_email or get_email | |
| filename | Yes | Filename from get_email attachment metadata | |
| mimeType | Yes | MIME type from get_email attachment metadata (e.g. application/pdf, image/png) | |
| attachmentId | Yes | Attachment ID from get_email attachment metadata |
Output Schema
| Name | Required | Description |
|---|---|---|
| size | Yes | |
| content | Yes | Base64 data for binary, decoded text for text files |
| encoding | Yes | |
| filename | Yes | |
| mimeType | Yes |
get_emailRead-onlyInspect
Retrieve the complete content of a specific email using its ID from search_email. Use this to read the full email body (text or HTML), see all recipients (to, cc, bcc), and access the complete headers. This is necessary after search_email since search only returns snippets, not the actual email content.
| Name | Required | Description | Default |
|---|---|---|---|
| emailId | Yes | Email ID from search_email results |
Output Schema
| Name | Required | Description |
|---|---|---|
| cc | No | |
| id | Yes | |
| to | No | |
| bcc | No | |
| body | Yes | |
| date | No | |
| from | No | |
| labels | Yes | |
| snippet | Yes | |
| subject | Yes | |
| threadId | Yes | |
| attachments | Yes |
list_labelsRead-onlyInspect
List all Gmail labels for the authenticated user. Returns both system labels (INBOX, SENT, TRASH, etc.) and user-created labels with message/thread counts. Use this to discover label IDs needed for add_labels, remove_labels, or search_email queries.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| labels | Yes |
remove_labelsInspect
Remove one or more labels from an email message. Use list_labels to find label IDs. Removing INBOX effectively archives the message. Removing UNREAD marks it as read.
| Name | Required | Description | Default |
|---|---|---|---|
| emailId | Yes | Email ID to remove labels from (from search_email or get_email) | |
| labelIds | Yes | Array of label IDs to remove (e.g., ['UNREAD', 'Label_123']) |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| message | Yes | |
| labelIds | No | |
| threadId | Yes |
search_emailRead-onlyInspect
Search for emails in Gmail to find specific messages or filter the inbox. Use this when the user wants to find emails by sender, subject, date, content, or other criteria. Returns email summaries suitable for listing and overview - to read full email content, attachments, or HTML body, use get_email with the returned email ID. This tool searches across all folders unless specified otherwise in the query.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query using Gmail search syntax. Examples: - from:john@example.com (emails from specific sender) - to:jane@example.com (emails to specific recipient) - subject:meeting (emails with 'meeting' in subject) - has:attachment (emails with attachments) - is:unread (unread emails) - is:important (important emails) - after:2025/1/1 (emails after date) - before:2025/1/31 (emails before date) - newer_than:1d (emails from last day, use 1h for hour, 1w for week) - older_than:1d (emails older than 1 day) - label:inbox (emails in inbox) - in:sent (sent emails) - bare words search all fields Combine with AND/OR operators. Date format: YYYY/M/D or relative (1d, 1w, 1m). | |
| pageToken | No | Token for fetching the next page of results | |
| maxResults | No | Maximum number of results to return (default 10, max 100) |
Output Schema
| Name | Required | Description |
|---|---|---|
| emails | Yes | |
| message | No | |
| resultCount | Yes | |
| nextPageToken | Yes |
send_draftInspect
Send a previously created draft email. Use this after draft_email or draft_reply when ready to send. The draft will be moved from Drafts to Sent folder automatically. This action cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| draftId | Yes | Draft ID from draft_email or draft_reply response |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| message | Yes | |
| labelIds | No | |
| threadId | Yes |
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail — every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control — enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management — store and rotate API keys and OAuth tokens in one place
Change alerts — get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption — public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics — see which tools are being used most, helping you prioritize development and documentation
Direct user feedback — users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!