Google Workspace MCP Documentation

Complete reference for all Google Workspace MCP tools. Explore Gmail, Drive, Docs, Sheets, Calendar, and more.

Authentication

The server supports both legacy OAuth 2.0 for single-user mode and OAuth 2.1 for multi-user environments.

Source: auth/auth_info_middleware.py

OAuth 2.1 (Multi-User)

Enabled by setting `MCP_ENABLE_OAUTH21=true`. Uses bearer token authentication, which is ideal for web applications and other clients where multiple users need to authenticate. The server includes an innovative CORS proxy to handle browser-based authentication flows seamlessly.

Legacy OAuth 2.0 (Single-User)

The default authentication method. Suitable for single-user setups and clients that do not support OAuth 2.1. Requires configuring credentials via environment variables or a `client_secret.json` file.

Google Calendar MCP

Google Calendar MCP integration - Manage calendars, events, and scheduling with AI

Source: gcalendar/calendar_tools.py

list_calendars

Lists all calendars accessible to the authenticated user.

get_events

Retrieves upcoming events from a specified calendar within a time range.

ParameterRequiredDescription
calendar_idOptionalCalendar ID (default: primary)
time_minOptionalStart time (RFC3339 or YYYY-MM-DD)
time_maxOptionalEnd time (RFC3339 or YYYY-MM-DD)
max_resultsOptionalMax number of events (default: 25)

create_event

Creates a new calendar event. Supports all-day and timed events.

ParameterRequiredDescription
summaryRequiredEvent title
start_timeRequiredStart time (RFC3339 or YYYY-MM-DD)
end_timeRequiredEnd time (RFC3339 or YYYY-MM-DD)
calendar_idOptionalCalendar ID (default: primary)
descriptionOptional
locationOptional
attendeesOptional
timezoneOptional

modify_event

Updates an existing event by ID. Only provided fields will be modified.

ParameterRequiredDescription
event_idRequiredID of the event to modify
calendar_idOptionalCalendar ID (default: primary)
summaryOptional
start_timeOptional
end_timeOptional
descriptionOptional
locationOptional
attendeesOptional
timezoneOptional

delete_event

Deletes an event by ID.

ParameterRequiredDescription
event_idRequiredID of the event to delete
calendar_idOptionalCalendar ID (default: primary)

Google Drive MCP

Google Drive MCP server - Access and manage files and folders through MCP protocol

Source: gdrive/drive_tools.py

search_drive_files

Searches for files and folders across the user's Drive

ParameterRequiredDescription
queryRequiredSearch query string (e.g., name contains 'report')
max_resultsOptionalMaximum number of files to return

get_drive_file_content

Retrieves the content of a specific file

ParameterRequiredDescription
file_idRequiredThe ID of the file
mime_typeOptionalSpecify the desired export format

list_drive_items

Lists files and folders within a specific folder or the root

ParameterRequiredDescription
folder_idOptionalThe ID of the folder to list (defaults to root)
max_resultsOptionalMaximum number of items to return

create_drive_file

Creates a new file in Google Drive

ParameterRequiredDescription
nameRequiredThe desired name for the new file
contentRequiredThe text content to write into the file
folder_idOptionalThe ID of the parent folder
mime_typeOptionalThe MIME type of the file (defaults to text/plain)

Gmail MCP

Gmail MCP integration - Send, receive, and manage emails with AI assistance

Source: gmail/gmail_tools.py

search_gmail_messages

Searches messages and returns Message and Thread IDs with web links.

ParameterRequiredDescription
queryRequiredSearch query (supports Gmail operators)
page_sizeOptionalMax number of messages (default: 10)

get_gmail_message_content

Retrieves the full content (subject, sender, body) of a specific email.

ParameterRequiredDescription
message_idRequiredThe ID of the message to retrieve

get_gmail_messages_content_batch

Retrieves content for multiple messages in a single batch request.

ParameterRequiredDescription
message_idsRequiredList of message IDs to retrieve
formatOptionalFormat ("full" or "metadata")

get_gmail_thread_content

Retrieves the complete content of a conversation thread.

ParameterRequiredDescription
thread_idRequiredThe ID of the thread to retrieve

get_gmail_threads_content_batch

Retrieves content for multiple threads in a single batch request.

ParameterRequiredDescription
thread_idsRequiredList of thread IDs to retrieve

send_gmail_message

Sends an email. Supports new emails and replies.

ParameterRequiredDescription
toRequiredRecipient email address
subjectRequiredEmail subject
bodyRequiredEmail body (plain text)
ccOptionalCC recipient
bccOptionalBCC recipient
thread_idOptionalThread ID to reply within
in_reply_toOptionalMessage-ID being replied to

