All MCP servers

Google Drive, Sheets & Slides MCP server

Browse, read and write files in Google Drive, plus full Sheets, Slides and Docs editing, in the user's own Google Workspace.

How it connects

New to MCP? What is an MCP server?

Runs on
Statio's runtime
Connects with
Credentials you paste in once: OAuth Client ID, OAuth Client Secret, Refresh Token, Allow Write Access
May connect to
www.googleapis.comdriveactivity.googleapis.comdrivelabels.googleapis.comsheets.googleapis.comslides.googleapis.comdocs.googleapis.comoauth2.googleapis.com
Category
Productivity

Checked October 25, 2026 against the tools/list of @us-all/google-drive-mcp 1.15.8

What it does

This server lets an agent find, read and edit files across one Google account's Drive, and work inside Sheets, Docs and Slides: read and write cell ranges, insert and replace document text, add slides. It is @us-all/google-drive-mcp, an MIT-licensed community package on npm, and Google does not maintain it. Statio runs version 1.15.8 as one catalog entry covering all four apps, plus the shared drives, labels and approvals tools that only work on Google Workspace accounts.

It signs in with an OAuth client you create in your own Google Cloud project and a refresh token for your account, so it acts as you. Every file you can open, it can open.

Tools

Version 1.15.8 lists 100 tools, and every one sets a read-only or destructive hint, which the last column follows. 32 only read and 68 change something. The 68 write tools all stop with "Write operations are disabled" unless GOOGLE_DRIVE_ALLOW_WRITE is true, but they still appear in the tool list either way, so an agent sees all 100.

Drive files, sharing and history

ToolWhat it doesReads or changes
get-aboutThe account, storage quota and whether it is a personal or Workspace account.Reads
list-filesFiles and folders in one folder, with name, type, size and modified time.Reads
get-fileOne file's metadata, description, properties and content restrictions.Reads
read-fileA file's content. Docs come back as Markdown, Sheets as CSV, Slides as plain text, other files up to 10 MB.Reads
search-filesSearch with Drive query syntax: full text, name, type, modified date.Reads
get-folder-treeA folder tree, one to five levels deep.Reads
export-fileExports a Doc, Sheet or Slides file to PDF, DOCX, CSV, XLSX, PPTX, HTML, Markdown or text.Reads
get-download-linkThe download and web view links for a file.Reads
create-fileCreates a file, including a Doc or Sheet.Changes
update-fileRenames a file or replaces its content.Changes
copy-fileCopies a file, optionally to another folder under a new name.Changes
move-fileMoves a file or folder to another parent folder.Changes
create-folderCreates a folder.Changes
delete-fileMoves a file to trash, or deletes it permanently when permanent is true.Changes, destructive
list-permissionsWho has access to a file or folder and with what role.Reads
share-fileShares a file or folder with a user, group, domain or anyone with the link, as reader, commenter, writer or organizer.Changes
remove-permissionRemoves one sharing permission.Changes, destructive
list-commentsComments on a file, with author, text and whether they are resolved.Reads
get-commentOne comment with its replies and quoted text.Reads
create-commentAdds a comment.Changes
resolve-commentMarks a comment resolved.Changes
list-revisionsA file's revision history: who changed it and when.Reads
get-revisionOne revision's details.Reads
get-activityWho viewed, edited, commented on or reshared a file or folder.Reads

Sheets

