Skip to content
Agentmart
Submit a tool

Google Drive Files MCP

Minimal MCP server for Google Drive file management and Google Sheets editing.

Connector by zayansalman · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)
Write a review

Chalk Labs

Need help deploying Google Drive Files MCP?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/zayansalman-google-drive-files-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Minimal MCP server for Google Drive file management and Google Sheets editing.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
6 read · 13 write · 3 delete · 1 not yet classified
Secrets
2 (API keys, tokens or passwords)
Install scripts
Not scanned yet
Runs as
Python package

Tools by what they do 23

Read from the source code; the running server may list different tools.

Read 6 · Look things up without changing anything.

  • docs_get_info
  • docs_read
  • drive_search
  • sheets_format
  • sheets_get_info
  • sheets_read

Write 13 · Create, change, send or run things.

  • docs_append_text
  • docs_insert_text
  • docs_replace_text
  • drive_create_folder
  • drive_move
  • drive_upload_file
  • sheets_add_tab
  • sheets_append
  • sheets_batch_write
  • sheets_rename_tab
  • sheets_set_column_width
  • sheets_set_row_height
Show 1 more tools
  • sheets_write

Delete 3 · Delete, drop, revoke or wipe things.

  • docs_delete_range
  • sheets_clear
  • sheets_delete_tab

Not yet classified 1 · We could not tell from the name and description.

  • sheets_freeze_panes

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • GDRIVE_FILES_MCP_CREDENTIALS
  • GDRIVE_FILES_MCP_TOKEN

Other settings (environment variables or headers).

  • GDRIVE_FILES_MCP_SCOPES

Files it touches

  • Any path the agent passes to its tools

Tools (23)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • docs_append_text

    Append text at the end of the document body. Returns: JSON {inserted_at_index, chars_inserted}.

  • docs_delete_range

    Delete one precise content range [start_index, end_index) (indices from docs_read). Returns: JSON {deleted_range}.

  • docs_get_info

    Get a Google Doc's title and structure summary (paragraph/table counts, end index). Args: document: A Google Docs URL or a bare document ID. Returns: JSON {document_id, title, paragraphs, tables, end_index}.

  • docs_insert_text

    Insert text at a precise spot — by document index, or right after/before an anchor phrase. Provide exactly one of: index, after_text, or before_text. Anchors use the FIRST occurrence of the phrase. To insert a new paragraph, include a newline in `text` (e.g. leading '\n'). Everything else stays byte-for-byte the same. Args: document: Docs URL or ID. text: The text to insert. index: Document character index to insert at (from docs_read). after_text: Insert immediately after the first occurrence of this anchor phrase. before_text: Insert immediately before the first occurre…

  • docs_read

    Read a Doc's text WITH per-segment document character indices — read this before editing. The indices let you target surgical edits precisely. Table cells include their row/col. Args: document: Docs URL or ID. Returns: JSON {document_id, title, text, end_index, segments: [{text, start_index, end_index, in_table, row, col}]}.

  • docs_replace_text

    Replace every occurrence of a phrase with another — all surrounding content/formatting is left intact. The cleanest surgical edit: change one phrase without touching anything else in the document. Args: document: Docs URL or ID. find: The exact text to find. replace: The replacement text. match_case: Whether the match is case-sensitive. Default False. Returns: JSON {find, replace, occurrences_changed}.

  • drive_create_folder

    Create a new folder in Google Drive. Args: name: The new folder's name. parent: Optional destination — folder ID, URL, 'root', or an unambiguous existing folder name. Returns: JSON {id, name, mime_type, is_folder, parents, web_view_link}.

  • drive_move

    Move a file or folder into a destination folder (true move — changes which folder it lives in). Args: file: The item to move — a Drive URL or file/folder ID. dest_folder: Destination — folder ID, URL, 'root', or an unambiguous existing folder name. keep_existing_parents: If True, ADD to dest_folder without removing it from its current folder(s). Returns: JSON {id, name, is_folder, moved_from, moved_to, parents_now, web_view_link}.

  • drive_search

    Search Google Drive for files and/or folders. Use this to find an item to move and its destination folder. Args: query: Plain string (auto-wrapped as a filename search) or raw Drive query syntax. only_folders: If True, return only folders (handy for picking a destination). max_results: Max items to return. Clamped to [1, 100]. Default 20. Returns: JSON array of {id, name, mime_type, is_folder, parents, web_view_link}.

  • drive_upload_file

    Upload a local file (any type, including large binaries like zip/pdf/images) into Google Drive. Streams the bytes from the path via a resumable media upload, so file size and binary fidelity are not a problem. The file is stored as-is (no Google-format conversion). Args: local_path: Path to the local file to upload ('~' is expanded). parent: Destination folder — ID, URL, 'root', or an unambiguous existing folder name. Default: My Drive root. name: Name for the file in Drive. Default: the local file's basename. mime_type: Override the MIME type. Default: guessed from the filen…

  • sheets_add_tab

    Add a new tab (sheet) to a spreadsheet. Returns: JSON {sheet_id, title, rows, cols}.

  • sheets_append

    Append rows after the last row of the table that `range_a1` belongs to (does not overwrite existing rows). Args: spreadsheet: Sheets URL or ID. range_a1: A range inside the target table, e.g. 'Sheet1!A1' or 'Sheet1!A:D'. values: 2D array of rows to append. value_input_option: USER_ENTERED | RAW. Returns: JSON {updated_range, appended_rows, updated_cells}.

  • sheets_batch_write

    Write several ranges in one atomic call. Args: spreadsheet: Sheets URL or ID. updates: list of {"range": "<A1>", "values": [[...]]} objects. value_input_option: USER_ENTERED | RAW. Returns: JSON {total_updated_cells, total_updated_ranges}.

  • sheets_clear

    Clear the VALUES in a range (formatting is left intact). Returns the prior contents under `before`. Args: spreadsheet: Sheets URL or ID. range_a1: A1 range to clear, e.g. 'Sheet1!A2:D100'. Returns: JSON {cleared_range, before}.

  • sheets_delete_tab

    Delete a tab (DESTRUCTIVE). `tab` is the tab title (or its numeric sheetId as a string). Returns: JSON {deleted_sheet_id, deleted_title}.

