Other formats agents might prefer:
markdownjsonllms.txt

Agent? You probably want markdown or json, or Pod over MCP.

Reported issues for Google Drive MCP

Pod holds 23 of 29 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to Google Drive MCP.

Most discussed

Design proposal: optional OAuth 2.1 authorization server for team / multi-user deployments

Opening this as a design proposal rather than a PR, because the changes are large and opinionated. Happy to break it into pieces if any of it sounds interesting to land upstream.

Context

Over at RS we deploy this server on Cloud Run behind `https://drive-mcp.relevantsearch.com\` and expose it to our team via the claude.ai custom-connector flow. The current server supports single-user auth (local OAuth with tokens on disk, or stdio mode with env-var credentials) — both of those break down w

Read the thread · 2026-04-22 · closed · external user · 5 comments

readGoogleDoc / getGoogleDocContent only returns first tab

Problem

listDocumentTabs correctly lists all tabs in a multi-tab Google Doc, but readGoogleDoc and getGoogleDocContent only return the content of the first (default) tab. Content from additional tabs is silently ignored.

Expected behavior

There should be a way to read content from any tab, e.g. by accepting an optional tabId parameter (as returned by listDocumentTabs).

Context

The Google Docs API requires setting includeTabsContent=true and iterating over `document.tabs

Read the thread · 2026-02-24 · closed · external user · 1 comment

Request to add capability to Insert Inline Images

One function would love is adding capability to insert inline images to Google Docs Will be useful for us to prepare Support KT Documents. Request: Can be on the lines of

google-docs-insertInlineImage(documentId, imageUrl, index, widthPt?, heightPt?) A convenience wrapper that internally calls batchUpdate with insertInlineImage

Read the thread · 2026-02-23 · closed · external user · 2 comments

Create internal documentation for colleagues to enable this MCP

Goal

Create setup instructions so colleagues can enable the Google Drive MCP server in their Claude Code environments.

Should cover:

  • Prerequisites (GCP project, OAuth credentials)
  • Installation and build steps
  • OAuth authentication flow
  • Claude Code MCP configuration (~/.claude.json)
  • Available tools overview
  • Troubleshooting common issues (esbuild path resolution, token refresh, etc.)

Read the thread · 2026-02-08 · closed · outside contributor · 1 comment

Add downloadFile tool for streaming Drive files to disk

Problem

The MCP server has uploadFile (local → Drive) but no reverse operation. Reading Drive files through MCP loads content into the LLM context window — impractical for large files.

Solution

Add a downloadFile tool that streams Google Drive files directly to the local filesystem using pipeline() from stream/promises for proper backpressure.

Features

  • Google Workspace files (Docs, Sheets, Slides, Drawings) are exported to configurable formats
  • Regular files are download

Read the thread · 2026-02-08 · closed · outside contributor · 1 comment

Invalid JSON Schema: "optional" keyword breaks Claude Code API integration

The tool input schemas use "optional": true on properties, which is not a valid JSON Schema keyword. This causes Claude Code (and likely other MCP clients using the Anthropic API) to reject the tools with an invalid_request_error. Error Message API Error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"tools.51.custom.input_schema: JSON schema is invalid. It must match JSON Schema draft 2020-12 (https://json-schema.org/draft/2020-12). Learn more about tool use at https://d

Read the thread · 2025-12-31 · closed · external user · 2 comments

listFolder returns empty for Shared Drive folders (missing supportsAllDrives parameter)

When using listFolder on a Google Shared Drive folder, the response returns empty even though the folder contains files. Search functionality works correctly and finds files in Shared Drives.

Environment:

  • MCP Server: @piotr-agier/google-drive-mcp
  • Client: Claude Code
  • Google Workspace account with Shared Drives enabled
  • OAuth app set to "Trusted" in Google Workspace Admin Console

