Tool reference

59 purpose-built helper tools across 7 services, plus discovery and batch meta-tools.

Tool discovery

The server operates in two modes:

ModeInitial toolsActivation
Lazy (default)gws_discover, gws_batchModel calls gws_discover(service="sheets") to activate a service
Eager (--eager-tools)All 59 toolsLoaded at startup

Services with helpers (Drive, Docs, Sheets, Slides, Gmail) suppress their generic tool. The model uses only the purpose-built helpers.

Meta tools

gws_discover

Introspects the API schema and activates services in lazy mode.

{"name": "gws_discover", "arguments": {"service": "drive"}}
{"name": "gws_discover", "arguments": {"service": "drive", "resource": "files"}}
{"name": "gws_discover", "arguments": {"service": "drive", "resource": "files", "method": "list"}}

gws_batch

Executes multiple tool calls in a single request.

Drive helpers (9 tools)

ToolDescription
gws_drive_listList files and folders
gws_drive_find_folderFind a folder by name
gws_drive_infoGet file metadata
gws_drive_create_folderCreate a new folder
gws_drive_copyCopy a file
gws_drive_renameRename a file
gws_drive_moveMove a file to a different folder
gws_drive_shareShare a file with a user or group
gws_drive_trashMove a file to the trash

Example: List files

{
  "name": "gws_drive_list",
  "arguments": {
    "folder_id": "folder-abc",
    "page_size": 10
  }
}

Docs helpers (9 tools)

ToolDescription
gws_docs_writeCreate or update a document (accepts Markdown or plain text)
gws_docs_readRead document content as Markdown
gws_docs_replace_sectionReplace a section by heading
gws_docs_outlineGet document outline (headings)
gws_docs_findSearch for text in a document
gws_docs_insert_tableInsert a table
gws_docs_insert_imageInsert an image by URL
gws_docs_read_tableRead a table as structured data
gws_docs_formatApply formatting (bold, italic, color, font)

Example: Create a document

{
  "name": "gws_docs_write",
  "arguments": {
    "title": "Meeting Notes",
    "body": "# Meeting Notes\n\n## Agenda\n\n- Item 1\n- Item 2"
  }
}

Sheets helpers (14 tools)

ToolDescription
gws_sheets_readRead cell values from a range
gws_sheets_writeCreate or update a spreadsheet
gws_sheets_appendAppend rows to a sheet
gws_sheets_clearClear a range of cells
gws_sheets_infoGet spreadsheet metadata
gws_sheets_manage_tabsCreate, rename, delete, or reorder tabs
gws_sheets_traceTrace cell dependencies
gws_sheets_explainExplain a formula in plain English
gws_sheets_formulasAnalyze formulas in a range
gws_sheets_formatApply formatting (colors, borders, alignment)
gws_sheets_validateAdd data validation rules
gws_sheets_named_rangeCreate or manage named ranges
gws_sheets_csvImport or export CSV data
gws_sheets_dimensionsResize rows and columns

Example: Read a range

{
  "name": "gws_sheets_read",
  "arguments": {
    "spreadsheet_id": "1BxiMVs0XRA...",
    "range": "Sheet1!A1:D10"
  }
}

Slides helpers (9 tools)

ToolDescription
gws_slides_readRead presentation content
gws_slides_addAdd a new slide
gws_slides_updateUpdate slide content
gws_slides_duplicateDuplicate a slide
gws_slides_deleteDelete a slide
gws_slides_reorderReorder slides
gws_slides_import_marpImport a Marp Markdown presentation
gws_slides_templatesList and apply slide templates
gws_slides_generate_imageGenerate an image with Gemini and insert it

Example: Import a Marp presentation

{
  "name": "gws_slides_import_marp",
  "arguments": {
    "title": "Q3 Review",
    "marp": "---\nmarp: true\n---\n\n# Q3 Review\n\n---\n\n## Revenue\n\n- Up 15% YoY"
  }
}

Gmail helpers (10 tools)

ToolDescription
gws_gmail_searchSearch messages by query
gws_gmail_readRead a message (headers, body, attachment list)
gws_gmail_threadRead all messages in a thread
gws_gmail_attachmentDownload an attachment or save it to Drive
gws_gmail_contactsLook up contacts via People API
gws_gmail_forwardForward a message
gws_gmail_draftCreate a draft (supports Markdown body)
gws_gmail_sendSend a message or a previously created draft
gws_gmail_replyReply to a message in a thread
gws_gmail_labelsList, create, or manage labels

Example: Search and read

{"name": "gws_gmail_search", "arguments": {"query": "from:alice@example.com after:2026/07/01"}}
{"name": "gws_gmail_read", "arguments": {"message_id": "18a1b2c3d4e5f6"}}

Example: Draft with Markdown

{
  "name": "gws_gmail_draft",
  "arguments": {
    "to": ["bob@example.com"],
    "subject": "Project update",
    "body": "## Status\n\n- Task A: **complete**\n- Task B: in progress",
    "format": "markdown"
  }
}

Calendar helpers (6 tools)

ToolDescription
gws_calendar_listList upcoming events (defaults to primary calendar, from now)
gws_calendar_getGet full event details
gws_calendar_createCreate an event with title, time, attendees
gws_calendar_updateUpdate an existing event (partial update)
gws_calendar_deleteDelete (cancel) an event
gws_calendar_freebusyCheck free/busy times for one or more calendars

Events include myStatus (accepted/declined/tentative) so models can filter declined events from schedule summaries.

Example: List events

{"name": "gws_calendar_list", "arguments": {"max_results": 5}}

Example: Find free time and create event

{"name": "gws_calendar_freebusy", "arguments": {"time_min": "2026-07-30T08:00:00Z", "time_max": "2026-07-30T18:00:00Z"}}
{"name": "gws_calendar_create", "arguments": {"summary": "Team sync", "start": "2026-07-30T14:00:00+02:00", "end": "2026-07-30T14:30:00+02:00"}}

Generic tool (fallback)

For services without helpers (Calendar, Admin, Chat, etc.), a generic tool is available with these arguments:

ArgumentTypeRequiredDescription
resourcestringYesAPI resource (e.g., events, users)
methodstringYesAPI method (e.g., list, get, create)
paramsobjectNoQuery and path parameters
bodyobjectNoRequest body (empty {} silently dropped)
page_allbooleanNoAuto-paginate and return all pages
media_datastringNoBase64-encoded file content (up to 10 MB)
media_content_typestringNoMIME type (default: application/octet-stream)
media_upload_initbooleanNoStart resumable upload for files over 10 MB
media_total_sizeintegerNoTotal file size for resumable uploads
upload_handlestringNoHandle from media_upload_init
media_chunkstringNoBase64-encoded chunk for resumable uploads
download_handlestringNoHandle from large file download

Example: List Calendar events

{
  "name": "calendar",
  "arguments": {
    "resource": "events",
    "method": "list",
    "params": {
      "calendarId": "primary",
      "maxResults": 10
    }
  }
}

Services with helpers (Drive, Docs, Sheets, Slides, Gmail) block the generic tool. Attempting to call the generic drive tool returns an error directing the model to use the gws_drive_* helpers instead.

Edit this page on GitHub