Google Drive
Service domainCLOUD STORAGE
Arcade Optimized
Arcade.dev LLM tools for Google Drive
15tools
13require secrets
Google Drive Toolkit
The Google Drive toolkit connects Arcade to Google Drive via OAuth, enabling LLMs to manage files, folders, sharing, and permissions on behalf of authenticated users.
Capabilities
- File & folder management: Create folders, move, rename, and search files across My Drive and shared drives (by path or ID).
- Upload & download: Upload files to Drive from a URL (up to 25 MB, non-Workspace formats); download blob files directly or in byte-range chunks for large files.
- Permissions & sharing: Share files with specific people, revoke or bulk-remove collaborators, set general/link-sharing access (including domain scoping), and list all permissions with role filtering.
- Drive introspection: Retrieve the full file/folder tree, look up authenticated user profile and storage info, and enumerate accessible shared drives and their IDs.
- File picker integration: Generate a Google-hosted Drive Picker URL so users can grant the app access to specific files when a prior tool reports not-found or access-denied.
OAuth
Authentication uses OAuth 2.0 via the Google provider. See the Arcade Google auth provider docs for setup details.
Secrets
ENABLE_GOOGLE_DRIVE_INLINE_PICKER_URL— Controls whether theGoogleDrive.GenerateGoogleFilePickerUrltool surfaces an inline Google Drive Picker URL. This is an Arcade-side feature flag, not a credential issued by Google. Set its value in the Arcade secrets manager to enable the picker flow. There is no external provider dashboard for this secret; it is configured entirely within Arcade.
See the Arcade secrets documentation for how to store and reference secrets, or manage them directly at https://api.arcade.dev/dashboard/auth/secrets.
Available tools(15)
15 of 15 tools
Operations
Behavior
| Tool name | Description | Secrets | |
|---|---|---|---|
Create a new folder in Google Drive.
By default, parent folder paths are resolved in My Drive. For shared drives, use folder IDs
or provide shared_drive_id. | 1 | ||
Download a blob file (non-workspace file) from Google Drive as base64 encoded content.
For small files (under ~5MB raw), returns the file content directly in the response as base64.
For large files, returns metadata with requires_chunked_download=True - use download_file_chunk
to retrieve the file in parts.
By default, paths are resolved in My Drive. For shared drives, use file IDs or provide
shared_drive_id. | 1 | ||
Download a specific byte range of a file from Google Drive.
Use this for large files that require chunked download (when download_file returns
requires_chunked_download=True). Call repeatedly with increasing start_byte values
to retrieve the complete file.
Returns the chunk content as base64, along with progress information including
whether this is the final chunk. | 1 | ||
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. | |||
Get the file/folder tree structure of the user's entire Google Drive.
Very inefficient for large drives. Use with caution. | 1 | ||
List permissions on a Google Drive file or folder.
Returns the individual people (and groups) with access and the current General access
(link sharing) state. `general_access` is computed across the ENTIRE file regardless of
filtering -- so "is this doc public?" is always answered authoritatively.
When `roles` is provided, `people` and `total_people` reflect only collaborators whose
role matches the filter. Truncated collaborators beyond `limit` are not returned;
`has_more` indicates whether truncation occurred. | 1 | ||
Move a file or folder to a different folder within the same Google Drive.
Can move to a folder (keeping name), or move and rename in one operation. By default, paths
are resolved in My Drive. For shared drives, use file IDs or provide shared_drive_id. | 1 | ||
Remove all user collaborators (and optionally groups) from a Google Drive file.
The file owner and the calling user are always preserved. Groups are preserved by default
because the Drive API cannot verify group membership -- pass include_groups=True to opt in.
Inherited shared-drive permissions are never removable from the file level and are skipped.
Use except_people to preserve additional people or groups by email or name. Ambiguous or
unmatched except_people entries raise an error to avoid accidentally removing someone the
caller meant to keep. | 1 | ||
Rename a file or folder in Google Drive.
By default, paths are resolved in My Drive. For files in shared drives, either use the file ID
directly or provide the shared_drive_id parameter. | 1 | ||
Revoke access for specific people or groups on a Google Drive file.
Identifies matches by email (exact, case-insensitive) or display name. When an input
matches multiple people, the clear matches are still revoked and the ambiguous input is
surfaced in the `ambiguous` response field with candidate details so the agent can
re-prompt the user for just the uncertain ones. Inputs that don't match any collaborator
are returned in `not_found`. Pending-owner matches (mid-ownership-transfer) are skipped
and surfaced in `skipped_pending_owner` so the clean revokes in the batch still land.
Owner permissions cannot be revoked -- transfer ownership first.
When a grantee has both a direct and an inherited permission (e.g., shared-drive member
also granted directly on the file), revoking the direct row leaves the inherited access
intact. The inherited row is surfaced in `skipped_inherited` so callers don't assume the
grantee is fully removed -- inherited access must be adjusted at the shared drive level. | 1 | ||
Search for files in Google Drive.
The provided 'query' should only contain the search terms.
The tool will construct the full search query for you. | 1 | ||
Change the 'General access' (link sharing) setting on a Google Drive file.
Idempotent: calling with the same state as the current configuration is a no-op. When access
is 'domain', the link is scoped to the caller's email domain -- NOT the file owner's domain.
For cross-org collaboration (e.g., editing a file owned by another organization), confirm
with the user which domain they intend before calling. Google will reject domain sharing
for personal accounts (gmail.com, outlook.com, etc.) -- the tool translates that rejection
into a friendly error.
The response's `access` and `role` fields report the EFFECTIVE state after the transition,
not the requested state. For files on shared drives, inherited link permissions cannot be
changed from the file level -- if the request would have required removing an inherited
permission, the effective state will reflect the inherited permission that remained. When
`skipped_inherited` is non-empty, inspect it to understand why effective state may differ
from what was requested. | 1 | ||
Share a file or folder in Google Drive with specific people by granting them permissions.
If a user already has permission on the file, their role will be updated to the new role.
By default, paths are resolved in My Drive. For shared drives, use file IDs or provide
shared_drive_id. | 1 | ||
Upload a file to Google Drive from a URL.
Fetches the file content from the provided URL and uploads it to Google Drive.
Supports files of any size - uses resumable upload internally for large files.
CANNOT upload Google Workspace files (Google Docs, Sheets, Slides)
CANNOT upload files larger than 25MB | 1 | ||
Get comprehensive user profile and Google Drive environment information.
This tool provides detailed information about the authenticated user including
their name, email, profile picture, Google Drive storage information, the shared
drives (and their IDs) the user has access to, and other
important profile details from Google services. |
Last updated on