Google Sheets Tools¶
URL Support
All Google Sheets tools accept either the spreadsheet ID or the full URL, including URLs with query strings and fragments like:
get_spreadsheet_metadata¶
Get metadata about a Google Sheets spreadsheet.
Input¶
| Parameter | Type | Required | Description |
|---|---|---|---|
spreadsheet_id |
string | Yes | The ID or URL of the Google Sheets spreadsheet |
Output¶
| Field | Type | Description |
|---|---|---|
spreadsheet_id |
string | Spreadsheet ID |
title |
string | Spreadsheet title |
locale |
string | Spreadsheet locale |
time_zone |
string | Spreadsheet time zone |
sheet_count |
integer | Number of sheets |
url |
string | Spreadsheet URL |
Example¶
{
"name": "get_spreadsheet_metadata",
"arguments": {
"spreadsheet_id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"
}
}
list_sheets¶
List all sheets in a spreadsheet with their properties.
Input¶
| Parameter | Type | Required | Description |
|---|---|---|---|
spreadsheet_id |
string | Yes | The ID or URL of the Google Sheets spreadsheet |
Output¶
| Field | Type | Description |
|---|---|---|
spreadsheet_id |
string | Spreadsheet ID |
title |
string | Spreadsheet title |
sheets |
array | Array of sheet information |
sheets[].index |
integer | Zero-based sheet index |
sheets[].sheet_id |
integer | Sheet GID |
sheets[].title |
string | Sheet name |
sheets[].sheet_type |
string | Sheet type (GRID, CHART, etc.) |
sheets[].hidden |
boolean | Whether the sheet is hidden |
sheets[].row_count |
integer | Number of rows |
sheets[].column_count |
integer | Number of columns |
sheets[].frozen_row_count |
integer | Number of frozen rows (if any) |
sheets[].frozen_column_count |
integer | Number of frozen columns (if any) |
Example¶
{
"name": "list_sheets",
"arguments": {
"spreadsheet_id": "https://docs.google.com/spreadsheets/d/abc123/edit"
}
}
get_sheet_values¶
Get cell values from a specific range.
Input¶
| Parameter | Type | Required | Description |
|---|---|---|---|
spreadsheet_id |
string | Yes | The ID or URL of the Google Sheets spreadsheet |
range |
string | Yes | A1 notation range (e.g., 'Sheet1!A1:D10', 'A:D', 'A1:D10') |
sheet_index |
integer | No | Zero-based sheet index. Used when range doesn't include sheet name. |
sheet_name |
string | No | Sheet name. Used when range doesn't include sheet name. Mutually exclusive with sheet_index. |
value_format |
string | No | Output format: 'formatted' (default), 'typed', 'raw' |
Output¶
| Field | Type | Description |
|---|---|---|
spreadsheet_id |
string | Spreadsheet ID |
range |
string | Resolved range with sheet name |
values |
array | 2D array of cell values (format depends on value_format) |
Value Formats¶
formatted (default): Display values as strings
typed: Values with type information
{
"values": [
[
{"type": "string", "formatted_value": "Name"},
{"type": "string", "formatted_value": "Date"},
{"type": "string", "formatted_value": "Amount"}
],
[
{"type": "string", "formatted_value": "Alice"},
{"type": "number", "formatted_value": "45306", "number_value": 45306},
{"type": "number", "formatted_value": "1234.56", "number_value": 1234.56}
]
]
}
raw: Underlying values as strings
Example¶
{
"name": "get_sheet_values",
"arguments": {
"spreadsheet_id": "abc123",
"range": "Sheet1!A1:D10",
"value_format": "typed"
}
}
get_sheet_data¶
Get all data from a specific sheet.
Input¶
| Parameter | Type | Required | Description |
|---|---|---|---|
spreadsheet_id |
string | Yes | The ID or URL of the Google Sheets spreadsheet |
sheet_index |
integer | No | Zero-based sheet index (default: 0) |
sheet_name |
string | No | Sheet name. Mutually exclusive with sheet_index and sheet_gid. |
sheet_gid |
integer | No | Sheet GID (from URL). Mutually exclusive with sheet_index and sheet_name. |
value_format |
string | No | Output format: 'formatted' (default), 'typed', 'raw' |
include_metadata |
boolean | No | Include sheet metadata (default: false) |
Output¶
| Field | Type | Description |
|---|---|---|
spreadsheet_id |
string | Spreadsheet ID |
sheet_name |
string | Sheet name |
range |
string | Data range |
values |
array | 2D array of cell values |
metadata |
object | Sheet metadata (if requested) |
metadata.sheet_id |
integer | Sheet GID |
metadata.index |
integer | Zero-based sheet index |
metadata.row_count |
integer | Total row count |
metadata.column_count |
integer | Total column count |
metadata.frozen_row_count |
integer | Frozen rows (if any) |
metadata.frozen_column_count |
integer | Frozen columns (if any) |
Example¶
{
"name": "get_sheet_data",
"arguments": {
"spreadsheet_id": "abc123",
"sheet_name": "Data",
"include_metadata": true
}
}
Best for AI Analysis
Use this tool with include_metadata: true to get complete sheet data in one call, ideal for AI analysis of spreadsheet content.
get_multiple_ranges¶
Get cell values from multiple ranges in a single request.
Input¶
| Parameter | Type | Required | Description |
|---|---|---|---|
spreadsheet_id |
string | Yes | The ID or URL of the Google Sheets spreadsheet |
ranges |
array | Yes | Array of A1 notation ranges |
value_format |
string | No | Output format: 'formatted' (default), 'typed', 'raw' |
Output¶
| Field | Type | Description |
|---|---|---|
spreadsheet_id |
string | Spreadsheet ID |
ranges |
array | Array of range results |
ranges[].range |
string | Resolved range |
ranges[].values |
array | 2D array of cell values |
Example¶
{
"name": "get_multiple_ranges",
"arguments": {
"spreadsheet_id": "abc123",
"ranges": ["Sheet1!A1:D10", "Sheet2!A1:B5", "Summary!A:A"],
"value_format": "formatted"
}
}
Efficient Batch Retrieval
Use this tool when you need data from multiple ranges to minimize API calls and improve performance.