🔒 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 Required

    Event title

  • start_time Required

    Start time (RFC3339 or YYYY-MM-DD)

  • end_time Required

    End 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 Required

    ID 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 Required

    ID 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 Required

    Search 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 Required

    The 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 Required

    The desired name for the new file

  • content Required

    The 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 Required

    Search 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 Required

    The ID of the message to retrieve

get_gmail_messages_content_batch

Retrieves content for multiple messages in a single batch request.

Parameters

  • message_ids Required

    List 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 Required

    The ID of the thread to retrieve

get_gmail_threads_content_batch

Retrieves content for multiple threads in a single batch request.

Parameters

  • thread_ids Required

    List of thread IDs to retrieve

send_gmail_message

Sends an email. Supports new emails and replies.

Parameters

  • to Required

    Recipient email address

  • subject Required

    Email subject

  • body Required

    Email 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 Required

    Email subject

  • body Required

    Email 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 Required

    Action: "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 Required

    The 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 Required

    List 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 Required

    Text 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 Required

    Name for the doc

  • content

    optional, default: empty

read_doc_comments

Read all comments and replies from a Google Doc.

Parameters

  • document_id Required

    The ID of the Google Document

reply_to_comment

Reply to specific comments in documents.

Parameters

  • document_id Required

    The ID of the Google Document

  • comment_id Required

    The ID of the comment to reply to

  • reply_content Required

    The content of the reply

create_doc_comment

Create new comments on documents.

Parameters

  • document_id Required

    The ID of the Google Document

  • comment_content Required

    The content of the comment

resolve_comment

Mark comments as resolved.

Parameters

  • document_id Required

    The ID of the Google Document

  • comment_id Required

    The 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 Required

  • page_size

    optional, default: 50

  • order_by

    optional, default: "createTime desc"

send_message

Sends a message to a Google Chat space.

Parameters

  • space_id Required

  • message_text Required

  • thread_key

    To reply in a thread

search_messages

Searches for messages across Chat spaces by text content.

Parameters

  • query Required

    Text 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 Required

    The 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 Required

    The 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 Required

    The 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 Required

    The ID of the form

  • response_id Required

    The ID of the response to retrieve

list_form_responses

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

Parameters

  • form_id Required

    The 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 Required

    The ID of the task list to retrieve

create_task_list

Create a new task list.

Parameters

  • title Required

    The title of the new task list

update_task_list

Update an existing task list.

Parameters

  • task_list_id Required

    The ID of the task list to update

  • title Required

    The 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 Required

    The ID of the task list to delete

list_tasks

List all tasks in a specific task list.

Parameters

  • task_list_id Required

    The 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 Required

    The ID of the task list

  • task_id Required

    The ID of the task to retrieve

create_task

Create a new task in a task list.

Parameters

  • task_list_id Required

    The ID of the task list

  • title Required

    The 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 Required

    The ID of the task list

  • task_id Required

    The 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 Required

    The ID of the task list

  • task_id Required

    The ID of the task to delete

move_task

Move a task to a different position or list.

Parameters

  • task_list_id Required

    The current task list ID

  • task_id Required

    The 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 Required

    The 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).

Parameters

  • spreadsheet_id Required

    The ID of the spreadsheet

read_sheet_values

Reads data from a given range within a sheet.

Parameters

  • spreadsheet_id Required

    The ID of the spreadsheet

  • range Required

    The 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 Required

    The ID of the spreadsheet

  • range Required

    The A1 notation range to modify (e.g., "Sheet1!A1:C10")

  • values Required

    The 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 Required

    The 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 Required

    The ID of the spreadsheet

  • sheet_title Required

    The 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 Required

    The title of the presentation.

get_presentation

Get presentation details including slides and content.

Parameters

  • presentation_id Required

    The ID of the presentation to retrieve.

add_slide

Add a new slide to the presentation.

Parameters

  • presentation_id Required

    The 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 Required

    The ID of the presentation.

  • slide_id Required

    The ID of the slide to update.

  • element_id Required

    The ID of the element to update.

  • new_content Required

    The new content for the element.