Google Sheets
Arcade.dev LLM tools for Google Sheets.
The Google Sheets toolkit lets LLM agents create, read, search, and edit Google Sheets spreadsheets through Arcade, using Google OAuth for delegated user access.
Capabilities
- Spreadsheet discovery & metadata — search across a user's Drive for spreadsheets by title/content, retrieve full sheet metadata (names, positions, IDs, URLs, dimensions) without loading cell data.
- Reading data — fetch cell ranges from any sheet within a spreadsheet, with flexible sheet targeting by name, ID, or position.
- Writing & editing — create new spreadsheets with initial data, write a single cell value, bulk-update cell ranges with flexible data formats, and attach hover notes to individual cells.
- File access recovery — generate a Google Drive inline file-picker URL so users can grant the app access to specific files when a prior operation fails due to missing permissions, then retry the original tool.
- Identity & permissions inspection — retrieve the authenticated user's profile, email, and Google Sheets access permissions via
WhoAmI.
OAuth
This toolkit uses Google OAuth 2.0 to act on behalf of the authenticated user. See the Arcade Google auth provider docs for scopes, setup, and configuration details.
Secrets
ENABLE_GOOGLE_DRIVE_INLINE_PICKER_URL— An API key that enables theGoogleSheets.GenerateGoogleFilePickerUrltool to render Google's first-party Drive file picker. To obtain it, go to the Google Cloud Console APIs & Services → Credentials page for your project, click Create credentials → API key, and ensure the Google Picker API is enabled for your project under APIs & Services → Library. Restrict the key to the Picker API and to allowed HTTP referrers/origins as appropriate for your deployment. See Google Picker API documentation for full setup details.
Store secrets in Arcade via the Arcade secrets guide or directly at https://api.arcade.dev/dashboard/auth/secrets.
Available tools(9)
| Tool name | Description | Secrets | |
|---|---|---|---|
Add a note to a specific cell in a spreadsheet. A note is a small
piece of text attached to a cell (shown with a black triangle) that
appears when you hover over the cell.
sheet_id_or_name takes precedence over sheet_position. If a sheet is not mentioned,
then always assume the default sheet_position is sufficient. | 1 | ||
Create a new spreadsheet with the provided title and data in its first sheet
Returns the newly created spreadsheet's id and title | |||
Generate a URL where the user can grant this app access to specific Drive files.
Opens Google's first-party Drive picker. The user selects which files 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 tool. | |||
Gets the specified range of cells from a single sheet in the spreadsheet.
sheet_id_or_name takes precedence over sheet_position. If a sheet is not mentioned,
then always assume the default sheet_position is sufficient. | 1 | ||
Gets the metadata for a spreadsheet including the metadata for the sheets in the spreadsheet.
Use this tool to get the name, position, ID, and URL of all sheets in a spreadsheet as well as
the number of rows and columns in each sheet.
Does not return the content/data of the sheets in the spreadsheet - only the metadata.
Excludes spreadsheets that are in the trash. | 1 | ||
Searches 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. | 1 | ||
Write values to a Google Sheet using a flexible data format.
sheet_id_or_name takes precedence over sheet_position. If a sheet is not mentioned,
then always assume the default sheet_position is sufficient. | 1 | ||
Get 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. | |||
Write a value to a single cell in a spreadsheet. | 1 |
Selected tools
No tools selected.
Click "Show all tools" to add tools.
Requirements
Select tools to see requirements
GoogleSheets.AddNoteToCell
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Add a note to a specific cell in a spreadsheet. A note is a small piece of text attached to a cell (shown with a black triangle) that appears when you hover over the cell. sheet_id_or_name takes precedence over sheet_position. If a sheet is not mentioned, then always assume the default sheet_position is sufficient.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
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. |
Requirements
Output
json— The status of the operationGoogleSheets.CreateSpreadsheet
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Create a new spreadsheet with the provided title and data in its first sheet Returns the newly created spreadsheet's id and title
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
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]]] |
Requirements
Output
json— The created spreadsheet's id and titleGoogleSheets.GenerateGoogleFilePickerUrl
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Generate a URL where the user can grant this app access to specific Drive files. Opens Google's first-party Drive picker. The user selects which files 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 tool.
Parameters
No parameters required.
Requirements
Output
json— Google File Picker URL for user file selection and permission grantingGoogleSheets.GetSpreadsheet
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Gets the specified range of cells from a single sheet in the spreadsheet. sheet_id_or_name takes precedence over sheet_position. If a sheet is not mentioned, then always assume the default sheet_position is sufficient.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
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. |
Requirements
Output
json— The spreadsheet properties and data for the specified sheet in the spreadsheetGoogleSheets.GetSpreadsheetMetadata
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Gets the metadata for a spreadsheet including the metadata for the sheets in the spreadsheet. Use this tool to get the name, position, ID, and URL of all sheets in a spreadsheet as well as the number of rows and columns in each sheet. Does not return the content/data of the sheets in the spreadsheet - only the metadata. Excludes spreadsheets that are in the trash.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
spreadsheet_id | string | Required | The id of the spreadsheet to get metadata for |
Requirements
Output
json— The spreadsheet metadata for the specified spreadsheetGoogleSheets.SearchSpreadsheets
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Searches 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.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
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 | array<string> | Optional | Sort order. Defaults to listing the most recently modified spreadsheets first. If spreadsheet_contains or spreadsheet_not_contains is provided, then the order_by will be ignored.createdTimecreatedTime descfolderfolder descmodifiedByMeTimemodifiedByMeTime descmodifiedTimemodifiedTime descnamename descname_naturalname_natural descquotaBytesUsedquotaBytesUsed descrecencyrecency descsharedWithMeTimesharedWithMeTime descstarredstarred descviewedByMeTimeviewedByMeTime desc |
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 |
Requirements
Output
json— A dictionary containing the title, ID, and URL for each matching spreadsheet. Also contains a pagination token if there are more spreadsheets to list.GoogleSheets.UpdateCells
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Write values to a Google Sheet using a flexible data format. sheet_id_or_name takes precedence over sheet_position. If a sheet is not mentioned, then always assume the default sheet_position is sufficient.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
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. |
Requirements
Output
json— The status of the operation, including updated ranges and countsGoogleSheets.WhoAmI
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Get 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.
Parameters
No parameters required.
Requirements
Output
json— Get comprehensive user profile and Google Sheets environment information.GoogleSheets.WriteToCell
Execution hints
Signals for MCP clients and agents about how this tool behaves.
Reads data without modifying any state in the target system.
May permanently delete or overwrite data in the target system.
Repeated calls with the same inputs produce no additional effect.
Communicates with external APIs, databases, or other services.
Write a value to a single cell in a spreadsheet.
Parameters
| Parameter | Type | Req. | Description |
|---|---|---|---|
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' |
Requirements
Output
json— The status of the operation