managing-google-workspace

Manages Google Workspace operations across 12 services (Gmail, Drive, Calendar, Docs, Sheets, Slides, Forms, Tasks, Contacts, Chat, Apps Script, Custom Search). Supports MCP tools or CLI via uvx workspace-mcp --cli. Provides tool routing, workflows, and parameter guidance for 114 tools. Triggers for "check my email", "find a file", "schedule a meeting", "update the spreadsheet", "share a doc", "create a presentation", "add a task", "look up a contact", or any mention of Google Workspace services.

Google Workspace -- Tool Router

Execution Mode

Detect which mode is available and use it.

MCP (preferred)

If MCP tools from the google-workspace server are available, call them directly. The tool names in the tables below are the base names -- prefix with the server name as needed (e.g. google-workspace:search_gmail_messages).

CLI (no MCP)

If no MCP tools are available, execute via bash:

uvx workspace-mcp --cli <tool_name> --args '{"user_google_email": "USER_EMAIL", ...}'

Before calling a tool, read the relevant reference file for exact parameter names and types. Only use parameters documented there -- do not invent parameters.

First-Time Setup

If a tool call fails with a credential error, walk the user through this setup.

1. Create OAuth credentials

Direct the user to Google Cloud Console:

  • Create OAuth 2.0 Client ID (Desktop application type)
  • Enable the Google APIs they need (Gmail, Drive, Calendar, etc.)
  • Copy the Client ID and Client Secret

2. Store credentials

Direct the user to edit ~/.claude/settings.local.json themselves (this file is gitignored and never shared). Do not ask the user to paste secrets into the conversation. Tell them to add the following to the env block:

{
  "env": {
    "GOOGLE_OAUTH_CLIENT_ID": "their-client-id",
    "GOOGLE_OAUTH_CLIENT_SECRET": "their-secret"
  }
}

If settings.local.json already exists, they should merge into the existing env object, not replace it. These env vars are inherited by all MCP servers and CLI processes that Claude Code spawns.

3. Authenticate

  • MCP mode: call start_google_auth to open the browser OAuth flow
  • CLI mode: run any tool -- the first invocation opens the OAuth flow
  • Credentials are cached in ~/.google_workspace_mcp/credentials (or as configured by WORKSPACE_MCP_CREDENTIALS_DIR) for future sessions

For server options, transport, auth modes, tool filtering, and deployment: references/server-options.md

Universal Patterns

  • Consolidated "manage" tools use an action parameter for create/update/delete.

Tool Reference

Gmail

TaskTool
Search/find emailssearch_gmail_messages
Read one emailget_gmail_message_content
Read multiple emailsget_gmail_messages_content_batch
Read a threadget_gmail_thread_content
Read multiple threadsget_gmail_threads_content_batch
Send email (new or reply)send_gmail_message
Create draftdraft_gmail_message
Download attachmentget_gmail_attachment_content
Add/remove labels (one)modify_gmail_message_labels
Add/remove labels (batch)batch_modify_gmail_message_labels
Manage labelsmanage_gmail_label
List labelslist_gmail_labels
Manage filtersmanage_gmail_filter
List filterslist_gmail_filters

For parameters: references/gmail.md

Google Drive

TaskTool
Search files/folderssearch_drive_files
List items in folderlist_drive_items
Read file contentget_drive_file_content
Download fileget_drive_file_download_url
Create filecreate_drive_file
Create foldercreate_drive_folder
Copy filecopy_drive_file
Update file metadataupdate_drive_file
Share / set permissionsset_drive_file_permissions
Manage access (add/remove)manage_drive_access
Check permissionsget_drive_file_permissions
Get shareable linkget_drive_shareable_link
Check public accesscheck_drive_file_public_access
Import file to Google Docimport_to_google_doc

For parameters: references/drive.md

Google Calendar

TaskTool
List calendarslist_calendars
Get eventsget_events
Create/update/delete eventmanage_event
Check availabilityquery_freebusy

For parameters: references/calendar.md

Google Docs

TaskTool
Read doc as Markdownget_doc_as_markdown
Read doc content (raw)get_doc_content
Create new doccreate_doc
Modify text / apply stylesmodify_doc_text
Insert elements (tables, lists, breaks)insert_doc_elements
Insert imageinsert_doc_image
Create table with datacreate_table_with_data
Update paragraph stylesupdate_paragraph_style
Find and replacefind_and_replace_doc
Inspect structureinspect_doc_structure
Batch update (multiple ops)batch_update_doc
Headers/footersupdate_doc_headers_footers
Manage tabsinsert_doc_tab / update_doc_tab / delete_doc_tab
Export to PDFexport_doc_to_pdf
List docs in folderlist_docs_in_folder
Search docssearch_docs
Commentsmanage_document_comment / list_document_comments
Debug table structuredebug_table_structure

