Google Sheets MCP Server for Cloudflare Workers
Test Google Sheets tools directly in your browser. Select a tool and provide inputs to see the results.
Create a free account to test Google Sheets tools interactively. No credit card required.
googlesheets_add_basic_chartAdd a basic chart (bar, line, area, column, scatter, combo, stepped area). Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: Sheet to place the chart on (required) - chartType: Type of chart (required) - title: Chart title - domainRange: Range for X-axis data (required) - seriesRanges: Array of ranges for Y-axis data (required) - legendPosition: Position of the legend - anchorRowIndex: Row to anchor the chart - anchorColumnIndex: Column to anchor the chart Returns: The chart ID.
googlesheets_add_pie_chartAdd a pie chart. Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: Sheet to place the chart on (required) - title: Chart title - domainRange: Range for labels (required) - seriesRange: Range for values (required) - legendPosition: Position of the legend - threeDimensional: Show as 3D - pieHole: Size of the hole (0-1) for donut chart Returns: The chart ID.
googlesheets_delete_chartDelete a chart. Args: - spreadsheetId: The spreadsheet ID (required) - chartId: The chart ID (required) Returns: Confirmation.
googlesheets_sort_rangeSort a range of cells. Args: - spreadsheetId: The spreadsheet ID (required) - range: Grid range to sort (required) - sortSpecs: Array of sort specifications (required) Returns: Confirmation.
googlesheets_set_basic_filterAdd a basic filter to a sheet. Args: - spreadsheetId: The spreadsheet ID (required) - range: Grid range for the filter (required) Returns: Confirmation.
googlesheets_clear_basic_filterRemove the basic filter from a sheet. Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: The sheet ID (required) Returns: Confirmation.
googlesheets_add_filter_viewCreate a filter view. Args: - spreadsheetId: The spreadsheet ID (required) - title: Title for the filter view (required) - range: Grid range (required) - sortSpecs: Optional sort specifications - criteria: Optional filter criteria by column Returns: The filter view ID.
googlesheets_delete_filter_viewDelete a filter view. Args: - spreadsheetId: The spreadsheet ID (required) - filterViewId: The filter view ID (required) Returns: Confirmation.
googlesheets_set_data_validationSet data validation rules for a range. Args: - spreadsheetId: The spreadsheet ID (required) - range: Grid range (required) - conditionType: Validation condition type (required) - conditionValues: Values for the condition - inputMessage: Help message shown when cell is selected - strict: Whether to reject invalid input Returns: Confirmation.
googlesheets_delete_dimension_groupDelete row/column grouping (outline). Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: The sheet ID (required) - dimension: ROWS or COLUMNS (required) - startIndex: Start index (required) - endIndex: End index (required) Returns: Confirmation.
googlesheets_insert_dimensionInsert rows or columns. Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: The sheet ID (required) - dimension: ROWS or COLUMNS (required) - startIndex: Start index (0-indexed) (required) - endIndex: End index (exclusive) (required) - inheritFromBefore: Inherit formatting from before (default: false) Returns: Confirmation.
googlesheets_find_replaceFind and replace text in a spreadsheet. Args: - spreadsheetId: The spreadsheet ID (required) - find: Text to find (required) - replacement: Replacement text (required) - matchCase: Case-sensitive search - matchEntireCell: Match entire cell contents - searchByRegex: Use regular expressions - includeFormulas: Search in formulas - range: Limit to specific range - sheetId: Limit to specific sheet - allSheets: Search all sheets Returns: Statistics on changes made.
googlesheets_copy_pasteCopy and paste data from one range to another. Args: - spreadsheetId: The spreadsheet ID (required) - source: Source range (required) - destination: Destination range (required) - pasteType: What to paste - pasteOrientation: NORMAL or TRANSPOSE Returns: Confirmation.
googlesheets_cut_pasteCut and paste data from one range to another. Args: - spreadsheetId: The spreadsheet ID (required) - source: Source range (required) - destination: Destination cell (sheetId, rowIndex, columnIndex) (required) - pasteType: What to paste Returns: Confirmation.
googlesheets_delete_duplicatesDelete duplicate rows in a range. Args: - spreadsheetId: The spreadsheet ID (required) - range: Grid range (required) - comparisonColumns: Columns to compare for duplicates (optional, all if not specified) Returns: Number of duplicates removed.
googlesheets_randomize_rangeRandomize the order of rows in a range. Args: - spreadsheetId: The spreadsheet ID (required) - range: Grid range (required) Returns: Confirmation.
googlesheets_text_to_columnsSplit text in cells into multiple columns. Args: - spreadsheetId: The spreadsheet ID (required) - source: Source range (required) - delimiterType: Type of delimiter (required) - delimiter: Custom delimiter (if delimiterType is CUSTOM) Returns: Confirmation.
googlesheets_get_developer_metadataGet developer metadata by ID. Args: - spreadsheetId: The spreadsheet ID (required) - metadataId: The metadata ID (required) Returns: The developer metadata.
googlesheets_search_developer_metadataSearch for developer metadata. Args: - spreadsheetId: The spreadsheet ID (required) - metadataKey: Key to search for - metadataValue: Value to search for - locationType: ROW, COLUMN, SHEET, or SPREADSHEET - visibility: DOCUMENT or PROJECT Returns: Matching metadata entries.
googlesheets_format_cellsApply formatting to cells in a range. Args: - spreadsheetId: The spreadsheet ID (required) - range: Grid range with sheetId and optional row/column indices (required) - backgroundColor: RGB color object for background - textFormat: Text formatting options (foregroundColor, fontFamily, fontSize, bold, italic, etc.) - horizontalAlignment: LEFT, CENTER, or RIGHT - verticalAlignment: TOP, MIDDLE, or BOTTOM - wrapStrategy: OVERFLOW_CELL, CLIP, or WRAP - numberFormat: Number format type and pattern Returns: Confirmation of formatting applied.
googlesheets_merge_cellsMerge cells in a range. Args: - spreadsheetId: The spreadsheet ID (required) - range: Grid range to merge (required) - mergeType: MERGE_ALL, MERGE_COLUMNS, or MERGE_ROWS (default: MERGE_ALL) Returns: Confirmation of merge.
googlesheets_create_developer_metadataCreate developer metadata. Args: - spreadsheetId: The spreadsheet ID (required) - metadataKey: Key for the metadata (required) - metadataValue: Value for the metadata - locationType: ROW, COLUMN, SHEET, or SPREADSHEET (required) - visibility: DOCUMENT or PROJECT (default: DOCUMENT) - sheetId: Sheet ID (for SHEET location) - dimensionRange: Range for ROW/COLUMN locations Returns: The created metadata.
googlesheets_delete_developer_metadataDelete developer metadata. Args: - spreadsheetId: The spreadsheet ID (required) - metadataKey: Key to delete - metadataValue: Value to match - metadataId: Specific metadata ID to delete - visibility: DOCUMENT or PROJECT Returns: Confirmation.
googlesheets_delete_dimensionDelete rows or columns. Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: The sheet ID (required) - dimension: ROWS or COLUMNS (required) - startIndex: Start index (0-indexed) (required) - endIndex: End index (exclusive) (required) Returns: Confirmation.
googlesheets_move_dimensionMove rows or columns to a new position. Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: The sheet ID (required) - dimension: ROWS or COLUMNS (required) - startIndex: Start index of source (required) - endIndex: End index of source (required) - destinationIndex: Destination index (required) Returns: Confirmation.
googlesheets_append_dimensionAppend rows or columns to the end of a sheet. Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: The sheet ID (required) - dimension: ROWS or COLUMNS (required) - length: Number of rows/columns to append (required) Returns: Confirmation.
googlesheets_hide_dimensionHide rows or columns. Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: The sheet ID (required) - dimension: ROWS or COLUMNS (required) - startIndex: Start index (required) - endIndex: End index (required) Returns: Confirmation.
googlesheets_show_dimensionShow (unhide) rows or columns. Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: The sheet ID (required) - dimension: ROWS or COLUMNS (required) - startIndex: Start index (required) - endIndex: End index (required) Returns: Confirmation.
googlesheets_add_dimension_groupAdd row/column grouping (outline). Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: The sheet ID (required) - dimension: ROWS or COLUMNS (required) - startIndex: Start index (required) - endIndex: End index (required) Returns: Confirmation.
googlesheets_unmerge_cellsUnmerge previously merged cells in a range. Args: - spreadsheetId: The spreadsheet ID (required) - range: Grid range to unmerge (required) Returns: Confirmation of unmerge.
googlesheets_update_bordersUpdate borders for a range. Args: - spreadsheetId: The spreadsheet ID (required) - range: Grid range (required) - top/bottom/left/right/innerHorizontal/innerVertical: Border objects with style and color Returns: Confirmation of border update.
googlesheets_auto_resize_columnsAuto-resize columns to fit content. Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: The sheet ID (required) - startIndex: Start column index (0-indexed) (required) - endIndex: End column index (exclusive) (required) Returns: Confirmation.
googlesheets_auto_resize_rowsAuto-resize rows to fit content. Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: The sheet ID (required) - startIndex: Start row index (0-indexed) (required) - endIndex: End row index (exclusive) (required) Returns: Confirmation.
googlesheets_set_column_widthSet a specific width for columns. Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: The sheet ID (required) - startIndex: Start column index (required) - endIndex: End column index (required) - pixelSize: Width in pixels (required) Returns: Confirmation.
googlesheets_set_row_heightSet a specific height for rows. Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: The sheet ID (required) - startIndex: Start row index (required) - endIndex: End row index (required) - pixelSize: Height in pixels (required) Returns: Confirmation.
googlesheets_add_banded_rangeAdd alternating colors (banding) to a range. Args: - spreadsheetId: The spreadsheet ID (required) - range: Grid range (required) - headerColor: Color for header row - firstBandColor: Color for odd rows - secondBandColor: Color for even rows - footerColor: Color for footer row Returns: The banded range ID.
googlesheets_delete_banded_rangeRemove alternating colors (banding) from a range. Args: - spreadsheetId: The spreadsheet ID (required) - bandedRangeId: The banded range ID (required) Returns: Confirmation.
googlesheets_add_conditional_formatAdd a conditional formatting rule. Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: The sheet ID (required) - ranges: Array of grid ranges to apply the rule (required) - ruleType: 'boolean' or 'gradient' (required) - For boolean rules: condition type, values, and format - For gradient rules: minpoint, midpoint, maxpoint with colors and types Returns: Confirmation.
googlesheets_delete_conditional_formatDelete a conditional formatting rule. Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: The sheet ID (required) - index: The index of the rule to delete (required) Returns: Confirmation.
googlesheets_trim_whitespaceTrim leading and trailing whitespace from cells. Args: - spreadsheetId: The spreadsheet ID (required) - range: Grid range (required) Returns: Number of cells changed.
googlesheets_add_named_rangeCreate a named range. Args: - spreadsheetId: The spreadsheet ID (required) - name: Name for the range (required) - range: Grid range (required) Returns: The named range ID.
googlesheets_update_named_rangeUpdate an existing named range. Args: - spreadsheetId: The spreadsheet ID (required) - namedRangeId: The named range ID (required) - name: New name for the range - range: New grid range Returns: Confirmation.
googlesheets_delete_named_rangeDelete a named range. Args: - spreadsheetId: The spreadsheet ID (required) - namedRangeId: The named range ID (required) Returns: Confirmation.
googlesheets_batch_clear_valuesClear values from multiple ranges. Args: - spreadsheetId: The ID of the spreadsheet (required) - ranges: Array of A1 notation ranges to clear (required) Returns: The cleared ranges.
googlesheets_add_protected_rangeProtect a range from editing. Args: - spreadsheetId: The spreadsheet ID (required) - range: Grid range to protect (required) - description: Description of the protection - warningOnly: Show warning but allow edits - users: Array of user emails who can edit - groups: Array of group emails who can edit - domainUsersCanEdit: Allow domain users to edit Returns: The protected range ID.
googlesheets_delete_protected_rangeRemove protection from a range. Args: - spreadsheetId: The spreadsheet ID (required) - protectedRangeId: The protected range ID (required) Returns: Confirmation.
googlesheets_add_sheetAdd a new sheet to a spreadsheet. Args: - spreadsheetId: The ID of the spreadsheet (required) - title: Title of the new sheet (required) - rowCount: Number of rows (default: 1000) - columnCount: Number of columns (default: 26) - index: Position to insert the sheet - tabColorRed: Red component of tab color (0-1) - tabColorGreen: Green component of tab color (0-1) - tabColorBlue: Blue component of tab color (0-1) Returns: The created sheet properties including sheetId.
googlesheets_delete_sheetDelete a sheet from a spreadsheet. Args: - spreadsheetId: The ID of the spreadsheet (required) - sheetId: The ID of the sheet to delete (required) Returns: Confirmation of deletion.
googlesheets_rename_sheetRename a sheet in a spreadsheet. Args: - spreadsheetId: The ID of the spreadsheet (required) - sheetId: The ID of the sheet to rename (required) - newTitle: The new title for the sheet (required) Returns: Confirmation of the rename.
googlesheets_duplicate_sheetDuplicate a sheet within the same spreadsheet. Args: - spreadsheetId: The ID of the spreadsheet (required) - sheetId: The ID of the sheet to duplicate (required) - newSheetName: Name for the duplicated sheet - insertSheetIndex: Position to insert the new sheet Returns: The duplicated sheet properties.
googlesheets_copy_sheet_to_spreadsheetCopy a sheet to another spreadsheet. Args: - sourceSpreadsheetId: The ID of the source spreadsheet (required) - sheetId: The ID of the sheet to copy (required) - destinationSpreadsheetId: The ID of the destination spreadsheet (required) Returns: The copied sheet properties in the destination spreadsheet.
googlesheets_update_sheet_propertiesUpdate sheet properties (title, position, visibility, frozen rows/columns, etc.). Args: - spreadsheetId: The ID of the spreadsheet (required) - sheetId: The ID of the sheet to update (required) - title: New title for the sheet - index: New position for the sheet - hidden: Whether to hide the sheet - frozenRowCount: Number of frozen rows - frozenColumnCount: Number of frozen columns - hideGridlines: Whether to hide gridlines - rightToLeft: Whether the sheet is right-to-left - tabColorRed/Green/Blue: Tab color components (0-1) Returns: Confirmation of the update.
googlesheets_append_valuesAppend values to the end of a table in a spreadsheet. Args: - spreadsheetId: The ID of the spreadsheet (required) - range: A1 notation range that defines the table (required) - values: 2D array of values to append (required) - valueInputOption: RAW or USER_ENTERED - insertDataOption: OVERWRITE or INSERT_ROWS Returns: The updated range and statistics.
googlesheets_add_slicerAdd a slicer (interactive filter control). Args: - spreadsheetId: The spreadsheet ID (required) - sheetId: Sheet to place the slicer on (required) - dataSheetId: Sheet ID containing the data (required) - columnIndex: Column index to filter (0-indexed) (required) - title: Title for the slicer - anchorRowIndex: Row to anchor the slicer - anchorColumnIndex: Column to anchor the slicer - dataStartRowIndex: Start row of data - dataEndRowIndex: End row of data - dataStartColumnIndex: Start column of data - dataEndColumnIndex: End column of data Returns: The slicer ID.
googlesheets_delete_slicerDelete a slicer. Args: - spreadsheetId: The spreadsheet ID (required) - slicerId: The slicer ID (required) Returns: Confirmation.
googlesheets_create_spreadsheetCreate a new Google Sheets spreadsheet. Args: - title: The title of the new spreadsheet (required) - sheets: Optional array of sheet names to create Returns: The created spreadsheet metadata including spreadsheetId and URL.
googlesheets_get_spreadsheetGet metadata and optionally data for a spreadsheet. Args: - spreadsheetId: The ID of the spreadsheet (required) - includeGridData: Whether to include cell data (default: false) - ranges: Optional array of A1 ranges to include Returns: Spreadsheet metadata including properties, sheets, and optionally cell data.
googlesheets_update_spreadsheet_propertiesUpdate spreadsheet-level properties. Args: - spreadsheetId: The ID of the spreadsheet (required) - title: New title for the spreadsheet - locale: Locale for the spreadsheet (e.g., en_US) - timeZone: Time zone (e.g., America/New_York) - autoRecalc: Recalculation interval (ON_CHANGE, MINUTE, HOUR) Returns: Confirmation of the update.
googlesheets_get_by_data_filterGet spreadsheet data matching specific data filters (by range, metadata, etc.). Args: - spreadsheetId: The ID of the spreadsheet (required) - dataFilters: Array of filters specifying which data to retrieve - includeGridData: Whether to include cell data Returns: Filtered spreadsheet data.
googlesheets_read_valuesRead values from a range in a spreadsheet. Args: - spreadsheetId: The ID of the spreadsheet (required) - range: A1 notation range (e.g., Sheet1!A1:D10) (required) - majorDimension: ROWS or COLUMNS (default: ROWS) - valueRenderOption: How to render values (FORMATTED_VALUE, UNFORMATTED_VALUE, FORMULA) - dateTimeRenderOption: How to render dates (SERIAL_NUMBER, FORMATTED_STRING) Returns: The values in the specified range.
googlesheets_batch_read_valuesRead values from multiple ranges in a spreadsheet. Args: - spreadsheetId: The ID of the spreadsheet (required) - ranges: Array of A1 notation ranges (required) - majorDimension: ROWS or COLUMNS - valueRenderOption: How to render values - dateTimeRenderOption: How to render dates Returns: The values for each specified range.
googlesheets_write_valuesWrite values to a range in a spreadsheet. Args: - spreadsheetId: The ID of the spreadsheet (required) - range: A1 notation range (required) - values: 2D array of values to write (required) - valueInputOption: RAW or USER_ENTERED (default: USER_ENTERED) - includeValuesInResponse: Include written values in response Returns: Update statistics (rows, columns, cells updated).
googlesheets_batch_write_valuesWrite values to multiple ranges in a spreadsheet. Args: - spreadsheetId: The ID of the spreadsheet (required) - data: Array of {range, values} objects (required) - valueInputOption: RAW or USER_ENTERED - includeValuesInResponse: Include written values in response Returns: Total update statistics.
googlesheets_clear_valuesClear values from a range (keeps formatting). Args: - spreadsheetId: The ID of the spreadsheet (required) - range: A1 notation range to clear (required) Returns: The cleared range.
googlesheets_batch_read_by_data_filterRead values matching data filters (by range, grid range, or metadata). Args: - spreadsheetId: The ID of the spreadsheet (required) - dataFilters: Array of data filters (required) - majorDimension: ROWS or COLUMNS - valueRenderOption: How to render values Returns: Values matching the filters.
googlesheets_batch_write_by_data_filterWrite values to ranges matching data filters. Args: - spreadsheetId: The ID of the spreadsheet (required) - data: Array of {dataFilter, values} objects (required) - valueInputOption: RAW or USER_ENTERED Returns: Update statistics.
googlesheets_batch_clear_by_data_filterClear values from ranges matching data filters. Args: - spreadsheetId: The ID of the spreadsheet (required) - dataFilters: Array of data filters (required) Returns: The cleared ranges.
googlesheets_add_basic_chart{
"title": "example_title",
"sheetId": 10,
"headerCount": 10,
"widthPixels": 10,
"heightPixels": 10,
"seriesRanges": true,
"spreadsheetId": "example_spreadsheetId",
"anchorRowIndex": 10,
"anchorColumnIndex": 10
}googlesheets_add_pie_chart{
"title": "example_title",
"pieHole": 10,
"sheetId": 10,
"widthPixels": 10,
"heightPixels": 10,
"spreadsheetId": "example_spreadsheetId",
"anchorRowIndex": 10,
"threeDimensional": true,
"anchorColumnIndex": 10
}googlesheets_delete_chart{
"chartId": 10,
"spreadsheetId": "example_spreadsheetId"
}