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 |
Capabilities
Features and capabilities supported by this server
| 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
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