
Google Sheets Mcp
Bridges Claude to Google Sheets via service account authentication, giving you full CRUD operations on spreadsheets without leaving your MCP client. You get tools to create, read, update, and delete sheets and tables directly through the API. Setup involves creating a Google Cloud service account, enabling the Sheets and Drive APIs, then dropping credentials into your MCP config as environment variables. Once configured, share your target spreadsheet with the service account email and you're ready to automate. Works with Claude Desktop, Continue.dev, and other MCP compatible clients. Runs via uvx, so no manual installation required.
- GitHub stars
- 14
- tools
- 38
- transport
- STDIO
- last updated
- Sep 11, 2025
Tools
38 toolsPublic tool metadata for what this MCP can expose to an agent.
GOOGLESHEETS_ADD_SHEETAdds a new sheet (worksheet) to a spreadsheet. Use this tool to create a new tab within an existing Google Sheet, optionally specifying its title, index, size, and other properties. IMPORTANT: - Always provide the spreadsheetId. Use 'Search Spreadsheets' action if you need to...2 params
Adds a new sheet (worksheet) to a spreadsheet. Use this tool to create a new tab within an existing Google Sheet, optionally specifying its title, index, size, and other properties. IMPORTANT: - Always provide the spreadsheetId. Use 'Search Spreadsheets' action if you need to...
propertiesvaluespreadsheetIdstringGOOGLESHEETS_AGGREGATE_COLUMN_DATASearches for rows where a specific column matches a value and performs mathematical operations on data from another column.9 params
Searches for rows where a specific column matches a value and performs mathematical operations on data from another column.
case_sensitivebooleanhas_header_rowbooleanoperationstringsum · average · count · min · max · percentagepercentage_totalnumbersearch_columnstringsearch_valuestringsheet_namestringspreadsheet_idstringtarget_columnstringGOOGLESHEETS_APPEND_DIMENSIONTool to append new rows or columns to a sheet, increasing its size. Use when you need to add empty rows or columns to an existing sheet.4 params
Tool to append new rows or columns to a sheet, increasing its size. Use when you need to add empty rows or columns to an existing sheet.
dimensionstringROWS · COLUMNSlengthintegersheet_idintegerspreadsheet_idstringGOOGLESHEETS_BATCH_GETRetrieves data from specified cell ranges in a Google Spreadsheet.4 params
Retrieves data from specified cell ranges in a Google Spreadsheet.
dateTimeRenderOptionstringSERIAL_NUMBER · FORMATTED_STRINGdefault: SERIAL_NUMBERrangesarrayspreadsheet_idstringvalueRenderOptionstringFORMATTED_VALUE · UNFORMATTED_VALUE · FORMULAdefault: FORMATTED_VALUEGOOGLESHEETS_BATCH_UPDATEUpdates a specified range in a Google Sheet with given values, or appends them as new rows if `first_cell_location` is omitted. Auto-expands grid for large datasets, preventing range errors. Requirements: Target sheet must exist and spreadsheet must contain at least one worksh...6 params
Updates a specified range in a Google Sheet with given values, or appends them as new rows if `first_cell_location` is omitted. Auto-expands grid for large datasets, preventing range errors. Requirements: Target sheet must exist and spreadsheet must contain at least one worksh...
first_cell_locationstringincludeValuesInResponsebooleansheet_namestringspreadsheet_idstringvalueInputOptionstringRAW · USER_ENTEREDdefault: USER_ENTEREDvaluesarrayGOOGLESHEETS_BATCH_UPDATE_VALUES_BY_DATA_FILTERTool to update values in ranges matching data filters. Use when you need to update specific data in a Google Sheet based on criteria rather than fixed cell ranges.6 params
Tool to update values in ranges matching data filters. Use when you need to update specific data in a Google Sheet based on criteria rather than fixed cell ranges.
dataarrayincludeValuesInResponsebooleanresponseDateTimeRenderOptionvalueresponseValueRenderOptionvaluespreadsheetIdstringvalueInputOptionstringRAW · USER_ENTEREDGOOGLESHEETS_CLEAR_BASIC_FILTERTool to clear the basic filter from a sheet. Use when you need to remove an existing basic filter from a specific sheet within a Google Spreadsheet.2 params
Tool to clear the basic filter from a sheet. Use when you need to remove an existing basic filter from a specific sheet within a Google Spreadsheet.
sheet_idintegerspreadsheet_idstringGOOGLESHEETS_CLEAR_VALUESClears cell content (preserving formatting and notes) from a specified A1 notation range in a Google Spreadsheet; the range must correspond to an existing sheet and cells.2 params
Clears cell content (preserving formatting and notes) from a specified A1 notation range in a Google Spreadsheet; the range must correspond to an existing sheet and cells.
rangestringspreadsheet_idstringGOOGLESHEETS_CREATE_CHARTCreate a chart in a Google Sheets spreadsheet using the specified data range and chart type. Conditional requirements: - Provide either a simple chart via chart_type + data_range (basicChart), OR supply a full chart_spec supporting all chart types. Exactly one approach should...13 params
Create a chart in a Google Sheets spreadsheet using the specified data range and chart type. Conditional requirements: - Provide either a simple chart via chart_type + data_range (basicChart), OR supply a full chart_spec supporting all chart types. Exactly one approach should...
background_bluenumberbackground_greennumberbackground_rednumberchart_specvaluechart_typestringdata_rangestringlegend_positionstringsheet_idintegerspreadsheet_idstringsubtitlestringtitlestringx_axis_titlestringy_axis_titlestringGOOGLESHEETS_CREATE_GOOGLE_SHEET1Creates a new Google Spreadsheet in Google Drive using the provided title.1 params
Creates a new Google Spreadsheet in Google Drive using the provided title.
titlestringGOOGLESHEETS_CREATE_SPREADSHEET_COLUMNCreates a new column in a Google Spreadsheet, requiring a valid `spreadsheet_id` and an existing `sheet_id`; an out-of-bounds `insert_index` may append/prepend the column.4 params
Creates a new column in a Google Spreadsheet, requiring a valid `spreadsheet_id` and an existing `sheet_id`; an out-of-bounds `insert_index` may append/prepend the column.
inherit_from_beforebooleaninsert_indexintegersheet_idintegerspreadsheet_idstringGOOGLESHEETS_CREATE_SPREADSHEET_ROWInserts a new, empty row into a specified sheet of a Google Spreadsheet at a given index, optionally inheriting formatting from the row above.4 params
Inserts a new, empty row into a specified sheet of a Google Spreadsheet at a given index, optionally inheriting formatting from the row above.
inherit_from_beforebooleaninsert_indexintegersheet_idintegerspreadsheet_idstringGOOGLESHEETS_DELETE_DIMENSIONTool to delete specified rows or columns from a sheet in a Google Spreadsheet. Use when you need to remove a range of rows or columns.5 params
Tool to delete specified rows or columns from a sheet in a Google Spreadsheet. Use when you need to remove a range of rows or columns.
delete_dimension_requestobjectinclude_spreadsheet_in_responsebooleanresponse_include_grid_databooleanresponse_rangesvaluespreadsheet_idstringGOOGLESHEETS_DELETE_SHEETTool to delete a sheet (worksheet) from a spreadsheet. Use when you need to remove a specific sheet from a Google Sheet document.2 params
Tool to delete a sheet (worksheet) from a spreadsheet. Use when you need to remove a specific sheet from a Google Sheet document.
sheet_idintegerspreadsheetIdstringGOOGLESHEETS_EXECUTE_SQLExecute SQL queries against Google Sheets tables. Supports SELECT, INSERT, UPDATE, and DELETE operations with familiar SQL syntax. Tables are automatically detected and mapped from the spreadsheet structure.4 params
Execute SQL queries against Google Sheets tables. Supports SELECT, INSERT, UPDATE, and DELETE operations with familiar SQL syntax. Tables are automatically detected and mapped from the spreadsheet structure.
delete_methodstringclear · remove_rowsdefault: cleardry_runbooleanspreadsheet_idstringsqlstringGOOGLESHEETS_FIND_REPLACETool to find and replace text in a Google Spreadsheet. Use when you need to fix formula errors, update values, or perform bulk text replacements across cells. Common use cases: - Fix #ERROR! cells by replacing with empty string or correct formula - Update old values with new o...9 params
Tool to find and replace text in a Google Spreadsheet. Use when you need to fix formula errors, update values, or perform bulk text replacements across cells. Common use cases: - Fix #ERROR! cells by replacing with empty string or correct formula - Update old values with new o...
allSheetsbooleanfindstringmatchCasebooleanmatchEntireCellbooleanrangestringreplacementstringsearchByRegexbooleansheetIdvaluespreadsheetIdstringGOOGLESHEETS_FIND_WORKSHEET_BY_TITLEFinds a worksheet by its exact, case-sensitive title within a Google Spreadsheet; returns a boolean indicating if found and the complete metadata of the entire spreadsheet, regardless of whether the target worksheet is found.2 params
Finds a worksheet by its exact, case-sensitive title within a Google Spreadsheet; returns a boolean indicating if found and the complete metadata of the entire spreadsheet, regardless of whether the target worksheet is found.
spreadsheet_idstringtitlestringGOOGLESHEETS_FORMAT_CELLApplies text and background cell formatting to a specified range in a Google Sheets worksheet.15 params
Applies text and background cell formatting to a specified range in a Google Sheets worksheet.
bluenumberboldbooleanend_column_indexvalueend_row_indexvaluefontSizeintegergreennumberitalicbooleanrangestringrednumberspreadsheet_idstringstart_column_indexvaluestart_row_indexvaluestrikethroughbooleanunderlinebooleanworksheet_idintegerGOOGLESHEETS_GET_SHEET_NAMESLists all worksheet names from a specified Google Spreadsheet (which must exist), useful for discovering sheets before further operations.1 params
Lists all worksheet names from a specified Google Spreadsheet (which must exist), useful for discovering sheets before further operations.
spreadsheet_idstringGOOGLESHEETS_GET_SPREADSHEET_BY_DATA_FILTERReturns the spreadsheet at the given ID, filtered by the specified data filters. Use this tool when you need to retrieve specific subsets of data from a Google Sheet based on criteria like A1 notation, developer metadata, or grid ranges.4 params
Returns the spreadsheet at the given ID, filtered by the specified data filters. Use this tool when you need to retrieve specific subsets of data from a Google Sheet based on criteria like A1 notation, developer metadata, or grid ranges.
dataFiltersarrayexcludeTablesInBandedRangesbooleanincludeGridDatabooleanspreadsheetIdstringGOOGLESHEETS_GET_SPREADSHEET_INFORetrieves comprehensive metadata for a Google Spreadsheet using its ID, excluding cell data.1 params
Retrieves comprehensive metadata for a Google Spreadsheet using its ID, excluding cell data.
spreadsheet_idstringGOOGLESHEETS_GET_TABLE_SCHEMAThis action is used to get the schema of a table in a Google Spreadsheet, call this action to get the schema of a table in a spreadsheet BEFORE YOU QUERY THE TABLE. Analyze table structure and infer column names, types, and constraints. Uses statistical analysis of sample data...4 params
This action is used to get the schema of a table in a Google Spreadsheet, call this action to get the schema of a table in a spreadsheet BEFORE YOU QUERY THE TABLE. Analyze table structure and infer column names, types, and constraints. Uses statistical analysis of sample data...
sample_sizeintegersheet_namestringspreadsheet_idstringtable_namestringGOOGLESHEETS_INSERT_DIMENSIONTool to insert new rows or columns into a sheet at a specified location. Use when you need to add empty rows or columns within an existing Google Sheet.5 params
Tool to insert new rows or columns into a sheet at a specified location. Use when you need to add empty rows or columns within an existing Google Sheet.
include_spreadsheet_in_responsebooleaninsert_dimensionobjectresponse_include_grid_databooleanresponse_rangesvaluespreadsheet_idstringGOOGLESHEETS_LIST_TABLESThis action is used to list all tables in a Google Spreadsheet, call this action to get the list of tables in a spreadsheet. Discover all tables in a Google Spreadsheet by analyzing sheet structure and detecting data patterns. Uses heuristic analysis to find header rows, data...4 params
This action is used to list all tables in a Google Spreadsheet, call this action to get the list of tables in a spreadsheet. Discover all tables in a Google Spreadsheet by analyzing sheet structure and detecting data patterns. Uses heuristic analysis to find header rows, data...
min_columnsintegermin_confidencenumbermin_rowsintegerspreadsheet_idstringGOOGLESHEETS_LOOKUP_SPREADSHEET_ROWFinds the first row in a Google Spreadsheet where a cell's entire content exactly matches the query string, searching within a specified A1 notation range or the first sheet by default.4 params
Finds the first row in a Google Spreadsheet where a cell's entire content exactly matches the query string, searching within a specified A1 notation range or the first sheet by default.
case_sensitivebooleanquerystringrangestringspreadsheet_idstringGOOGLESHEETS_QUERY_TABLEThis action is used to query a table in a Google Spreadsheet, call this action to query a table in a spreadsheet. Execute SQL-like SELECT queries against spreadsheet tables. Supports WHERE conditions, ORDER BY, LIMIT clauses. Call this action after calling the GET_TABLE_SCHEMA...3 params
This action is used to query a table in a Google Spreadsheet, call this action to query a table in a spreadsheet. Execute SQL-like SELECT queries against spreadsheet tables. Supports WHERE conditions, ORDER BY, LIMIT clauses. Call this action after calling the GET_TABLE_SCHEMA...
include_formulasbooleanspreadsheet_idstringsqlstringGOOGLESHEETS_SEARCH_DEVELOPER_METADATATool to search for developer metadata in a spreadsheet. Use when you need to find specific metadata entries based on filters.2 params
Tool to search for developer metadata in a spreadsheet. Use when you need to find specific metadata entries based on filters.
dataFiltersarrayspreadsheetIdstringGOOGLESHEETS_SEARCH_SPREADSHEETSSearch for Google Spreadsheets using various filters including name, content, date ranges, and more.8 params
Search for Google Spreadsheets using various filters including name, content, date ranges, and more.
created_afterstringinclude_trashedbooleanmax_resultsvaluemodified_afterstringorder_bystringquerystringshared_with_mebooleanstarred_onlybooleanGOOGLESHEETS_SET_BASIC_FILTERTool to set a basic filter on a sheet in a Google Spreadsheet. Use when you need to filter or sort data within a specific range on a sheet.2 params
Tool to set a basic filter on a sheet in a Google Spreadsheet. Use when you need to filter or sort data within a specific range on a sheet.
filterobjectspreadsheetIdstringGOOGLESHEETS_SHEET_FROM_JSONCreates a new Google Spreadsheet and populates its first worksheet from `sheet_json`, which must be non-empty as its first item's keys establish the headers.3 params
Creates a new Google Spreadsheet and populates its first worksheet from `sheet_json`, which must be non-empty as its first item's keys establish the headers.
sheet_jsonarraysheet_namestringtitlestringGOOGLESHEETS_SPREADSHEETS_SHEETS_COPY_TOTool to copy a single sheet from a spreadsheet to another spreadsheet. Use when you need to duplicate a sheet into a different spreadsheet.3 params
Tool to copy a single sheet from a spreadsheet to another spreadsheet. Use when you need to duplicate a sheet into a different spreadsheet.
destination_spreadsheet_idstringsheet_idintegerspreadsheet_idstringGOOGLESHEETS_SPREADSHEETS_VALUES_APPENDTool to append values to a spreadsheet. Use when you need to add new data to the end of an existing table in a Google Sheet.9 params
Tool to append values to a spreadsheet. Use when you need to add new data to the end of an existing table in a Google Sheet.
includeValuesInResponsebooleaninsertDataOptionvaluemajorDimensionvaluerangestringresponseDateTimeRenderOptionvalueresponseValueRenderOptionvaluespreadsheetIdstringvalueInputOptionstringRAW · USER_ENTEREDvaluesarrayGOOGLESHEETS_SPREADSHEETS_VALUES_BATCH_CLEARTool to clear one or more ranges of values from a spreadsheet. Use when you need to remove data from specific cells or ranges while keeping formatting and other properties intact.2 params
Tool to clear one or more ranges of values from a spreadsheet. Use when you need to remove data from specific cells or ranges while keeping formatting and other properties intact.
rangesarrayspreadsheet_idstringGOOGLESHEETS_SPREADSHEETS_VALUES_BATCH_CLEAR_BY_DATA_FILTERClears one or more ranges of values from a spreadsheet using data filters. The caller must specify the spreadsheet ID and one or more DataFilters. Ranges matching any of the specified data filters will be cleared. Only values are cleared -- all other properties of the cell (su...2 params
Clears one or more ranges of values from a spreadsheet using data filters. The caller must specify the spreadsheet ID and one or more DataFilters. Ranges matching any of the specified data filters will be cleared. Only values are cleared -- all other properties of the cell (su...
dataFiltersarrayspreadsheetIdstringGOOGLESHEETS_SPREADSHEETS_VALUES_BATCH_GET_BY_DATA_FILTERTool to return one or more ranges of values from a spreadsheet that match the specified data filters. Use when you need to retrieve specific data sets based on filtering criteria rather than entire sheets or fixed ranges.5 params
Tool to return one or more ranges of values from a spreadsheet that match the specified data filters. Use when you need to retrieve specific data sets based on filtering criteria rather than entire sheets or fixed ranges.
dataFiltersarraydateTimeRenderOptionvaluemajorDimensionvaluespreadsheetIdstringvalueRenderOptionvalueGOOGLESHEETS_UPDATE_SHEET_PROPERTIESTool to update properties of a sheet (worksheet) within a Google Spreadsheet, such as its title, index, visibility, tab color, or grid properties. Use this when you need to modify the metadata or appearance of a specific sheet.2 params
Tool to update properties of a sheet (worksheet) within a Google Spreadsheet, such as its title, index, visibility, tab color, or grid properties. Use this when you need to modify the metadata or appearance of a specific sheet.
spreadsheetIdstringupdateSheetPropertiesobjectGOOGLESHEETS_UPDATE_SPREADSHEET_PROPERTIESTool to update properties of a spreadsheet, such as its title, locale, or auto-recalculation settings. Use when you need to modify the overall configuration of a Google Sheet.3 params
Tool to update properties of a spreadsheet, such as its title, locale, or auto-recalculation settings. Use when you need to modify the overall configuration of a Google Sheet.
fieldsstringpropertiesobjectspreadsheetIdstringGOOGLESHEETS_UPSERT_ROWSUpsert rows - update existing rows by key, append new ones. Automatically handles column mapping and partial updates. Use for: CRM syncs (match Lead ID), transaction imports (match Transaction ID), inventory updates (match SKU), calendar syncs (match Event ID). Features: - Aut...6 params
Upsert rows - update existing rows by key, append new ones. Automatically handles column mapping and partial updates. Use for: CRM syncs (match Lead ID), transaction imports (match Transaction ID), inventory updates (match SKU), calendar syncs (match Event ID). Features: - Aut...
dataarrayheadersarraykeyColumnstringsheetNamestringspreadsheetIdstringtableStartstringSponsors
Readme
Google Sheets MCP Server
Powerful tools for automating Google Sheets using Model Context Protocol (MCP)
mcp-name: io.github.henilcalagiya/google-sheets-mcp
Overview
Google Sheets MCP Server provides seamless integration of Google Sheets with any MCP-compatible client. It enables full spreadsheet automation — including creating, reading, updating, and deleting sheets — through a simple and secure API layer.
Features
- Full CRUD support for Google Sheets and tables
- Works with Continue.dev, Claude Desktop, Perplexity, and other MCP clients
- Secure authentication via Google Service Account
- Comprehensive tools for Google Sheets automation
- Automatic installation via
uvx
Requirements
- Python 3.10+
uvpackage manager (foruvxcommand)- A Google Cloud project with a Service Account
- MCP-compatible client (e.g., Continue.dev)
Install uv:
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows PowerShell
irm https://astral.sh/uv/install.ps1 | iex
Quick Start
1. Set Up Google Service Account
Details
- Repository
- github.com/henilcalagiya/google-sheets-mcp
- Category
- Data & Analytics
- Package
google-sheets-mcp- Transport
- STDIO
- Registry
- MCP registry, active