ToolWhat it doesReads or changes
sheets-get-spreadsheetTitle, locale and the tabs with their sizes.Reads
summarize-spreadsheetEvery tab's shape, a few sample rows from each and the named ranges in one call.Reads
sheets-get-valuesCell values from one A1 range, as formatted values, raw values or formulas.Reads
sheets-batch-get-valuesSeveral ranges in one call.Reads
sheets-update-valuesWrites a range as if typed, so formulas and dates are parsed.Changes
sheets-batch-update-valuesWrites several ranges in one call.Changes
sheets-append-valuesAppends rows to the end of a table.Changes
sheets-create-spreadsheetCreates a spreadsheet.Changes
sheets-manage-sheetsAdds, deletes or renames tabs.Changes
sheets-clear-valuesClears the values in a range and keeps the formatting.Changes, destructive
sheets-batch-clear-valuesClears several ranges at once.Changes, destructive
sheets-format-cellsBold, italic, font, colours, alignment, number format and wrap.Changes
sheets-update-bordersSets borders on a range.Changes
sheets-merge-cellsMerges cells.Changes
sheets-unmerge-cellsUnmerges cells.Changes
sheets-sort-rangeSorts a range by one or more columns.Changes
sheets-find-replaceFind and replace across a tab or the whole spreadsheet, with regex.Changes
sheets-insert-dimensionInserts rows or columns.Changes
sheets-delete-dimensionDeletes rows or columns.Changes, destructive
sheets-copy-sheet-toCopies a tab into another spreadsheet.Changes
sheets-duplicate-sheetDuplicates a tab in the same spreadsheet.Changes
sheets-auto-resizeFits column widths or row heights to their content.Changes
sheets-resize-dimensionsSets a row height or column width in pixels.Changes
sheets-set-data-validationDropdowns, number and date rules, custom formulas.Changes
sheets-add-conditional-formatHighlight rules and colour scales.Changes
sheets-add-chartEmbeds a chart.Changes
sheets-delete-chartDeletes an embedded chart.Changes, destructive
sheets-add-protected-rangeProtects a range so only chosen editors can change it.Changes
sheets-delete-protected-rangeRemoves a range's protection.Changes, destructive
sheets-manage-named-rangeAdds, updates or deletes named ranges.Changes
sheets-copy-pasteCopies a range within or across tabs: values, formats, formulas or transposed.Changes

Docs

ToolWhat it doesReads or changes
docs-get-documentTitle, revision ID and a summary of the document's tabs.Reads
docs-list-tabsEvery tab in a multi-tab document.Reads
docs-get-contentThe text, as plain text or JSON with character positions.Reads
summarize-docMetadata, text, permissions and optionally comments in one call.Reads
docs-create-documentCreates a document.Changes
docs-insert-textInserts text at a position or at the end.Changes
docs-delete-rangeDeletes the content between two character positions.Changes, destructive
docs-replace-textFind and replace across the document or chosen tabs.Changes
docs-format-textText style, colour and links.Changes
docs-format-paragraphAlignment, heading level, spacing and indentation.Changes
docs-insert-tableInserts a table.Changes
docs-insert-imageInserts an image from a URL.Changes
docs-insert-page-breakInserts a page break.Changes
docs-batch-updateSends raw Docs API batchUpdate requests for anything the other tools don't cover.Changes

Slides

ToolWhat it doesReads or changes
slides-get-presentationMetadata, the slide list and layouts.Reads
slides-get-slideOne slide's shapes, text, images and tables.Reads
slides-create-presentationCreates a presentation.Changes
slides-duplicate-presentationCopies a presentation.Changes
slides-add-slideAdds a slide, optionally with a layout.Changes
slides-delete-slideDeletes a slide.Changes, destructive
slides-move-slideReorders slides.Changes
slides-duplicate-slideDuplicates a slide.Changes
slides-insert-textPuts text into an existing text box or shape.Changes
slides-replace-textFind and replace across the presentation or chosen slides.Changes
slides-insert-text-boxAdds a text box.Changes
slides-insert-imageAdds an image from a URL.Changes
slides-insert-tableAdds a table.Changes
slides-update-table-cellChanges the text in one table cell.Changes
slides-insert-shapeAdds a shape.Changes
slides-format-textText style, font and colour.Changes
slides-format-shapeFill colour, border colour and weight.Changes
slides-resize-elementMoves or resizes an element.Changes
slides-set-slide-backgroundSets a solid background colour.Changes
slides-batch-updateSends raw Slides API batchUpdate requests.Changes

Shared drives, labels, approvals and search