draft_gmail_message

Creates a draft email. Supports new drafts and reply drafts.

ParameterRequiredDescription
toOptionalRecipient email address
subjectRequiredEmail subject
bodyRequiredEmail body (plain text)
thread_idOptionalThread ID to reply within

list_gmail_labels

Lists all labels in the user's account.

manage_gmail_label

Manages Gmail labels: create, update, or delete.

ParameterRequiredDescription
actionRequiredAction: "create", "update", or "delete"
nameOptionalLabel name (required for create)
label_idOptionalLabel ID (required for update/delete)

modify_gmail_message_labels

Adds or removes labels from a message. Use to archive (remove INBOX) or delete (add TRASH).

ParameterRequiredDescription
message_idRequiredThe ID of the message to modify
add_label_idsOptionalList of label IDs to add
remove_label_idsOptionalList of label IDs to remove

batch_modify_gmail_message_labels

Adds or removes labels from multiple messages in a batch.

ParameterRequiredDescription
message_idsRequiredList of message IDs to modify
add_label_idsOptionalList of label IDs to add
remove_label_idsOptionalList of label IDs to remove

Google Docs MCP

Google Docs MCP server - Create and edit documents with AI-powered MCP tools

Source: gdocs/docs_tools.py

search_docs

Search for Google Docs by name (using Drive API).

ParameterRequiredDescription
queryRequiredText to search for in Doc names
page_sizeOptionaloptional, default: 10

get_doc_content

Retrieve the plain text content of a Google Doc by its document ID.

ParameterRequiredDescription
document_idRequired

list_docs_in_folder

List all Google Docs inside a given Drive folder (by folder ID, default = root).

ParameterRequiredDescription
folder_idOptionaloptional, default: 'root'
page_sizeOptionaloptional, default: 100

create_doc

Create a new Google Doc, optionally with initial content.

ParameterRequiredDescription
titleRequiredName for the doc
contentOptionaloptional, default: empty

read_doc_comments

Read all comments and replies from a Google Doc.

ParameterRequiredDescription
document_idRequiredThe ID of the Google Document

reply_to_comment

Reply to specific comments in documents.

ParameterRequiredDescription
document_idRequiredThe ID of the Google Document
comment_idRequiredThe ID of the comment to reply to
reply_contentRequiredThe content of the reply

create_doc_comment

Create new comments on documents.

ParameterRequiredDescription
document_idRequiredThe ID of the Google Document
comment_contentRequiredThe content of the comment

resolve_comment

Mark comments as resolved.

ParameterRequiredDescription
document_idRequiredThe ID of the Google Document
comment_idRequiredThe ID of the comment to resolve

Google Chat MCP

Google Chat MCP integration - Send and receive messages through MCP protocol

Source: gchat/chat_tools.py

list_spaces

Lists Google Chat spaces (rooms and DMs) accessible to the user.

ParameterRequiredDescription
page_sizeOptionaloptional, default: 100
space_typeOptionaloptional, default: "all", can be "room" or "dm"

get_messages

Retrieves messages from a specific Google Chat space.

ParameterRequiredDescription
space_idRequired
page_sizeOptionaloptional, default: 50
order_byOptionaloptional, default: "createTime desc"

send_message

Sends a message to a Google Chat space.

ParameterRequiredDescription
space_idRequired
message_textRequired
thread_keyOptionalTo reply in a thread

search_messages

Searches for messages across Chat spaces by text content.

ParameterRequiredDescription
queryRequiredText to search for
space_idOptionalIf provided, searches only in this space
page_sizeOptionaloptional, default: 25

Google Forms MCP

Google Forms MCP server - Create and manage forms and responses with AI

Source: gforms/forms_tools.py

create_form

Creates a new form with a title and optional description.

ParameterRequiredDescription
titleRequiredThe title of the form
descriptionOptionalThe description of the form
document_titleOptionalThe document title (shown in browser tab)

get_form

Retrieves details about a specific form, including its questions and URLs.

ParameterRequiredDescription
form_idRequiredThe ID of the form to retrieve

set_publish_settings

Updates the publish settings of a form, such as making it a template or requiring authentication.

ParameterRequiredDescription
form_idRequiredThe ID of the form to update
publish_as_templateOptionalWhether to publish as a template
require_authenticationOptionalWhether to require authentication

get_form_response

Retrieves a single response from a form by its ID.

ParameterRequiredDescription
form_idRequiredThe ID of the form
response_idRequiredThe ID of the response to retrieve

list_form_responses

Lists all responses for a given form, with support for pagination.

ParameterRequiredDescription
form_idRequiredThe ID of the form
page_sizeOptionalMaximum number of responses to return
page_tokenOptionalToken for retrieving the next page of results

