Prerequisites
- A Google account with Google Sheets and Drive access
- A Google Workspace connection in AgentRuntime (OAuth via the Google account card on Connections)
- project_contributor access in your workspace
Connect in AgentRuntime
Connect Google
On Connections, use the Google account card and complete OAuth. See Google Workspace setup and Connections.
Enable Sheets
On your Google connection, enable the Sheets service so the account exposes Sheets and Drive API scopes.
Add google-sheets MCP instance
Go to MCP, click Add instance for google-sheets. Open Instance config, wire your Google connection, and set the profile active.
What you can build
- Lead intake log — Webhook from a form →
find_spreadsheets→insert_rowwith mapped fields → gmail notify sales when status ishot. - Ops dashboard refresh — Postgres query →
insert_multiple_rowswithinput_type: json→format_rowto highlight overdue rows. - Monthly report export —
get_many_rowsfrom a summary tab →export_sheetas CSV → google-driveupload_fileto an archive folder. - Inventory sync — ERP webhook →
find_rowsby SKU →update_rowif found elseinsert_row→clear_sheeton staging tab after validation.
Tools
Read & search
| Tool | Description |
|---|---|
find_row_by_num | Get a worksheet row by row number. |
find_spreadsheets | Find spreadsheets in Drive by name. |
export_sheet | Export a worksheet as CSV or TSV text. |
find_worksheet | Find worksheets in a spreadsheet by title. |
get_rows | Get a paginated slice of worksheet rows starting from a row number. |
get_many_rows | Get all rows from a worksheet, excluding the header row. |
find_rows | Find worksheet rows where a column matches a value. |
Write & update
| Tool | Description |
|---|---|
insert_multiple_rows | Append multiple rows to a worksheet from column_names, JSON, or CSV input. |
update_row | Update a single worksheet row by row number. |
clear_sheet | Clear worksheet values, with optional header preservation. |
create_column | Insert a worksheet column with a header label at a chosen position. |
update_multiple_rows | Update multiple worksheet rows in one batchUpdate request. |
delete_row | Delete a worksheet row by row number. |
insert_row | Append a single row to a worksheet. |
format_row | Format one or more worksheet rows. |
Spreadsheets & worksheets
| Tool | Description |
|---|---|
delete_worksheet | Delete a worksheet from a spreadsheet. |
copy_worksheet | Copy a worksheet into another spreadsheet. |
create_spreadsheet | Create a blank Google Sheets spreadsheet, optionally inside a Drive folder. |
create_worksheet | Create a worksheet tab in an existing spreadsheet, with optional header values. |
rename_worksheet | Rename a worksheet in a spreadsheet. |
Example
Append a new lead row after a webhook submission:Troubleshooting
| Issue | Fix |
|---|---|
| Reconnect prompt on Google connection | Re-authorize OAuth; Sheets and Drive scopes may have been revoked |
find_rows returns no matches | Check column_name matches the header row exactly; try exact_match: false |
| Wrong data shape in output | Set use_header_names: true and confirm header_row points to your labels |
sheet_id confusion | Use find_worksheet to resolve the numeric tab ID — it differs from the tab title |