Steps to Reproduce:

  1. Get a folder ID from a Google Shared Drive
  2. Call `lis

Read the thread · 2025-12-12 · closed · external user · 7 comments

Search tool limited to 10 results, no pagination support

Description

The search tool is hardcoded to return a maximum of 10 results with no pagination support.

Issue Details

In src/index.ts, the search function uses:

pageSize: 10,

This is hardcoded and cannot be overridden by the user. Additionally, there is no mechanism to fetch subsequent pages of results using pageToken from the Google Drive API.

Impact

Users cannot retrieve search results beyond the first 10 matches, making it impossible to find all files matching

Read the thread · 2025-10-23 · closed · external user · 3 comments

Most recent

Token refresh is unbounded — a stalled refresh hangs every subsequent call on the server

AccountClientFactory.refreshIfNeeded() awaits client.refreshAccessToken() with no timeout, abort or retry. If the token endpoint stalls, the await never settles — and because inflightRefresh dedupes, every subsequent call awaits the same pending promise, so the whole server appears dead until it eventually resolves.

src/auth/accountClientFactory.ts:

const { credentials } = await client.refreshAccessToken();

Two things make it hard to diagnose. REFRESH_BUFFER_MS fires the r

Read the thread · 2026-08-16 · open · external user · 0 comments

manage_accounts add keeps stale OAuth client after reauthentication

Problem

After reauthenticating an existing account with manage_accounts add, the stored account details update, but Drive calls can keep using the old revoked OAuth client until the MCP server restarts.

Simple example

  1. Start the server and use account work.
  2. Revoke its Google grant.
  3. Run manage_accounts add work and complete the login.
  4. Run a Drive call with account: "work".

Expected: the call uses the new token.

Actual: the server says the authorization was revoked or

Read the thread · 2026-08-15 · closed · external user · 0 comments

search tool doesn't support orderBy — results come back unsorted, error-prone for "most recent" queries

Summary

The search tool's files.list() call (src/tools/drive.ts, in the case "search": handler) does not pass an orderBy parameter, so results come back in Google Drive's default order rather than sorted by modification/creation time.

Notably, listFolder right below it in the same file already passes orderBy: "name" to the same API — the codebase clearly knows how to do this, it's just not wired into search.

Why this matters

For a query like "what have I modified recent

Read the thread · 2026-08-11 · closed · external user · 0 comments

OAuth token refresh fails on Node 24 with "Premature close" (gaxios 6 / node-fetch 2)

Problem Description

When running `@piotr-agier/google-drive-mcp` under **Node.js 24** (e.g., v24.17.0), authenticating or refreshing OAuth tokens fails with the following error:

```text
Authentication Failed
Invalid response body while trying to fetch https://oauth2.googleapis.com/token: Premature close

Root Cause

The package specifies google-auth-library@^9.15.0 and googleapis@^144, which resolve to gaxios@6.7.1 -> node-fetch@2.7.0. Under Node 24 runtime,

Read the thread · 2026-08-09 · open · external user · 0 comments

readGoogleDoc format:"markdown" returns plain text — headings, bold/italic, bullets and tables are not converted

Summary

readGoogleDoc / readGoogleDocPaginated accept format: "markdown", but the output is effectively plain text — paragraph and character formatting is dropped. Headings, bold/italic, list bullets, and table structure all come back unstyled. Only inline images are actually rendered as markdown.

The practical impact is that a read-as-markdown → edit → write-back round trip silently flattens the document: every heading becomes body text, and there is no error or warning to indica

Read the thread · 2026-07-18 · closed · outside contributor · 0 comments

Shared Drives invisible & search returns 0 results (incl. My Drive) on 2.2.0 despite full auth/drive scope

Summary

On 2.2.0 (the current latest), the server cannot see any Shared Drive content and search returns zero results even for My Drive, despite the OAuth token holding the full https://www.googleapis.com/auth/drive scope and the same Google account being able to reach the files fine via the Drive REST API directly. There's no auth error — operations just come back empty / "file not found." So this looks broader than the usual "missing supportsAllDrives" Shared-Drive gap.

Env

Read the thread · 2026-06-24 · closed · external user · 0 comments

Feature request: create/convert a Doc from in-memory content (not only a server-local path)

First off, thanks for this server — the breadth of the Drive/Docs/Sheets/Slides surface is excellent, and we're running v2.2.0 in production. I use it with the Claude Managed Agents platform because the built-in MCP GDrive server is way too limited.

What I'm trying to do

Create a nicely-formatted Google Doc from an MCP client that talks to the server remotely over HTTP (in our case an Anthropic Managed Agent — no shared filesystem with the server).

The gap

The clean way to get a full

Read the thread · 2026-06-14 · closed · external user · 1 comment

