Skip to main content
Glama
tszaks

Gmail Multi-Inbox MCP Server

by tszaks

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoPort for SSE mode (automatically switches to SSE if present)
MCP_TRANSPORTNoForce HTTP/SSE mode (set to 'sse')
GMAILMCPCONFIG_DIRNoCustom directory for storing account data
GMAIL_MCP_CONFIG_DIRNoLegacy custom directory for storing account data

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

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_accountsA

List all configured Gmail inbox accounts and their authentication/health status.

read_emailsB

Read emails from one account or aggregate across all enabled accounts when account is omitted.

search_emailsA

Search Gmail using query syntax. Omitting account searches all enabled inboxes and merges results.

search_drive_filesA

Search Google Drive file metadata. Omitting account searches all enabled accounts and merges results.

get_email_threadA

Get a full email thread for one account (account required). Each message lists attachment metadata (filename, attachment_id, size). To read attachment content — PDF text, DOCX, XLSX, images via OCR — call get_all_attachments with the Gmail message ID shown as "Gmail ID" in each message.

get_labelsA

List labels for one account (account required).

mark_as_readB

Mark messages as read in one account (account required).

add_labelsB

Add labels to messages in one account (account required).

remove_labelsA

Remove labels from messages in one account (account required).

archive_emailsA

Archive messages in one account by removing INBOX label (account required).

trash_emailsB

Move messages to trash in one account (account required).

create_labelB

Create a new Gmail label in one account (account required).

delete_labelB

Delete a Gmail label in one account (account required).

block_senderA

Block a sender by creating a Gmail filter (same mechanism as Gmail's native "Block" button). Optionally also trashes existing mail from that sender.

list_blocked_sendersA

List all Gmail filters for an account. Use to find filter_id for unblock_sender, or to audit what is being auto-trashed/archived/spammed.

unblock_senderA

Remove a Gmail filter. Specify either filter_id (exact match) or sender (matches filters whose "from" criteria equals this value).

unsubscribe_from_emailA

Unsubscribe from a mailing list by invoking the List-Unsubscribe header (RFC 2369/8058). Same mechanism as Gmail's native "Unsubscribe" button. Falls back to mailto:. Returns method used.

mute_threadA

Mute a conversation: archives the thread now and (with scope="subject") installs a subject-based filter so future replies auto-archive. Approximates Gmail's client-side mute.

create_draftB

Create a draft email in one account (account required).

delete_draftsA

Permanently delete one or more drafts in one account (account required). Draft IDs are returned by create_draft or list_drafts.

send_draftA

Send an existing Gmail draft by draft ID. Returns message_id and thread_id. Use list_drafts to find draft IDs sorted oldest-first.

list_draftsA

List drafts in an account sorted oldest-first by internalDate. Returns draft_id (for send_draft/delete_drafts), message_id, thread_id, subject, to, and internalDate.

search_draftsA

Search drafts by Gmail query string. Returns draft_id (for send_draft/delete_drafts), message_id, thread_id, subject, to, and snippet. Use instead of search_emails when you need to delete or send a found draft.

send_emailC

Send an email from one account (account required).

begin_account_authB

Start OAuth onboarding for an account. Accepts credentials JSON or a path to credentials.json.

finish_account_authA

Complete OAuth onboarding by exchanging authorization code and storing token.json.

get_attachmentA

Fetch a single attachment by id. Use when you only need one specific file. For all attachments at once, use get_all_attachments instead. Requires the Gmail message ID ("Gmail ID" from get_email_thread) and the attachment_id. Saves to ~/Downloads/mcp-attachments/ and returns extracted text for PDF, DOCX, XLSX, PPTX, text, and images via OCR.

get_all_attachmentsA

Call this whenever a thread or email shows attachments. Fetches and extracts content from all attachments in one shot: PDF (text extraction), DOCX, XLSX, PPTX, images (OCR). Use the Gmail message ID ("Gmail ID" from get_email_thread output) — NOT the thread ID. Saves each file to ~/Downloads/mcp-attachments/ and returns extracted text.

list_drive_filesA

List Google Drive files. Omitting account aggregates across all enabled accounts. Optionally filter by folder or text query.

get_drive_fileA

Get full metadata for a specific Google Drive file including size, parents, export links.

get_drive_file_contentA

Download a Drive file and extract its text content. Google Docs/Sheets/Slides are exported to Office formats then parsed. PDFs, images, and text files are also supported.

upload_drive_fileB

Upload a local file to Google Drive.

create_drive_folderC

Create a new folder in Google Drive.

update_drive_fileB

Update a Drive file — rename it, move it between folders, star/unstar, or update its description.

trash_drive_fileB

Move a Google Drive file to trash.

share_drive_fileA

Share a Google Drive file by adding a permission.

sheets_getA

Get Google Sheets spreadsheet metadata: title, sheet tabs, row/column counts.

sheets_readA

Read cell values from a Google Sheet range (e.g., "Sheet1!A1:D10" or "A1:D10" for the first sheet).

sheets_writeA

Write values to a Google Sheet range. Overwrites existing values in the specified range.

sheets_appendA

Append rows to a Google Sheet after the last row with data.

sheets_createA

Create a new Google Sheets spreadsheet.

sheets_add_tabB

Add a new sheet tab to an existing spreadsheet.

sheets_rename_tabB

Rename a sheet tab in a spreadsheet.

sheets_delete_tabB

Delete a sheet tab from a spreadsheet.

sheets_formatB

Apply formatting to a range of cells: bold, italic, font size, background/text color, alignment, number format, wrap strategy.

sheets_add_chartB

Create a chart in a Google Sheet from a data range.

sheets_insert_dimensionB

Insert rows or columns into a sheet at a specified position.

sheets_delete_dimensionB

Delete rows or columns from a sheet.

docs_getA

Get the full text content and title of a Google Doc.

docs_createB

Create a new Google Doc.

docs_appendA

Append text to the end of a Google Doc. Optionally apply a heading style and bold/italic.

docs_replace_textB

Find and replace all occurrences of text throughout a Google Doc.

docs_insert_tableA

Insert an empty table at the end of a Google Doc.

docs_apply_styleB

Apply a heading or paragraph style to a text range in a Google Doc by character indices.

list_calendarsA

List all Google Calendars for one or all enabled accounts.

list_eventsA

List calendar events. Omitting account aggregates across all enabled accounts. Supports time range and text search.

get_eventB

Get full details of a single calendar event.

create_eventA

Create a new calendar event. Use start_date_time/end_date_time for timed events or start_date/end_date for all-day events.

update_eventA

Update an existing calendar event. Only provided fields are changed.

delete_eventB

Delete a calendar event.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

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/tszaks/ghub'

If you have feedback or need assistance with the MCP directory API, please join our Discord server