Connects Claude to Google Drive through an OAuth proxy architecture that handles all the token exchange without storing credentials. You get file operations (list, search, upload, download, move, trash), folder creation, comments and replies, and permission management. The file download tool can export native Google Docs and Sheets formats. Search uses Drive's query syntax so you can filter by name, MIME type, folder parent, or ownership. Runs as an HTTP server on localhost and manages the full OAuth flow from authorization through to API calls. Pair it with the author's google-docs-mcp or google-sheets-mcp servers if you need to edit document contents beyond what Drive's API provides.
Public tool metadata for what this MCP can expose to an agent.
GOOGLEDRIVE_ADD_FILE_SHARING_PREFERENCEModifies sharing permissions for an existing google drive file, granting a specified role to a user, group, domain, or 'anyone'.5 paramsModifies sharing permissions for an existing google drive file, granting a specified role to a user, group, domain, or 'anyone'.
rolestringtypestringdomainstringfile_idstringemail_addressstringGOOGLEDRIVE_COPY_FILEDuplicates an existing file in google drive, identified by its `file id`.2 paramsDuplicates an existing file in google drive, identified by its `file id`.
file_idstringnew_titlestringGOOGLEDRIVE_CREATE_COMMENTTool to create a comment on a file. use when you need to add a new comment to a specific file in google drive.5 paramsTool to create a comment on a file. use when you need to add a new comment to a specific file in google drive.
anchorstringcontentstringfile_idstringquoted_file_content_valuestringquoted_file_content_mime_typestringGOOGLEDRIVE_CREATE_DRIVETool to create a new shared drive. use when you need to programmatically create a new shared drive for collaboration or storage.6 paramsTool to create a new shared drive. use when you need to programmatically create a new shared drive for collaboration or storage.
namestringhiddenbooleanthemeIdstringcolorRgbstringrequestIdstringbackgroundImageFileobjectGOOGLEDRIVE_CREATE_FILECreates a new file or folder with metadata. use to create empty files or folders, or files with content by providing it in the request body (though this action primarily focuses on metadata creation).6 paramsCreates a new file or folder with metadata. use to create empty files or folders, or files with content by providing it in the request body (though this action primarily focuses on metadata creation).
namestringfieldsstringparentsarraystarredbooleanmimeTypestringdescriptionstringGOOGLEDRIVE_CREATE_FILE_FROM_TEXTCreates a new file in google drive from provided text content (up to 10mb), supporting various formats including automatic conversion to google workspace types.4 paramsCreates a new file in google drive from provided text content (up to 10mb), supporting various formats including automatic conversion to google workspace types.
file_namestringmime_typestringparent_idstringtext_contentstringGOOGLEDRIVE_CREATE_FOLDERCreates a new folder in google drive, optionally within a parent folder specified by its id or name; if a parent name is provided but not found, the action will fail.2 paramsCreates a new folder in google drive, optionally within a parent folder specified by its id or name; if a parent name is provided but not found, the action will fail.
parent_idstringfolder_namestringGOOGLEDRIVE_CREATE_REPLYTool to create a reply to a comment in google drive. use when you need to respond to an existing comment on a file.5 paramsTool to create a reply to a comment in google drive. use when you need to respond to an existing comment on a file.
actionstringfieldsstringcontentstringfile_idstringcomment_idstringGOOGLEDRIVE_CREATE_SHORTCUT_TO_FILETool to create a shortcut to a file or folder in google drive. use when you need to link to an existing drive item from another location without duplicating it.8 paramsTool to create a shortcut to a file or folder in google drive. use when you need to link to an existing drive item from another location without duplicating it.
namestringtarget_idstringincludeLabelsstringtarget_mime_typestringsupportsAllDrivesbooleankeepRevisionForeverbooleanignoreDefaultVisibilitybooleanincludePermissionsForViewstringGOOGLEDRIVE_DELETE_COMMENTDeletes a comment from a file. use when you need to remove a specific comment from a google drive file.2 paramsDeletes a comment from a file. use when you need to remove a specific comment from a google drive file.
file_idstringcomment_idstringGOOGLEDRIVE_DELETE_DRIVETool to permanently delete a shared drive. use when you need to remove a shared drive and its contents (if specified).3 paramsTool to permanently delete a shared drive. use when you need to remove a shared drive and its contents (if specified).
driveIdstringallowItemDeletionbooleanuseDomainAdminAccessbooleanGOOGLEDRIVE_DELETE_PERMISSIONDeletes a permission from a file by permission id. use when you need to revoke access for a specific user or group from a file.4 paramsDeletes a permission from a file by permission id. use when you need to revoke access for a specific user or group from a file.
file_idstringpermission_idstringsupportsAllDrivesbooleanuseDomainAdminAccessbooleanGOOGLEDRIVE_DELETE_REPLYTool to delete a specific reply by reply id. use when you need to remove a reply from a comment on a file.3 paramsTool to delete a specific reply by reply id. use when you need to remove a reply from a comment on a file.
file_idstringreply_idstringcomment_idstringGOOGLEDRIVE_DOWNLOAD_FILEDownloads a file from google drive by its id. for google workspace documents (docs, sheets, slides), optionally exports to a specified `mime type`. for other file types, downloads in their native format regardless of mime type.2 paramsDownloads a file from google drive by its id. for google workspace documents (docs, sheets, slides), optionally exports to a specified `mime type`. for other file types, downloads in their native format regardless of mime type.
file_idstringmime_typestringapplication/vnd.openxmlformats-officedocument.wordprocessingml.document · application/vnd.oasis.opendocument.text · application/rtf · application/pdf · text/plain · application/zipGOOGLEDRIVE_EDIT_FILEUpdates an existing google drive file by overwriting its entire content with new text (max 10mb).3 paramsUpdates an existing google drive file by overwriting its entire content with new text (max 10mb).
contentstringfile_idstringmime_typestringGOOGLEDRIVE_EMPTY_TRASHTool to permanently delete all of the user's trashed files. use when you want to empty the trash in google drive.2 paramsTool to permanently delete all of the user's trashed files. use when you want to empty the trash in google drive.
driveIdstringenforceSingleParentbooleanGOOGLEDRIVE_FILES_MODIFY_LABELSModifies the set of labels applied to a file. returns a list of the labels that were added or modified. use when you need to programmatically change labels on a google drive file, such as adding, updating, or removing them.3 paramsModifies the set of labels applied to a file. returns a list of the labels that were added or modified. use when you need to programmatically change labels on a google drive file, such as adding, updating, or removing them.
kindstringfile_idstringlabel_modificationsarrayGOOGLEDRIVE_FIND_FILETool to list or search for files and folders in google drive. use when you need to find specific files based on query criteria or list contents of a drive/folder.10 paramsTool to list or search for files and folders in google drive. use when you need to find specific files based on query criteria or list contents of a drive/folder.
qstringfieldsstringspacesstringcorporastringuser · drive · domain · allDrivesdriveIdstringorderBystringpageSizeintegerpageTokenstringsupportsAllDrivesbooleanincludeItemsFromAllDrivesbooleanGOOGLEDRIVE_FIND_FOLDERTool to find a folder in google drive by its name and optionally a parent folder. use when you need to locate a specific folder to perform further actions like creating files in it or listing its contents.7 paramsTool to find a folder in google drive by its name and optionally a parent folder. use when you need to locate a specific folder to perform further actions like creating files in it or listing its contents.
starredbooleanname_exactstringname_containsstringmodified_afterstringname_not_containsstringfull_text_containsstringfull_text_not_containsstringGOOGLEDRIVE_GENERATE_IDSGenerates a set of file ids which can be provided in create or copy requests. use when you need to pre-allocate ids for new files or copies.3 paramsGenerates a set of file ids which can be provided in create or copy requests. use when you need to pre-allocate ids for new files or copies.
typestringcountintegerspacestringMCP server for Google Drive - list, search, upload, download, and manage files and folders.
Answer from files: "What was our revenue target in the Q2 board deck?" → searches Drive, reads the relevant doc, and answers your question.
Project scaffolding: Starting a new vendor onboarding → creates a folder structure with subfolders for contracts, compliance, deliverables, and meeting notes, plus template docs and sheets.
Feedback synthesis: "Summarize the feedback from my manager across my last 10 presentation decks" → reads comments from multiple files and identifies themes and development areas.
Localization workflow: "We're onboarding contractors in Japan - translate the onboarding folder from English to Japanese and flag anything that needs local adaptation (HR policies, holidays, etc.)" → reads multiple docs, translates, and highlights areas needing review.
(These are just examples - any workflow that needs file search, reading, or organization can use this. Use in combination with google-docs-mcp for reading/editing Google Docs, or google-sheets-mcp for Google Sheets.)
http://localhost:3000/callback to Authorized redirect URIsGOOGLE_CLIENT_ID='your-client-id' \
GOOGLE_CLIENT_SECRET='your-client-secret' \
MCP_TRANSPORT=http \
npm start
The server runs on http://localhost:3000 by default. Change with PORT=3001.
claude mcp add --transport http google-drive-mcp http://localhost:3000/mcp
This server acts as an OAuth proxy to Google:
graph LR
A[MCP client] <--> B[google-drive-mcp] <--> C[Google OAuth/API]
/.well-known/oauth-authorization-server/register returns the Google OAuth client credentials/authorize redirects to Google, encoding the client's callback URL in state/callback receives the code from Google and forwards to the client's callback/token proxies token requests to Google, injecting client credentials/mcp handles MCP requests, using the bearer token to call Drive APIThe server holds no tokens or state - it just proxies OAuth to Google.
| Tool | Description |
|---|---|
| Files | |
files_list | List/search files using Drive query syntax |
file_get | Get file metadata |
file_download | Download file content (supports export for Google Docs/Sheets) |
file_upload | Upload a new file |
file_update | Update file content or metadata |
file_copy | Copy a file |
file_move | Move a file to a different folder |
file_trash | Move to trash |
file_untrash | Restore from trash |
file_delete | Permanently delete |
| Folders | |
folder_create | Create a new folder |
| Comments | |
comments_list | List comments on a file |
comment_get | Get a comment and its replies |
comment_create | Add a comment to a file |
comment_reply | Reply to a comment |
comment_resolve | Resolve or unresolve a comment |
| Replies | |
replies_list | List replies to a comment |
reply_get | Get a specific reply |
reply_update | Update a reply |
reply_delete | Delete a reply |
| Permissions | |
permissions_list | List who has access to a file |
permission_get | Get a specific permission |
permission_create | Share a file with a user, group, domain, or anyone |
permission_update | Change a user's access level |
permission_delete | Revoke access to a file |
The files_list tool supports Drive's query syntax for filtering:
# By name
name contains 'report'
name = 'Budget 2024'
# By type
mimeType = 'application/pdf'
mimeType = 'application/vnd.google-apps.folder'
mimeType = 'application/vnd.google-apps.document'
# By folder
'folder-id' in parents
# By ownership
'user@example.com' in owners
# Combined
name contains 'report' and mimeType = 'application/pdf'
drive - Full access to Drive filesPull requests are welcomed on GitHub! To get started:
npm installnpm run test to run testsnpm run buildVersions follow the semantic versioning spec.
To release:
npm version <major | minor | patch> to bump the versiongit push --follow-tags to push with tagsGOOGLE_ACCESS_TOKEN*secretGoogle OAuth access token with Drive scopes.
MCP_TRANSPORT*Transport type.
GOOGLE_CLIENT_ID*Google OAuth client ID.
GOOGLE_CLIENT_SECRET*secretGoogle OAuth client secret.
csoai-org/pdf-document-mcp
xt765/mcp-document-converter
io.github.xjtlumedia/markdown-formatter
io.github.ai-aviate/better-notion
suekou/mcp-notion-server
meterlong/mcp-doc