Sheets MCP
Google Sheets for agent workflows in Claude Code and Claude Desktop: APIs, files, schedules, undo.
Connector by atc07 · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/atc07-sheets-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 11 read · 20 write · 5 delete · 5 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 41
Read from the source code; the running server may list different tools.
Read 11 · Look things up without changing anything.
answer_walkthrough_questionfind_replacefind_spreadsheetget_spreadsheet_infopreview_updatesread_rangeread_rangesshow_rangeshow_recent_sheetst3t4
Write 20 · Create, change, send or run things.
add_chartadd_conditional_formatadd_pivot_tableadd_walkthrough_pointappend_rowsbatch_updatecreate_spreadsheetfill_rangegoogle_accountsinsert_rows_or_columnsmerge_cellsresize_columns
Show 8 more tools
set_data_validationset_filterstart_walkthrought1t2t5update_chartwrite_range
Delete 5 · Delete, drop, revoke or wipe things.
clear_rangedelete_chartdelete_rows_or_columnsmanage_tabrecent_sheets_update
Not yet classified 5 · We could not tell from the name and description.
format_rangeformat_rangesfreezesort_rangeundo_last
Network hosts it talks to 8
docs.google.com· found in codefirebasehosting.googleapis.com· found in codefirestore.googleapis.com· found in codegithub.com· found in codegoogleapis.com· found in coderewriteapp.io· found in codesheetsmcp.io· found in codeyourtalks.ai· found in code
Files it touches
- Your home directory (~)
~/Downloads~/finance
Tools (41)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
add_chartCreate a chart from a data range. The first column is the X axis/labels; each following column is a series. Use a header row for series names.
add_conditional_formatAdd a conditional formatting rule: either a condition (e.g. NUMBER_GREATER, TEXT_CONTAINS, CUSTOM_FORMULA) with a style, or a color scale.
add_pivot_tableSummarize a table with a pivot table: group by one or more columns, and total, count or average others. It goes on a new tab unless anchor_cell is given. The source range needs a header row; refer to columns by header name or letter.
add_walkthrough_pointAdd the next point to the walkthrough started with start_walkthrough; it appears in the user's list right away. Points play in the order added. Write each point for someone who didn't build the sheet: one idea per point, tied to the cells that show it, in plain words (describe formulas, e.g. "adds up the weekly rows", rather than quoting them). Order them the way the sheet flows: inputs, then calculations, then results and what to watch. Set `last` on the final point; the walkthrough then plays.
answer_walkthrough_questionAnswer a question the user typed in the walkthrough (their chat message starts "Question about point N of the walkthrough"). The answer appears in the walkthrough under that point, below their question. Show, don't just tell: when the answer is about cells, point at them. One place: give `range`. Several places (a check that fails, the inputs behind it, where the total lands): give `steps`, one per place in the order to look at them; they're added to the walkthrough right after the point and play at once, the cursor outlining each range with its note, Next moving on, then the walkthrough conti…
append_rowsAppend rows after the last row of data in a table (detected from the given range or tab).
batch_updateSend raw Google Sheets API batchUpdate requests for anything the other tools don't cover (e.g. named ranges, protected ranges, pivot tables, row heights, hiding rows, updating charts). Requests use sheetId numbers from get_spreadsheet_info.
clear_rangeClear values and formulas in a range (formatting is kept). Previous contents are saved for undo_last.
create_spreadsheetCreate a new Google Sheets spreadsheet.
delete_chartDelete a chart. Chart ids come from get_spreadsheet_info or add_chart. Not undoable through undo_last.
delete_rows_or_columnsDelete entire rows (e.g. "Sheet1!5:7") or columns (e.g. "Sheet1!C:D"). Not undoable.
fill_rangeFill cells from a source block, like dragging the fill handle or pasting onto a bigger selection: the source's formulas (relative references shift), values and formatting repeat across the destination. Use it after writing one row or column of formulas to extend them across a table, instead of sending every column. With continue_series, patterns continue instead (1, 2, 3 → 4, 5, 6; Jan → Feb; dates). The destination's previous contents are saved for undo_last. Returns any formula errors found after filling.
find_replaceFind and replace text across a tab or the whole spreadsheet. Not undoable - consider read_range first.
find_spreadsheetFind a spreadsheet by name among the ones the user has opened or created with Sheets MCP before (the list is kept on their computer). Use it when the user names a sheet instead of pasting a link, e.g. "my budget sheet". It can't search the rest of their Google Drive: if nothing matches, ask for the link. Leave query empty to list the most recent.
format_rangeApply formatting to a range: font styles, colors, number formats, alignment, wrapping, borders. Only provided options are changed. To style several ranges differently in one go, use format_ranges.
Show 26 more tools
format_rangesApply different formatting to several ranges in one call (same options as format_range, one entry per range): headers, input cells, number formats, borders and so on for a whole tab at once. Ranges may repeat; later entries win where they overlap.
freezeFreeze header rows and/or columns on a tab. Use 0 to unfreeze.
get_spreadsheet_infoGet a spreadsheet's title, tabs (sizes, frozen rows/cols), charts (ids, types, data ranges), named ranges, and the first few rows of each tab. Call this first to understand a sheet's layout.
google_accountsManage the Google accounts Sheets MCP can use. list: show signed-in accounts and the default. add: sign in to a Google account (opens a browser sign-in; also use this when a sign-in has expired). remove: sign an account out and revoke access. set_default: choose the account used for new spreadsheets.
insert_rows_or_columnsInsert blank rows or columns before a given row number or column letter.
manage_tabAdd, delete, rename, or duplicate a tab (sheet).
merge_cellsMerge or unmerge cells in a range.
preview_updatesUsed by the sheet preview to fetch what Claude has read or edited since it last checked. Not for the model.
read_rangeRead cell contents from a range, or its formatting with mode "formats". Large ranges are truncated; use next_range to continue.
read_rangesRead several ranges in one call, across any tabs. Faster than calling read_range repeatedly. Each range is truncated to its share of max_cells; use its next_range with read_range to continue.
recent_sheets_updateUsed by the "Recently worked on" list to pin, unpin or remove a spreadsheet. Not for the model.
resize_columnsSet column widths in pixels, or auto-fit them to content when width is omitted.
set_data_validationAdd data validation to a range: dropdown list, dropdown from a range, checkbox, number range, custom formula - or clear it.
set_filterTurn on a basic filter (filter buttons in the header row) for a range, or clear the tab's filter.
show_rangeShow the user a live view of the sheet right in the conversation, so they can watch you work. Call it FIRST whenever the user asks you to look at or change a spreadsheet, before reading or editing anything. The view stays live: each range you read gets a scanning outline, each edit animates in (Claude's cursor moves there and the cells fill in), and it follows you across tabs, including into other spreadsheets you read for this task. Call it once for each request from the user, not after every step, and again if a tool result says the view is out of the user's sight. If you already started, ca…
show_recent_sheetsShow the user a searchable "Recently worked on" list of every spreadsheet they've used with Sheets MCP, right in the conversation. They can search it, pin sheets, open them in Google Sheets, and tick several to send back to you with a request. Use it when the user asks which sheets they have or to pick from their sheets, wants to combine or compare sheets without saying which, or names a sheet that matches more than one. It can't list the rest of their Google Drive.
sort_rangeSort rows within a range by one or more columns.
start_walkthroughExplain a spreadsheet to the user as a walkthrough played on the sheet itself. Use it instead of show_range whenever your answer is about specific places in a sheet: explaining a sheet or part of one, walking through it, reviewing it, pointing out problems or failing checks, or preparing questions to ask about it (one point per question, at the cells it's about). Call it FIRST, before reading: a view of the sheet opens with a progress bar that moves as you read. Then read what you need (get_spreadsheet_info, read_range…) and call add_walkthrough_point once per point, in order, with `last` on t…
t1write_range
t2write_range
t3format_range
t4format_range
t5add_chart
undo_lastUndo the most recent write_range, append_rows, or clear_range made through this server (restores values/formulas only, not formatting or structure). History is kept in memory until the server restarts.
update_chartChange an existing chart: its title, type, data range, stacking, position or size. Only the options you give are changed. Chart ids come from get_spreadsheet_info or add_chart.
write_rangeWrite values and/or formulas starting at the top-left cell of the range. Input is parsed like typing into the UI (formulas, dates, percentages work). Previous contents are saved for undo_last. Returns any formula errors found after writing.
Signals
- Stars
- 36
- Forks
- 33
- Open issues
- 0
- Last commit
- Oct 22, 2026 (6 days ago)
- Last release
- Oct 22, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.atc07/sheets-mcp- Version
- 1.3.9
- Auth
- No auth
- Packages
- npm @sheetsmcp/server
- License
- MIT
- Repository
- github.com/atc07/sheets-mcp
- Website
- sheetsmcp.io
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
Cite this page
Sheets MCP. Agent Mart. https://agentmart.dev/connectors/atc07-sheets-mcp (last updated 2026-10-25)