ClawLink

How to connect Google Sheets to Hermes Agent

Connect Google Sheets to Hermes Agent with no Google Cloud project, no OAuth client, and no credentials JSON. Hosted OAuth, 40 Sheets tools, and fixes for the Sheets API errors agents actually hit.

Get started for free
Hermes Agent
Hermes Agent
ClawLink
ClawLink
Google Sheets
Google Sheets
Google SheetsOAUTH2MCP

Read and write spreadsheet data. Once connected, Hermes Agent can read and act on Google Sheets from chat — pairing, token refresh, and tool wiring handled for you.

40 tools

Most guides for giving Hermes Agent Google Sheets access start with registering your own OAuth app or pasting API keys into env files, then leave the token refresh and tool wiring to you. ClawLink gives Hermes a more practical Google Sheets setup: pair once in the browser and your always-on Hermes agent can act on Google Sheets for you, reading and doing real work on your behalf with no auth, token refresh, or tool wiring to build yourself.

Copy this prompt into Hermes to install the plugin and pair your account.

Prompt for Hermes
Set up ClawLink for Hermes and tell me when it's ready.

1. Install the plugin:
hermes plugins install ClawLink-HQ/hermes-plugin --enable

2. Start pairing. It prints an approval link, so show me the link and stop, don't wait:
hermes clawlink begin

3. I'll approve it in my browser, then reply "approved".

4. When I say approved, finish setup:
hermes clawlink finish

5. Then run `hermes clawlink test` and tell me whether ClawLink is ready.

Setup

It takes three steps to connect Hermes to Google Sheets.

  1. 1

    Install and pair

    Install the ClawLink plugin, then pair Hermes with a one-time browser approval:

    hermes plugins install ClawLink-HQ/hermes-plugin --enable
  2. 2

    Connect Google Sheets

    One-click OAuth in the dashboard.

  3. 3

    Use it from chat

    Ask Hermes Agent: "What can you do with Google Sheets?"

Install by command

The prompt above walks Hermes through this. By hand, it is four commands and a browser approval:

hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin    # prints an approval link — open it and approve
hermes clawlink finish   # after approving in the browser
hermes clawlink test

Then connect Google Sheets in the ClawLink dashboard — a one-click OAuth approval, no API keys.

Verify the connection by asking Hermes:

Find the spreadsheet named Q3 budget in my Google Sheets, list its sheet names, then read the first 50 rows of the main sheet and summarize what is in it.

Using a different agent?

The Hermes plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:

npx -y @useclawlink/cli login

login opens the same browser approval and stores a credential locally. Once Google Sheets is connected in the dashboard, that agent calls the same 40 Google Sheets tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.

Google Sheets MCP for Hermes

Looking for a Google Sheets MCP server for Hermes Agent? ClawLink connects Google Sheets to Hermes Agent and exposes 40 Google Sheets tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using OpenClaw instead? The OpenClaw Google Sheets integration runs on the same hosted Google provider and the same 40 tools; OpenClaw installs ClawLink through a ClawHub skill instead of the Hermes pairing commands.

Asked how to do this, the current answers hand Hermes users a Google Cloud shopping list: a project, the Sheets and Drive APIs enabled by hand, a Desktop-type OAuth client, a client-secret JSON downloaded to the machine running Hermes. ClawLink's route has none of those parts. Pair Hermes once, click Connect next to Google Sheets in the dashboard, approve the two permissions on Google's own consent screen, and the 40 tools below answer from your next message. No service account exists in this flow, so no sheet ever needs sharing with a robot email.

What the Hermes Agent Google Sheets integration can do

40 Google Sheets tools are ready for Hermes Agent once the account is connected. The 30 below are the ones people reach for most; your agent can call all 40.

30 of 40 Google Sheets tools for Hermes