Show 8 more tools
  • sheets_format

    Format a range: number pattern, bold, background colour, and/or text wrap. Pass at least one. Args: spreadsheet: Sheets URL or ID. range_a1: A1 range, e.g. 'Sheet1!B2:B10'. number_format: A number pattern, e.g. '#,##0.00', '0.00%', '$#,##0.00'. bold: True/False to set bold. background: Cell background as '#RRGGBB'. wrap: True to wrap text in the cell; False to restore Sheets' default overflow behaviour. Returns: JSON {sheet_id, range, applied}.

  • sheets_freeze_panes

    Freeze (or unfreeze) header rows/columns for a tab so they stay visible while scrolling. Args: spreadsheet: Sheets URL or ID. tab: Tab title (or its numeric sheetId as a string). rows: Rows to freeze from the top. 0 unfreezes rows. Omit to leave untouched. cols: Columns to freeze from the left. 0 unfreezes columns. Omit to leave untouched. Returns: JSON {sheet_id, title, frozen_rows, frozen_cols}.

  • sheets_get_info

    List a spreadsheet's tabs and their sizes — call this first to learn the tab names and dimensions. Args: spreadsheet: A Google Sheets URL or a bare spreadsheet ID. Returns: JSON {spreadsheet_id, title, tabs: [{title, sheet_id, index, rows, cols}]}.

  • sheets_read

    Read the values in an A1 range. Use this before writing so you can see what's there. Args: spreadsheet: Sheets URL or ID. range_a1: A1 range, e.g. 'Sheet1!A1:D10' or 'A1:D10' (defaults to the first tab if no tab is given). render_option: FORMATTED_VALUE (as shown) | UNFORMATTED_VALUE (raw numbers) | FORMULA (show formulas). Returns: JSON {range, values (2D array), rows, cols}.

  • sheets_rename_tab

    Rename a tab. `tab` is the current tab title (or its numeric sheetId as a string). Returns: JSON {sheet_id, old_title, new_title}.

  • sheets_set_column_width

    Set column width in pixels for a whole-column range, e.g. 'Sheet1!A:C'. Args: spreadsheet: Sheets URL or ID. range_a1: A whole-column A1 range, e.g. 'Sheet1!A:C' or 'A:C' (defaults to the first tab). pixel_size: Width in pixels. Returns: JSON {sheet_id, dimension, range, pixel_size}.

  • sheets_set_row_height

    Set row height in pixels for a whole-row range, e.g. 'Sheet1!2:5'. Args: spreadsheet: Sheets URL or ID. range_a1: A whole-row A1 range, e.g. 'Sheet1!2:5' or '2:5' (defaults to the first tab). pixel_size: Height in pixels. Returns: JSON {sheet_id, dimension, range, pixel_size}.

  • sheets_write

    Overwrite a range with new values. Returns the PRIOR contents (`before`) so the overwrite is auditable. Args: spreadsheet: Sheets URL or ID. range_a1: A1 range to write into, e.g. 'Sheet1!B2:B10'. values: 2D array of cell values (rows of columns), e.g. [[1],[2],[3]] or [["Q1", 100]]. value_input_option: USER_ENTERED (parse numbers/dates, and '=SUM(..)' becomes a formula) | RAW (literal text). Returns: JSON {updated_range, updated_cells, updated_rows, updated_columns, before, after}.

Signals

Stars
0
Forks
1
Open issues
0
Weekly downloads
33
Last commit
Jul 12, 2026 (3 months ago)
Last release
Jun 22, 2026 (4 months ago)
Last package publish
Jun 22, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.zayansalman/google-drive-files-mcp
Version
0.3.0
Auth
API key
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from zayansalman

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get Google Drive Files MCP running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying Google Drive Files MCP?

CallGet help
Cite this page

Google Drive Files MCP. Agent Mart. https://agentmart.dev/connectors/zayansalman-google-drive-files-mcp (last updated 2026-10-24)