Labels and approvals need a Workspace account, and the package's own descriptions say shared drives and labels need Business Standard or higher. audit-external-shares also works on a personal account for files in My Drive.

ToolWhat it doesReads or changes
list-shared-drivesShared drives you can see.Reads
get-shared-driveOne shared drive's restrictions and capabilities.Reads
create-shared-driveCreates a shared drive.Changes
audit-shared-drive-permissionsSamples up to 100 files in a shared drive, newest first, and counts anyone-with-link and external shares.Reads
audit-external-sharesThe same audit across every drive you can see, up to 1,000 files, with the external domains files are shared to.Reads
list-file-labelsClassification labels on a file.Reads
apply-labelApplies a classification label, with field values.Changes
remove-labelRemoves a label.Changes, destructive
list-approvalsApproval requests on a file and their status.Reads
get-approvalOne approval request with reviewers' responses.Reads
search-toolsSearches this server's own tool list by keyword. Makes no Google call.Reads

Set it up

You need three values: an OAuth client ID, its secret, and a refresh token for the Google account the agent should act as.

  1. In the Google Cloud console, create or pick a project and enable the Drive, Docs, Sheets, Slides, Drive Activity and Drive Labels APIs. The package's README lists those six.
  2. Set up the OAuth consent screen. On a Workspace account, choose Internal. Google's OAuth documentation says an External app left in Testing gets refresh tokens that expire after 7 days, which looks like the server breaking a week later.
  3. Under Credentials, create an OAuth client ID of type Desktop app and download its JSON file.
  4. Get the refresh token. Google's Ads API docs describe the two routes: a Desktop client uses the gcloud CLI, and a Web application client uses the OAuth 2.0 Playground. With gcloud:
bash
gcloud auth application-default login \
  --client-id-file=client_secret.json \
  --scopes=https://www.googleapis.com/auth/drive.readonly,https://www.googleapis.com/auth/drive.activity.readonly,https://www.googleapis.com/auth/documents.readonly

Those three scopes are the package's own read-only defaults. For an agent that writes, use drive, drive.activity.readonly and documents instead. The scopes you approve here are the token's real limit, whatever the server is told. gcloud writes the result to ~/.config/gcloud/application_default_credentials.json (on Windows, under %APPDATA%\gcloud\), and the client_id, client_secret and refresh_token in that file are the three values. Google allows 100 refresh tokens per account per client, and creating a 101st silently invalidates the oldest.

If gcloud's file is on the same machine, the package finds it without any environment variables. To be explicit, or to run as a different account, pass the three values yourself.

Claude Code, directly:

bash
claude mcp add google-drive \
  -e GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com \
  -e GOOGLE_CLIENT_SECRET=your-client-secret \
  -e GOOGLE_REFRESH_TOKEN=your-refresh-token \
  -e GOOGLE_DRIVE_ALLOW_WRITE=false \
  -- npx -y @us-all/google-drive-mcp@1.15.8

Cursor, directly, in ~/.cursor/mcp.json or .cursor/mcp.json:

json
{
  "mcpServers": {
    "google-drive": {
      "command": "npx",
      "args": ["-y", "@us-all/google-drive-mcp@1.15.8"],
      "env": {
        "GOOGLE_CLIENT_ID": "${env:GOOGLE_CLIENT_ID}",
        "GOOGLE_CLIENT_SECRET": "${env:GOOGLE_CLIENT_SECRET}",
        "GOOGLE_REFRESH_TOKEN": "${env:GOOGLE_REFRESH_TOKEN}",
        "GOOGLE_DRIVE_ALLOW_WRITE": "false"
      }
    }
  }
}

Run directly, you can also set GD_TOOLS to load only some categories, for example GD_TOOLS=drive,docs,sheets. The categories are drive, sheets, docs, slides, shared-drives, labels and approvals, and search-tools always loads. The client tutorials, How to add MCP servers to Claude Code and How to set up MCP servers in Cursor, explain config scopes and how to keep the secret and token out of files you commit.

