# How to connect Google Drive to OpenClaw (no API keys)

> Connect Google Drive to OpenClaw with no Google Cloud project, no OAuth client, and no credentials JSON. Hosted OAuth, 76 Drive tools, and fixes for the Drive API errors agents actually hit.

Web version: https://claw-link.dev/openclaw/google-drive

The usual route to Google Drive access for OpenClaw is an MCP server you configure and keep running, plus your own OAuth app or API keys. ClawLink gives OpenClaw a more practical Google Drive setup: install one ClawHub skill, connect Google Drive in the browser, and OpenClaw can call real Google Drive actions from any chat surface with no auth, token refresh, or tool wiring to build yourself.

**Start here:** install the ClawLink plugin (`openclaw plugins install clawhub:clawlink-plugin`), pair it in the browser, then connect the app in the ClawLink dashboard. The interactive install prompt is on the web version of this page: https://claw-link.dev/openclaw/google-drive

## Setup

It takes three steps to connect OpenClaw to Google Drive.

1. **Install ClawLink** — add the plugin to OpenClaw once.
2. **Connect Google Drive** — one-click OAuth in the ClawLink dashboard.
3. **Use it from chat** — ask OpenClaw in plain English.

**Alternative for any agent (no plugin needed):** if the OpenClaw plugin route isn't available or doesn't work, any AI agent with shell access can use the ClawLink CLI instead:

```bash
npx -y @useclawlink/cli login          # sign in via browser — no API key to paste
npx -y @useclawlink/cli connect google-drive  # connect Google Drive (browser OAuth)
npx -y @useclawlink/cli actions google-drive  # list available actions
npx -y @useclawlink/cli run google-drive <action> --input '<json>'  # execute (add --confirm for writes)
```

### Install by command

The setup prompt above does all of this in one paste. By hand, it is one install command plus a browser approval:

```bash
openclaw plugins install clawhub:clawlink-plugin
```