readGoogleDoc and getGoogleDocContent drop embedded image content (no URL, no data)

Summary

When a Google Doc contains an inline image, both readGoogleDoc (any format) and getGoogleDocContent return a placeholder for the image but expose no way to access the underlying content. No URL, no base64, no drive-resource pointer. Any workflow that depends on the image (OCR, vision, attachment forwarding, intent extraction from a screenshot) is blocked.

Steps to reproduce Create a Google Doc with one text paragraph and one inline image (any source: paste from clipboard, insert from D

Read the thread · 2026-05-20 · closed · external user · 0 comments

addPermission fails for type:anyone/domain — emailAddress incorrectly required and always sent

Bug Description

addPermission unconditionally requires emailAddress and always passes it to the Google Drive REST API, even when type is anyone or domain. Drive rejects this with an error.

Reproduction

Tool: mcp__google-drive__addPermission
Arguments:
  fileId: <any valid file ID>
  emailAddress: "anyone@anyone.com"   # forced by required field
  type: "anyone"
  role: "reader"
  sendNotificationEmail: false

Result:

The specified emailAddress is invalid or not

[Read the thread](https://github.com/piotr-agier/google-drive-mcp/issues/131) · 2026-05-17 · closed · external user · 0 comments

### Need option to save tokens on large folder hierachy

Title:
Feature request: Add env var to disable MCP resources capability

Body:
## Summary

Add an environment variable (e.g. `GOOGLE_DRIVE_MCP_DISABLE_RESOURCES=1`) that, when set, causes the server to skip registering the MCP resources capability (`ListResourcesRequestSchema` and `ReadResourceRequestSchema` handlers) and omits `resources: {}` from the server capabilities block.

## Motivation

Some MCP clients / host environments either (1) enforce a tools-only policy, (2) perform poorly when `

[Read the thread](https://github.com/piotr-agier/google-drive-mcp/issues/115) · 2026-05-06 · closed · external user · 0 comments

### Getting stuck loading on Gemini

It logs in succesfully, but afterwards is stuck initializing on Gemini (cli)

If I run it in the terminal and connect via URL, the logs say the following several times per second:

[2026-04-27T18:08:21.661Z] Handling ListResources request: {"params":{"cursor":"~!!~AI9FV7RjmAS3jO4I6HYjQcGAbgIzML93UWKbKfaKaQnrRKQqXaSI9UrOvZUJ1U4eKkqb0PV_QFON9xOvnGdXhXcPDik24FnqQ4xPWv318P9PlnxtUUaSTwNC_WVlcU0nK94_mGlHttbqGsgl-2IyYjW3NdXBs99MstN05rs3yb0xDEkm19UpU3iJjCmkucLgtfWyxwfJKdDngP3dOocMFZvFogPbzFQBXvFfU_P

Read the thread · 2026-04-27 · closed · external user · 0 comments

Feature Request: Calendar Event attachments support

Google Calendar events can have file attachments, which the API returns as the property attachments[]. It would be useful if this property was part of the getCalendarEvent tool response.

Read the thread · 2026-04-23 · closed · external user · 0 comments

Add emailMessage support to addPermission and shareFile

Summary

The Google Drive API supports an emailMessage parameter on permissions.create that lets you include a custom message in the sharing notification email. This is the same "Add a message" field users see in the Google Drive sharing UI.

Currently, addPermission and shareFile both call permissions.create but don't expose the emailMessage parameter. This means there's no way to include a custom note when sharing — the recipient just gets a generic "X shared a file with you" em

Read the thread · 2026-04-18 · closed · outside contributor · 0 comments

multi account support

hello !

for example to connect to both a personal and a google workspace drive account

thanks !

Read the thread · 2026-04-14 · closed · external user · 0 comments

Support direct Google OAuth tokens

Summary

Right now the auth flow appears to require a local OAuth setup (gcp-oauth.keys.json, local browser flow, local callback server, token persistence, etc.). It would be very helpful to support supplying Google OAuth credentials directly so an external service can handle the OAuth flow and this MCP server can simply consume the resulting token.

Use case

A user may already have a separate web app, auth broker, or internal service that handles Google OAuth. In that setup, this MCP ser

Read the thread · 2026-03-11 · closed · outside contributor · 0 comments

The remaining reports are on the project's issue tracker.