Skip to content
Agentmart
Submit a tool

Workspace MCP

Google Workspace MCP server for Gmail, Drive, Calendar, Docs, Sheets, Slides, Forms, Tasks, Chat.

Connector by taylorwilsdon · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/taylorwilsdon-workspace-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Google Workspace MCP server for Gmail, Drive, Calendar, Docs, Sheets, Slides, Forms, Tasks, Chat.

Use cases: email, scheduling, spreadsheets, document-processing, file-management

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
53 read · 26 write · 36 delete
Secrets
None asked for
Install scripts
Not scanned yet
Runs as
Python package

Tools by what they do 115

Read from the source code; the running server may list different tools.

Read 53 · Look things up without changing anything.

  • check_drive_file_public_access
  • debug_table_structure
  • generate_trigger_code
  • get_contact
  • get_contact_group
  • get_doc_as_markdown
  • get_doc_content
  • get_drive_file_content
  • get_drive_file_download_url
  • get_drive_file_permissions
  • get_drive_shareable_link
  • get_events
Show 41 more tools
  • get_form
  • get_form_response
  • get_gmail_message_content
  • get_gmail_messages_content_batch
  • get_gmail_thread_content
  • get_gmail_threads_content_batch
  • get_messages
  • get_page
  • get_presentation
  • get_script_activity
  • get_script_project
  • get_script_version
  • get_search_engine_info
  • get_spreadsheet_info
  • get_task
  • get_task_list
  • inspect_doc_structure
  • list_calendars
  • list_comments
  • list_contact_groups
  • list_contacts
  • list_docs_in_folder
  • list_drive_items
  • list_form_responses
  • list_gmail_filters
  • list_gmail_labels
  • list_script_deployments
  • list_sheet_tables
  • list_spaces
  • list_spreadsheets
  • list_task_lists
  • list_tasks
  • query_freebusy
  • read_sheet_values
  • render_page_to_image
  • search_contacts
  • search_custom
  • search_docs
  • search_drive_files
  • search_gmail_messages
  • search_messages

Write 26 · Create, change, send or run things.

  • append_table_rows
  • copy_drive_file
  • create_calendar
  • create_doc
  • create_drive_file
  • create_drive_folder
  • create_form
  • create_presentation
  • create_reaction
  • create_sheet
  • create_spreadsheet
  • create_table_with_data
Show 14 more tools
  • download_chat_attachment
  • draft_gmail_message
  • export_doc_to_pdf
  • get_gmail_attachment_content
  • import_to_google_doc
  • import_to_google_sheets
  • import_to_google_slides
  • insert_doc_elements
  • insert_doc_image
  • manage_comment
  • manage_script_version
  • set_publish_settings
  • start_google_auth
  • update_paragraph_style

Delete 36 · Delete, drop, revoke or wipe things.

  • batch_modify_gmail_message_labels
  • batch_update_doc
  • batch_update_form
  • batch_update_presentation
  • find_and_replace_doc
  • format_sheet_range
  • manage_conditional_formatting
  • manage_contact
  • manage_contact_group
  • manage_contacts_batch
  • manage_deployment
  • manage_doc_tab
Show 24 more tools
  • manage_drive_access
  • manage_event
  • manage_focus_time
  • manage_gmail_filter
  • manage_gmail_label
  • manage_named_range
  • manage_out_of_office
  • manage_script_content
  • manage_script_project
  • manage_script_trigger
  • manage_sheet_tab
  • manage_task
  • manage_task_list
  • modify_doc_text
  • modify_gmail_message_labels
  • modify_sheet_values
  • move_sheet_rows
  • resize_sheet_dimensions
  • run_script_function
  • send_gmail_message
  • send_message
  • set_drive_file_permissions
  • update_doc_headers_footers
  • update_drive_file

Files it touches

  • Any path the agent passes to its tools