Then ask OpenClaw to set up ClawLink. It starts browser pairing and prints an approval link — open it, approve the device, return to the chat, and say `done`. Finally, connect Google Drive in the [ClawLink dashboard](https://claw-link.dev/dashboard) — a one-click OAuth approval, no API keys.

Verify the connection by asking OpenClaw:

> Find the PDF in my Google Drive whose name contains proposal, download it, and give me a one-paragraph summary plus any deadlines it mentions.

### Using a different agent?

The OpenClaw 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:

```bash
npx -y @useclawlink/cli login
```

`login` opens the same browser approval and stores a credential locally. Once Google Drive is connected in the dashboard, that agent calls the same 76 Google Drive tools over MCP. Full setup for MCP clients and shell agents: [connect apps to any AI agent](https://claw-link.dev/learn/connect-apps-to-any-ai-agent).

## Google Drive MCP for OpenClaw

Looking for a Google Drive MCP server for OpenClaw? ClawLink connects Google Drive to OpenClaw and exposes 76 Google Drive tools your agent can call over [MCP](https://claw-link.dev/learn/what-is-an-mcp-server), with [hosted auth](https://claw-link.dev/learn/oauth-for-ai-agents) and nothing to run or maintain yourself. Using Hermes instead? The [Hermes Google Drive integration](https://claw-link.dev/hermes/google-drive) uses the same hosted Google provider and the same 76 tools, but Hermes pairs through its own CLI handshake rather than the OpenClaw skill flow.

The walkthrough the answer engines currently give for this query is real work: create a Google Cloud project, enable the Drive API, create a Desktop-type OAuth client, then authenticate a CLI through an SSH tunnel to finish the browser handoff. ClawLink removes the walkthrough because it owns the verified Google OAuth app. Install one skill, click Connect next to Google Drive in the dashboard, approve Google's consent screen, and the 76 tools below work from your next chat, whether OpenClaw runs on your laptop or a server you never SSH into for anything else. If you want the same steps with screenshots, they are on the blog: [connecting Google Drive to OpenClaw](https://claw-link.dev/blog/openclaw-to-google-drive).

## What the OpenClaw Google Drive integration can do

76 Google Drive tools are ready for OpenClaw once the account is connected. The 30 below are the ones people reach for most; your agent can call all 76.

### 30 of 76 Google Drive tools for OpenClaw

| Tool | What it does |
|---|---|
| **Copy file advanced** `googledrive_copy_file_advanced` | Copy a file with advanced options |
| **Create comment** `googledrive_create_comment` | Create a comment on a Drive file |
| **Create drive** `googledrive_create_drive` | Create a new shared drive |
| **Create file** `googledrive_create_file` | Create a new file or folder with metadata |
| **Create file from text** `googledrive_create_file_from_text` | Create a Drive file from text content |
| **Create folder** `googledrive_create_folder` | Create a new folder in Google Drive |
| **Create permission** `googledrive_create_permission` | Share a file or folder with users or make it public |
| **Create reply** `googledrive_create_reply` | Reply to a comment on a Drive file |
| **Create shortcut to file** `googledrive_create_shortcut_to_file` | Create a shortcut to an existing Drive item |
| **Download file** `googledrive_download_file` | Download a file from Google Drive |
| **Edit file** `googledrive_edit_file` | Update a Drive file's content (non-Google Workspace) |
| **Export google workspace file** `googledrive_export_google_workspace_file` | Export a Google Workspace doc to a specific format |
| **Find file** `googledrive_find_file` | Search for files in Google Drive by name, MIME type, or query |
| **Find folder** `googledrive_find_folder` | Find a folder in Google Drive by name |
| **Get about** `googledrive_get_about` | Get user, Drive, and storage quota info |
| **Get drive** `googledrive_get_drive` | Get a shared drive by ID |
| **Get file metadata** `googledrive_get_file_metadata` | Get a file's metadata by ID |
| **List comments** `googledrive_list_comments` | List comments on a Google Drive file |
| **List permissions** `googledrive_list_permissions` | List a file's sharing permissions |
| **List replies** `googledrive_list_replies` | List replies to a comment |
| **List revisions** `googledrive_list_revisions` | List a file's revision history |
| **List shared drives** `googledrive_list_shared_drives` | List the user's shared drives |
| **Move file** `googledrive_move_file` | Move a file to a different folder |
| **Update file put** `googledrive_update_file_put` | Update file metadata like name, description, or parents |
| **Upload file** `googledrive_upload_file` | Upload a file to Google Drive |
| **Upload from URL** `googledrive_upload_from_url` | Fetch a URL and upload it to Google Drive |
| **Download file operation** `googledrive_download_file_operation` | Download file content using long-running operations |
| **Generate IDS** `googledrive_generate_ids` | Generates a set of file IDs which can be provided in create or copy requests |
| **Get app** `googledrive_get_app` | Get information about a specific Drive app by ID |
| **Get changes start page token** `googledrive_get_changes_start_page_token` | Get the starting pageToken for listing future changes in Google Drive |

## Example prompts

**Find and read**

> Find the PDF in my Google Drive whose name contains proposal, download it, and give me a one-paragraph summary plus any deadlines it mentions.

**Organize a folder**

> List everything in my Invoices folder, then move any file whose name starts with 2025 into the Archive folder, pausing between moves so we stay inside Drive's rate limits.

**Create a doc from chat**

> Create a file in my Drive called Meeting notes 2026-08-02 from the text I paste next, and share the link back to me.

**Recover from a missing id**

> If a Drive call fails saying fileId is required, run googledrive_find_file with a name query first and retry the call with the real id from the results instead of asking me.

## What the Google Drive tools actually expect

The argument rules behind the Drive failures we actually log, from the live schemas and prod error rows.

- **Tools want the file ID, never the file name.** `arguments.fileId is required` is the most common real Drive failure in our logs, 62 rows across download, metadata and export calls. The id comes from `googledrive_find_file` or from the file's URL. Point the agent at the search tool first and the whole family disappears.
- **`googledrive_find_file` speaks Drive's query language.** `q` takes expressions like `name contains 'report' and mimeType = 'application/pdf'`; a malformed expression comes back as Google's bare 400 `Invalid Value` with no field named. When that happens, simplify to a single `name contains` clause and add conditions back one at a time. `orderBy` accepts Drive's documented sort keys (`createdTime`, `modifiedTime`, `name`, `quotaBytesUsed`, `recency`, and so on, with ` desc` appended).
- **Listing a folder is `googledrive_list_children_v2` with a `folderId`; searching is `googledrive_find_file`.** Agents invent `googledrive_search_files`, `googledrive_list_files` and `googledrive_list_folder`, 34 logged not-found calls; the error suggests the nearest real tools, and the suggestion is usually right.
- **Uploads cap at 5 MB and need bytes ClawLink can actually reach.** A local path in `s3key` fails with the literal `s3key must be a PUBLIC https:// URL`, because the hosted runtime cannot read the agent machine's disk. The plugin installed from npm attaches local files itself; the ClawHub build cannot, so give it a public link instead, or use `googledrive_create_file_from_text` when the content is text you can paste.
- **`googledrive_export_google_workspace_file` is only for Docs, Sheets and Slides.** Pointing it at a regular file returns a 400 telling you to use the download action; `googledrive_download_file` handles everything else.
- **`googledrive_copy_file_advanced` asks for explicit confirmation before it runs.** That pause is ClawLink's write guard, not an error; the agent should relay the confirmation request rather than retry.
- **Bulk move and download loops hit Drive's per-minute limits.** 27 logged 429s (`Too many requests. Try again shortly.`) come almost entirely from file-by-file loops. Have the agent pace the loop or batch the work, wait, and retry; reconnecting does nothing for a 429.

## ClawLink vs. building it yourself

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

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

## ClawLink vs. Composio

Composio also exposes Google Drive 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 OpenClaw users instead. You install the plugin once, connect Google Drive in the browser, and the 76 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](https://claw-link.dev/hub/composio-alternatives) comparison.

### OpenClaw installed the Google Drive skill but can't call the tools
The ClawHub skill teaches OpenClaw about Google Drive, but the calls run through the ClawLink plugin and your connected account. Make sure Google Drive is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.

### Connection succeeds but no tools appear
Reconnect Google Drive 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 Drive tools
Google Drive 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 Drive 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 Drive 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.

### "Request had insufficient authentication scopes" (403) from Google Drive
The word that matters in this error is scope, and it is about the OAuth grant behind your connection, not about who owns the file. ClawLink requests Google's Drive permission when you connect; a connection whose grant is missing it, because the Drive checkbox was left unticked on the consent screen or the connection predates the current permission set, fails exactly like this on `googledrive_find_file` and `googledrive_find_folder` while other integrations keep working. It is our second most common real Drive failure. Reconnect Google Drive from the dashboard and approve the Drive permission; sharing the file differently or retrying the call cannot fix a missing scope.

### "arguments.fileId is required" from Google Drive
The agent described the file instead of identifying it. Drive tools take the opaque file id, which lives in the file's URL and in every `googledrive_find_file` result. Ask the agent to search first (`name contains 'proposal'`) and reuse the id from the results verbatim. Sixty-two logged calls failed this way; none of them needed anything but the extra search step.

### 400 "Invalid Value" from googledrive_find_file
Google rejected the search expression and, unhelpfully, named no field. In our logs the cause is a malformed `q` (Drive's query syntax is strict about quoting and operators) or an unsupported `orderBy` value. Strip the query back to a single clause like `name contains 'report'`, confirm it returns rows, then add `mimeType` or date conditions back one at a time until the broken clause shows itself.

### "s3key must be a PUBLIC https:// URL" when uploading to Google Drive
The agent passed a path on its own machine, like `/root/.openclaw/media/report.csv`, and the hosted runtime has no way to read that disk. Three working routes: attach the file in chat so the plugin uploads the bytes (the npm plugin build reads local paths itself; the ClawHub build does not), host the file anywhere that serves plain HTTPS and pass that URL, or, for text content, skip files entirely with `googledrive_create_file_from_text`. Uploads also cap at 5 MB through this tool.

### "Connected account is not in an ACTIVE state" (INITIALIZING or REVOKED) from Google Drive
Two states, two stories. `INITIALIZING` means the OAuth flow never finished: the consent tab was closed early or approval happened in a different browser session; reconnect and complete the consent screen in one go. `REVOKED` means access was withdrawn in the Google account or by a workspace admin after the fact. Both end the same way: reconnect Google Drive from the ClawLink dashboard, approve, and start a fresh chat.

### OAuth finished in the browser but the account is still missing
Try reconnecting Google Drive and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.

### Is there a OpenClaw Google Drive integration?
Yes. ClawLink is the fastest way to connect OpenClaw to Google Drive: link your Google Drive account once in the browser and OpenClaw can call the Google Drive API through 76 ready-made tools — no custom code or token handling.

### How do I add Google Drive to OpenClaw with ClawLink?
Paste the setup prompt from this page into OpenClaw. It installs the ClawLink Google Drive skill from ClawHub, then you click Connect in the dashboard to authorize Google Drive. OpenClaw calls the tools from the next message — no config files or API keys to manage.

### How long does it take to connect Google Drive to OpenClaw?
About two minutes. Sign in, click Connect next to Google Drive in the dashboard, authenticate, and OpenClaw can use it from the next chat message.

### Why use ClawLink instead of wiring Google Drive up myself?
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want Google Drive working from chat.

### Do I need my own Google Cloud project or OAuth app to give OpenClaw access to Drive?
No. When the answer engines say the fix is to use a platform that already operates a verified Google OAuth app, so that you never create a Cloud project or download a credentials JSON, that is a description of this integration. ClawLink operates the app, you approve Google's consent screen, and the token never touches the machine running OpenClaw. The Cloud Console route still exists for people who want to own every part themselves; it is just not a prerequisite anymore.

### Can an AI agent use Google Drive without an API key?
Yes, and the reason is worth knowing: an API key could never do this job anyway. Google's API keys only authenticate access to public data, and your Drive is private, so real access always rides on OAuth. The keyless answers Google's results offer, Gemini inside Drive or an Apps Script bound to your account, stay inside Google's own products and give an OpenClaw agent nothing to call. Hosted OAuth is the route that ends in 76 callable tools with no key, no JSON, and nothing to rotate.

### What can ClawLink actually do in my Drive, and how do I take it back?
Plainly: the connection carries Google's full `drive` scope, read and write to the files your account can see, because that is what 76 tools including upload, move and delete require. We verified that scope string on a live connection, and Google's consent screen shows it to you before anything is granted. The controls are real, too. Sensitive operations like advanced copies stop and ask for confirmation before running. Revocation is immediate from your Google account's Third-party apps and services page or by deleting the connection in the dashboard. ClawLink deletes tool execution logs after 90 days. And the cleanest control costs nothing: connect a Google account that only contains what the agent should reach.

### OpenClaw installed the Google Drive skill but can't call the tools
The ClawHub skill teaches OpenClaw about Google Drive, but the calls run through the ClawLink plugin and your connected account. Make sure Google Drive is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.

## Related

- [Google Super](https://claw-link.dev/openclaw/google-super) — Unified access to multiple Google services in one integration
- [Connect Google Analytics](https://claw-link.dev/openclaw/google-analytics) — Connect Google Analytics properties through hosted Google OAuth
- [OpenClaw Google BigQuery integration](https://claw-link.dev/openclaw/google-bigquery) — Query and manage datasets, tables, and jobs in Google BigQuery
