Labsco
MCP SERVER

Google Sheets

by freema

Read, write and format Google Sheets from an assistant — values and ranges, sheets and tables, charts, conditional formatting, and one-shot snapshots of a sheet's structure.

Spreadsheet & Tabular File AnalysisVerified
Summary
The read tools are built to not blow up your context.

Most Sheets servers stop at values; this one goes deep on structure while working hard to stay compact — sheets_get_formatting_compact and the run-length-encoded validation and border reads cut typical output by an order of magnitude, and sheets_get_full_sheet_snapshot gets a whole sheet's layout in one call. That matters because reading a formatted sheet cell-by-cell is exactly what floods an agent's context. Note it uses a service account, so a sheet has to be shared with that account before any tool can touch it.

What it is

A server over the Google Sheets API: 44 tools spanning cell values, sheet and table management, formatting, charts, and a set of read tools that pull a sheet's structure and formatting back compactly.

What you get
  • Values read and written: sheets_get_values and sheets_batch_get_values, sheets_update_values and its batch form, sheets_append_values (which overwrites empty cells unless you set insertDataOption to INSERT_ROWS), and sheets_clear_values, with sheets_get_metadata and sheets_check_access to orient first
  • Spreadsheet and sheet lifecycle: sheets_create_spreadsheet, sheets_insert_sheet, sheets_delete_sheet, sheets_duplicate_sheet, sheets_copy_to another spreadsheet, sheets_update_sheet_properties, and batch delete of several sheets at once
  • Native Google Sheets tables with typed columns and dropdowns — sheets_add_table, sheets_update_table, sheets_delete_table and sheets_get_tables by tableId
  • Formatting: sheets_format_cells for colors, fonts, alignment and number formats, sheets_update_borders, sheets_merge_cells and sheets_unmerge_cells, sheets_add_conditional_formatting, and batch versions for many ranges in one call
  • Charts created, updated and deleted with sheets_create_chart / sheets_update_chart / sheets_delete_chart, plus sheets_insert_link, sheets_insert_date with locale support, and row and column inserts and deletes
  • Structure reads that keep output small: sheets_get_full_sheet_snapshot pulls all structural and formatting metadata in one API call, sheets_get_sheet_structure returns dimensions and merges without per-cell data, and sheets_get_formatting_compact run-length-encodes formatting to cut output 90%+
  • Targeted inspection: sheets_get_data_validation surfaces checkboxes and dropdowns, sheets_get_basic_filter reads the AutoFilter, sheets_get_border_map draws a visual border grid, and sheets_compare_ranges diffs the formatting of two equal-sized ranges to verify a repeated pattern
Requirements

A Google Cloud project id in GOOGLE_PROJECT_ID and a service account with access to the sheets you use. Authenticate three ways: GOOGLE_APPLICATION_CREDENTIALS pointing at the key JSON file, GOOGLE_SERVICE_ACCOUNT_KEY as a JSON string, or GOOGLE_PRIVATE_KEY plus GOOGLE_CLIENT_EMAIL. Node.js 20+, run as npx mcp-gsheets over stdio. Share each spreadsheet with the service account's email for it to have access.

Setup effort

One command plus a key — npx -y mcp-gsheets@latest, then supply credentials