
About
Automate Google Sheets operations (read, write, format, filter, manage spreadsheets) via Rube MCP (Composio). Read/write data, manage tabs, apply formatting, and search rows programmatically.
name: googlesheets-automation description: "Automate Google Sheets operations (read, write, format, filter, manage spreadsheets) via Rube MCP (Composio). Read/write data, manage tabs, apply formatting, and search rows programmatically." risk: critical source: community date_added: "2026-02-27"
Google Sheets Automation via Rube MCP
Automate Google Sheets workflows including reading/writing data, managing spreadsheets and tabs, formatting cells, filtering rows, and upserting records through Composio's Google Sheets toolkit.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Google Sheets connection via
RUBE_MANAGE_CONNECTIONSwith toolkitgooglesheets - Always call
RUBE_SEARCH_TOOLSfirst to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLSresponds - Call
RUBE_MANAGE_CONNECTIONSwith toolkitgooglesheets - If connection is not ACTIVE, follow the returned auth link to complete Google OAuth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Read and Write Data
When to use: User wants to read data from or write data to a Google Sheet
Tool sequence:
GOOGLESHEETS_SEARCH_SPREADSHEETS- Find spreadsheet by name if ID unknown [Prerequisite]GOOGLESHEETS_GET_SHEET_NAMES- Enumerate tab names to target the right sheet [Prerequisite]GOOGLESHEETS_BATCH_GET- Read data from one or more ranges [Required]GOOGLESHEETS_BATCH_UPDATE- Write data to a range or append rows [Required]GOOGLESHEETS_VALUES_UPDATE- Update a single specific range [Alternative]GOOGLESHEETS_SPREADSHEETS_VALUES_APPEND- Append rows to end of table [Alternative]
Key parameters:
spreadsheet_id: Alphanumeric ID from the spreadsheet URL (between '/d/' and '/edit')ranges: A1 notation array (e.g., 'Sheet1!A1:Z1000'); always use bounded rangessheet_name: Tab name (case-insensitive matching supported)values: 2D array where each inner array is a rowfirst_cell_location: Starting cell in A1 notation (omit to append)valueInputOption: 'USER_ENTERED' (parsed) or 'RAW' (literal)
Pitfalls:
- Mis-cased or non-existent tab names error "Sheet 'X' not found"
- Empty ranges may omit
valueRanges[i].values; treat missing as empty array GOOGLESHEETS_BATCH_UPDATEvalues must be a 2D array (list of lists), even for a single row- Unbounded ranges like 'A:Z' on sheets with >10,000 rows may cause timeouts; always bound with row limits
- Append follows the detected
tableRange; use returnedupdatedRangeto verify placement
2. Create and Manage Spreadsheets
When to use: User wants to create a new spreadsheet or manage tabs within one
Tool sequence:
GOOGLESHEETS_CREATE_GOOGLE_SHEET1- Create a new spreadsheet [Required]GOOGLESHEETS_ADD_SHEET- Add a new tab/worksheet [Required]GOOGLESHEETS_UPDATE_SHEET_PROPERTIES- Rename, hide, reorder, or color tabs [Optional]GOOGLESHEETS_GET_SPREADSHEET_INFO- Get full spreadsheet metadata [Optional]GOOGLESHEETS_FIND_WORKSHEET_BY_TITLE- Check if a specific tab exists [Optional]
Key parameters:
title: Spreadsheet or sheet tab namespreadsheetId: Target spreadsheet IDforceUnique: Auto-append suffix if tab name exists (default true)properties.gridProperties: Set row/column counts, frozen rows
Pitfalls:
- Sheet names must be unique within a spreadsheet
- Default sheet names are locale-dependent ('Sheet1' in English, 'Hoja 1' in Spanish)
- Don't use
indexwhen creating multiple sheets in parallel (causes 'index too high' errors) GOOGLESHEETS_GET_SPREADSHEET_INFOcan return 403 if account lacks access
3. Search and Filter Rows
When to use: User wants to find specific rows or apply filters to sheet data
Tool sequence:
GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW- Find first row matching exact cell value [Required]GOOGLESHEETS_SET_BASIC_FILTER- Apply filter/sort to a range [Alternative]GOOGLESHEETS_CLEAR_BASIC_FILTER- Remove existing filter [Optional]GOOGLESHEETS_BATCH_GET- Read filtered results [Optional]
Key parameters:
query: Exact text value to match (matches entire cell content)range: A1 notation range to search withincase_sensitive: Boolean for case-sensitive matching (default false)filter.range: Grid range with sheet_id for basic filterfilter.criteria: Column-based filter conditionsfilter.sortSpecs: Sort specifications
Pitfalls:
GOOGLESHEETS_LOOKUP_SPREADSHEET_ROWmatches entire cell content, not substrings- Sheet names with spaces must be single-quoted in ranges (e.g., "'My Sheet'!A:Z")
- Bare sheet names without ranges are not supported for lookup; always specify a range