Tools (115)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • append_table_rowsAppend Table Rows

    Appends rows to a structured table in a Google Sheet. The rows are added to the end of the table body, automatically extending the table range. Use list_sheet_tables first to find the table ID. Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. table_id (str): The ID of the table to append to (get from list_sheet_tables). Required. values (Union[str, List[List]]): 2D array of values to append. Each inner list is one row. Can be a JSON string or Python list. Required. Returns: str: C…

  • batch_modify_gmail_message_labelsBatch Modify Gmail Message Labelscan change or delete data

    Adds or removes labels on many Gmail messages, or on every message of whole conversations via thread_ids. message_ids are sent in one users.messages.batchModify call (Gmail accepts up to 1000 ids per call). That endpoint returns no per-message result and silently ignores ids it does not recognise, so by default the messages are read back afterwards to report which ids actually changed. thread_ids are modified one at a time with users.threads.modify, e.g. archive a conversation with remove_label_ids=["INBOX"] or mark it read with remove_label_ids=["UNREAD"]. Each thread reports its own outcom…

  • batch_update_docBatch Update Doccan change or delete data

    Executes multiple low-level document operations in a single atomic batch update. For normal header/footer text, prefer update_doc_headers_footers. Only use create_header_footer here for advanced section-break layouts. RECOMMENDED WORKFLOW FOR BUILDING DOCUMENTS: ============================================= To avoid index calculation errors, build documents in phases: PHASE 1 - INSERT ALL CONTENT (use end_of_segment=true, no index math): Append text, section breaks, and page breaks sequentially. Each operation appends to the end of the body. No index needed. Example batch: [ {"typ…

  • batch_update_formBatch Update Formcan change or delete data

    Apply batch updates to a Google Form. Supports adding, updating, and deleting form items, as well as updating form metadata and settings. This is the primary method for modifying form content after creation. Args: user_google_email (str): The user's Google email address. Required. form_id (str): The ID of the form to update. requests (List[Dict[str, Any]]): List of update requests to apply. Supported request types: - createItem: Add a new question or content item - updateItem: Modify an existing item - deleteItem: Remove an item - moveItem:…

  • batch_update_presentationBatch Update Presentationcan change or delete data

    Apply batch updates to a Google Slides presentation. Important: Each request object must contain exactly one supported Slides request type, such as createSlide, createShape, insertText, updateTextStyle, createImage, or deleteObject. insertText.objectId must be a text-capable shape or table object ID, not a slide/page object ID. To add text to a slide, create a text box or shape first with createShape, set elementProperties.pageObjectId to the slide ID, and then insertText into that shape objectId. To edit existing text, call get_page and use a Shape or Table e…

  • check_drive_file_public_accessCheck Drive File Public Accessread-only

    Searches for a file by name and checks if it has public link sharing enabled. Args: user_google_email (str): The user's Google email address. Required. file_name (str): The name of the file to check. drive_id (Optional[str]): ID of the shared drive to scope the search to. When set, the underlying files.list call uses corpora='drive' and the given driveId, which is required to reliably find files that live only in that shared drive. When None, behaviour is unchanged …

  • copy_drive_fileCopy Drive File

    Creates a copy of an existing Google Drive file. This tool copies the template document to a new location with an optional new name. The copy maintains all formatting and content from the original file. Args: user_google_email (str): The user's Google email address. Required. file_id (str): The ID of the file to copy. Required. new_name (Optional[str]): New name for the copied file. If not provided, uses "Copy of [original name]". parent_folder_id (str): The ID of the folder where the copy should be created. Defaults to 'root' (My Drive). copy_comments (bool): Copy open c…

  • create_calendarCreate Calendar

    Creates a new secondary Google Calendar. Args: user_google_email (str): The user's Google email address. Required. summary (str): The title/name of the new calendar. description (Optional[str]): An optional description for the calendar. timezone (Optional[str]): IANA timezone for the calendar (e.g. 'America/New_York'). Returns: str: The ID and summary of the newly created calendar.

  • create_docCreate Doc

    Creates a new Google Doc and optionally inserts initial content. `content` is inserted as plain text (Markdown is not rendered); use import_to_google_doc to create a doc from Markdown. After creation, the document body starts at index 1. A new empty doc has total length 2 (one section break at index 0, one newline at index 1). To build a rich document after creation, use batch_update_doc with insert_text operations using end_of_segment=true to append content sequentially without calculating indices. Then call inspect_doc_structure to get exact positions before applying formatting in a separ…

  • create_drive_fileCreate Drive File

    Creates a new file in Google Drive, supporting creation within shared drives. Accepts direct text content, inline base64 bytes, or a fileUrl to fetch content from. Where local file access is disabled it can instead return an upload URL for the caller to PUT file bytes to. This stores the supplied bytes without converting them to Google Docs, Sheets, or Slides. Use the matching import_to_google_* tool for Google-native conversion. Args: user_google_email (str): The user's Google email address. Required. file_name (str): The name for the new file. content (Optional[str]): If provide…

  • create_drive_folderCreate Drive Folder

    Creates a new folder in Google Drive, supporting creation within shared drives. Args: user_google_email (str): The user's Google email address. Required. folder_name (str): The name for the new folder. parent_folder_id (str): The ID of the parent folder. Defaults to 'root'. For shared drives, use a folder ID within that shared drive. Returns: str: Confirmation message with folder name, ID, and link.

  • create_formCreate Form

    Create a new form using the title given in the provided form message in the request. Args: user_google_email (str): The user's Google email address. Required. title (str): The title of the form. description (Optional[str]): The description of the form. document_title (Optional[str]): The document title (shown in browser tab). Returns: str: Confirmation message with form ID and edit URL.

  • create_presentationCreate Presentation

    Create a new Google Slides presentation. Args: user_google_email (str): The user's Google email address. Required. title (str): The title for the new presentation. Defaults to "Untitled Presentation". Returns: str: Details about the created presentation including ID and URL.

  • create_reactionCreate Reaction

    Adds an emoji reaction to a Google Chat message. Args: message_id: The message resource name (e.g. spaces/X/messages/Y). emoji_unicode: The emoji character to react with (e.g. 👍). Returns: str: Confirmation message.

  • create_sheetCreate Sheet

    Creates a new sheet or duplicates an existing sheet (user_google_email: str, spreadsheet_id: str, sheet_name: Optional[str] = None, source_sheet_name: Optional[str] = None, insert_sheet_index: Optional[int] = None).

Show 100 more tools
  • create_spreadsheetCreate Spreadsheet

    Creates a new Google Spreadsheet. Args: user_google_email (str): The user's Google email address. Required. title (str): The title of the new spreadsheet. Required. sheet_names (Optional[List[str]]): List of sheet names to create. If not provided, creates one sheet with default name. folder_id (str): The ID of the parent folder. Defaults to 'root'. For shared drives, this must be a folder ID within the shared drive. Returns: str: Information about the newly created spreadsheet including ID, URL, and locale.

  • create_table_with_dataCreate Table with Data

    Creates a table and populates it with data in one reliable operation. CRITICAL: YOU MUST CALL inspect_doc_structure FIRST TO GET THE INDEX! MANDATORY WORKFLOW - DO THESE STEPS IN ORDER: Step 1: ALWAYS call inspect_doc_structure first Step 2: Use the 'total_length' value from inspect_doc_structure as your index Step 3: Format data as 2D list: [["col1", "col2"], ["row1col1", "row1col2"]] Step 4: Call this function with the correct index and data EXAMPLE DATA FORMAT: table_data = [ ["Header1", "Header2", "Header3"], # Row 0 - headers ["Data1", "Data2", "Data3"], # Row 1 - …

  • debug_table_structureDebug Table Structureread-only

    ESSENTIAL DEBUGGING TOOL - Use this whenever tables don't work as expected. USE THIS IMMEDIATELY WHEN: - Table population put data in wrong cells - You get "table not found" errors - Data appears concatenated in first cell - Need to understand existing table structure - Planning to fill existing cells with modify_doc_text at their insertion_index WHAT THIS SHOWS YOU: - Exact table dimensions (rows × columns) - Each cell's position coordinates (row,col) - Current content in each cell - Insertion indices for each cell - Table boundaries and ranges HOW TO READ THE OUTPUT: - "dimensions": "2x3"…

  • download_chat_attachmentDownload Chat Attachment

    Downloads an attachment from a Google Chat message and saves it to local disk. In stdio mode, returns the local file path for direct access. In HTTP mode, returns a temporary download URL (valid for 1 hour). Args: message_id: The message resource name (e.g. spaces/X/messages/Y). attachment_index: Zero-based index of the attachment to download (default 0). Returns: str: Attachment metadata with either a local file path or download URL.

  • draft_gmail_messageDraft Gmail Message

    Creates a draft email in the user's Gmail account. Supports new, reply, and forward drafts with optional attachments. Supports Gmail's "Send As" feature to draft from configured alias addresses. To save a forward as a draft for review, pass forward_message_id. The original subject, body (quoted with a "Forwarded message" header), and attachments are carried over. In forward mode, body (if any) is prepended as a note, subject is optional, and threading, reply, and signature options do not apply. SCHEDULED SEND IS NOT AVAILABLE. Gmail's REST API exposes no send-time parameter; the Schedule sen…

  • export_doc_to_pdfExport Doc to PDF

    Exports a Google Doc to PDF format and saves it to Google Drive. Args: user_google_email: User's Google email address document_id: ID of the Google Doc to export pdf_filename: Name for the PDF file (optional - if not provided, uses original name + "_PDF") folder_id: Drive folder ID to save PDF in (optional - if not provided, saves in root) Returns: str: Confirmation message with PDF file details and links

  • find_and_replace_docFind and Replace Doccan change or delete data

    Finds and replaces text throughout a Google Doc. No index calculation required. This is the safest way to update specific text in a document because it does not require knowing any indices. Use this tool when you need to: - Replace placeholder text (e.g., {{TITLE}}) with real content - Update specific words or phrases throughout the document - Make targeted text changes without risk of index errors For building documents from scratch, consider inserting text with unique placeholders via batch_update_doc, then using this tool to replace them. Args: user_google_email: User's Google email …

  • format_sheet_rangeFormat Sheet Rangecan change or delete data

    Applies formatting to a range: colors, number formats, text wrapping, alignment, text styling, cell merging/unmerging, borders, and dropdown lists. Colors accept hex strings (#RRGGBB). Number formats follow Sheets types (e.g., NUMBER, CURRENCY, DATE, PERCENT). If no sheet name is provided, the first sheet is used. Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. range_name (str): A1-style range (optionally with sheet name). Required. background_color (Optional[str]): Hex background color (e.g.…

  • generate_trigger_codeGenerate Trigger Coderead-only

    Generates Apps Script code for creating triggers. The Apps Script API cannot create triggers directly - they must be created from within Apps Script itself. This tool generates the code you need. To list or remove existing triggers without opening the editor, use `manage_script_trigger` (action="list" / action="delete") instead. Args: trigger_type: Type of trigger. One of: - "time_minutes" (run every N minutes: 1, 5, 10, 15, 30) - "time_hours" (run every N hours: 1, 2, 4, 6, 8, 12) - "time_daily" (run daily at a specific hour: 0-23) …

  • get_contactGet Contactread-only

    Get detailed information about a specific contact. Args: user_google_email (str): The user's Google email address. Required. contact_id (str): The contact ID (e.g., "c1234567890" or full resource name "people/c1234567890"). Returns: str: Detailed contact information.

  • get_contact_groupGet Contact Groupread-only

    Get details of a specific contact group including its members. Args: user_google_email (str): The user's Google email address. Required. group_id (str): The contact group ID. max_members (int): Maximum number of members to return (default: 100, max: 1000). Returns: str: Contact group details including members.

  • get_doc_as_markdownGet Doc as Markdownread-only

    Reads a Google Doc and returns it as clean Markdown with optional comment context. Unlike get_doc_content which returns plain text, this tool preserves document formatting as Markdown: headings, bold/italic/strikethrough, links, code spans, ordered/unordered lists with nesting, and tables. When comments are included (the default), each comment's anchor text — the specific text the comment was attached to — is preserved, giving full context for the discussion. Args: user_google_email: User's Google email address document_id: ID of the Google Doc (or full URL). When a full URL is prov…

  • get_doc_contentGet Doc Contentread-only

    Retrieves content of a Google Doc or a Drive file (like .docx) identified by document_id. - Native Google Docs: Fetches content via Docs API. - Office files (.docx, etc.) stored in Drive: Downloads via Drive API and extracts text. By default, native Google Docs text is index-aligned with the document: empty paragraphs are preserved and every non-text element that occupies an index (inline object, page break, footnote reference, ...) is rendered as one U+FFFC placeholder per index. The document body starts at index 1, so an offset n into the text that follows "--- CONTENT ---" is document inde…

  • get_drive_file_contentGet Drive File Contentread-only

    Retrieves the content of a specific Google Drive file by ID, supporting files in shared drives. • Native Google Docs, Sheets, Slides → exported as text / CSV. • Office files (.docx, .xlsx, .pptx) → unzipped & parsed with std-lib to extract readable text. • PDFs → text extracted with pypdf when possible; scanned/image-only PDFs fall back to a download hint. • Images (PNG, JPEG, GIF, WebP) → returned as MCP image content after the metadata header. SVG → returned as its markup; raster images it embeds as base64 are attached as image content, numbered to match their place in the markup.…

  • get_drive_file_download_urlGet Drive File Download URLread-only

    Downloads a Google Drive file and saves it to local disk. In stdio mode, returns the local file path for direct access. In HTTP mode, returns a temporary download URL (valid for 1 hour). In stateless mode (no file storage), returns the file itself as an embedded resource, up to WORKSPACE_MCP_STATELESS_INLINE_MAX_BYTES (default 10 MiB, and never more than WORKSPACE_MCP_MAX_FILE_BYTES when that is set). For Google native files (Docs, Sheets, Slides), exports to a useful format: - Google Docs -> PDF (default) or DOCX if export_format='docx' - Google Sheets -> XLSX (default), PDF if export_forma…

  • get_drive_file_permissionsGet Drive File Permissionsread-only

    Gets detailed metadata about a Google Drive file including sharing permissions, parent folder IDs, ownership, and lifecycle timestamps. Args: user_google_email (str): The user's Google email address. Required. file_id (str): The ID of the file to check permissions for. Returns: str: Detailed file metadata including parents, owners, timestamps, sharing status, and URLs.

  • get_drive_shareable_linkGet Drive Shareable Linkread-only

    Gets the shareable link for a Google Drive file or folder. Args: user_google_email (str): The user's Google email address. Required. file_id (str): The ID of the file or folder to get the shareable link for. Required. Returns: str: The shareable links and current sharing status.

  • get_eventsGet Eventsread-only

    Retrieves events from a specified Google Calendar. Can retrieve a single event by ID or multiple events within a time range. You can also search for events by keyword by supplying the optional "query" param. Args: user_google_email (str): The user's Google email address. Required. calendar_id (str): The ID of the calendar to query. Use 'primary' for the user's primary calendar. Defaults to 'primary'. Calendar IDs can be obtained using `list_calendars`. event_id (Optional[str]): The ID of a specific event to retrieve. If provided, retrieves only this event and ignores time filterin…

  • get_formGet Formread-only

    Get a form. Args: user_google_email (str): The user's Google email address. Required. form_id (str): The ID of the form to retrieve. Returns: str: Form details including title, description, questions, and URLs.

  • get_form_responseGet Form Responseread-only

    Get one response from the form. Args: user_google_email (str): The user's Google email address. Required. form_id (str): The ID of the form. response_id (str): The ID of the response to retrieve. Returns: str: Response details including answers and metadata.

  • get_gmail_attachment_contentGet Gmail Attachment Content

    Downloads an email attachment and saves it to local disk. In stdio mode, returns the local file path for direct access. In HTTP mode, returns a temporary download URL (valid for 1 hour). May re-fetch message metadata to resolve filename and MIME type. Args: message_id (str): The ID of the Gmail message containing the attachment. attachment_id (str): The ID of the attachment to download. user_google_email (str): The user's Google email address. Required. return_base64 (bool): When True, includes the full attachment as a standard base64 string in the response (in additi…

  • get_gmail_message_contentGet Gmail Message Contentread-only

    Retrieves the full content (subject, sender, recipients, body) of a specific Gmail message. Bodies are returned inline and truncated at 20,000 characters. Set full=True to get the complete, untruncated message instead: it is exported to storage and the response carries a short-lived download URL (HTTP transport) or file path (stdio transport) rather than the body, so large messages never stream through the model context. Stateless deployments without GCS staging have no storage, so there full=True returns the untruncated body inline; with GCS staging configured it returns a signed download UR…

  • get_gmail_messages_content_batchGet Gmail Messages Content Batchread-only

    Retrieves the content of multiple Gmail messages in a single batch request. Supports up to 25 messages per batch to prevent SSL connection exhaustion. Args: message_ids (List[str]): List of Gmail message IDs to retrieve; fetched in batches of 25. user_google_email (str): The user's Google email address. Required. format (Literal["full", "metadata"]): Message format. "full" includes body, "metadata" only headers. body_format (Literal["text", "html", "raw"]): Body output format (only applies when format='full'). "text" (default) returns plaintext (HTML converted to text …

  • get_gmail_thread_contentGet Gmail Thread Contentread-only

    Retrieves the complete content of a Gmail conversation thread, including all messages. Optionally also returns structured ownership analysis so a caller can determine who sent the last message and who owes whom a response without re-parsing the formatted string or making a second tool call. Args: thread_id (str): The unique ID of the Gmail thread to retrieve. user_google_email (str): The user's Google email address. Required. body_format (Literal["text", "html", "raw"]): Body output format. "text" (default) returns plaintext (HTML converted to text as fallback). "…

  • get_gmail_threads_content_batchGet Gmail Threads Content Batchread-only

    Retrieves the content of multiple Gmail threads in a single batch request. Supports up to 25 threads per batch to prevent SSL connection exhaustion. Args: thread_ids (List[str]): A list of Gmail thread IDs to retrieve. The function will automatically batch requests in chunks of 25. user_google_email (str): The user's Google email address. Required. body_format (Literal["text", "html", "raw"]): Body output format. "text" (default) returns plaintext (HTML converted to text as fallback). "html" returns the raw HTML body as-is without conversion. "raw" fetches …

  • get_messagesGet Messagesread-only

    Retrieves messages from a Google Chat space. Args: message_filter: Optional filter string using the Chat API filter syntax. Supports createTime and thread.name. Examples: 'createTime > "2026-03-18T00:00:00-03:00"' 'createTime > "2026-03-18T00:00:00-03:00" AND createTime < "2026-03-19T00:00:00-03:00"' 'thread.name = spaces/X/threads/Y' Returns: str: Formatted messages from the specified space.

  • get_pageGet Pageread-only

    Get details about a specific page (slide) in a presentation. Args: user_google_email (str): The user's Google email address. Required. presentation_id (str): The ID of the presentation. page_object_id (str): The object ID of the page/slide to retrieve. include_geometry (bool): Also report each element's placement - its transform (translate, and scale/shear when not identity) and intrinsic size, in raw EMU. Set this when adding elements to an existing deck: it is the only way to discover the deck's margins, gutters and content width, which Slides…

  • get_presentationGet Presentationread-only

    Get details about a Google Slides presentation. Args: user_google_email (str): The user's Google email address. Required. presentation_id (str): The ID of the presentation to retrieve. include_speaker_notes (bool): Also report each slide's speaker (presenter) notes and the object ID of the shape holding them. Pass True when you need to read or edit notes: that shape ID is the only valid target for insertText/deleteText on notes, and batch_update_presentation writes notes by deleting the shape's existing text and inserting new text. Defaults …

  • get_script_activityGet Script Activityread-only

    Read execution activity for scripts: recent processes or aggregate metrics. Actions: - "processes": List recent execution processes. Without script_id, lists the user's own recent runs; with script_id, lists all processes for that script visible to the user (including runs by others). Optional page_size. - "metrics": Get aggregate execution metrics (active users, total and failed executions) for one script. Requires script_id; optional metrics_granularity ("DAILY" or "WEEKLY"). Args: service: Injected Google API service client user_google_email: …

  • get_script_projectGet Script Projectread-only

    Read Apps Script projects and their source files. Actions: - "list": List Apps Script projects accessible to the user (Drive-backed). Optional: page_size, page_token. - "get": Retrieve one project's metadata and file overview, or one complete source file when file_name is provided. Requires script_id. Args: drive_service: Injected Drive client (used for list). script_service: Injected Script client (used for get). user_google_email: User's email address action: One of "list", "get". script_id: The script project ID (required for get). file_name: Op…

  • get_script_versionGet Script Versionread-only

    List or retrieve immutable version snapshots of a script project. Actions: - "list": List every version of the project. - "get": Retrieve one version. Requires version_number.

  • get_search_engine_infoGet Search Engine Inforead-only

    Retrieves metadata about a Programmable Search Engine. Args: user_google_email (str): The user's Google email address. Required. Returns: str: Information about the search engine including its configuration and available refinements.

  • get_spreadsheet_infoGet Spreadsheet Inforead-only

    Gets information about a specific spreadsheet including its sheets. Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet to get info for. Required. Returns: str: Formatted spreadsheet information including title, locale, and sheets list.

  • get_taskGet Taskread-only

    Get details of a specific task. Args: user_google_email (str): The user's Google email address. Required. task_list_id (str): The ID of the task list containing the task. task_id (str): The ID of the task to retrieve. Returns: str: Task details including title, notes, status, due date, etc.

  • get_task_listGet Task Listread-only

    Get details of a specific task list. Args: user_google_email (str): The user's Google email address. Required. task_list_id (str): The ID of the task list to retrieve. Returns: str: Task list details including title, ID, and last updated time.

  • import_to_google_docImport to Google Doc

    Imports a file (Markdown, DOCX, TXT, HTML, RTF, ODT) into Google Docs format with automatic conversion. Google Drive automatically converts the source file to native Google Docs format, preserving formatting like headings, lists, bold, italic, etc. Binary sources may be passed directly as base64_content. On a local server a file on disk can also be passed by path (preferred for batch operations, so callers do not need to load full file contents into their context). Args: user_google_email (str): The user's Google email address. Required. file_name (str): The name for the new Google D…

  • import_to_google_sheetsImport to Google Sheets

    Imports a spreadsheet (XLSX, XLS, ODS, CSV, TSV) into Google Sheets format with automatic conversion. Google Drive automatically converts the source spreadsheet to native Google Sheets format, preserving rows, columns, sheets, and values. Binary sources may be passed directly as base64_content. On a local server a file on disk can also be passed by path (preferred for batch operations, so callers do not need to load full file contents into their context). Args: user_google_email (str): The user's Google email address. Required. file_name (str): The name for the new Google Sheets spre…

  • import_to_google_slidesImport to Google Slides

    Imports a presentation (PPTX, PPT, ODP) into Google Slides format with automatic conversion. Google Drive automatically converts the source presentation to native Google Slides format, preserving slides, layouts, text, and images. Binary sources may be passed directly as base64_content. On a local server a file on disk can also be passed by path (preferred for batch operations, so callers do not need to load full file contents into their context). Args: user_google_email (str): The user's Google email address. Required. file_name (str): The name for the new Google Slides presentation…

  • insert_doc_elementsInsert Doc Elements

    Inserts structural elements like tables, lists, or page breaks into a Google Doc. Args: user_google_email: User's Google email address document_id: ID of the document to update element_type: Type of element to insert ("table", "list", "page_break") index: Position to insert element (0-based) rows: Number of rows for table (required for table) columns: Number of columns for table (required for table) list_type: Type of list ("UNORDERED", "ORDERED") (required for list) text: Initial text content for list items Returns: str: Confirmation message with insertio…

  • insert_doc_imageInsert Doc Image

    Inserts an image into a Google Doc from Drive or a URL. Args: user_google_email: User's Google email address document_id: ID of the document to update image_source: Drive file ID or public image URL index: Position to insert image (0-based) width: Image width in points (optional) height: Image height in points (optional) Returns: str: Confirmation message with insertion details

  • inspect_doc_structureInspect Doc Structureread-only

    Essential tool for finding safe insertion points and understanding document structure. USE THIS FOR: - Finding the correct index for table insertion - Understanding document layout before making changes - Locating existing tables and their positions - Getting document statistics and complexity info - Inspecting structure of specific tabs CRITICAL FOR TABLE OPERATIONS: ALWAYS call this BEFORE creating tables to get a safe insertion index. WHAT THE OUTPUT SHOWS: - total_elements: Number of document elements - total_length: Maximum safe index for insertion - tables: Number of existing tables -…

  • list_calendarsList Calendarsread-only

    Retrieves a list of calendars accessible to the authenticated user. Args: user_google_email (str): The user's Google email address. Required. max_results (Optional[int]): Maximum calendars to return in one page. Omit to use the API default. page_token (Optional[str]): Token for the next page, taken from a previous response. Returns: str: A formatted list of the user's calendars (summary, ID, primary status, time zone). When more calendars remain, a "Next page token" line is appended.

  • list_comments

    List all comments from a Google Document (optional max_comments to limit results).

  • list_contact_groupsList Contact Groupsread-only

    List contact groups (labels) for the user. Args: user_google_email (str): The user's Google email address. Required. page_size (int): Maximum number of groups to return (default: 100, max: 1000). page_token (Optional[str]): Token for pagination. Returns: str: List of contact groups with their details.

  • list_contactsList Contactsread-only

    List contacts for the authenticated user, optionally as a full or incremental sync. Args: user_google_email (str): The user's Google email address. Required. page_size (int): Maximum number of contacts to return (default: 100, max: 1000). page_token (Optional[str]): Token for pagination. Keep all other arguments unchanged when following it. sort_order (Optional[str]): Sort order: "LAST_MODIFIED_ASCENDING", "LAST_MODIFIED_DESCENDING", "FIRST_NAME_ASCENDING", or "LAST_NAME_ASCENDING". Not supported when syncing. request_sync_token (bool): Start a full sync. The last page ret…

  • list_docs_in_folderList Docs in Folderread-only

    Lists Google Docs within a specific Drive folder. Args: user_google_email: The user's Google email address. folder_id: ID of the Drive folder to list. Defaults to 'root'. page_size: Maximum number of documents to return. Defaults to 100. page_token: Page token from a previous response's nextPageToken to retrieve the next page of results. Returns: str: A formatted list of Google Docs in the specified folder. Includes a nextPageToken line when more results are available.

  • list_drive_itemsList Drive Itemsread-only

    Lists files/folders or shared drive containers, supporting shared drives. If `drive_id` is specified, lists items within that shared drive. `folder_id` is then relative to that drive (or use drive_id as folder_id for root). If `drive_id` is not specified, lists items from user's "My Drive" and accessible shared drives (if `include_items_from_all_drives` is True). Set `resource_type` to "shared_drives" to list shared drive containers instead of folder contents. Args: user_google_email (str): The user's Google email address. Required. folder_id (str): The ID of the Google Drive folder. …

  • list_form_responsesList Form Responsesread-only

    List a form's responses. Args: user_google_email (str): The user's Google email address. Required. form_id (str): The ID of the form. page_size (int): Maximum number of responses to return. Defaults to 10. page_token (Optional[str]): Token for retrieving next page of results. Returns: str: List of responses with basic details and pagination info.

  • list_gmail_filtersList Gmail Filtersread-only

    Lists all Gmail filters configured in the user's mailbox. Args: user_google_email (str): The user's Google email address. Required. Returns: str: A formatted list of filters with their criteria and actions.

  • list_gmail_labelsList Gmail Labelsread-only

    Lists labels in the user's Gmail account. Args: user_google_email (str): The user's Google email address. Required. prefix (Optional[str]): Return only labels whose name starts with this exact (case-sensitive) string. users.labels.list accepts no filter, so the full list is fetched and narrowed here: this shrinks what the caller receives, not the API call. compact (bool): Return minimal JSON {"count", "labels": [{"id", "name"}]} sorted by name, instead of the formatted text list. For callers that parse the result, e.g. a label cache refresh.…

  • list_script_deploymentsList Script Deploymentsread-only

    List deployments for an Apps Script project.

  • list_sheet_tablesList Sheet Tablesread-only

    Lists all structured tables in a spreadsheet with their IDs, names, ranges, and column details. Use this to find table IDs for append_table_rows. Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. Returns: str: Formatted list of tables with their IDs, names, ranges, and columns.

  • list_spacesList Spacesread-only

    Lists Google Chat spaces (rooms and direct messages) accessible to the user. Returns: str: A formatted list of Google Chat spaces accessible to the user.

  • list_spreadsheetsList Spreadsheetsread-only

    Lists spreadsheets from Google Drive that the user has access to. Args: user_google_email (str): The user's Google email address. Required. max_results (int): Maximum number of spreadsheets to return. Defaults to 25. page_token (Optional[str]): Page token from a previous response's nextPageToken to retrieve the next page of results. corpora (Optional[str]): Corpus to search ('user', 'domain', 'drive', 'allDrives'). Defaults to 'drive' when drive_id is set, otherwise 'allDrives'. drive_id (Optional[str]): Shared drive ID to search. Returns: str: A formatted lis…

  • list_task_listsList Task Listsread-only

    List all task lists for the user. Args: user_google_email (str): The user's Google email address. Required. max_results (int): Maximum number of task lists to return (default: 1000, max: 1000). page_token (Optional[str]): Token for pagination. Returns: str: List of task lists with their IDs, titles, and details.

  • list_tasksList Tasksread-only

    List all tasks in a specific task list. Args: user_google_email (str): The user's Google email address. Required. task_list_id (str): The ID of the task list to retrieve tasks from. max_results (int): Maximum number of tasks to return. (default: 20, max: 10000). page_token (Optional[str]): Token for pagination. show_completed (bool): Whether to include completed tasks (default: True). Note that show_hidden must also be true to show tasks completed in first party clients, such as the web UI and Google's mobile apps. show_deleted (bool): Whether to include deleted tasks …

  • manage_comment

    Manage comments on a Google Document. Actions: - create: Create a new document-level comment. Requires comment_content. Note: The Drive API cannot anchor comments to specific text; only the Google Docs UI can do that. - reply: Reply to a comment. Requires comment_id and comment_content. - resolve: Resolve a comment. Requires comment_id.

  • manage_conditional_formattingManage Conditional Formattingcan change or delete data

    Manages conditional formatting rules on a Google Sheet. Supports adding, updating, and deleting conditional formatting rules via a single tool. Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. action (str): The operation to perform. Must be one of "add", "update", or "delete". range_name (Optional[str]): A1-style range (optionally with sheet name). Required for "add". Optional for "update" (preserves existing ranges if omitted). Not used for "delete". condition_type …

  • manage_contactManage Contactcan change or delete data

    Create, update, or delete a contact. Consolidated tool replacing create_contact, update_contact, and delete_contact. Args: user_google_email (str): The user's Google email address. Required. action (str): The action to perform: "create", "update", or "delete". contact_id (Optional[str]): The contact ID. Required for "update" and "delete" actions. given_name (Optional[str]): First name (for create/update). family_name (Optional[str]): Last name (for create/update). phones (Optional[List[Dict]]): List of phone dicts {number, type?}. Supported types: mobile, work,…

  • manage_contact_groupManage Contact Groupcan change or delete data

    Create, update, delete a contact group, or modify its members. Consolidated tool replacing create_contact_group, update_contact_group, delete_contact_group, and modify_contact_group_members. Args: user_google_email (str): The user's Google email address. Required. action (str): The action to perform: "create", "update", "delete", or "modify_members". group_id (Optional[str]): The contact group ID. Required for "update", "delete", and "modify_members" actions. name (Optional[str]): The group name. Required for "create" and "update" actions. delete_contacts (bool): I…

  • manage_contacts_batchManage Contacts Batchcan change or delete data

    Batch create, update, or delete contacts. Consolidated tool replacing batch_create_contacts, batch_update_contacts, and batch_delete_contacts. Args: user_google_email (str): The user's Google email address. Required. action (str): The action to perform: "create", "update", or "delete". contacts (Optional[List[Dict]]): List of contact dicts for "create" action. Each dict may contain: given_name, family_name, phones, emails, organizations, nicknames, urls, user_defined, relations, notes, address, birthday. Deprecated: phone, email, organization, job_title. …

  • manage_deploymentManage Deploymentcan change or delete data

    Create, update, or delete Apps Script deployments. Args: service: Injected Google API service client user_google_email: User's email address action: Action to perform - "create", "update", or "delete" script_id: The script project ID deployment_id: The deployment ID (required for update and delete) description: Deployment description (required for create; optional for update when version_number is supplied) version_description: Optional version description (for create only) version_number: Version number to point the deployment at (for update only). …

  • manage_doc_tabManage Doc Tabcan change or delete data

    Manage document tabs: create, rename, delete, or populate from Markdown. Args: user_google_email: User's Google email address document_id: ID of the document action: Action to perform - "create", "rename", "delete", or "populate_from_markdown" tab_id: Tab ID (required for rename, delete, populate_from_markdown; use inspect_doc_structure to find IDs) title: Tab title (required for create; used by rename) index: Position index for new tab, 0-based among siblings (required for create) parent_tab_id: Optional parent tab ID to nest under (create only) markdown_text:…

  • manage_drive_accessManage Drive Accesscan change or delete data

    Consolidated tool for managing Google Drive file and folder access permissions. Supports granting, batch-granting, updating, revoking permissions, and transferring file ownership -- all through a single entry point. Args: user_google_email (str): The user's Google email address. Required. file_id (str): The ID of the file or folder. Required. action (str): The access management action to perform. Required. One of: - "grant": Share with a single user, group, domain, or anyone. - "grant_batch": Share with multiple recipients in one call. - "update": Modify a…

  • manage_eventManage Eventcan change or delete data

    Manages calendar events. Supports creating, updating, deleting, and RSVP. Args: user_google_email (str): The user's Google email address. Required. action (str): Action to perform - "create", "update", "delete", or "rsvp". summary (Optional[str]): Event title (required for create). start_time (Optional[str]): Start time (required for create). An RFC3339 UTC offset identifies the exact instant and is preserved. Without an offset, supply start_timezone or timezone. For a local wall-clock time, omit the offset and pass the zone so Google resolves daylight saving; a wrong offset m…

  • manage_focus_timeManage Focus Timecan change or delete data

    Manages Focus Time events on Google Calendar. These special events auto-decline meeting invitations and, by default, set the user's chat status to Do Not Disturb, helping protect blocks of uninterrupted work time. Args: user_google_email (str): The user's Google email address. Required. action (str): Action to perform - "create", "list", "update", or "delete". start_time (Optional[str]): Start date/time. Use 'YYYY-MM-DD' for full-day or RFC3339 for partial-day (e.g., '2024-04-05T09:00:00Z'). Date-only values are auto-converted to dateTime (midnight-to-midnight). Required for creat…

  • manage_gmail_filterManage Gmail Filtercan change or delete data

    Manages Gmail filters: create, delete, update, and apply to existing mail. - update: Gmail has no filter update API, so the filter is recreated (new one first, then the old one is deleted) and its ID changes. A passed criteria or filter_action replaces that whole object; omit one to keep the old filter's. - apply: runs a filter's label actions on mail ALREADY in the mailbox (Gmail filters only act on new mail). Only matching messages change, not whole conversations as in the web UI. Use filter_id, or criteria + filter_action for an ad-hoc run. Forwarding is never applied. Use dr…

  • manage_gmail_labelManage Gmail Labelcan change or delete data

    Manages Gmail labels: create, update, or delete labels. Args: user_google_email (str): The user's Google email address. Required. action (Literal["create", "update", "delete"]): Action to perform on the label. name (Optional[str]): Label name. Required for create, optional for update. label_id (Optional[str]): Label ID. Required for update and delete operations. label_list_visibility (Optional[Literal["labelShow", "labelShowIfUnread", "labelHide"]]): Whether the label is shown in the label list. Defaults to "labelShow" on create. On update, omitting it keeps the label's cu…

  • manage_named_rangeManage Named Rangecan change or delete data

    Manages the lifecycle of named ranges in a Google Sheet: list, create, update, or delete. Args: user_google_email: The user's Google email address. Required. spreadsheet_id: The ID of the spreadsheet. Required. action: The operation to perform: "list", "create", "update", or "delete". Required. name: Name for the named range (required for "create"; optional identifier for "update"/"delete"). range_name: Target cell or range in A1 notation (e.g., "Sheet1!A1:D10", "A1:B5") (required for "create"). named_range_id: The ID of the named range (optional identifier for "update…

  • manage_out_of_officeManage Out of Officecan change or delete data

    Manages Out of Office events on Google Calendar. These special events auto-decline meeting invitations and set the user's status to "Out of office" across Google Workspace. Args: user_google_email (str): The user's Google email address. Required. action (str): Action to perform - "create", "list", "update", or "delete". start_time (Optional[str]): Start date/time. Use 'YYYY-MM-DD' for full-day or RFC3339 for partial-day (e.g., '2024-04-05T09:00:00Z'). Date-only values are auto-converted to dateTime (midnight-to-midnight). Required for create. end_time (Optional[str]): End date…

  • manage_script_contentManage Script Contentcan change or delete data

    Update the source files of an Apps Script project. Actions: - "update": Create or update files. By default (merge=True) the supplied files are overlaid onto the project by (name, type), leaving other files untouched. Set merge=False to replace the full project file set; any existing file omitted from `files` is permanently deleted. Args: service: Injected Google API service client user_google_email: User's email address action: "update". script_id: The script project ID. files: File objects with name, type, and source to create or update (req…

  • manage_script_projectManage Script Projectcan change or delete data

    Create or delete an Apps Script project. Actions: - "create": Create a project. Requires title; parent_id is optional. - "delete": Permanently delete a project. Requires script_id.

  • manage_script_triggerManage Script Triggercan change or delete data

    List or delete the current user's installable triggers on a script project. The Apps Script REST API has no triggers resource, so in dev_mode both actions provision (or refresh) a small helper file and run it via the Execution API - the only way to inspect or change trigger state without opening the editor. Neither action is read-only: the helper file may be written into the project on first use. To create a trigger, use `generate_trigger_code` to produce the setup code, add it with `manage_script_content`, then run it with `run_script_function`. Actions: - "list": List the current user'…

  • manage_script_versionManage Script Version

    Create immutable version snapshots of a script project. Versions capture a snapshot of the current script code; once created they cannot be modified. Actions: - "create": Create a new version from the current code. Optional description. Args: service: Injected Google API service client user_google_email: User's email address action: "create". script_id: The script project ID. description: Optional description for the new version (create only). Returns: str: Formatted result for the requested action.

  • manage_sheet_tabManage Sheet Tabcan change or delete data

    Manages an existing sheet tab: rename, delete, hide, unhide, reorder, or style (tab color and gridlines). Use create_sheet to add a tab, and resize_sheet_dimensions for row and column level changes. This tool operates on the tab itself. Args: user_google_email: User's Google email address spreadsheet_id: ID of the spreadsheet sheet_name: Title of the existing tab to act on action: One of "rename", "delete", "hide", "unhide", "reorder", "style" new_name: New title, required for action="rename" new_index: New zero-based position, required for action="reorder" tab_co…

  • manage_taskManage Taskcan change or delete data

    Manage tasks: create, update, delete, or move tasks within task lists. Args: user_google_email (str): The user's Google email address. Required. action (str): The action to perform. Must be one of: "create", "update", "delete", "move". task_list_id (str): The ID of the task list. Required for all actions. task_id (Optional[str]): The ID of the task. Required for "update", "delete", and "move" actions. title (Optional[str]): The title of the task. Required for "create", optional for "update". notes (Optional[str]): Notes/description for the task. Used by "create" and "u…

  • manage_task_listManage Task Listcan change or delete data

    Manage task lists: create, update, delete, or clear completed tasks. Args: user_google_email (str): The user's Google email address. Required. action (str): The action to perform. Must be one of: "create", "update", "delete", "clear_completed". task_list_id (Optional[str]): The ID of the task list. Required for "update", "delete", and "clear_completed" actions. title (Optional[str]): The title for the task list. Required for "create" and "update" actions. Returns: str: Result of the requested action.

  • modify_doc_textModify Doc Textcan change or delete data

    Modifies text in a Google Doc - can insert/replace text and/or apply formatting in a single operation. TIP: To append text to the end of the document without calculating indices, set end_of_segment=true. This avoids index calculation errors. HEADING MODE: Pass heading instead of start_index to edit the body below a heading, up to the next heading of equal or shallower level. text is rendered as Markdown and replaces that body; end_of_segment=true appends instead. Formatting parameters without text format the whole body. For ordinary header/footer text, prefer update_doc_headers_footers. Onl…

  • modify_gmail_message_labelsModify Gmail Message Labelscan change or delete data

    Adds or removes labels from a Gmail message. To archive an email, remove the INBOX label. To delete an email, add the TRASH label. Args: user_google_email (str): The user's Google email address. Required. message_id (str): The ID of the message to modify. add_label_ids (Optional[List[str]]): List of label IDs to add to the message. remove_label_ids (Optional[List[str]]): List of label IDs to remove from the message. Returns: str: Confirmation message of the label changes applied to the message.

  • modify_sheet_valuesModify Sheet Valuescan change or delete data

    Modifies values in a specific range of a Google Sheet - can write, update, or clear values, or insert Smart Chips (Drive files/folders or People). Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. range_name (str): The range to modify (e.g., "Sheet1!A1:D10", "A1:D10"). Required. values (Optional[Union[str, List[List[str]]]]): 2D array of values to write/update. Can be a JSON string or Python list. Required unless clear_values=True or chips is provided. value_input_option (str): How to interp…

  • move_sheet_rowsMove Sheet Rowscan change or delete data

    Moves rows from one sheet to another within the same spreadsheet. The move is performed in a single batchUpdate (copyPaste followed by deleteDimension). Note: batchUpdate executes requests sequentially but does not roll back on partial failure — if the copy succeeds but the delete fails, rows may be duplicated. Formulas, data types, and formatting are preserved (unlike a values.get/append round-trip). Row numbers are 1-based (matching the spreadsheet UI). Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required…

  • query_freebusyQuery Freebusyread-only

    Returns free/busy information for a set of calendars. Args: user_google_email (str): The user's Google email address. Required. time_min (str): The start of the interval for the query in RFC3339 format (e.g., '2024-05-12T10:00:00Z' or '2024-05-12'). time_max (str): The end of the interval for the query in RFC3339 format (e.g., '2024-05-12T18:00:00Z' or '2024-05-12'). calendar_ids (Optional[List[str]]): List of calendar identifiers to query. If not provided, queries the primary calendar. Use 'primary' for the user's primary calendar or specific calendar IDs obtained from `list_…

  • read_sheet_valuesRead Sheet Valuesread-only

    Reads values from a specific range in a Google Sheet. Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. range_name (str): The range to read (e.g., "Sheet1!A1:D10", "A1:D10"). Defaults to "A1:Z1000". Open-ended or oversized ranges are clamped to at most 1000 rows before the Sheets API request to bound memory use. include_hyperlinks (bool): If True, also fetch hyperlink metadata for the range. Defaults to False to avoid expensive includeGridData requests. include_notes …

  • render_page_to_imageRender Page to Imageread-only

    Render a slide (or any page, including notes pages) to an image and return it as image content, for looking at a slide's layout and visuals. Args: user_google_email (str): The user's Google email address. Required. presentation_id (str): The ID of the presentation. page_object_id (str): The object ID of the page/slide to render. size (str): Image width. One of "SMALL" (200px), "MEDIUM" (800px), "LARGE" (1600px) or "WIDTH2000_PX" (2000px). Defaults to "MEDIUM". Start at MEDIUM: it reads titles and body text. Use LARGE for small text such as tables, chart…

  • resize_sheet_dimensionsResize Sheet Dimensionscan change or delete data

    Manages sheet-level dimension properties: resize columns/rows, auto-resize to fit content, freeze rows/columns, hide/unhide rows/columns, and insert/delete rows/columns. Every row number and column letter refers to the sheet as it was before the call, even when one call both inserts and deletes. Deletes are applied before inserts, and an insert position inside a deleted span lands where that span was. Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. sheet_name (Optional[str]): Sheet name to target…

  • run_script_functionRun Script Functioncan change or delete data

    Executes a function in a deployed script. Args: service: Injected Google API service client user_google_email: User's email address script_id: The script project ID function_name: Name of function to execute parameters: Optional list of parameters to pass dev_mode: Whether to run latest code vs deployed version deployment_id: Optional API Executable deployment ID. When supplied, skips the automatic deployment lookup. When omitted, the versioned API Executable deployment with the highest version number is used. Returns: str: Formatted string wit…

  • search_contactsSearch Contactsread-only

    Search contacts by name, email, phone number, or other fields. Args: user_google_email (str): The user's Google email address. Required. query (str): Search query string (searches names, emails, phone numbers). page_size (int): Maximum number of results to return (default: 30, max: 30). Returns: str: Matching contacts with their basic information.

  • search_customSearch Customread-only

    Performs a search using Google Custom Search JSON API. Args: user_google_email (str): The user's Google email address. Required. q (str): The search query. Required. num (int): Number of results to return (1-10). Defaults to 10. start (int): The index of the first result to return (1-based). Defaults to 1. safe (Literal["active", "moderate", "off"]): Safe search level. Defaults to "off". search_type (Optional[Literal["image"]]): Search for images if set to "image". site_search (Optional[str]): Restrict search to a specific site/domain. site_search_filter (Optio…

  • search_docsSearch Docsread-only

    Searches for Google Docs by name using Drive API (mimeType filter). Args: user_google_email: The user's Google email address. query: Text to search for in document names. page_size: Maximum number of documents to return. Defaults to 10. page_token: Page token from a previous response's nextPageToken to retrieve the next page of results. corpora: Corpus to search ('user', 'domain', 'drive', 'allDrives'). Defaults to 'drive' when drive_id is set, otherwise 'allDrives'. drive_id: Optional shared drive ID to search. Returns: str: A formatted list of Go…

  • search_drive_filesSearch Drive Filesread-only

    Searches for files and folders within a user's Google Drive, including shared drives. Args: user_google_email (str): The user's Google email address. Required. query (str): The search query string. Supports Google Drive search operators. NOTE: Owner-based queries ('user@example.com' in owners) DO NOT WORK in Shared Drives because files are owned by the shared drive itself, not individual users. For recent files by a specific user in Shared Drives, search by modifiedTime and use order_by='modifiedTime desc' instead. …

  • search_gmail_messagesSearch Gmail Messagesread-only

    Searches messages in a user's Gmail account based on a query. Returns both Message IDs and Thread IDs for each found message, along with Gmail web interface links for manual verification. Supports pagination via page_token parameter. Args: query (str): The search query. Supports standard Gmail search operators. Results include drafts unless the query excludes them (e.g. in:sent or -in:drafts). user_google_email (str): The user's Google email address. Required. page_size (int): The maximum number of messages to return. Defaults to 10. page_token (Optional[str]): Token f…

  • search_messagesSearch Messagesread-only

    Searches for messages in Google Chat spaces by text content and/or time range. Args: query: Optional text to search for. If omitted, only time_filter is applied. space_id: Optional space to restrict the search to. page_size: Maximum number of messages to return per space. time_filter: Optional filter using Chat API createTime syntax. Examples: 'createTime > "2026-03-18T00:00:00-03:00"' 'createTime > "2026-03-18T00:00:00-03:00" AND createTime < "2026-03-19T00:00:00-03:00"' max_spaces: Maximum number of spaces to search …

  • send_gmail_messageSend Gmail Messagecan change or delete data

    Sends an email using the user's Gmail account. Supports new emails, replies, and forwards, with optional attachments. Supports Gmail's "Send As" feature to send from configured alias addresses. To forward an existing message, pass forward_message_id. The original subject, body (quoted with a "Forwarded message" header), and attachments are carried over. In forward mode, body (if any) is prepended as a note and subject is optional. Threading, reply, and signature options do not apply when forwarding. THIS TOOL SENDS IMMEDIATELY AND CANNOT SCHEDULE. Gmail's REST API exposes no send-time parame…

  • send_messageSend Messagecan change or delete data

    Sends a message to a Google Chat space, or edits a message already sent there. Args: thread_name: Reply in an existing thread by its resource name (e.g. spaces/X/threads/Y). thread_key: Reply in a thread by app-defined key (creates thread if not found). message_name: Edit this message in place instead of sending a new one (e.g. spaces/X/messages/Y, as returned by send_message or get_messages). Must be a message of space_id. Only the text is replaced, and only the author can edit their own message. Returns: str: Confirmation message with the sent or upd…

  • set_drive_file_permissionsSet Drive File Permissionscan change or delete data

    Sets file-level sharing settings and controls link sharing for a Google Drive file or folder. This is a high-level tool for the most common permission changes. Use this to toggle "anyone with the link" access or configure file-level sharing behavior. For managing individual user/group permissions, use share_drive_file or update_drive_permission instead. Args: user_google_email (str): The user's Google email address. Required. file_id (str): The ID of the file or folder. Required. link_sharing (Optional[str]): Control "anyone with the link" access for the file. - "off": Di…

  • set_publish_settingsSet Publish Settings

    Updates the publish settings of a form. Args: user_google_email (str): The user's Google email address. Required. form_id (str): The ID of the form to update publish settings for. is_published (bool): Whether the form is published and visible to responders. Defaults to True. is_accepting_responses (bool): Whether the form accepts responses. Only takes effect when the form is published. Defaults to True. Returns: str: Confirmation message of the successful publish settings update.

  • start_google_authStart Google Auth

    Manually initiate Google OAuth authentication flow. NOTE: This is a legacy OAuth 2.0 tool and is disabled when OAuth 2.1 is enabled. The authentication system automatically handles credential checks and prompts for authentication when needed. Only use this tool if: 1. You need to re-authenticate with different credentials 2. You want to proactively authenticate before using other tools 3. The automatic authentication flow failed and you need to retry In most cases, simply try calling the Google Workspace tool you need - it will automatically handle authentication if required.

  • update_doc_headers_footersUpdate Doc Headers Footerscan change or delete data

    Safely creates or updates header/footer text in a Google Doc. This is the default tool for header/footer content. Do NOT use batch_update_doc with create_header_footer just to set header/footer text; that low-level operation is only for advanced section-break workflows and can fail when the default header/footer already exists. This tool handles both creation and update in one call: - If the header/footer does not exist, it is automatically created first. - If the header/footer already exists, its content is replaced. You do NOT need to create a header/footer separately before calling this …

  • update_drive_fileUpdate Drive Filecan change or delete data

    Updates metadata, properties, and/or content of a Google Drive file. Providing new content (inline as ``content``, fetched from ``file_url``, or on a local server read from a file path) replaces the file's content in place, preserving the existing file ID, sharing, comments, and links. For native Google Docs/Sheets/Slides the source is uploaded with its source MIME type so the Drive API applies the same format conversion as import_to_google_doc (markdown headings, tables, bold, etc.). For any other file (.md, .txt, .pdf, ...) there is nothing to convert, so the bytes are written back as-is un…

  • update_paragraph_styleUpdate Paragraph Style

    Apply paragraph-level formatting, heading styles, and/or list formatting to a range in a Google Doc. This tool can apply named heading styles (H1-H6) for semantic document structure, create bulleted or numbered lists with nested indentation, and customize paragraph properties like alignment, spacing, and indentation. All operations can be applied in a single call. Args: user_google_email: User's Google email address document_id: Document ID to modify start_index: Start position using Docs API indices from inspect_doc_structure. For the main body, 0 is also accepted as an …

Compare and alternatives

    Featured in

    Signals

    Weekly downloads
    73,281
    Last release
    Oct 23, 2026 (5 days ago)
    Last package publish
    Oct 23, 2026 (5 days ago)

    From the package registry.

    Details

    Registry name
    io.github.taylorwilsdon/workspace-mcp
    Version
    2.2.0
    Auth
    No auth
    Packages
    pypi workspace-mcp
    License
    MIT
    First seen
    Oct 24, 2026
    Last checked
    Oct 24, 2026
    Cite this page

    Workspace MCP. Agent Mart. https://agentmart.dev/connectors/taylorwilsdon-workspace-mcp (last updated 2026-10-24)