Gmail + Calendar MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PASSWORDS | No | Optional per-account passwords in format `selector=password` pairs separated by semicolons or newlines | |
| GMAIL_CLIENT | Yes | Google OAuth client ID and secret in format `client_id|client_secret` | |
| GMAIL_ACCOUNTS | Yes | Account refresh tokens in format `selector=refresh_token` pairs separated by semicolons or newlines |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| send_emailC | Send a new email.
|
| reply_to_messageB | Reply to a message, keeping it in the same thread.
|
| forward_messageB | Forward a message to new recipients, optionally re-attaching its attachments.
|
| create_draftC | Create a draft. |
| list_draftsB | List drafts with subject/recipient summaries and |
| send_draftC | Send an existing draft. |
| update_draftA | Replace a draft's contents (Gmail replaces the whole message — pass all fields you want). |
| delete_draftA | Permanently delete a draft (the draft only — not a sent message). |
| get_profileA | Get the Gmail profile (email address, message/thread totals, historyId).
|
| get_messageB | Get a single message fully decoded: headers, snippet, text/HTML body, attachment list. |
| search_messagesA | Search messages using Gmail query syntax (e.g. 'is:unread from:alice newer_than:7d'). Returns message summaries plus |
| search_threadsB | Search threads using Gmail query syntax. Returns thread stubs + |
| get_threadC | Get a full thread with every message decoded. |
| get_message_attachmentsB | List a message's attachments (filename, mimeType, size, attachmentId). |
| download_attachmentB | Download an attachment to Get |
| trash_messageA | Move a message to Trash (recoverable; not a permanent delete). |
| untrash_messageC | Restore a message from Trash. |
| trash_threadC | Move an entire thread to Trash. |
| untrash_threadC | Restore an entire thread from Trash. |
| list_labelsC | List all labels (system and user) with their ids. |
| create_labelB | Create a label. Use '/' in |
| update_labelC | Rename or change visibility of a label (identified by name or id). |
| delete_labelC | Delete a label (identified by name or id). |
| label_messageC | Add one or more labels to a message. |
| unlabel_messageC | Remove one or more labels from a message. |
| label_threadC | Add one or more labels to every message in a thread. |
| unlabel_threadA | Remove one or more labels from every message in a thread. |
| list_filtersC | List all filters with their ids, criteria, and actions. |
| create_filterB | Create a filter. Criteria: |
| delete_filterA | Delete a filter by id (get ids from list_filters). |
| get_signatureB | Get the HTML signature for a send-as address (defaults to the primary address). |
| update_signatureB | Set the HTML signature for a send-as address (defaults to the primary address). |
| get_vacation_responderC | Get the vacation responder (auto-reply) settings. |
| set_vacation_responderB | Enable or disable the vacation responder.
|
| mark_readC | Mark a message as read (removes the UNREAD label). |
| mark_unreadC | Mark a message as unread (adds the UNREAD label). |
| starC | Star a message. |
| unstarC | Remove the star from a message. |
| archiveC | Archive a message (removes it from the Inbox). |
| move_to_inboxC | Move a message back to the Inbox. |
| mark_importantC | Mark a message as important. |
| mark_not_importantC | Mark a message as not important. |
| batch_modify_messagesB | Add and/or remove labels across many messages in one call.
|
| batch_trashB | Move many messages to Trash in one call. |
| batch_untrashC | Restore many messages from Trash in one call. |
| list_eventsA | List/search events on a calendar.
|
| get_eventC | Get a single event. |
| create_eventA | Create an event. Time: pass |
| update_eventB | Update an event (patch — only the fields you pass are changed). |
| delete_eventC | Delete an event. |
| quick_add_eventA | Create an event from natural language (e.g. 'Lunch with Sam tomorrow 1pm'). |
| move_eventC | Move an event from one calendar to another. |
| list_event_instancesC | List the individual instances of a recurring event. |
| respond_to_eventB | RSVP to an event you're invited to. |
| import_eventC | Import an event (adds a copy carrying an existing iCalUID, e.g. from an .ics). |
| list_calendarsB | List the calendars in this account (with access role, color, primary/selected flags).
|
| get_calendarB | Get a calendar's metadata (summary, description, timeZone, location). |
| create_calendarC | Create a new secondary calendar. |
| update_calendarC | Update a calendar's metadata (patch). |
| delete_calendarA | Delete a secondary calendar (cannot delete the primary calendar). |
| clear_calendarB | Delete ALL events from a primary calendar (only works on a primary calendar). |
| subscribe_calendarC | Add an existing calendar (by id) to this account's calendar list. |
| unsubscribe_calendarB | Remove a calendar from this account's calendar list (does not delete the calendar). |
| update_calendar_subscriptionC | Change how a calendar appears in your list: color, selected, hidden, name override, reminders. |
| list_aclC | List the access-control rules (who the calendar is shared with) and their ruleIds. |
| share_calendarC | Share a calendar.
|
| update_aclB | Change the role of an existing share (get ruleId from list_acl). |
| unshare_calendarB | Remove a share / access rule (get ruleId from list_acl). |
| get_freebusyB | Query busy time ranges across one or more calendars between time_min and time_max (RFC3339).
|
| list_settingsA | List all user calendar settings (timezone, week start, default reminders, etc.). |
| get_settingB | Get a single user calendar setting by id (e.g. 'timezone', 'weekStart'). |
| get_colorsB | Get the calendar and event color palettes (colorId -> hex values). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/eitan3/Gmail_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server