Google Sheets

Google Sheets

Unclaimed verified 28 oct 2026
[  score · 33  ]
Pricing: Free Last verified: 2026-10-28
Visit Website
Updated

TL;DR

Google Sheets is a cloud-native spreadsheet platform designed for real-time collaboration and seamless integration within a web-based ecosystem. It is primarily used by teams and individuals for data tracking, light analysis, and task automation. Its key differentiator is its effortless multi-user co-editing experience and serverless automation via Google Apps Script.

What Users Actually Pay

No user-reported pricing yet.

Our Take

Google Sheets occupies a dominant position in the market as the go-to collaborative alternative to Microsoft Excel. While it lacks the sheer computational power and advanced financial modeling features of its desktop rival, it excels in accessibility and 'living document' scenarios where multiple stakeholders must contribute simultaneously. Its cloud-first architecture removes the friction of version control and file sharing, making it the standard for startups and remote teams. However, performance degradation is a significant hurdle for power users dealing with datasets exceeding several million cells. The platform is best suited for organizations that value agility and integration over raw data processing capacity. Its recent focus on AI-driven data insights and simplified automation continues to lower the barrier for non-technical users to build sophisticated tools.

Alternatives

Ranked by Revuo score — paid tiers never affect order.

Pros

  • + Industry-leading real-time collaboration with precise version history.
  • + Free for personal use with a generous free tier for businesses.
  • + Powerful serverless automation through Google Apps Script.
  • + Extensive ecosystem of third-party add-ons and native integrations.
  • + Accessible from any device with a web browser and an internet connection.

Cons

  • - Significant performance lag when processing large datasets or complex calculations.
  • - Limited advanced charting and pivot table customization compared to Excel.
  • - Offline functionality can be inconsistent and requires specific browser configurations.
  • - Data privacy concerns for highly sensitive information stored in the cloud.

Agent Readiness

84/100

Google Sheets is highly agent-ready, offering a robust REST API with extensive documentation and support for various authentication models including service accounts. Its integration with automation platforms like n8n and Make, combined with the ability to trigger webhooks via Apps Script, makes it an ideal central repository or 'brain' for autonomous AI agents.

API Surface100
Public APIRESTFree TieropenApi
Protocol Support55
MCP (62 tools)
SDK Availability70
npm: public-google-sheets-parsernpm: component-google-sheetsnpm: use-google-sheetsnpm: mcp-google-sheetsnpm: google-sheets-mappernpm: google-sheets-mcpnpm: node-red-contrib-google-sheetsnpm: @d-zero/google-sheetspypi: google-sheets-sdk
Integration Ecosystem100
ZapierMaken8nWebhooksPipedreamSheetDBAppSheet
Developer Experience100
Docs: excellentSandboxVersioningChangelogStatus Page

Last checked Jul 14, 2026

MCP Integrations

7 servers64 tools59,462 total uses
Google Sheets
Google Sheetsgooglesheets
smitheryVerifiedRemoteHigh match

Search and inspect Google Sheets, create and edit spreadsheets, scan for data issues, review edit history, and manage comments.