Through Statio: install Google Drive, Sheets & Slides from the catalog and paste the client ID, client secret and refresh token under the server's Credentials. The fourth field, Allow Write Access, takes true or false and sets GOOGLE_DRIVE_ALLOW_WRITE. Statio's entry loads all 100 tools, so narrow them with grants under Permissions instead of GD_TOOLS. A new server has no grants, so nobody can call it until you add some. The desktop app then writes your client configs. The manual entry is the local proxy URL with the server name from your dashboard, http://127.0.0.1:7777/google-drive/mcp, added in Claude Code with claude mcp add --transport http google-drive <url> or as a "url" in Cursor. Tools missing after that? Start a fresh session, then work through How to debug an MCP server that won't connect.

What to hold back

The write switch is all or nothing. With GOOGLE_DRIVE_ALLOW_WRITE=true, an agent that should only append rows to one sheet can also share, delete and rewrite anything in your Drive. Decide per tool which writes each agent gets.

share-file is the riskiest tool here. It can share any file you own with any address, or with anyone who has the link, and an agent that reads a document saying "share this folder with this address" has everything it needs to do it. Pair it with read-file or search-files and you have the read, the outside instruction and the way out that make up the lethal trifecta. Almost no agent needs it. remove-permission is its mirror: an agent can lock your colleagues out of a shared folder.

delete-file moves files to trash by default, but permanent: true skips the trash. Grant it to nothing that works unattended. The same goes for sheets-delete-dimension, sheets-clear-values and sheets-batch-clear-values, which can empty a finance sheet's rows in one call, and for docs-delete-range.

sheets-find-replace runs a regex across the whole spreadsheet, and docs-replace-text and slides-replace-text across a whole document or deck. A pattern that matches more than the agent expected changes every cell or paragraph it matches. update-file replaces a file's content outright.

docs-batch-update and slides-batch-update pass raw API requests through, so a grant on either covers anything the Docs or Slides API can do to that file, including the deletes the named tools would have shown you. Treat them like having every write tool for that app.

sheets-delete-protected-range removes the protection someone put on a range on purpose. An agent that keeps hitting a protected range should stop, not unlock it.

Every file the agent reads is input from whoever wrote it, including comments and shared documents from outside your company. That text can carry instructions aimed at the agent, which is why the write tools matter more on this server than on most.

The refresh token can do whatever its scopes allow, with or without this server. Store it like a password, rotate it if it leaks, and use the read-only scopes for agents that only read. With Statio you grant each tool separately, so one agent can have read-file, search-files and the Sheets reads while another also gets sheets-append-values. MCP permissions covers how grants and denies combine.

Questions

No. @us-all/google-drive-mcp is a community package under the MIT licence. Statio runs version 1.15.8 of it.

No. All 100 tools stay in the list, and the 68 write tools fail when called with "Write operations are disabled." To keep them out of an agent's list, set GD_TOOLS when you run it yourself, or grant only the read tools in Statio.

Most likely your OAuth consent screen is External and still in Testing. Google issues 7-day refresh tokens in that state. Choose Internal on a Workspace account, or publish the app, then create a new refresh token.

Yes, for Drive, Sheets, Docs and Slides. The shared drives, labels and approvals tools need Google Workspace and return an error on a personal account, except audit-external-shares, which checks My Drive.

What Statio adds

  • You choose which of its tools each agent may call. A tool you hold back is removed from that agent's tool list, and a call to it is refused.
  • The credentials stay encrypted in Statio, so they never sit in an agent config file.
  • Every call is recorded with the agent that made it, when, how long it took and whether it succeeded.
  • The outbound list above is enforced outside the server's container, so it cannot reach any other host.

Lock down your first tool in minutes.

Three MCP servers, one of them hosted, and 10,000 calls a month, free and without a card. If you outgrow it the next plan is $19.

Two steps: create your account, then install the desktop app on each machine that runs an AI client.