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
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.
About
Use cases: email, scheduling, spreadsheets, document-processing, file-management
Reviews
Write a reviewNo 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_accessdebug_table_structuregenerate_trigger_codeget_contactget_contact_groupget_doc_as_markdownget_doc_contentget_drive_file_contentget_drive_file_download_urlget_drive_file_permissionsget_drive_shareable_linkget_events
Show 41 more tools
get_formget_form_responseget_gmail_message_contentget_gmail_messages_content_batchget_gmail_thread_contentget_gmail_threads_content_batchget_messagesget_pageget_presentationget_script_activityget_script_projectget_script_versionget_search_engine_infoget_spreadsheet_infoget_taskget_task_listinspect_doc_structurelist_calendarslist_commentslist_contact_groupslist_contactslist_docs_in_folderlist_drive_itemslist_form_responseslist_gmail_filterslist_gmail_labelslist_script_deploymentslist_sheet_tableslist_spaceslist_spreadsheetslist_task_listslist_tasksquery_freebusyread_sheet_valuesrender_page_to_imagesearch_contactssearch_customsearch_docssearch_drive_filessearch_gmail_messagessearch_messages
Write 26 · Create, change, send or run things.
append_table_rowscopy_drive_filecreate_calendarcreate_doccreate_drive_filecreate_drive_foldercreate_formcreate_presentationcreate_reactioncreate_sheetcreate_spreadsheetcreate_table_with_data
Show 14 more tools
download_chat_attachmentdraft_gmail_messageexport_doc_to_pdfget_gmail_attachment_contentimport_to_google_docimport_to_google_sheetsimport_to_google_slidesinsert_doc_elementsinsert_doc_imagemanage_commentmanage_script_versionset_publish_settingsstart_google_authupdate_paragraph_style
Delete 36 · Delete, drop, revoke or wipe things.
batch_modify_gmail_message_labelsbatch_update_docbatch_update_formbatch_update_presentationfind_and_replace_docformat_sheet_rangemanage_conditional_formattingmanage_contactmanage_contact_groupmanage_contacts_batchmanage_deploymentmanage_doc_tab
Show 24 more tools
manage_drive_accessmanage_eventmanage_focus_timemanage_gmail_filtermanage_gmail_labelmanage_named_rangemanage_out_of_officemanage_script_contentmanage_script_projectmanage_script_triggermanage_sheet_tabmanage_taskmanage_task_listmodify_doc_textmodify_gmail_message_labelsmodify_sheet_valuesmove_sheet_rowsresize_sheet_dimensionsrun_script_functionsend_gmail_messagesend_messageset_drive_file_permissionsupdate_doc_headers_footersupdate_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 RowsAppends 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 dataAdds 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 dataExecutes 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 dataApply 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 dataApply 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-onlySearches 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 FileCreates 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 CalendarCreates 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 DocCreates 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 FileCreates 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 FolderCreates 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 FormCreate 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 PresentationCreate 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 ReactionAdds 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 SheetCreates 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 SpreadsheetCreates 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 DataCreates 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-onlyESSENTIAL 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 AttachmentDownloads 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 MessageCreates 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 PDFExports 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 dataFinds 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 dataApplies 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-onlyGenerates 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-onlyGet 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-onlyGet 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-onlyReads 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-onlyRetrieves 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-onlyRetrieves 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-onlyDownloads 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-onlyGets 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-onlyGets 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-onlyRetrieves 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-onlyGet 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-onlyGet 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 ContentDownloads 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-onlyRetrieves 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-onlyRetrieves 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-onlyRetrieves 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-onlyRetrieves 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-onlyRetrieves 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-onlyGet 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-onlyGet 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-onlyRead 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-onlyRead 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-onlyList 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-onlyRetrieves 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-onlyGets 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-onlyGet 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-onlyGet 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 DocImports 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 SheetsImports 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 SlidesImports 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 ElementsInserts 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 ImageInserts 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-onlyEssential 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-onlyRetrieves 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_commentsList all comments from a Google Document (optional max_comments to limit results).
list_contact_groupsList Contact Groupsread-onlyList 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-onlyList 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-onlyLists 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-onlyLists 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-onlyList 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-onlyLists 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-onlyLists 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-onlyList deployments for an Apps Script project.
list_sheet_tablesList Sheet Tablesread-onlyLists 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-onlyLists 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-onlyLists 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-onlyList 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-onlyList 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_commentManage 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 dataManages 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 dataCreate, 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 dataCreate, 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 dataBatch 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 dataCreate, 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 dataManage 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 dataConsolidated 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 dataManages 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 dataManages 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 dataManages 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 dataManages 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 dataManages 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 dataManages 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 dataUpdate 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 dataCreate 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 dataList 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 VersionCreate 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 dataManages 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 dataManage 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 dataManage 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 dataModifies 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 dataAdds 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 dataModifies 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 dataMoves 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-onlyReturns 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-onlyReads 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-onlyRender 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 dataManages 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 dataExecutes 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-onlySearch 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-onlyPerforms 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-onlySearches 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-onlySearches 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-onlySearches 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-onlySearches 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 dataSends 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 dataSends 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 dataSets 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 SettingsUpdates 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 AuthManually 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 dataSafely 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 dataUpdates 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 StyleApply 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
- Source
- Official MCP Registry
Cite this page
Workspace MCP. Agent Mart. https://agentmart.dev/connectors/taylorwilsdon-workspace-mcp (last updated 2026-10-24)