ToolWhat it does
Add sheet googlesheets_add_sheetAdd a new sheet to a spreadsheet
Aggregate column data googlesheets_aggregate_column_dataAggregate column data by matching and computing
Batch get googlesheets_batch_getRetrieve data from multiple cell ranges
Clear values googlesheets_clear_valuesClear cell content from a range
Create chart googlesheets_create_chartCreate a chart in a Google Sheet
Create google sheet1 googlesheets_create_google_sheet1Create a new Google Spreadsheet
Create spreadsheet column googlesheets_create_spreadsheet_columnCreate a new column in a Google Sheet
Create spreadsheet row googlesheets_create_spreadsheet_rowInsert a new row into a Google Sheet
Find replace googlesheets_find_replaceFind and replace text across cells
Format cell googlesheets_format_cellApply text and background formatting to cells
Get data validation rules googlesheets_get_data_validation_rulesGet data validation rules from a spreadsheet
Get sheet names googlesheets_get_sheet_namesList all worksheet names in a spreadsheet
Get spreadsheet info googlesheets_get_spreadsheet_infoGet metadata for a Google Spreadsheet
Lookup spreadsheet row googlesheets_lookup_spreadsheet_rowFind a row by exact cell content match
Search spreadsheets googlesheets_search_spreadsheetsSearch for Google Spreadsheets by name or content
Set data validation rule googlesheets_set_data_validation_ruleSet data validation rules or dropdowns on a range
Spreadsheets sheets copy to googlesheets_spreadsheets_sheets_copy_toCopy a sheet to another spreadsheet
Spreadsheets values append googlesheets_spreadsheets_values_appendAppend values to the end of a Google Sheet
Spreadsheets values batch clear googlesheets_spreadsheets_values_batch_clearClear values from multiple ranges at once
Update sheet properties googlesheets_update_sheet_propertiesUpdate sheet tab properties like name or color
Update spreadsheet properties googlesheets_update_spreadsheet_propertiesUpdate spreadsheet-level properties like title or locale
Update values batch googlesheets_update_values_batchUpdate values in multiple ranges at once
Upsert rows googlesheets_upsert_rowsUpsert rows by key column, appending or updating
Values get googlesheets_values_getRead values from a range in a Google Sheet
Values update googlesheets_values_updateUpdate values in a range of a Google Sheet
Get conditional format rules googlesheets_get_conditional_format_rulesList conditional formatting rules for each sheet (or a selected sheet) in a normalized
Get spreadsheet by data filter googlesheets_get_spreadsheet_by_data_filterReturns the spreadsheet at the given ID, filtered by the specified data filters
Search developer metadata googlesheets_search_developer_metadataSearch for developer metadata in a spreadsheet
Spreadsheets values batch get by data filter googlesheets_spreadsheets_values_batch_get_by_data_filterReturn one or more ranges of values from a spreadsheet that match the specified data filters
Append dimension googlesheets_append_dimensionAppend new rows or columns to a sheet, increasing its size

Try it: find the Google Sheets tool you need

Browse the 30 Google Sheets tools

Click any tool to see exactly what Hermes can do and copy a ready-to-use prompt.

Example prompts

Find the spreadsheet named Q3 budget in my Google Sheets, list its sheet names, then read the first 50 rows of the main sheet and summarize what is in it.

Append these rows to the end of the Expenses sheet in that spreadsheet, using USER_ENTERED so the dates and amounts arrive as typed values rather than text.

Every value in column A of my Tracker sheet is a project name. Read the sheet, group the rows by status, and give me a short digest of what moved this week.

If a Sheets call fails saying spreadsheet_id is required, search my spreadsheets by name first and retry the same call with the real id from the search results instead of asking me.

What the Google Sheets tools actually expect

The argument rules behind most of the Sheets failures we log, from the live schemas and our own error rows.

  • Tools take the spreadsheet ID, never the name. It is the long string between /d/ and /edit in the sheet's URL, and the missing id is the most common real Sheets failure in ClawLink logs. Paste the URL into chat or have the agent call googlesheets_search_spreadsheets first.
  • The id argument's casing changes between tools. values_get, values_update and batch_get take spreadsheet_id; spreadsheets_values_append and update_sheet_properties take spreadsheetId. An agent reusing arguments across calls sees arguments.spreadsheetId is required with no hint that only the casing moved.
  • value_input_option is required on writes: USER_ENTERED parses like typing (dates, numbers, live formulas), RAW stores exact strings. 107 logged calls failed just by omitting it. Appends additionally take insertDataOption, either OVERWRITE or INSERT_ROWS.
  • Ranges are A1 notation with the exact sheet title in front, single-quoted when it contains spaces ('Monthly budget'!A1:C10). Wrong titles fail with the literal Invalid sheet identifier or cell reference provided.; googlesheets_get_sheet_names returns the real ones.
  • values is an array of arrays, one inner array per row. Flat arrays fail validation before the request reaches Google.
  • The read tool is googlesheets_values_get, and invented names like googlesheets_get_values fail with a not-found error that lists the closest real tools; the suggestion is almost always right.
  • googlesheets_search_spreadsheets is a Drive API call with Drive query syntax (name contains 'budget', fullText contains 'sales'), and it is the first tool to break if the Drive permission was unticked on the consent screen.
  • Google's documented Sheets read quota is 60 requests per minute per user. Per-cell loops hit 429 (Too many requests. Try again shortly.); googlesheets_batch_get and googlesheets_update_values_batch do the same work in one call. Wait and retry on a 429; do not reconnect.

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Google Sheets working from chat.

ManualClawLink
Connection flowRegister a Google Sheets app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift.Users connect Google Sheets through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code.
Ongoing maintenanceYou own refresh logic, permission debugging, environment config, and every provider-specific edge case for Google Sheets.ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure.
Agent usabilityYou still need to expose the right Google Sheets actions to the runtime in a format your agent can reliably use.40 tools for Google Sheets are already exposed through ClawLink, so the agent can read and act from chat immediately.

Composio also exposes Google Sheets to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for Hermes Agent users instead. You install the plugin once, connect Google Sheets in the browser, and the 40 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full Composio alternatives comparison.

Troubleshooting

Hermes paired but still can't use Google Sheets

Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.

