🔒 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_idCalendar ID (default: primary)
time_minStart time (RFC3339 or YYYY-MM-DD)
time_maxEnd time (RFC3339 or YYYY-MM-DD)
max_resultsMax number of events (default: 25)
create_event
Creates a new calendar event. Supports all-day and timed events.
Parameters
summaryRequiredEvent title
start_timeRequiredStart time (RFC3339 or YYYY-MM-DD)
end_timeRequiredEnd time (RFC3339 or YYYY-MM-DD)
calendar_idCalendar ID (default: primary)
descriptionlocationattendeestimezone
modify_event
Updates an existing event by ID. Only provided fields will be modified.
Parameters
event_idRequiredID of the event to modify
calendar_idCalendar ID (default: primary)
summarystart_timeend_timedescriptionlocationattendeestimezone
delete_event
Deletes an event by ID.
Parameters
event_idRequiredID of the event to delete
calendar_idCalendar 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
queryRequiredSearch query string (e.g., name contains 'report')
max_resultsMaximum number of files to return
get_drive_file_content
Retrieves the content of a specific file
Parameters
file_idRequiredThe ID of the file
mime_typeSpecify the desired export format
list_drive_items
Lists files and folders within a specific folder or the root
Parameters
folder_idThe ID of the folder to list (defaults to root)
max_resultsMaximum number of items to return
create_drive_file
Creates a new file in Google Drive
Parameters
nameRequiredThe desired name for the new file
contentRequiredThe text content to write into the file
folder_idThe ID of the parent folder
mime_typeThe 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
queryRequiredSearch query (supports Gmail operators)
page_sizeMax number of messages (default: 10)
get_gmail_message_content
Retrieves the full content (subject, sender, body) of a specific email.
Parameters
message_idRequiredThe ID of the message to retrieve
get_gmail_messages_content_batch
Retrieves content for multiple messages in a single batch request.
Parameters
message_idsRequiredList of message IDs to retrieve
formatFormat ("full" or "metadata")
get_gmail_thread_content
Retrieves the complete content of a conversation thread.
Parameters
thread_idRequiredThe ID of the thread to retrieve
get_gmail_threads_content_batch
Retrieves content for multiple threads in a single batch request.
Parameters
thread_idsRequiredList of thread IDs to retrieve
send_gmail_message
Sends an email. Supports new emails and replies.
Parameters
toRequiredRecipient email address
subjectRequiredEmail subject
bodyRequiredEmail body (plain text)
ccCC recipient
bccBCC recipient
thread_idThread ID to reply within
in_reply_toMessage-ID being replied to
draft_gmail_message
Creates a draft email. Supports new drafts and reply drafts.
Parameters
toRecipient email address
subjectRequiredEmail subject
bodyRequiredEmail body (plain text)
thread_idThread 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
actionRequiredAction: "create", "update", or "delete"
nameLabel name (required for create)
label_idLabel 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_idRequiredThe ID of the message to modify
add_label_idsList of label IDs to add
remove_label_idsList of label IDs to remove
batch_modify_gmail_message_labels
Adds or removes labels from multiple messages in a batch.
Parameters
message_idsRequiredList of message IDs to modify
add_label_idsList of label IDs to add
remove_label_idsList 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
queryRequiredText to search for in Doc names
page_sizeoptional, default: 10
get_doc_content
Retrieve the plain text content of a Google Doc by its document ID.
Parameters
document_idRequired
list_docs_in_folder
List all Google Docs inside a given Drive folder (by folder ID, default = root).
Parameters
folder_idoptional, default: 'root'
page_sizeoptional, default: 100
create_doc
Create a new Google Doc, optionally with initial content.
Parameters
titleRequiredName for the doc
contentoptional, default: empty
read_doc_comments
Read all comments and replies from a Google Doc.
Parameters
document_idRequiredThe ID of the Google Document
reply_to_comment
Reply to specific comments in documents.
Parameters
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.
Parameters
document_idRequiredThe ID of the Google Document
comment_contentRequiredThe content of the comment
resolve_comment
Mark comments as resolved.
Parameters
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.
Parameters
page_sizeoptional, default: 100
space_typeoptional, default: "all", can be "room" or "dm"
get_messages
Retrieves messages from a specific Google Chat space.
Parameters
space_idRequiredpage_sizeoptional, default: 50
order_byoptional, default: "createTime desc"
send_message
Sends a message to a Google Chat space.
Parameters
space_idRequiredmessage_textRequiredthread_keyTo reply in a thread
search_messages
Searches for messages across Chat spaces by text content.
Parameters
queryRequiredText to search for
space_idIf provided, searches only in this space
page_sizeoptional, 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
titleRequiredThe title of the form
descriptionThe description of the form
document_titleThe document title (shown in browser tab)
get_form
Retrieves details about a specific form, including its questions and URLs.
Parameters
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.
Parameters
form_idRequiredThe ID of the form to update
publish_as_templateWhether to publish as a template
require_authenticationWhether to require authentication
get_form_response
Retrieves a single response from a form by its ID.
Parameters
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.
Parameters
form_idRequiredThe ID of the form
page_sizeMaximum number of responses to return
page_tokenToken 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_resultsMaximum number of task lists to return
page_tokenToken for pagination
get_task_list
Get details of a specific task list.
Parameters
task_list_idRequiredThe ID of the task list to retrieve
create_task_list
Create a new task list.
Parameters
titleRequiredThe title of the new task list
update_task_list
Update an existing task list.
Parameters
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.
Parameters
task_list_idRequiredThe ID of the task list to delete
list_tasks
List all tasks in a specific task list.
Parameters
task_list_idRequiredThe ID of the task list
max_resultsMaximum number of tasks to return
page_tokenToken for pagination
show_completedWhether to include completed tasks
get_task
Get details of a specific task.
Parameters
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.
Parameters
task_list_idRequiredThe ID of the task list
titleRequiredThe title of the task
notesNotes for the task
dueDue date in RFC 3339 format
update_task
Update an existing task.
Parameters
task_list_idRequiredThe ID of the task list
task_idRequiredThe ID of the task to update
titleNew title for the task
statusNew status ("needsAction" or "completed")
delete_task
Delete a task from a task list.
Parameters
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.
Parameters
task_list_idRequiredThe current task list ID
task_idRequiredThe ID of the task to move
parentNew parent task ID
destination_task_listDestination task list ID
clear_completed_tasks
Clear all completed tasks from a task list.
Parameters
task_list_idRequiredThe 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
qRequiredThe search query
numNumber of results to return (1-10)
startThe index of the first result to return
safeSafe search level (active, moderate, off)
site_searchRestrict 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
qRequiredThe search query
sitesRequiredList of sites/domains to search within
numNumber 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_idRequiredThe ID of the spreadsheet
read_sheet_values
Reads data from a given range within a sheet.
Parameters
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.
Parameters
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_optionHow values should be interpreted (RAW or USER_ENTERED)
create_spreadsheet
Creates a new Google Spreadsheet, optionally with specified sheet names.
Parameters
titleRequiredThe title of the new spreadsheet
sheet_namesList of sheet names to create (optional)
create_sheet
Adds a new sheet to an existing spreadsheet.
Parameters
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.
Parameters
titleRequiredThe title of the presentation.
get_presentation
Get presentation details including slides and content.
Parameters
presentation_idRequiredThe ID of the presentation to retrieve.
add_slide
Add a new slide to the presentation.
Parameters
presentation_idRequiredThe ID of the presentation.
layoutThe layout for the new slide.
insertion_indexIndex where to insert the slide.
update_slide_content
Update content on a specific slide.
Parameters
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.