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.
Automates Google Sheets workflows including reading, writing, formatting, and managing data programmatically.
/plugin marketplace add davepoon/buildwithclaude/plugin install all-skills@buildwithclaudeThis skill inherits all available tools. When active, it can use any tool Claude has access to.
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.
Toolkit docs: composio.dev/toolkits/googlesheets
RUBE_MANAGE_CONNECTIONS with toolkit googlesheetsRUBE_SEARCH_TOOLS first to get current tool schemasGet 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.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit googlesheetsWhen 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:
valueRanges[i].values; treat missing as empty arrayGOOGLESHEETS_BATCH_UPDATE values must be a 2D array (list of lists), even for a single rowtableRange; use returned updatedRange to verify placementWhen 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 rowsPitfalls:
index when creating multiple sheets in parallel (causes 'index too high' errors)GOOGLESHEETS_GET_SPREADSHEET_INFO can return 403 if account lacks accessWhen 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 specificationsPitfalls:
GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW matches entire cell content, not substringsWhen to use: User wants to update existing rows or insert new ones based on a unique key column
Tool sequence:
GOOGLESHEETS_UPSERT_ROWS - Update matching rows or append new ones [Required]Key parameters:
spreadsheetId: Target spreadsheet IDsheetName: Tab namekeyColumn: Column header name used as unique identifier (e.g., 'Email', 'SKU')headers: List of column names for the datarows: 2D array of data rowsstrictMode: Error on mismatched column counts (default true)Pitfalls:
keyColumn must be an actual header name, NOT a column letter (e.g., 'Email' not 'A')headers is NOT provided, first row of rows is treated as headersstrictMode=true, rows with more values than headers cause an errorWhen to use: User wants to apply formatting (bold, colors, font size) to cells
Tool sequence:
GOOGLESHEETS_GET_SPREADSHEET_INFO - Get numeric sheetId for target tab [Prerequisite]GOOGLESHEETS_FORMAT_CELL - Apply formatting to a range [Required]GOOGLESHEETS_UPDATE_SHEET_PROPERTIES - Change frozen rows, column widths [Optional]Key parameters:
spreadsheet_id: Spreadsheet IDworksheet_id: Numeric sheetId (NOT tab name); get from GET_SPREADSHEET_INFOrange: A1 notation (e.g., 'A1:F1') - preferred over index fieldsbold, italic, underline, strikethrough: Boolean formatting optionsred, green, blue: Background color as 0.0-1.0 floats (NOT 0-255 ints)fontSize: Font size in pointsPitfalls:
worksheet_id, not tab title; get from spreadsheet metadataGOOGLESHEETS_SEARCH_SPREADSHEETS with queryGOOGLESHEETS_GET_SPREADSHEET_INFO, extract from sheets metadataGOOGLESHEETS_FIND_WORKSHEET_BY_TITLEGoogle Sheets enforces strict rate limits:
GOOGLESHEETS_BATCH_GET and GOOGLESHEETS_BATCH_UPDATE for efficiencyGOOGLESHEETS_UPSERT_ROWS for CRM syncs, inventory updates, and dedup scenariosfirst_cell_location) is safest for adding new recordsGOOGLESHEETS_CLEAR_VALUES to clear content while preserving formattingFORMAT_CELL needs numeric sheetId, not tab titleGOOGLESHEETS_DELETE_DIMENSION is irreversible; double-check bounds| Task | Tool Slug | Key Params |
|---|---|---|
| Search spreadsheets | GOOGLESHEETS_SEARCH_SPREADSHEETS | query, search_type |
| Create spreadsheet | GOOGLESHEETS_CREATE_GOOGLE_SHEET1 | title |
| List tabs | GOOGLESHEETS_GET_SHEET_NAMES | spreadsheet_id |
| Add tab | GOOGLESHEETS_ADD_SHEET | spreadsheetId, title |
| Read data | GOOGLESHEETS_BATCH_GET | spreadsheet_id, ranges |
| Read single range | GOOGLESHEETS_VALUES_GET | spreadsheet_id, range |
| Write data | GOOGLESHEETS_BATCH_UPDATE | spreadsheet_id, sheet_name, values |
| Update range | GOOGLESHEETS_VALUES_UPDATE | spreadsheet_id, range, values |
| Append rows | GOOGLESHEETS_SPREADSHEETS_VALUES_APPEND | spreadsheetId, range, values |
| Upsert rows | GOOGLESHEETS_UPSERT_ROWS | spreadsheetId, sheetName, keyColumn, rows |
| Lookup row | GOOGLESHEETS_LOOKUP_SPREADSHEET_ROW | spreadsheet_id, query |
| Format cells | GOOGLESHEETS_FORMAT_CELL | spreadsheet_id, worksheet_id, range |
| Set filter | GOOGLESHEETS_SET_BASIC_FILTER | spreadsheetId, filter |
| Clear values | GOOGLESHEETS_CLEAR_VALUES | spreadsheet_id, range |
| Delete rows/cols | GOOGLESHEETS_DELETE_DIMENSION | spreadsheet_id, sheet_name, dimension |
| Spreadsheet info | GOOGLESHEETS_GET_SPREADSHEET_INFO | spreadsheet_id |
| Update tab props | GOOGLESHEETS_UPDATE_SHEET_PROPERTIES | spreadsheetId, properties |
Powered by Composio
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.