56,138 uses
13 tools
  • Arcade_ListAppsSee the apps the current caller can act on and whether they are connected. Returns each app's id, name, connected state, and (when connected) the account it is connected as. Call this to answer "what apps do I have?" or when the caller's connection state may have changed since the session started.
  • GoogleSheets_CheckSpreadsheetAccessCheck whether this app can already read each of several spreadsheets, in one batched pre-flight call, before attempting to read them. Use this when the user references multiple spreadsheets so any that are not yet accessible can be granted together in a single picker step, instead of hitting a separate access error and grant prompt for each one. Each input may be a bare file id or a full Google Sheets/Drive URL. Returns ``spreadsheets`` (a per-id list with ``accessible``, the ``title`` and ``mime_type`` when the file was read, and a ``reason`` when not usable), ``all_accessible`` (true only when every id is an already-accessible spreadsheet), ``connected_account_email`` (the connected Google account, empty when unknown), and a ``grant`` block. ``grant`` is empty when nothing needs granting; otherwise it lists the ungranted ids (``ungranted_ids``) plus, when the inline picker is enabled, a single picker URL covering them all. A ``reason`` of ``not_accessible_or_not_found`` is either a file not granted to this app yet or one that does not exist (indistinguishable here) — the picker resolves the former. ``not_a_spreadsheet`` is an accessible file of another type (a Doc, PDF, image, or Excel/CSV file); granting cannot change a type, so for an Excel/CSV file ask the user to open it in Google Sheets and use File, Save as Google Sheets, then share the converted file. ``invalid_reference`` is an input that is not a Drive id or link at all; ask the user to re-check it.
  • GoogleSheets_CommentOnSpreadsheetCreate a comment on a spreadsheet, edit a comment's body, or resolve/reopen it. Comments are created at the file level: the Drive API cannot anchor a NEW Sheets comment to a specific cell or range. Cell/range-anchored comments made in the Sheets UI are still readable via list_spreadsheet_comments (which returns their anchor). Editing a comment's body is allowed only for the comment's author.
  • GoogleSheets_CreateOrEditSpreadsheetCreate a new spreadsheet or batch-edit an existing one. Omit `spreadsheet_id` to create; provide it to edit. All writes flow through `requests[]` — typed operations like updateCells, addSheet, sortRange, addConditionalFormatRule, autoResizeDimensions, and more. For updateCells use ExtendedValue with an explicit type field (stringValue, numberValue, boolValue, formulaValue). By default, build clean, professional-looking tables with restrained, consistent formatting and plain-text tab names/headers (no emojis); only use emojis or decorative styling when the user explicitly asks for it.
  • GoogleSheets_DeleteCommentDelete a comment from a spreadsheet. Only the comment's author can delete it (enforced by Google Drive); deleting marks the whole thread (the comment and its replies) as deleted.
  • GoogleSheets_GenerateGoogleFilePickerUrlGenerate a URL where the user can grant this app access to spreadsheets. Opens Google's first-party Drive picker, filtered to Google Sheets, where the user browses and selects which spreadsheets to share with this application — it is not a sign-in or credential prompt. Use this when a prior tool reported that a file was not found or access was denied, and the user expects the file to exist. After the user completes the picker flow, retry the prior operation.
  • GoogleSheets_GetSpreadsheetEditHistoryReport who edited a spreadsheet and when, from Google Drive revisions. Reports the "who" and "when" only — not which cells changed, and it can't revert. 'summary' (default) answers "who last edited this and when" (read from the file's head, so always accurate), plus per-window aggregates (revisions read, contributors, first edit) and a preview of recent edits — computed over a bounded window of history per call. These aggregates describe the whole history only when `is_incomplete` is false; it is true when the scan was resumed from a token and/or more history remains. To answer "when was this first edited?" or "who contributed?" reliably, call from the beginning (no `pagination_token`) and check `is_incomplete` is false. `pagination_token` is returned when more pages remain so you can resume. 'list' returns one page of individual revisions, oldest first. Drive can't sort newest-first, so the most recent individual revisions are on the final page.
  • GoogleSheets_InspectSpreadsheetInspect a Google Sheets spreadsheet's structure or read a range of cells. Use the default 'structure' mode to understand a workbook cheaply before reading. Switch to 'read' mode to pull a range as a grid of rows, optionally with per-cell annotations and a rendered markdown/csv/tsv export. In 'read' mode the response's per-tab 'sheets' block reports only tab identity and the allocated grid; its scan-derived fields (used_range, populated_cell_count, formula_cell_count, first_row, table_regions) are placeholders (0/empty) because read mode does not scan the tab — they do NOT mean the tab is empty or that it has no tables. The data you read is in the top-level 'range' and 'rows'. Call 'structure' mode for those aggregates and for the workbook's charts, merges, protected ranges, and conditional formats. Workflow for a tab that holds multiple tables, or a table that does not start at A1: call 'structure' first and use that tab's estimated 'table_regions' to choose the a1_range to read or filter, so you target one table instead of a glued multi-table range. Always check the response's top-level 'warnings' list: read mode reports there when a result was capped or trimmed (cell budget, the per-cell annotation cap, or an empty filter scan) and tells you how to recover (page 'next_range', narrow 'a1_range', 'select_columns', or request fewer annotation kinds).
  • GoogleSheets_ListSpreadsheetCommentsList a spreadsheet's comment threads, or the full replies of a single comment. In 'comments' mode each comment includes up to a few trimmed reply previews plus the total reply_count; use 'thread' mode for a comment's complete reply list. Without filters/ordering, pagination walks every comment. Client-side filters (has_replies, resolved) and order_by are applied only within a bounded scan of the first 500 comments, so on larger sheets drop them and page through everything with the native (unbounded) pagination. Each comment's Drive anchor is returned when it was cell/range-anchored in the Sheets UI; comments created via the API are file-level. Filtering, ordering, and offset pagination are best-effort: results can drift if comments are added or removed between paginated calls.
  • GoogleSheets_ReplyToCommentAdd a reply to an existing comment on a spreadsheet. To resolve or reopen the comment instead, use comment_on_spreadsheet with a status.
  • GoogleSheets_ScanForDataIssuesDeterministically flag 'weird'/bad cells in spreadsheet data. No LLM judgement: the same input always returns the same flags. Each cell-level finding carries a coord, a 0-based row_index/column_index (ready for a Sheets GridRange), the rule, a severity (high -> red, medium/low -> yellow), and a note-ready reason — so the output drops straight into an annotate/format recipe. In the default `mode='grouped'` these are aggregated per rule+column within each table into `groups` (with A1 `coords`); use `mode='list'` to get every flagged cell in `flags` with its 0-based indices. Provide `spreadsheet_id` to scan a live sheet (scan one tab via sheet_id/sheet_title, or every tab when both are omitted). Set `orientation='rows'` for transposed tables whose fields run down a column instead of across a row. Findings come back as flags (cell-level, high certainty) and alerts (table-level, lower certainty), grouped sheet -> table -> rule. In all-sheets mode an unreadable tab never aborts the scan: its title is collected in `failed_sheets` (and echoed as a `warnings` entry) while every other tab still returns. `failed_sheets` is empty for a single-tab scan and whenever every tab reads cleanly.
  • GoogleSheets_SearchSpreadsheetsSearches for spreadsheets in the user's Google Drive based on the titles and content and returns the title, ID, and URL for each matching spreadsheet. Does not return the content/data of the sheets in the spreadsheets - only the metadata. Excludes spreadsheets that are in the trash.
  • GoogleSheets_WhoAmIGet comprehensive user profile and Google Sheets environment information. This tool provides detailed information about the authenticated user including their name, email, profile picture, Google Sheets access permissions, and other important profile details from Google services.