Connection succeeds but no tools appear

Reconnect Google Sheets from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.

"Tool schema not loaded yet" error when calling Google Sheets tools

Google Sheets tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Google Sheets call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.

Google Sheets returns 403 or "permission denied" on one action while others work

Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.

"arguments.spreadsheet_id is required" (or "arguments.spreadsheetId is required") from Google Sheets

The agent used the sheet's name where a tool needed its id, and both spellings of the message are real because the casing differs per tool. Paste the sheet's URL into the chat, or have the agent run googlesheets_search_spreadsheets with a name query and retry with the id it returns. This is the most common real Sheets failure we log, well ahead of anything Google-side.

"arguments.value_input_option is required" when updating a Google Sheet

The update tool refuses to guess between its two modes. USER_ENTERED parses input like typing, so dates and formulas come alive; RAW stores literal strings. Say which one you want in the prompt; USER_ENTERED is right for most real data. This omission accounts for 107 logged failures on its own.

"Invalid sheet identifier or cell reference provided" from Google Sheets

The sheet title in the range does not exist in that spreadsheet, or the A1 reference is malformed. Titles are matched exactly and need single quotes when they contain spaces. Have Hermes call googlesheets_get_sheet_names and build the range from a returned title rather than assuming Sheet1.

"Tool 'googlesheets_get_values' not found" and other missing Google Sheets tools

If the error suggests alternatives, the agent invented a tool name and the suggestion (googlesheets_values_get for reads) is the fix. If Sheets tools are missing wholesale, the runtime's catalog is stale: reconnect from the dashboard and start a fresh chat. Ignore advice about deleting token.json or restarting a server process; a hosted connection has neither.

"Request had insufficient authentication scopes" (403) when searching Sheets while reads still work

The Google grant behind the connection is missing its Drive permission. ClawLink asks for spreadsheets and Drive, each with its own checkbox on Google's consent screen, and a connection approved without the Drive box behaves exactly like this: reads by id succeed, search by name fails. Reconnect from the dashboard and leave every checkbox ticked.

"Connected account is not in an ACTIVE state. Current status is REVOKED" from Google Sheets

Access was withdrawn on the Google side, by you under Third-party apps and services or by a workspace admin. Reconnect Google Sheets from the ClawLink dashboard and approve the consent screen again, then start a fresh chat so Hermes picks the connection up.

OAuth finished in the browser but the account is still missing

Try reconnecting Google Sheets and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.

FAQ

Is there a Hermes Agent Google Sheets integration?

Yes. ClawLink is the fastest way to connect Hermes to Google Sheets: link your Google Sheets account once in the browser and Hermes Agent can call the Google Sheets API through 40 ready-made tools — no custom code or token handling.

How do I connect Google Sheets to Hermes with ClawLink?

Install the plugin with hermes plugins install ClawLink-HQ/hermes-plugin --enable, then pair once: run hermes clawlink begin, approve the link in your browser, and run hermes clawlink finish. Connect Google Sheets in the dashboard and Hermes can use it from the next message — no config files or API keys to manage.

How long does it take to connect Google Sheets to Hermes Agent?

About two minutes. Sign in, click Connect next to Google Sheets in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.

Why use ClawLink instead of wiring Google Sheets up myself?

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Google Sheets working from chat.

Do I need a Google Cloud project or my own OAuth app to connect Google Sheets to Hermes?

No. The Cloud project, the two APIs you enable by hand, the Desktop OAuth client, the client-secret JSON: all of that is the price of the self-hosted route, and it is what most guides walk you through because they assume no one else can own the OAuth app. ClawLink owns a verified one. Pairing Hermes and clicking Connect is the entire setup, and no credential file ever lands on the machine running Hermes.

Do I need to share my sheet with a service account email?

No. Sharing a sheet with a client_email is service-account advice, and there is no service account anywhere in this flow. The connection signs in as your Google account and sees what you see. When a call fails with a 403 despite a healthy connection, check the spreadsheet id the agent sent before touching any sharing settings; an invented or copied-from-an-example id is the usual culprit.

Which Google permissions does the Sheets connection request?

https://www.googleapis.com/auth/spreadsheets and https://www.googleapis.com/auth/drive, plus your email to label the connection, verified against a live connection rather than quoted from a catalog. Drive is in the list because searching spreadsheets by name or content is a Drive API operation. Each permission gets its own checkbox on Google's consent screen, and both need to stay ticked for every tool to work. Revoking is one click in your Google account's Third-party apps and services page or in the ClawLink dashboard.

Is it safe to connect Google Sheets to an AI agent?

Judge it by the mechanics rather than assurances. Google's consent screen lists exactly what is granted; the tool table on this page is the complete set of operations an agent can invoke; there is no API key or JSON file to leak because none exists. Revocation works instantly from your Google account or the dashboard, and ClawLink deletes tool execution logs after 90 days. The lever that matters most is yours: connect an account that only sees what the agent should, and lean on Sheets version history for anything write-heavy.

Hermes paired but still can't use Google Sheets

Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.