gdrive_searchLABSCO SUMMARY
Remote changes who has to hold the credentials.
Because the Worker is the authorization server, each user signs in as themselves and the tokens live in Cloudflare KV rather than in a config file on a laptop — that is the difference from the stdio Drive servers this was adapted from. Check the ceilings before you commit: uploads cap at 5 MB, exports at 10 MB, and a request has 30 seconds before Workers cuts it off. The version is marked alpha.
What it is
A Google Drive and Sheets server that runs on Cloudflare Workers rather than as a local process. It is a complete OAuth 2.0 authorization server with PKCE and dynamic client registration, so an MCP client discovers the endpoints, registers itself, and sends the user through Google sign-in — no key files on anyone's laptop.
What you get
- Finding files —
gdrive_searchfor basic search,gdrive_search_advancedfor filters on MIME type, owner, dates and shared drives gdrive_read_filereads a file, with 22+ export formats including PDF, DOCX, XLSX and Markdown- Writing —
gdrive_create_folder,gdrive_upload_file,gdrive_delete_file(to trash),gdrive_move_file gdrive_add_permissionshares a file or folder as reader, writer, commenter or owner- Sheets —
gsheets_readbatch-reads multiple ranges,gsheets_update_cellwrites one cell,gsheets_append_rowadds rows - Token handling is automatic: Google tokens refresh behind the scenes, access tokens expire in 1 hour, stored tokens are cleaned up after 30 days
Requirements
You deploy this yourself. It needs a Cloudflare account with Workers (the free tier works), Node.js LTS (v18+), the Wrangler CLI, and a Google Cloud project with the Drive and Sheets APIs enabled. Two KV namespaces — KV_TOKENS and KV_CLIENTS — are created with Wrangler and their IDs written into wrangler.toml; GOOGLE_CLIENT_ID goes in [vars] and GOOGLE_CLIENT_SECRET is set with wrangler secret put. The OAuth client is a Web application with https://your-worker.workers.dev/google/callback as redirect URI and the drive and spreadsheets scopes. Clients connect to the /sse endpoint. Published as mcp-gdrive-cf version 0.4.0-alpha.1.
Setup effort
Follow the published steps — npm install -g wrangler
USE CASES
Finding a document nobody can remember the name of
Search with filters on type, owner and date instead of scrolling Drive.
Reading a Google Doc as Markdown
Export the file in a format the model can work with rather than a link it cannot open.
Appending rows to a tracking sheet
Add entries to a spreadsheet from the conversation, without opening Sheets.
Sharing a folder with someone at the right level
Grant reader or writer access explicitly rather than sending a link with unclear permissions.
Giving a whole team access without distributing keys
Each person completes Google sign-in through the Worker; their tokens stay in Cloudflare KV.
11 tools
Listed in project docs. Your client may show a different list.
gdrive_search_advancedgdrive_read_filegdrive_create_foldergdrive_upload_filegdrive_delete_filegdrive_move_filegdrive_add_permissiongsheets_readgsheets_update_cellgsheets_append_rowBEFORE YOU INSTALL
What to know first
Tools you get
11 tools named in the project's documentation.
Requires
- A Cloudflare account with Workers (free tier works)
- A Google Cloud project with the Drive and Sheets APIs enabled
- Node.js LTS (v18+) and the Wrangler CLI
INSTALLATION
Connect your client
Server setup
You deploy this Worker yourself before any client can connect. Prerequisites: a Cloudflare account with Workers, Node.js LTS (v18+), and a Google Cloud project with the Drive and Sheets APIs enabled and an OAuth 2.0 Web application client whose redirect URI is https://<YOUR_WORKER>.workers.dev/google/callback.
npm install -g wrangler
git clone https://github.com/brianmoney/mcp-gdrive-cf.git
cd mcp-gdrive-cf
npm install
wrangler kv namespace create KV_TOKENS
wrangler kv namespace create KV_CLIENTSCopy the two namespace IDs into the [[kv_namespaces]] entries in wrangler.toml, and set GOOGLE_CLIENT_ID under [vars] there to your own client ID.
wrangler secret put GOOGLE_CLIENT_SECRET
wrangler deployPoint your client at the /sse URL of the Worker you deployed, using one of the client blocks below.
MCP Clients
VS Code
{
"servers": {
"gdrive": {
"url": "https://<YOUR_WORKER>.workers.dev/sse",
"authorization": {
"type": "oauth2"
}
}
}
}Cline
{
"mcpServers": {
"gdrive": {
"type": "sse",
"url": "https://<YOUR_WORKER>.workers.dev/sse"
}
}
}