Hosted MCP server · #58 most used on Smithery · ✓ verified
Google Drive
googledrive
Search Google Drive, upload and download files, create folders, move and rename items, and manage sharing and file permissions.
- Uses
- 8.1k
- Tools
- 18
- Runs
- Hosted
- Listed
- 12mo ago
Get started
Add it to your agent
npx -y @smithery/cli@latest install googledrive --client claudeSwap --client claude for cursor, vscode, windsurf or another client. The CLI asks for any required settings.
claude mcp add --transport http google-drive https://server.smithery.ai/googledrive/mcpA hosted server: nothing to install. Run /mcp in Claude Code to sign in if it asks.
[mcp_servers.google-drive]
url = "https://server.smithery.ai/googledrive/mcp"Add to ~/.codex/config.toml.
{
"mcpServers": {
"google-drive": {
"url": "https://server.smithery.ai/googledrive/mcp"
}
}
}Add to ~/.cursor/mcp.json.
{
"servers": {
"google-drive": {
"type": "http",
"url": "https://server.smithery.ai/googledrive/mcp"
}
}
}Add to .vscode/mcp.json.
gemini mcp add --transport http google-drive https://server.smithery.ai/googledrive/mcpSaved to .gemini/settings.json.
What it can do
18 tools
Arcade_ListAppsSee the apps the current caller can act on and whether they are connected. Returns each app's id, name, connected state, and (when connec…
See the apps the current caller can act on and whether they are connected. Returns each app's id, name, connected state, and (when connected) the account it is connected as. Call this to answer "what apps do I have?" or when the caller's connection state may have changed since the session started.
GoogleDrive_CheckFileAccess1 paramCheck whether this app can already read each of several Drive files, in one batched pre-flight call, before attempting to read them. Use …
Check whether this app can already read each of several Drive files, in one batched pre-flight call, before attempting to read them. Use this when the user references multiple files so any that are not yet accessible can be granted together in a single picker step, instead of hitting a separate access error and grant prompt for each one. Each input may be a bare file id or a full Google Drive/Workspace URL (documents, spreadsheets, slides, PDFs, images, folders — any type). Returns ``files`` (a
| Parameter | Type | Description |
|---|---|---|
files | array | The files to check access for, each given as a bare Drive file id or a full Google Drive/Workspace URL (the id is extracted from the URL). Provide at most 50 per call; split larger lists across multip |
GoogleDrive_CreateFolder3 paramsCreate a new folder in Google Drive. By default, parent folder paths are resolved in My Drive. For shared drives, use folder IDs or provi…
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.
| Parameter | Type | Description |
|---|---|---|
folder_name | string | The name of the new folder to create |
shared_drive_id | string | If creating in a shared drive and using a parent folder path, provide the shared drive ID. Not needed when using folder IDs or creating in My Drive. Defaults to None. |
parent_folder_path_or_id | string | The parent folder path like folder/subfolder or folder ID where to create. If None, creates at the root of My Drive. If providing a path, it will be resolved within My Drive by default. Do not include |
GoogleDrive_DownloadFile2 paramsDownload a blob file (non-workspace file) from Google Drive as base64 encoded content. For small files (under ~5MB raw), returns the file…
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.
| Parameter | Type | Description |
|---|---|---|
file_path_or_id | string | The file path like folder/subfolder/filename or the file ID of the file to download Folders NOT supported. If providing a path, it will be resolved within 'My Drive' by default. |
shared_drive_id | string | If the file is in a shared drive and using a path, provide the shared drive ID. Not needed when using file IDs. Defaults to None (uses 'My Drive'). |
GoogleDrive_DownloadFileChunk4 paramsDownload a specific byte range of a file from Google Drive. Use this for large files that require chunked download (when download_file re…
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.
| Parameter | Type | Description |
|---|---|---|
chunk_size | integer | The size of the chunk to download in bytes. Max 5MB (5242880). Defaults to 5MB (5242880). |
start_byte | integer | The starting byte position for this chunk (0-indexed). |
file_path_or_id | string | The file path like folder/subfolder/filename or the file ID to download a chunk from. If providing a path, it will be resolved within 'My Drive' by default. |
shared_drive_id | string | If the file is in a shared drive and using a path, provide the shared drive ID. Not needed when using file IDs. Defaults to None (uses 'My Drive'). |
GoogleDrive_GenerateGoogleFilePickerUrl1 paramGenerate a URL where the user can grant this app access to specific Drive files. Opens Google's first-party Drive picker. The user select…
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. By default the picker shows files of all types; pass ``file_types`` to restrict it to specific types. 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
| Parameter | Type | Description |
|---|---|---|
file_types | array | Restrict the picker to these Google Drive file types. Defaults to None, which lets the user pick files of any type. |
GoogleDrive_GetFileTreeStructure5 paramsGet the file/folder tree structure of the user's entire Google Drive. Very inefficient for large drives. Use with caution.
| Parameter | Type | Description |
|---|---|---|
limit | integer | The number of files and folders to list. Defaults to None, which will list all files and folders. |
order_by | array | Sort order. Defaults to listing the most recently modified documents first |
include_shared_drives | boolean | Whether to include shared drives in the file tree structure. Defaults to False. |
restrict_to_shared_drive_id | string | If provided, only include files from this shared drive in the file tree structure. Defaults to None, which will include files and folders from all drives. |
include_organization_domain_documents | boolean | Whether to include documents from the organization's domain. This is applicable to admin users who have permissions to view organization-wide documents in a Google Workspace account. Defaults to False |
GoogleDrive_ListFilePermissions4 paramsList permissions on a Google Drive file or folder. Returns the individual people (and groups) with access and the current General access …
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 tru
| Parameter | Type | Description |
|---|---|---|
limit | integer | Maximum number of user/group collaborators to include in the `people` list (1-500). Regardless of this cap, `general_access` reflects the entire file. Defaults to 100. |
roles | array | Filter the `people` list to those holding one of these roles. For 'who can write?' pass [owner, writer]; for 'who can comment?' pass [owner, writer, commenter]. When provided, `total_people` reflects |
file_path_or_id | string | The file path like folder/subfolder/filename or the file ID to inspect. If providing a path, it will be resolved within My Drive by default. |
shared_drive_id | string | If the file is in a shared drive and using a path, provide the shared drive ID. Not needed when using file IDs. Defaults to None (uses My Drive). |
GoogleDrive_MoveFile4 paramsMove 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 …
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.
| Parameter | Type | Description |
|---|---|---|
new_filename | string | Optional new name for the file after moving. If None, keeps the original name. Defaults to None. |
shared_drive_id | string | If working with paths in a shared drive, provide the shared drive ID. Not needed when using IDs. Defaults to None (uses My Drive). |
source_file_path_or_id | string | The source file path like folder/subfolder/filename or the file ID of the file to move. If providing a path, it will be resolved within 'My Drive' by default. |
destination_folder_path_or_id | string | The path to the file's parent folder (exclude the file to be moved) or parent folder ID to move the file into. If None, moves to the root of the drive. Defaults to None. |
GoogleDrive_RemoveAllCollaborators4 paramsRemove all user collaborators (and optionally groups) from a Google Drive file. The file owner and the calling user are always preserved.…
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 a
| Parameter | Type | Description |
|---|---|---|
except_people | array | Emails or names of people (or groups) to preserve. The file owner and the caller are always preserved automatically. Defaults to None (remove everyone else). |
include_groups | boolean | Whether to also remove group permissions. Defaults to False because the Drive API does not expose group membership -- the tool cannot verify the caller isn't a member of a group it's about to delete, |
file_path_or_id | string | The file path like folder/subfolder/filename or the file ID. If providing a path, it will be resolved within My Drive by default. |
shared_drive_id | string | If the file is in a shared drive and using a path, provide the shared drive ID. Not needed when using file IDs. Defaults to None (uses My Drive). |
GoogleDrive_RenameFile3 paramsRename 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 d…
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.
| Parameter | Type | Description |
|---|---|---|
new_filename | string | The new name for the file |
file_path_or_id | string | The path like folder/subfolder/filename or the file ID to rename. If providing a path, it will be resolved within 'My Drive' by default. |
shared_drive_id | string | If the file is in a shared drive and you're using a path (not ID), provide the shared drive ID to resolve the path within that drive. Not needed when using file IDs. Defaults to None (searches 'My Dri |
GoogleDrive_RevokeFileAccess3 paramsRevoke access for specific people or groups on a Google Drive file. Identifies matches by email (exact, case-insensitive) or display name…
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
| Parameter | Type | Description |
|---|---|---|
people | array | Emails or names of people (or groups) to remove access from. Emails match exactly; names use case-insensitive matching on display name, then first/last name token. |
file_path_or_id | string | The file path like folder/subfolder/filename or the file ID. If providing a path, it will be resolved within My Drive by default. |
shared_drive_id | string | If the file is in a shared drive and using a path, provide the shared drive ID. Not needed when using file IDs. Defaults to None (uses My Drive). |
GoogleDrive_SearchDrive7 paramsSearch the user's entire Google Drive, including files they created or received directly in Drive — not only files created through this a…
Search the user's entire Google Drive, including files they created or received directly in Drive — not only files created through this app. Reads across the user's whole Drive, so it requires broad read access to their files. The provided 'query' should contain only the search terms; the tool builds the full Drive query for you, matching file names and contents.
| Parameter | Type | Description |
|---|---|---|
limit | integer | The maximum number of search results to return (1-50). Defaults to 20. |
query | string | The terms to search for in Google Drive. The tool builds the full Drive query for you, matching file names and file contents — provide only the search terms, not Drive query syntax. |
order_by | array | Sort order for search results. Defaults to listing the most recently modified documents first. If the query contains 'fullText', then the order_by will be ignored. |
file_types | array | Filter by specific file types. Defaults to None, which includes all file types. |
shared_drive_id | string | If provided, search only within this shared drive. Defaults to None (searches My Drive and optionally all shared drives). |
folder_path_or_id | string | Search only within this specific folder. Provide either a path like folder/subfolder or a folder ID. If None, searches across all accessible locations. Defaults to None. |
include_shared_drives | boolean | If True and shared_drive_id is not set, include all shared drives in search. Defaults to False (My Drive only). |
GoogleDrive_SearchFiles8 paramsSearch for files in Google Drive. The provided 'query' should only contain the search terms. The tool will construct the full search quer…
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.
| Parameter | Type | Description |
|---|---|---|
limit | integer | The maximum number of search results to return. Defaults to 50. |
query | string | The exact search query to send to the Google Drive API to find files in Google Drive. The tool will construct the query for you. Will search for filenames and file contents that match the provided que |
order_by | array | Sort order for search results. Defaults to listing the most recently modified documents first. If the query contains 'fullText', then the order_by will be ignored. |
file_types | array | Filter by specific file types. Defaults to None, which includes all file types. |
shared_drive_id | string | If provided, search only within this shared drive. Defaults to None (searches My Drive and optionally all shared drives). |
folder_path_or_id | string | Search only within this specific folder. Provide either a path like folder/subfolder or a folder ID. If None, searches across all accessible locations. Defaults to None. |
include_shared_drives | boolean | If True and shared_drive_id is not set, include all shared drives in search. Defaults to False (My Drive only). |
include_organization_domain_documents | boolean | Whether to include documents from the organization's domain. This is applicable to admin users who have permissions to view organization-wide documents in a Google Workspace account. Defaults to False |
GoogleDrive_SetGeneralAccess5 paramsChange the 'General access' (link sharing) setting on a Google Drive file. Idempotent: calling with the same state as the current configu…
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
| Parameter | Type | Description |
|---|---|---|
role | string | The role granted via the link when access is 'domain' or 'anyone'. Ignored when access is 'restricted'. Defaults to reader (view-only). Constrained to reader/commenter/writer -- Drive rejects owner an |
access | string | The new General access setting. 'restricted' removes link sharing, 'domain' shares with the caller's Google Workspace domain, 'anyone' makes it public with the link. Defaults to 'restricted'. |
allow_discovery | boolean | Whether the file should be discoverable through search. Only meaningful when access is 'domain' or 'anyone'. Defaults to False. |
file_path_or_id | string | The file path like folder/subfolder/filename or the file ID. If providing a path, it will be resolved within My Drive by default. |
shared_drive_id | string | If the file is in a shared drive and using a path, provide the shared drive ID. Not needed when using file IDs. Defaults to None (uses My Drive). |
GoogleDrive_ShareFile6 paramsShare a file or folder in Google Drive with specific people by granting them permissions. If a user already has permission on the file, t…
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.
| Parameter | Type | Description |
|---|---|---|
role | string | The permission role to grant. Defaults to reader (view-only). |
message | string | Optional message to include in the notification email. Defaults to None. |
email_addresses | array | List of email addresses like user@domain.com to share with |
file_path_or_id | string | The file path like folder/subfolder/filename or the file ID to share. If providing a path, it will be resolved within My Drive by default. |
shared_drive_id | string | If the file is in a shared drive and using a path, provide the shared drive ID. Not needed when using file IDs. Defaults to None (uses My Drive). |
send_notification_email | boolean | Whether to send an email notification to the recipients. Defaults to True. |
GoogleDrive_UploadFile5 paramsUpload a file to Google Drive from a URL. Fetches the file content from the provided URL and uploads it to Google Drive. Supports files o…
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
| Parameter | Type | Description |
|---|---|---|
file_name | string | The name for the uploaded file |
mime_type | string | The file type. If not provided, will be inferred from the URL or Content-Type header. Supported: text (txt, csv, json, html, md), pdf, images (png, jpeg, gif). Defaults to None (auto-detect). |
source_url | string | The public download URL to fetch the file content from. The tool will download from this URL and upload to Google Drive |
shared_drive_id | string | If uploading to a folder in a shared drive using a path, provide the shared drive ID. Not needed when using folder IDs or uploading to My Drive. Defaults to None ('My Drive') |
destination_folder_path_or_id | string | The folder path like folder/subfolder or folder ID where to upload. If None, uploads to the root of 'My Drive'. If providing a path, it will be resolved within 'My Drive' by default. Defaults to None. |
GoogleDrive_WhoAmIGet comprehensive user profile and Google Drive environment information. This tool provides detailed information about the authenticated …
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.