mcpField
M
managing-google-workspace

managing-google-workspace

github.com/taylorwilsdonProductivity3.4k106 installsUpdated 1d ago
Repository

About managing-google-workspace

A workflow skill for using Google Workspace tools through an available MCP server or, otherwise, workspace-cli. It covers Gmail, Drive, Calendar and other Workspace services, including setup guidance and task sequences.

Key features

  1. 01MCP and CLI mode selection
  2. 02Gmail message and label operations
  3. 03Drive file search and sharing
  4. 04Calendar and document workflows
  5. 05OAuth setup and credential guidance

Use cases

  1. 01Finding and replying to Gmail messages
  2. 02Sharing a Drive file
  3. 03Reading and updating spreadsheet data
  4. 04Creating and formatting a Google Doc

MCP support

When the google-workspace MCP server is available, the skill directs direct tool calls; otherwise it describes calling a reachable server with workspace-cli.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/taylorwilsdon/google_workspace_mcp --skill managing-google-workspace

After installing, type/managing-google-workspacein Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

evaluations/
edit_doc.json
search_email.json
share_file.json
references/
apps-script.md
calendar.md
chat.md
contacts.md
docs-layout-workflow.md
docs.md
drive.md
forms.md
gmail.md
search.md
server-options.md
sheets.md
slides.md
tasks.md

Details

From the project README

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, call a running server via workspace-cli:

workspace-cli list
workspace-cli call <tool_name> key=value ...
  • Pass user_google_email=USER_EMAIL only when the tool schema requires it (legacy OAuth 2.0 without USER_GOOGLE_EMAIL set). Omit it for OAuth 2.1 and trusted-gateway servers, which take it from the verified identity.
  • Arguments are key=value pairs; values are parsed as JSON when possible, so pass lists and objects as JSON (e.g. label_ids='["INBOX"]').
  • The server must be reachable over HTTP. The default URL is http://localhost:8000/mcp (a server started with --transport streamable-http); override it with --url before the subcommand (workspace-cli --url <url> call ...) or WORKSPACE_MCP_URL. Plugin users on stdio can set WORKSPACE_MCP_HTTP_PORT to expose a loopback sidecar at http://127.0.0.1:<port>/mcp.
  • If workspace-cli is not on PATH, run uv run workspace-cli from a checkout of this repo. Installing it permanently (uv tool install . in that checkout) is a manual setup step for the user. Never use uvx workspace-cli: an unrelated, abandoned PyPI package squats that name.

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
Import spreadsheet (XLSX, CSV, ...) to Google Sheetsimport_to_google_sheets
Import presentation (PPTX, ...) to Google Slidesimport_to_google_slides

For parameters: references/drive.md

Google Calendar
TaskTool
List calendarslist_calendars
Create secondary calendarcreate_calendar
Get eventsget_events
Create/update/delete eventmanage_event
Out of office (auto-decline)manage_out_of_office
Focus time (auto-decline, DND)manage_focus_time
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
Read plain text with link/chip targets and document segmentsget_doc_content(preserve_context=True)
Create new doccreate_doc
Modify text / apply styles (by index or by heading)modify_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 tabsmanage_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
Insert smart chipsmodify_sheet_values (chips)
Format cellsformat_sheet_range
Conditional formattingmanage_conditional_formatting
Get spreadsheet infoget_spreadsheet_info
Create spreadsheetcreate_spreadsheet
Create sheet (tab)create_sheet
Rename/delete/hide/reorder/style tabmanage_sheet_tab
Resize/freeze/hide/insert/delete rows and columnsresize_sheet_dimensions
Move rows between sheetsmove_sheet_rows
List structured tableslist_sheet_tables
Append rows to structured tableappend_table_rows
Manage named rangesmanage_named_range
List spreadsheetslist_spreadsheets
Commentsmanage_spreadsheet_comment / list_spreadsheet_comments

For parameters: references/sheets.md

Google Slides
TaskTool
Get presentationget_presentation
Get specific slideget_page
Look at a slide (render to image)render_page_to_image
Create presentationcreate_presentation
Batch updatebatch_update_presentation
Speaker notesget_presentation (include_speaker_notes) + batch_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
Edit a message already sentsend_message (message_name)
React to messagecreate_reaction
Download attachmentdownload_chat_attachment

For parameters: references/chat.md

Google Apps Script
TaskTool
Projects/files (list/get)get_script_project (action)
Projects (create/delete)manage_script_project (action)
File content (update)manage_script_content (action="update")
Run functionrun_script_function
Generate trigger codegenerate_trigger_code
Deployments (list)list_script_deployments
Deployments (create/update/delete)manage_deployment (action)
Versions (list/get)get_script_version (action)
Versions (create)manage_script_version (action="create")
Execution metrics / process historyget_script_activity (action="metrics" / "processes")
Current user's triggers (list/delete)manage_script_trigger (action)

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

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. For parameters: references/server-options.md

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 thread_id; omit reply headers to target the latest non-draft, non-trash message with an RFC Message-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: The reference files document every parameter of every tool. In CLI mode, workspace-cli list shows which tools the running server exposes.

Comments

Markdown supported