--- asIndexPage: true --- # Google Sheets import ToolInfo from "@/app/_components/tool-info"; import Badges from "@/app/_components/badges"; import TabbedCodeBlock from "@/app/_components/tabbed-code-block"; import TableOfContents from "@/app/_components/table-of-contents"; import ToolFooter from "@/app/_components/tool-footer"; import ScopePicker from "@/app/_components/scope-picker"; import { Callout } from "nextra/components"; The Arcade GoogleSheets MCP Server provides a pre-built set of tools for working with Google Sheets. These tools make it easy to build agents and AI apps that can: - Create new spreadsheets and seed initial data. - Search Google Drive for spreadsheets and retrieve metadata (titles, IDs, URLs; excludes trash). - Read specific ranges from sheets. - Write to single cells or update ranges with flexible data formats. - Add notes to cells. - Get detailed spreadsheet and sheet metadata (names, IDs, positions, row/column counts; metadata only). ## Available Tools If you need to perform an action that's not listed here, you can [get in touch with us](mailto:contact@arcade.dev) to request a new tool, or [create your own tools](/guides/create-tools/tool-basics/build-mcp-server). Each tool requires specific Google OAuth scopes to function. You'll find the required scopes listed in a blue info box at the end of each tool's documentation below. For more information about configuring OAuth and tips for moving to production, see the [Google auth provider documentation](/references/auth-providers/google. The `drive.file` scope only grants access to files that were created or opened by your application. If you need broader access to a user's Google Drive spreadsheets (e.g., to access spreadsheets created by other applications), you'll need to create your own Google OAuth provider and request the `drive.readonly` or `drive` scope. Note that these broader scopes are **not supported** by Arcade's default Google OAuth provider. ## Find required scopes Select the tools you plan to use to see the OAuth scopes your application needs: --- ## GoogleSheets.CreateSpreadsheet
Create a new spreadsheet with the provided title and data in its first sheet **Parameters** - **title** (`string`, optional) The title of the new spreadsheet - **data** (`string`, optional) The data to write to the spreadsheet. A JSON string (property names enclosed in double quotes) representing a dictionary that maps row numbers to dictionaries that map column letters to cell values. For example, data[23]['C'] would be the value of the cell in row 23, column C. Type hint: dict[int, dict[str, Union[int, float, str, bool]]] `https://www.googleapis.com/auth/drive.file` --- ## GoogleSheets.WriteToCell
Write a value to a single cell in a spreadsheet. **Parameters** - **spreadsheet_id** (`string`, required) The id of the spreadsheet to write to - **column** (`string`, required) The column string to write to. For example, 'A', 'F', or 'AZ' - **row** (`integer`, required) The row number to write to - **value** (`string`, required) The value to write to the cell - **sheet_name** (`string`, optional) The name of the sheet to write to. Defaults to 'Sheet1' `https://www.googleapis.com/auth/drive.file` --- ## GoogleSheets.UpdateCells
Write values to a Google Sheet using a flexible data format. **Parameters** - **spreadsheet_id** (`string`, required) The id of the spreadsheet to write to - **data** (`string`, required) The data to write. A JSON string (property names enclosed in double quotes) representing a dictionary that maps row numbers to dictionaries that map column letters to cell values. For example, data[23]['C'] is the value for cell C23. This is the same format accepted by create_spreadsheet. Type hint: dict[int, dict[str, int | float | str | bool]] - **sheet_position** (`integer`, optional) The position/tab of the sheet in the spreadsheet to write to. A value of 1 represents the first (leftmost/Sheet1) sheet. Defaults to 1. - **sheet_id_or_name** (`string`, optional) The id or name of the sheet to write to. If provided, takes precedence over sheet_position. `https://www.googleapis.com/auth/drive.file` --- ## GoogleSheets.AddNoteToCell
Add a note to a specific cell in a spreadsheet. A note is a small **Parameters** - **spreadsheet_id** (`string`, required) The id of the spreadsheet to add a comment to - **column** (`string`, required) The column string to add a note to. For example, 'A', 'F', or 'AZ' - **row** (`integer`, required) The row number to add a note to - **note_text** (`string`, required) The text for the note to add - **sheet_position** (`integer`, optional) The position/tab of the sheet in the spreadsheet to write to. A value of 1 represents the first (leftmost/Sheet1) sheet. Defaults to 1. - **sheet_id_or_name** (`string`, optional) The id or name of the sheet to write to. If provided, takes precedence over sheet_position. `https://www.googleapis.com/auth/drive.file` --- ## GoogleSheets.SearchSpreadsheets
Searches for spreadsheets in the user's Google Drive based on the titles and content and **Parameters** - **spreadsheet_contains** (`array[string]`, optional) Keywords or phrases that must be in the spreadsheet title. Provide a list of keywords or phrases if needed. - **spreadsheet_not_contains** (`array[string]`, optional) Keywords or phrases that must NOT be in the spreadsheet title. Provide a list of keywords or phrases if needed. - **search_only_in_shared_drive_id** (`string`, optional) The ID of the shared drive to restrict the search to. If provided, the search will only return spreadsheets from this drive. Defaults to None, which searches across all drives. - **include_shared_drives** (`boolean`, optional) Whether to include spreadsheets from shared drives. Defaults to False (searches only in the user's 'My Drive'). - **include_organization_domain_spreadsheets** (`boolean`, optional) Whether to include spreadsheets from the organization's domain. This is applicable to admin users who have permissions to view organization-wide spreadsheets in a Google Workspace account. Defaults to False. - **order_by** (`Enum` [OrderBy](/resources/integrations/productivity/google-sheets/reference#orderby), optional) Sort order. Defaults to listing the most recently modified spreadsheets first - **limit** (`integer`, optional) The maximum number of spreadsheets to list. Defaults to 10. Max is 50 - **pagination_token** (`string`, optional) The pagination token to continue a previous request `https://www.googleapis.com/auth/drive.file` --- ## GoogleSheets.WhoAmI
Get comprehensive user profile and Google Sheets environment information. **Parameters** This tool does not take any parameters. - `https://www.googleapis.com/auth/drive.file` - `https://www.googleapis.com/auth/userinfo.profile` - `https://www.googleapis.com/auth/userinfo.email` --- ## GoogleSheets.GenerateGoogleFilePickerUrl
Generate a Google File Picker URL for user-driven file selection and authorization. **Parameters** This tool does not take any parameters. No additional scopes required (uses basic Google authentication). --- ## GoogleSheets.GetSpreadsheet
Gets the specified range of cells from a single sheet in the spreadsheet. **Parameters** - **spreadsheet_id** (`string`, required) The id of the spreadsheet to get - **sheet_position** (`integer`, optional) The position/tab of the sheet in the spreadsheet to get. A value of 1 represents the first (leftmost/Sheet1) sheet . Defaults to 1. - **sheet_id_or_name** (`string`, optional) The id or name of the sheet to get. Defaults to None, which means sheet_position will be used instead. - **start_row** (`integer`, optional) Starting row number (1-indexed, defaults to 1) - **start_col** (`string`, optional) Starting column letter(s) or 1-based column number (defaults to 'A') - **max_rows** (`integer`, optional) Maximum number of rows to fetch for each sheet in the spreadsheet. Must be between 1 and 1000. Defaults to 1000. - **max_cols** (`integer`, optional) Maximum number of columns to fetch for each sheet in the spreadsheet. Must be between 1 and 100. Defaults to 100. `https://www.googleapis.com/auth/drive.file` --- ## GoogleSheets.GetSpreadsheetMetadata
Gets the metadata for a spreadsheet including the metadata for the sheets in the spreadsheet. **Parameters** - **spreadsheet_id** (`string`, required) The id of the spreadsheet to get metadata for `https://www.googleapis.com/auth/drive.file` --- ## Auth The Arcade GoogleSheets MCP Sever uses the [Google auth provider](/references/auth-providers/google to connect to users' GoogleSheets accounts. Please refer to the [Google auth provider](/references/auth-providers/google documentation to learn how to configure auth.