🔒 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.
Parameters
calendar_id
Calendar ID (default: primary)
time_min
Start time (RFC3339 or YYYY-MM-DD)
time_max
End time (RFC3339 or YYYY-MM-DD)
max_results
Max number of events (default: 25)
create_event
Creates a new calendar event. Supports all-day and timed events.
Parameters
summary
RequiredEvent title
start_time
RequiredStart time (RFC3339 or YYYY-MM-DD)
end_time
RequiredEnd time (RFC3339 or YYYY-MM-DD)
calendar_id
Calendar ID (default: primary)
description
location
attendees
timezone
modify_event
Updates an existing event by ID. Only provided fields will be modified.
Parameters
event_id
RequiredID of the event to modify
calendar_id
Calendar ID (default: primary)
summary
start_time
end_time
description
location
attendees
timezone
delete_event
Deletes an event by ID.
Parameters
event_id
RequiredID of the event to delete
calendar_id
Calendar 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
Parameters
query
RequiredSearch query string (e.g., name contains 'report')
max_results
Maximum number of files to return
get_drive_file_content
Retrieves the content of a specific file
Parameters
file_id
RequiredThe ID of the file
mime_type
Specify the desired export format
list_drive_items
Lists files and folders within a specific folder or the root
Parameters
folder_id
The ID of the folder to list (defaults to root)
max_results
Maximum number of items to return
create_drive_file
Creates a new file in Google Drive
Parameters
name
RequiredThe desired name for the new file
content
RequiredThe text content to write into the file
folder_id
The ID of the parent folder
mime_type
The 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.
Parameters
query
RequiredSearch query (supports Gmail operators)
page_size
Max number of messages (default: 10)
get_gmail_message_content
Retrieves the full content (subject, sender, body) of a specific email.
Parameters
message_id
RequiredThe ID of the message to retrieve
get_gmail_messages_content_batch
Retrieves content for multiple messages in a single batch request.
Parameters
message_ids
RequiredList of message IDs to retrieve
format
Format ("full" or "metadata")
get_gmail_thread_content
Retrieves the complete content of a conversation thread.
Parameters
thread_id
RequiredThe ID of the thread to retrieve
get_gmail_threads_content_batch
Retrieves content for multiple threads in a single batch request.
Parameters
thread_ids
RequiredList of thread IDs to retrieve
send_gmail_message
Sends an email. Supports new emails and replies.
Parameters
to
RequiredRecipient email address
subject
RequiredEmail subject
body
RequiredEmail body (plain text)
cc
CC recipient
bcc
BCC recipient
thread_id
Thread ID to reply within
in_reply_to
Message-ID being replied to
draft_gmail_message
Creates a draft email. Supports new drafts and reply drafts.
Parameters
to
Recipient email address
subject
RequiredEmail subject
body
RequiredEmail body (plain text)
thread_id
Thread 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.
Parameters
action
RequiredAction: "create", "update", or "delete"
name
Label name (required for create)
label_id
Label 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).
Parameters
message_id
RequiredThe ID of the message to modify
add_label_ids
List of label IDs to add
remove_label_ids
List of label IDs to remove
batch_modify_gmail_message_labels
Adds or removes labels from multiple messages in a batch.
Parameters
message_ids
RequiredList of message IDs to modify
add_label_ids
List of label IDs to add
remove_label_ids
List 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).
Parameters
query
RequiredText to search for in Doc names
page_size
optional, default: 10
get_doc_content
Retrieve the plain text content of a Google Doc by its document ID.
Parameters
document_id
Required
list_docs_in_folder
List all Google Docs inside a given Drive folder (by folder ID, default = root).
Parameters
folder_id
optional, default: 'root'
page_size
optional, default: 100
create_doc
Create a new Google Doc, optionally with initial content.
Parameters
title
RequiredName for the doc
content
optional, default: empty
read_doc_comments
Read all comments and replies from a Google Doc.
Parameters
document_id
RequiredThe ID of the Google Document
reply_to_comment
Reply to specific comments in documents.
Parameters
document_id
RequiredThe ID of the Google Document
comment_id
RequiredThe ID of the comment to reply to
reply_content
RequiredThe content of the reply
create_doc_comment
Create new comments on documents.
Parameters
document_id
RequiredThe ID of the Google Document
comment_content
RequiredThe content of the comment
resolve_comment
Mark comments as resolved.
Parameters
document_id
RequiredThe ID of the Google Document
comment_id
RequiredThe 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.
Parameters
page_size
optional, default: 100
space_type
optional, default: "all", can be "room" or "dm"
get_messages
Retrieves messages from a specific Google Chat space.
Parameters
space_id
Requiredpage_size
optional, default: 50
order_by
optional, default: "createTime desc"
send_message
Sends a message to a Google Chat space.
Parameters
space_id
Requiredmessage_text
Requiredthread_key
To reply in a thread
search_messages
Searches for messages across Chat spaces by text content.
Parameters
query
RequiredText to search for
space_id
If provided, searches only in this space
page_size
optional, 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.
Parameters
title
RequiredThe title of the form
description
The description of the form
document_title
The document title (shown in browser tab)
get_form
Retrieves details about a specific form, including its questions and URLs.
Parameters
form_id
RequiredThe 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.
Parameters
form_id
RequiredThe ID of the form to update
publish_as_template
Whether to publish as a template
require_authentication
Whether to require authentication
get_form_response
Retrieves a single response from a form by its ID.
Parameters
form_id
RequiredThe ID of the form
response_id
RequiredThe ID of the response to retrieve
list_form_responses
Lists all responses for a given form, with support for pagination.
Parameters
form_id
RequiredThe ID of the form
page_size
Maximum number of responses to return
page_token
Token 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.
Parameters
max_results
Maximum number of task lists to return
page_token
Token for pagination
get_task_list
Get details of a specific task list.
Parameters
task_list_id
RequiredThe ID of the task list to retrieve
create_task_list
Create a new task list.
Parameters
title
RequiredThe title of the new task list
update_task_list
Update an existing task list.
Parameters
task_list_id
RequiredThe ID of the task list to update
title
RequiredThe new title for the task list
delete_task_list
Delete a task list. Note: This will also delete all tasks in the list.
Parameters
task_list_id
RequiredThe ID of the task list to delete
list_tasks
List all tasks in a specific task list.
Parameters
task_list_id
RequiredThe ID of the task list
max_results
Maximum number of tasks to return
page_token
Token for pagination
show_completed
Whether to include completed tasks
get_task
Get details of a specific task.
Parameters
task_list_id
RequiredThe ID of the task list
task_id
RequiredThe ID of the task to retrieve
create_task
Create a new task in a task list.
Parameters
task_list_id
RequiredThe ID of the task list
title
RequiredThe title of the task
notes
Notes for the task
due
Due date in RFC 3339 format
update_task
Update an existing task.
Parameters
task_list_id
RequiredThe ID of the task list
task_id
RequiredThe ID of the task to update
title
New title for the task
status
New status ("needsAction" or "completed")
delete_task
Delete a task from a task list.
Parameters
task_list_id
RequiredThe ID of the task list
task_id
RequiredThe ID of the task to delete
move_task
Move a task to a different position or list.
Parameters
task_list_id
RequiredThe current task list ID
task_id
RequiredThe ID of the task to move
parent
New parent task ID
destination_task_list
Destination task list ID
clear_completed_tasks
Clear all completed tasks from a task list.
Parameters
task_list_id
RequiredThe ID of the task list to clear
🔍 Google Custom Search
Perform web searches using a Programmable Search Engine
Source: gsearch/search_tools.py
search_custom
Performs a search using the Google Custom Search JSON API.
Parameters
q
RequiredThe search query
num
Number of results to return (1-10)
start
The index of the first result to return
safe
Safe search level (active, moderate, off)
site_search
Restrict search to a specific site
get_search_engine_info
Retrieves metadata about the configured Programmable Search Engine.
search_custom_siterestrict
Performs a search restricted to a list of specific sites.
Parameters
q
RequiredThe search query
sites
RequiredList of sites/domains to search within
num
Number of results to return
📊 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).
Parameters
spreadsheet_id
RequiredThe ID of the spreadsheet
read_sheet_values
Reads data from a given range within a sheet.
Parameters
spreadsheet_id
RequiredThe ID of the spreadsheet
range
RequiredThe 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.
Parameters
spreadsheet_id
RequiredThe ID of the spreadsheet
range
RequiredThe A1 notation range to modify (e.g., "Sheet1!A1:C10")
values
RequiredThe values to write (2D array)
value_input_option
How values should be interpreted (RAW or USER_ENTERED)
create_spreadsheet
Creates a new Google Spreadsheet, optionally with specified sheet names.
Parameters
title
RequiredThe title of the new spreadsheet
sheet_names
List of sheet names to create (optional)
create_sheet
Adds a new sheet to an existing spreadsheet.
Parameters
spreadsheet_id
RequiredThe ID of the spreadsheet
sheet_title
RequiredThe 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.
Parameters
title
RequiredThe title of the presentation.
get_presentation
Get presentation details including slides and content.
Parameters
presentation_id
RequiredThe ID of the presentation to retrieve.
add_slide
Add a new slide to the presentation.
Parameters
presentation_id
RequiredThe ID of the presentation.
layout
The layout for the new slide.
insertion_index
Index where to insert the slide.
update_slide_content
Update content on a specific slide.
Parameters
presentation_id
RequiredThe ID of the presentation.
slide_id
RequiredThe ID of the slide to update.
element_id
RequiredThe ID of the element to update.
new_content
RequiredThe new content for the element.