For parameters: references/docs.md

Google Sheets

TaskTool
Read cell valuesread_sheet_values
Write/append/clear valuesmodify_sheet_values
Format cellsformat_sheet_range
Conditional formattingmanage_conditional_formatting
Get spreadsheet infoget_spreadsheet_info
Create spreadsheetcreate_spreadsheet
Create sheet (tab)create_sheet
List spreadsheetslist_spreadsheets
Commentsmanage_spreadsheet_comment / list_spreadsheet_comments

For parameters: references/sheets.md

Google Slides

TaskTool
Get presentationget_presentation
Get specific slideget_page
Get slide thumbnailget_page_thumbnail
Create presentationcreate_presentation
Batch updatebatch_update_presentation
Commentsmanage_presentation_comment / list_presentation_comments

For parameters: references/slides.md

Google Forms

TaskTool
Get formget_form
Create formcreate_form
Batch update formbatch_update_form
List responseslist_form_responses
Get one responseget_form_response
Publish settingsset_publish_settings

For parameters: references/forms.md

Google Tasks

TaskTool
List task listslist_task_lists
Get task listget_task_list
Manage task list (CRUD)manage_task_list
List taskslist_tasks
Get taskget_task
Manage task (CRUD/move)manage_task

For parameters: references/tasks.md

Google Contacts

TaskTool
Search contactssearch_contacts
Get contactget_contact
Manage contact (CRUD)manage_contact
Batch manage contactsmanage_contacts_batch
List contact groupslist_contact_groups
Get contact groupget_contact_group
Manage contact groupmanage_contact_group
List all contactslist_contacts

For parameters: references/contacts.md

Google Chat

TaskTool
List spaceslist_spaces
Get messagesget_messages
Search messagessearch_messages
Send messagesend_message
React to messagecreate_reaction
Download attachmentdownload_chat_attachment

For parameters: references/chat.md

Google Apps Script

TaskTool
List projectslist_script_projects
Get projectget_script_project
Create projectcreate_script_project
Delete projectdelete_script_project
Get file contentget_script_content
Update file contentupdate_script_content
Run functionrun_script_function
Generate trigger codegenerate_trigger_code
Manage deploymentsmanage_deployment / list_deployments
Versionscreate_version / get_version / list_versions
Execution metricsget_script_metrics
Process historylist_script_processes

For parameters: references/apps-script.md

Google Custom Search

TaskTool
Web searchsearch_custom
Get search engine infoget_search_engine_info

For parameters: references/search.md

Auth

TaskTool
Start OAuth flowstart_google_auth

Parameters: user_google_email (string, optional), service_name (string, required -- e.g. "gmail", "drive"). Legacy OAuth 2.0 only -- disabled when OAuth 2.1 is enabled. In most cases, just call the tool you need and auth happens automatically.

Common Workflows

Reply to an email

  1. search_gmail_messages -- find the email
  2. get_gmail_message_content -- read it (get message_id and thread_id)
  3. send_gmail_message -- reply using in_reply_to and thread_id

Find and share a file

  1. search_drive_files -- find the file
  2. manage_drive_access -- share it
  3. get_drive_shareable_link -- get the link

Read and update a spreadsheet

  1. get_spreadsheet_info -- get sheet names
  2. read_sheet_values -- read current data
  3. modify_sheet_values -- write updated data
  4. read_sheet_values -- verify the update

Create a formatted document

  1. create_doc -- create the doc
  2. modify_doc_text -- add text with formatting
  3. insert_doc_elements -- add tables, lists, page breaks
  4. update_paragraph_style -- apply heading styles
  5. get_doc_as_markdown -- verify the result

Process email attachments

  1. search_gmail_messages -- find the email
  2. get_gmail_message_content -- get attachment metadata
  3. get_gmail_attachment_content -- download the attachment

Edit a Google Doc

  1. get_doc_as_markdown -- read current content
  2. inspect_doc_structure -- find insertion points and indices
  3. modify_doc_text / insert_doc_elements -- make changes
  4. get_doc_as_markdown -- verify the result

Tips

  • Check parameters: In CLI mode, run uvx workspace-mcp --cli <tool> --help for any unfamiliar tool.