Google Patents
Google Patentsgoogle/patents
smitheryRemoteHigh match

Search patents and prior art via Google Patents. No API key required. Data via SerpAPI; Smithery is not affiliated with Google.

1,239 uses
1 tool
  • search_patentsSearch patents and prior-art literature via Google Patents.
Google Scholar
Google Scholargoogle/scholar
smitheryRemoteHigh match

Search academic papers, citations, and case law from Google Scholar. No API key required. Data via SerpAPI; Smithery is not affiliated with Google.

954 uses
1 tool
  • search_papersSearch Google Scholar for academic papers, books, theses, and citations. Returns organic results with title, authors, snippet, citation count, and PDF links.
Google Local
Google Localgoogle/local
smitheryRemoteHigh match

Search local businesses and services via Google. No API key required. Data via SerpAPI; Smithery is not affiliated with Google.

729 uses
Google Lens
Google Lensgoogle/lens
smitheryRemoteHigh match

Identify objects, products, and content in any image via Google Lens. No API key required. Data via SerpAPI; Smithery is not affiliated with Google.

387 uses
Unbrowse for Google (unofficial)
Unbrowse for Google (unofficial)unbrowse/google
smitheryRemoteHigh match

google.com as MCP tools: Google News search (RSS). Compiled by Unbrowse from the site's own requests; verified results, no browser. Not affiliated with google.com.

