MCP Gsheets
MCP server for Google Sheets API — read, write, format, batch operations.
Connector by freema · 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/freema-mcp-gsheets
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
Use cases: spreadsheets
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
- 18 read · 19 write · 7 delete
- Secrets
- 3 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 44
Read from the source code; the running server may list different tools.
Read 18 · Look things up without changing anything.
sheets_batch_format_cellssheets_batch_get_valuessheets_check_accesssheets_compare_rangessheets_format_cellssheets_get_basic_filtersheets_get_border_mapsheets_get_conditional_formattingsheets_get_data_validationsheets_get_formatting_compactsheets_get_full_sheet_snapshotsheets_get_merged_cells
Show 6 more tools
sheets_get_metadatasheets_get_sheet_dimensionssheets_get_sheet_formattingsheets_get_sheet_structuresheets_get_tablessheets_get_values
Write 19 · Create, change, send or run things.
sheets_add_conditional_formattingsheets_add_tablesheets_append_valuessheets_batch_update_valuessheets_copy_tosheets_create_chartsheets_create_spreadsheetsheets_duplicate_sheetsheets_insert_datesheets_insert_linksheets_insert_rowssheets_insert_sheet
Show 7 more tools
sheets_merge_cellssheets_unmerge_cellssheets_update_borderssheets_update_chartsheets_update_sheet_propertiessheets_update_tablesheets_update_values
Delete 7 · Delete, drop, revoke or wipe things.
sheets_batch_delete_sheetssheets_clear_valuessheets_delete_chartsheets_delete_columnssheets_delete_rowssheets_delete_sheetsheets_delete_table
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
GOOGLE_APPLICATION_CREDENTIALSGOOGLE_PRIVATE_KEYGOOGLE_SERVICE_ACCOUNT_KEY
Other settings (environment variables or headers).
GOOGLE_CLIENT_EMAILGOOGLE_PROJECT_ID
Network hosts it talks to 4
docs.google.com· found in codegithub.com· found in codegoogleapis.com· found in codetomasgrasl.cz· found in code
Files it touches
- Your home directory (~)
Tools (44)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
sheets_add_conditional_formattingAdd conditional formatting rules to a Google Sheet
sheets_add_tableCreate a native Google Sheets table with typed columns and optional dropdown values
sheets_append_valuesAppend values to the end of a table in a Google Sheets spreadsheet. IMPORTANT: By default, this will OVERWRITE existing empty cells. To INSERT new rows instead, set insertDataOption to "INSERT_ROWS".
sheets_batch_delete_sheetsDelete multiple sheets from a Google Sheets spreadsheet in a single operation
sheets_batch_format_cellsFormat multiple cell ranges in a Google Sheet in a single operation
sheets_batch_get_valuesGet values from multiple ranges in a Google Sheets spreadsheet
sheets_batch_update_valuesUpdate values in multiple ranges of a Google Sheets spreadsheet
sheets_check_accessCheck access permissions for a spreadsheet. Returns information about what operations are allowed.
sheets_clear_valuesClear values in a specified range of a Google Sheets spreadsheet
sheets_compare_rangesCompare cell formatting between two ranges of identical dimensions. Useful for verifying repeated patterns, e.g. "do all data rows 6–85 have identical formatting?" or "is row 10 formatted identically to the template row 5?". Returns a diff listing only the cells and properties that differ between the two ranges. Cells are compared position-by-position; rangeA and rangeB must have the same number of rows and columns. Use fields to restrict comparison to specific format properties.
sheets_copy_toCopy a sheet to another Google Sheets spreadsheet
sheets_create_chartCreate a chart in a Google Sheets spreadsheet. Sheet names with spaces should be quoted in ranges (e.g., "My Sheet"!A1:B5). Position uses overlayPosition with anchorCell containing sheetId, rowIndex, and columnIndex.
sheets_create_spreadsheetCreate a new Google Sheets spreadsheet
sheets_delete_chartDelete a chart from a Google Sheets spreadsheet
sheets_delete_columnsDelete one or more columns from a Google Sheet using a full-column A1 range
Show 29 more tools
sheets_delete_rowsDelete one or more rows from a Google Sheet using a full-row A1 range
sheets_delete_sheetDelete a sheet from a Google Sheets spreadsheet
sheets_delete_tableDelete a native Google Sheets table by tableId
sheets_duplicate_sheetDuplicate a sheet within a Google Sheets spreadsheet
sheets_format_cellsFormat cells in a Google Sheet (colors, fonts, alignment, number formats)
sheets_get_basic_filterRead the Basic Filter (AutoFilter) configuration for a sheet, including the filtered range, sort specs, and per-column filter criteria (hidden values, conditions, color filters). Returns hasBasicFilter: false if no filter is applied.
sheets_get_border_mapReturns a visual tabular map of borders for a range. Instead of per-cell JSON with 4 separate border objects, returns compact grids showing which cells have top/bottom/left/right borders and their styles. Solves the ambiguity between "right border of cell N" vs "left border of cell N+1". Output: a horizontal-lines grid and a vertical-lines grid, each as a 2D array of line styles. Set includeStyle:true to include color and width details (larger output).
sheets_get_conditional_formattingRead conditional formatting rules and banded ranges (alternating row/column colors) for a sheet. CF formulas are normalized to English locale (semicolons → commas) by default. Each rule with a formula includes a "_formulaLocaleRaw" field with the original unmodified formula. Set normalizeFormulas:false to get raw formulas as returned by the API.
sheets_get_data_validationRead data validation rules (checkboxes, dropdown lists, custom formulas, etc.) from a sheet or range. Returns a compact list of unique validation rules grouped by their cell ranges (run-length encoded). Useful for discovering checkboxes (BOOLEAN), dropdown lists (ONE_OF_LIST / ONE_OF_RANGE), number constraints, and custom formula validations.
sheets_get_formatting_compactReturns cell formatting for a range as compact A1Range→format pairs. Adjacent cells with identical formatting are collapsed into rectangular ranges (run-length encoded). Reduces output by 90%+ compared to per-cell formatting for typical sheets. Use instead of sheets_get_full_sheet_snapshot when you only need formatting data. Supported fields: backgroundColor, backgroundColorStyle, textFormat, horizontalAlignment, verticalAlignment, wrapStrategy, textRotation, numberFormat, padding, borders.
sheets_get_full_sheet_snapshotOne-shot tool: reads all structural and formatting metadata for a sheet in a single API call. Returns: sheet properties (frozen rows/cols, dimensions, tab color), merged cells, column widths, row heights, banded ranges, and optionally cell-level formatting for a specified range (includeFormattingRange). compactMode is OFF by default — full per-cell detail is returned unless compactMode:true is provided. When compactMode is ON, adjacent cells with identical formatting are collapsed into range descriptors (90%+ smaller output). Conditional formatting rules are included by default (includeConditi…
sheets_get_merged_cellsGet all merged cell ranges for a specific sheet. Returns each merge as A1 notation and GridRange coordinates.
sheets_get_metadataGet metadata about a Google Sheets spreadsheet including sheet names, IDs, and properties
sheets_get_sheet_dimensionsGet column widths (pixelSize), row heights (pixelSize), hidden columns/rows, and frozen row/column counts for a sheet.
sheets_get_sheet_formattingRead cell formatting (background color, text color, font family, font size, bold, italic, horizontal/vertical alignment, wrapStrategy, textRotation, numberFormat) for a range. Returns a 2D array matching the requested range rows/columns. Set useEffectiveFormat=true to get the resolved/inherited format instead of the user-entered one.
sheets_get_sheet_structureLightweight tool returning ONLY structural/dimensional metadata for a sheet — no per-cell data. Returns: sheet dimensions, frozen rows/cols, tab color, sheet index, column widths array, row heights array, hidden columns/rows, and all merge ranges in A1 notation. Use this instead of sheets_get_full_sheet_snapshot when per-cell formatting is not needed. Much faster and cheaper — single API call with minimal field mask.
sheets_get_tablesRead native Google Sheets tables for a spreadsheet or a specific sheet
sheets_get_valuesGet values from a specified range in a Google Sheets spreadsheet
sheets_insert_dateInsert properly formatted dates in Google Sheets with locale support and automatic detection
sheets_insert_linkInsert clickable links in Google Sheets cells with custom display text
sheets_insert_rowsInsert new rows at a specific position with optional data
sheets_insert_sheetAdd a new sheet to an existing Google Sheets spreadsheet
sheets_merge_cellsMerge cells in a Google Sheet
sheets_unmerge_cellsUnmerge cells in a Google Sheet
sheets_update_bordersUpdate borders of cells in a Google Sheet
sheets_update_chartUpdate an existing chart in a Google Sheets spreadsheet
sheets_update_sheet_propertiesUpdate properties of a sheet in a Google Sheets spreadsheet
sheets_update_tableUpdate an existing native Google Sheets table by tableId
sheets_update_valuesUpdate values in a specified range of a Google Sheets spreadsheet. Examples: - Fixed range "A1:C3" - must provide exactly 3 rows - Flexible range "A1" - will expand to fit all provided rows - To update rows 42-74 (33 rows), use "A42" not "A42:E53" IMPORTANT: Empty rows in your data array still count as rows!
Signals
- Stars
- 104
- Forks
- 23
- Open issues
- 1
- Last commit
- Oct 2, 2026 (26 days ago)
- Last release
- Oct 25, 2026 (3 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.freema/mcp-gsheets- Version
- 1.11.0
- Auth
- API key
- Packages
- npm mcp-gsheets
- License
- MIT
- Repository
- github.com/freema/mcp-gsheets
- First seen
- Oct 24, 2026
- Last checked
- Oct 26, 2026
More from freema
- 0.637score
MCP Jira Stdio
freema
MCP server for Jira Cloud — issues, search, comments, attachments, transitions.
ConnectorAFreshness: ALocal★ 14Claude Code +5 - 0.628score
Drobek
freema
Open-source vibe coding hosting over MCP: your agent builds, previews and publishes web apps.
ConnectorAFreshness: ARemote★ 4Claude Code +3 - 0.621score
MCP Design System Extractor
freema
MCP server for Storybook design systems — extract component HTML, styles and metadata.
ConnectorBFreshness: BLocal★ 72Claude Code +5 - 0.614score
OpenClaw MCP Server
freema
MCP server bridging Claude.ai/Desktop with self-hosted OpenClaw via OAuth 2.1.
ConnectorAFreshness: ALocal★ 188Claude Code +5
Cite this page
MCP Gsheets. Agent Mart. https://agentmart.dev/connectors/freema-mcp-gsheets (last updated 2026-10-26)