mcp-google-sheets-full

The only Google Sheets MCP server that can do anything the Sheets API can. Two auth modes: OAuth (default) or service account (opt-in).

Install

$npm install -g mcp-google-sheets-full

Then register in Claude Code: claude mcp add google-sheets -- mcp-google-sheets-full --scope user

Claude editing a Google Sheet via mcp-google-sheets-full in real time

Why this server

Most Google Sheets MCP servers expose a curated set of operations and stop there. If you need something they didn't anticipate — a particular conditional-format request, a multi-step migration, a Drive-side operation, an analysis-then-write workflow — you're stuck.

This one adds the missing primitive: run_sheets_script. Pass a snippet of Node code, get back the result. The Sheets v4 and Drive v3 clients are already authenticated and in scope. The temp file is always cleaned up.

mcp-google-sheets-full freema/mcp-gsheets xing5/mcp-google-sheets ringo380/...
Read / write / append / clear
Structural batchUpdate (raw) partial
Granular tabs / rows / format / borders partial
Drive search (list / search_spreadsheets) partial
Arbitrary code execution (run_sheets_script)
Auth modes OAuth default + Service Account opt-in service-account-first both both
Language TypeScript / Node TypeScript / Node Python Python

26 tools

Read
get_spreadsheet metadata, tabs, gridProperties
get_values one A1 range
batch_get_values multiple ranges
Write
update_values
batch_update_values
append_values
clear_values
Tabs
add_sheet
delete_sheet
duplicate_sheet
rename_sheet
Structure
insert_rows
insert_columns
delete_rows
delete_columns
merge_cells
unmerge_cells
Formatting
format_cells backgroundColor, textFormat, numberFormat, alignment...
set_borders
Drive & lifecycle
list_spreadsheets
search_spreadsheets
create_spreadsheet
resolve_url extract spreadsheetId + gid from a URL
auth_status
Escape hatches
batch_update raw Sheets API Request[]
run_sheets_script arbitrary Node with sheets/drive/auth in scope

Security model

run_sheets_script executes Node code on your machine, under your user account, against your OAuth token. The trust boundary is the same as any tool that lets Claude run code on your behalf (Bash, Edit, Write):

Not comfortable with code execution? Don't call run_sheets_script — the other 25 tools cover the common cases without it.