26 tools
  • google_com__get_travel_flightsGoogle Flights SIN-BKK fare compare. Compiled from google.com's own requests and shared by an Unbrowse user. No inputs. Returns the page's title, readable text and links. Read-only on google.com.
  • google_com__get_complete_sSearch Google results. Compiled from google.com's own requests and indexed by Unbrowse. Inputs: q; gs_pcrt. Returns text. Read-only on google.com.
  • google_com__get_preview_placeOpen a place page on Google Maps. Compiled from google.com's own requests and indexed by Unbrowse. No inputs. Returns text. Read-only on google.com.
  • google_com__render_pageGet directions on Google Maps. Compiled from google.com's own requests and indexed by Unbrowse. Inputs: origin. Returns the page's title, readable text and links. Read-only on google.com.
  • google_com__get_sSearch places on Google Maps. Compiled from google.com's own requests and indexed by Unbrowse. Inputs: query. Returns text. Read-only on google.com.
  • news_google_com__get_rss_searchGoogle News search (RSS). Compiled from news.google.com's own requests and shared by an Unbrowse user. Inputs: query. Returns text. Read-only on news.google.com.
  • business_google_com__get_resources_searchRead resources search on business.google.com on Think with Google - Marketing Research, Insights, and Trends (business.google.com). Use for requests like “search business.google.com for article”; “search business.google.com for description”; “search business.google.com for description — Search thinkwithgoogle.com for description”. Learned from 2 browser traces; chains get_resources_search. Inputs: query e.g. "article". Returns resources, nextPageToken. Read-only on business.google.com.
  • google_com__read_pageRead any page on google.com — a path such as /news/2026/some-story, or a full google.com URL — and get its title, readable text and links. One first-party HTTP request, no browser. Follow a returned link by passing its href back as the path. Inputs: path e.g. "/". Returns the page's title, readable text and links. Read-only on google.com.
  • unbrowse.runStart a durable Unbrowse run by capability id or natural-language task. For a learned capability, pass `input` keyed by the inputs unbrowse.discover lists (e.g. {origin, destination, date, passenger}); anything missing is asked for on the same run. Fails with no_capability when nothing fits. result.next.tool is unbrowse.index (POST /api/v1/index). unbrowse.browse.open is only for a session whose tool list includes it. It is not a REST route, and the CLI does not open a browser.
  • unbrowse.inspectInspect a run: status, requirements, verified result, known effects, routing explanation.
  • unbrowse.resumeAnswer the run's open requirements and continue the same run. Simplest: {runId, answers: {<affectedAction>: value}} — e.g. {"origin": "CDG"} or, for a choice, {"selected_offer": <an option's value>}. Answer several at once.
  • unbrowse.cancelCancel a run. Returns a receipt of dispatched, uncertain and unstarted effects.
  • unbrowse.browse.openOpen a cloud browser (patchright) on a URL when no capability fits yet. Recording is on from the first navigation, so doing the task here fulfils it now and teaches Unbrowse the site. Returns a snapshot of interactive elements with @refs.
  • unbrowse.browse.snapshotCurrent page text and interactive elements with @refs. Refs change after every action; always act on the latest snapshot.
  • unbrowse.browse.actclick | fill | select | check | press | wait on a @ref, or autofill. For fill, pass `name` as the business field (origin, date, email…) so the learned API gets readable inputs. For logins never ask the user for a password: `autofill` fills the page's login form (username or email, password, 2FA code) from the user's Unbrowse password manager, or fill one @ref with `vault: "username" | "email" | "password" | "totp"`. The values go straight into the page and never pass through you. If no login is saved for the site, the error carries a link: give it to the user, wait with unbrowse.credentials.status, then repeat the action.
  • unbrowse.credentials.listThe user's saved logins (Unbrowse password manager): site, label, masked username/email hints and which fields are saved. Never values — logins are filled into pages with unbrowse.browse.act (autofill, or vault on a field) and used by learned capabilities automatically.
  • unbrowse.credentials.requestAsk the user to save a login you need, without seeing it: returns a one-time link to give them. They open it, sign in to Unbrowse and save the username/email, password and optional 2FA seed. Then call unbrowse.credentials.status.
  • unbrowse.credentials.statusWhether the user has saved the login for a request (pending, fulfilled, declined, expired). Waits up to `waitSeconds` (default 20, max 50) for it to change.
  • unbrowse.browse.finishEnd the session. Returns the page the task ended on and compiles every recorded session for this site into a learned.* capability you can call with unbrowse.run next time — no browser.
  • unbrowse.browse.closeEnd a browser session. It is still indexed (passive learning) unless discard is true.
  • unbrowse.scrapeRead one page as clean markdown (main content only by default — no navigation, cookie banners or footers), with its links and metadata (title, description, canonical, language, status). Plain HTTP when the server's HTML has the content; otherwise Unbrowse's cloud browser renders it, signed in when a session is kept for the site. Use it to read a page you have a URL for; use unbrowse.run for a task on a site. One verified call.
  • unbrowse.mapList a site's URLs: the sitemaps its robots.txt names (or /sitemap.xml, following one level of sitemap indexes), then the links on the given page. Same-site only. Filter with search. Use it to find the right page before scraping it. One verified call.
  • unbrowse.sitesWhat Unbrowse knows about each website this workspace has touched, before you act: access (public, or only behind a sign-in), the kept signed-in session (active, expired, logged_out or none — and when), the last sign-in, whether a login is saved, the tools already learned there and public tools, and any bot check that blocked it. Check it first: an active session means no sign-in is needed; a learned tool means no browsing is needed. Pass a site for one, or nothing for all.
  • unbrowse.indexIndex a website on purpose: Unbrowse's own agent opens the site in a cloud browser, performs its core read-only capabilities (search, listings, item pages, filters…), compiles each into a tool and proves it with a browserless replay. Runs in the background (minutes); returns a jobId for unbrowse.index.status. The tools land in your tool list (and, when shared, in the public registry). Use it before a user needs a site, so their first call is instant. Never signs in or changes anything on the site.
  • unbrowse.index.statusAn index job's progress: queued, running, done or failed, the steps taken and every tool indexed (inputs, whether it runs without a browser, verified, public id). Waits up to `waitSeconds` (default 20, max 50) for it to finish. Without a jobId, lists your recent jobs.
  • unbrowse.discoverSearch the caller's private space (connected public and passworded sites as flat primitives) and the public registry (second priority, connect-on-the-fly). Each capability carries `hints.health` (healthy, degraded, untested, failing, ...) from its recent runs. Public tools that are failing are left out unless the query names their site; `withheld.count` says how many, and for those sites unbrowse.browse.open learns a fresh route.
Google Sheets
Google Sheetsnode2flow/google-sheets
smitheryRemote

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_SE

15 uses
23 tools
  • 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.

Last checked Oct 27, 2026

Reviews

0 reviews
Write a Review

No reviews yet. Be the first to review Google Sheets!