Google Tasks MCP

Google Tasks MCP integration - Manage tasks and task lists via MCP protocol

Source: gtasks/tasks_tools.py

list_task_lists

List all task lists for the user.

ParameterRequiredDescription
max_resultsOptionalMaximum number of task lists to return
page_tokenOptionalToken for pagination

get_task_list

Get details of a specific task list.

ParameterRequiredDescription
task_list_idRequiredThe ID of the task list to retrieve

create_task_list

Create a new task list.

ParameterRequiredDescription
titleRequiredThe title of the new task list

update_task_list

Update an existing task list.

ParameterRequiredDescription
task_list_idRequiredThe ID of the task list to update
titleRequiredThe new title for the task list

delete_task_list

Delete a task list. Note: This will also delete all tasks in the list.

ParameterRequiredDescription
task_list_idRequiredThe ID of the task list to delete

list_tasks

List all tasks in a specific task list.

ParameterRequiredDescription
task_list_idRequiredThe ID of the task list
max_resultsOptionalMaximum number of tasks to return
page_tokenOptionalToken for pagination
show_completedOptionalWhether to include completed tasks

get_task

Get details of a specific task.

ParameterRequiredDescription
task_list_idRequiredThe ID of the task list
task_idRequiredThe ID of the task to retrieve

create_task

Create a new task in a task list.

ParameterRequiredDescription
task_list_idRequiredThe ID of the task list
titleRequiredThe title of the task
notesOptionalNotes for the task
dueOptionalDue date in RFC 3339 format

update_task

Update an existing task.

ParameterRequiredDescription
task_list_idRequiredThe ID of the task list
task_idRequiredThe ID of the task to update
titleOptionalNew title for the task
statusOptionalNew status ("needsAction" or "completed")

delete_task

Delete a task from a task list.

ParameterRequiredDescription
task_list_idRequiredThe ID of the task list
task_idRequiredThe ID of the task to delete

move_task

Move a task to a different position or list.

ParameterRequiredDescription
task_list_idRequiredThe current task list ID
task_idRequiredThe ID of the task to move
parentOptionalNew parent task ID
destination_task_listOptionalDestination task list ID

clear_completed_tasks

Clear all completed tasks from a task list.

ParameterRequiredDescription
task_list_idRequiredThe ID of the task list to clear

Google Sheets MCP

Google Sheets MCP server - Create and manage spreadsheets with AI automation

Source: gsheets/sheets_tools.py

get_spreadsheet_info

Retrieves metadata about a specified spreadsheet, including its title, ID, and details about individual sheets (name, ID, size).

ParameterRequiredDescription
spreadsheet_idRequiredThe ID of the spreadsheet

read_sheet_values

Reads data from a given range within a sheet.

ParameterRequiredDescription
spreadsheet_idRequiredThe ID of the spreadsheet
rangeRequiredThe A1 notation range to read (e.g., "Sheet1!A1:C10")

modify_sheet_values

Allows for writing, updating, or clearing values in a specified range of a sheet.

ParameterRequiredDescription
spreadsheet_idRequiredThe ID of the spreadsheet
rangeRequiredThe A1 notation range to modify (e.g., "Sheet1!A1:C10")
valuesRequiredThe values to write (2D array)
value_input_optionOptionalHow values should be interpreted (RAW or USER_ENTERED)

create_spreadsheet

Creates a new Google Spreadsheet, optionally with specified sheet names.

ParameterRequiredDescription
titleRequiredThe title of the new spreadsheet
sheet_namesOptionalList of sheet names to create (optional)

create_sheet

Adds a new sheet to an existing spreadsheet.

ParameterRequiredDescription
spreadsheet_idRequiredThe ID of the spreadsheet
sheet_titleRequiredThe title of the new sheet

Google Slides MCP

Google Slides MCP integration - Create and manage presentations through MCP

Source: gslides/slides_tools.py

create_presentation

Create a new presentation with the given title.

ParameterRequiredDescription
titleRequiredThe title of the presentation.

get_presentation

Get presentation details including slides and content.

ParameterRequiredDescription
presentation_idRequiredThe ID of the presentation to retrieve.

add_slide

Add a new slide to the presentation.

ParameterRequiredDescription
presentation_idRequiredThe ID of the presentation.
layoutOptionalThe layout for the new slide.
insertion_indexOptionalIndex where to insert the slide.

update_slide_content

Update content on a specific slide.

ParameterRequiredDescription
presentation_idRequiredThe ID of the presentation.
slide_idRequiredThe ID of the slide to update.
element_idRequiredThe ID of the element to update.
new_contentRequiredThe new content for the element.