Google Sheets

MCP server for Google Sheets : read, write, format, and manage spreadsheets through 23 tools.

Community: Submitted by a user or imported; check the owner before granting accessDegradedAPI key requiredGlobalFreeCan modify data

What it can do

  • Gs Create Spreadsheet: Create a new Google Sheets spreadsheet. Optionally specify sheet/tab names, locale, and timezone. Returns the spreadsheet ID and URL.
  • Gs Get Spreadsheet: Get spreadsheet metadata — title, sheets list with properties (ID, title, row/column count, frozen rows), and optionally cell data for specific ranges.
  • Gs Read Values: Read cell values from a range using A1 notation (e.g. "Sheet1!A1:C10", "A1:Z", "Sheet1"). Returns a 2D array of values.

What data it sees

Do you need an account

An API key from the service settings is required

MCP server for Google Sheets : read, write, format, and manage spreadsheets through 23 tools.

Features

  • Read and write cell values with A1 notation
  • Batch read/write for multiple ranges at once
  • Full formatting: bold, italic, colors, fonts, alignment, number formats
  • Sheet management: add, delete, rename, copy, duplicate tabs
  • Data operations: sort, find & replace, filters, protected ranges
  • Add charts (bar, line, column, scatter, etc.)
  • Raw batchUpdate pass-through for any Sheets API operation

23 Tools

  • Spreadsheet: create and get spreadsheet metadata
  • Values: read, batch read, write, append, clear, batch write
  • Sheet Management: add, delete, rename, copy, duplicate sheets
  • Formatting: format cells, merge/unmerge, auto-resize
  • Data Operations: sort, find & replace, basic filter, protected ranges
  • Advanced: add chart, raw batchUpdate

Configuration

  • GOOGLE_CLIENT_ID : OAuth 2.0 Client ID from Google Cloud Console
  • GOOGLE_CLIENT_SECRET : OAuth 2.0 Client Secret
  • GOOGLE_REFRESH_TOKEN : Refresh token with spreadsheets scope

How to connect

How to connect Google Sheets to Claude

The server address to paste into Claude settings:

https://google-sheets--node2flow.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect Google Sheets to ChatGPT

The server address to paste into ChatGPT settings:

https://google-sheets--node2flow.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect Google Sheets to Cursor

The server address to paste into Cursor settings:

https://google-sheets--node2flow.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (23)

Raw names from tools/list. Only developers need these.

gs_create_spreadsheetCreate a new Google Sheets spreadsheet. Optionally specify sheet/tab names, locale, and timezone. Returns the spreadsheet ID and URL.
gs_get_spreadsheetGet spreadsheet metadata — title, sheets list with properties (ID, title, row/column count, frozen rows), and optionally cell data for specific ranges.
gs_read_valuesRead cell values from a range using A1 notation (e.g. "Sheet1!A1:C10", "A1:Z", "Sheet1"). Returns a 2D array of values.
gs_batch_readRead values from multiple ranges at once. More efficient than multiple gs_read_values calls.
gs_write_valuesWrite values to a range. Values are provided as a 2D array (rows of columns). By default uses USER_ENTERED input (formulas and formatting are parsed).
gs_append_valuesAppend rows after the last row with data in the specified range. Automatically finds the end of existing data and adds new rows below.
gs_clear_valuesClear all values in a range. Only clears values — formatting, data validation, and other properties are preserved.
gs_batch_writeWrite values to multiple ranges at once. More efficient than multiple gs_write_values calls.
gs_add_sheetAdd a new sheet/tab to a spreadsheet. Optionally set row/column count and tab color.
gs_delete_sheetDelete a sheet/tab from a spreadsheet. Use gs_get_spreadsheet to find the sheet_id first. This action is irreversible.
gs_rename_sheetRename a sheet/tab in a spreadsheet.
gs_copy_sheetCopy a sheet/tab to another spreadsheet. The authenticated user must have edit access to the destination spreadsheet.
gs_duplicate_sheetDuplicate a sheet/tab within the same spreadsheet. Creates a copy with an optional new name.
gs_format_cellsApply formatting to cells in a range — bold, italic, font size, colors, alignment, number format, and more. Uses 0-based row/column indices.
gs_merge_cellsMerge cells in a range. All values except the top-left cell are cleared.
gs_unmerge_cellsUnmerge previously merged cells in a range.
gs_auto_resizeAuto-resize columns or rows to fit their content.
gs_sort_rangeSort a range of data by a specific column. Uses 0-based indices for the range and sort column.
gs_find_replaceFind and replace text across one sheet or all sheets. Supports case-sensitive and regex search.
gs_set_basic_filterSet or clear a basic filter (auto-filter) on a sheet. When set, filter dropdowns appear in column headers.
gs_add_protected_rangeProtect a range of cells from editing. Optionally allow specific editors or show a warning instead of blocking.
gs_add_chartAdd a chart to a sheet. Specify chart type, data range, and anchor position. The chart is overlaid on the sheet.
gs_batch_updateSend a raw batchUpdate request with one or more request objects. Use this for advanced operations not covered by other tools (e.g. conditional formatting, data validation, dimension properties). See Google Sheets API batchUpdate documentation for available request types.