Skip to main content
Glama
taylorwilsdon

Google Workspace MCP Server - Control Gmail, Calendar, Docs, Sheets, Slides, Chat, Forms & Drive

Update Drive File

update_drive_file
Destructive

Update a Google Drive file's content and properties in one call, preserving its ID, sharing, comments, and links. Supports replace, append, or prepend text and metadata changes.

Instructions

Updates metadata, properties, and/or content of a Google Drive file.

Providing one of content, file_path, or file_url replaces the file's content in place, preserving the existing file ID, sharing, comments, and links. For native Google Docs/Sheets/Slides the source is uploaded with its source MIME type so the Drive API applies the same format conversion as import_to_google_doc (markdown headings, tables, bold, etc.). For any other file (.md, .txt, .pdf, ...) there is nothing to convert, so the bytes are written back as-is under the file's own MIME type. Metadata and content can be updated in a single call.

mode='append'/'prepend' splice content onto the file's existing text server-side, so only the new text has to be supplied — no need to send the whole file back to rewrite it.

Drive shortcuts are handled according to the kind of update: supported resource-local metadata changes (rename, move, trash, star, description, and custom properties) apply to the supplied shortcut, while content replacement follows the shortcut and updates its target. To avoid applying metadata to the wrong resource, a shortcut call cannot combine content with resource-local metadata. Update the shortcut metadata and target content in separate calls.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoHow to apply the new content — 'replace' (default), 'append', or 'prepend'. Append/prepend require 'content' and a UTF-8 text file such as .md or .txt; a newline is inserted at the seam if neither side has one. For native Google Docs use insert_doc_elements, modify_doc_text, or find_and_replace_doc, which edit in place instead of rewriting the file.replace
nameNoNew name for the file.
contentNoNew text content for text-based formats (markdown, TXT, HTML).
file_idYesThe ID of the file to update. Required.
starredNoWhether to star/unstar the file.
trashedNoWhether to move file to/from trash.
file_urlNoRemote http(s) URL to fetch new content from.
file_pathNoLocal file path for binary formats (DOCX, ODT). Supports file:// URLs.
mime_typeNoNew MIME type (note: changing type may require content upload). For a shortcut ID, this must accompany content and applies to the resolved target.
propertiesNoCustom key-value properties for the file.
add_parentsNoComma-separated folder IDs to add as parents.
descriptionNoNew description for the file.
source_formatNoSource format hint for conversion (md, markdown, docx, txt, html, rtf, odt). Auto-detected when omitted, and ignored for non-Google files, which are uploaded without conversion. Provide at most one of content/file_path/file_url.
remove_parentsNoComma-separated folder IDs to remove from parents.
user_google_emailYesThe user's Google email address. Required.
writers_can_shareNoWhether editors can share the file. Pass the target ID directly; this cannot be changed on a shortcut resource.
copy_requires_writer_permissionNoWhether copying requires writer permission. Pass the target ID directly; this cannot be changed on a shortcut resource.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed3 schema fields changedv1.25.2
    • changedInput schema / properties / copy_requires_writer_permission / description
      Previous value: -"Whether copying requires writer permission."New value: +"Whether copying requires writer\npermission. Pass the target ID directly; this cannot be changed on a\nshortcut resource."
    • changedInput schema / properties / mime_type / description
      Previous value: -"New MIME type (note: changing type may require content upload)."New value: +"New MIME type (note: changing type may require\ncontent upload). For a shortcut ID, this must accompany content and applies\nto the resolved target."
    • changedInput schema / properties / writers_can_share / description
      Previous value: -"Whether editors can share the file."New value: +"Whether editors can share the file. Pass the\ntarget ID directly; this cannot be changed on a shortcut resource."
  2. Changed2 schema fields changedv1.24.0
    • addedInput schema / properties / mode
      Added value: +{
      +  "default": "replace",
      +  "description": "How to apply the new content — 'replace' (default), 'append', or\n'prepend'. Append/prepend require 'content' and a UTF-8 text file such as\n.md or .txt; a newline is inserted at the seam if neither side has one.\nFor native Google Docs use insert_doc_elements, modify_doc_text, or\nfind_and_replace_doc, which edit in place instead of rewriting the file.",
      +  "type": "string"
      +}
    • changedInput schema / properties / source_format / description
      Previous value: -"Source format hint for conversion\n(md, markdown, docx, txt, html, rtf, odt). Auto-detected when omitted.\nProvide at most one of content/file_path/file_url."New value: +"Source format hint for conversion\n(md, markdown, docx, txt, html, rtf, odt). Auto-detected when omitted, and\nignored for non-Google files, which are uploaded without conversion.\nProvide at most one of content/file_path/file_url."
  3. Addedv1.0.1

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (destructiveHint=true, readOnlyHint=false), the description discloses important behaviors: replacement happens in place while preserving file ID, sharing, comments, and links; source MIME conversion applies for native formats; append/prepend splice server-side; and shortcut updates route content to the target while metadata applies locally. This is rich behavioral context that materially shapes how an agent should invoke the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but dense and well-organized into focused paragraphs: core behavior, conversion semantics, append/prepend behavior, and shortcut handling. Almost every sentence adds operational value, though a few points such as 'there is nothing to convert' are slightly explanatory rather than strictly necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a high-complexity tool with 17 parameters, destructive behavior, shortcut edge cases, and format-conversion nuances, the description covers the critical decision points an agent needs. An output schema exists, so return-value documentation is not required here. The combination of rich annotations, full schema coverage, and this description makes the tool fully navigable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents each parameter individually. The description adds cross-parameter meaning that the schema does not: 'content', 'file_path', and 'file_url' are mutually exclusive for content replacement, metadata and content can be updated in one call, and shortcut-specific restrictions on combining content with resource-local metadata. This justifies a score above the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource pair: 'Updates metadata, properties, and/or content of a Google Drive file.' It further distinguishes content replacement from metadata updates and explains how native Google formats are converted, which separates this tool from siblings like import_to_google_doc and modify_doc_text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names alternatives: for native Google Docs append/prepend it directs agents to insert_doc_elements, modify_doc_text, or find_and_replace_doc, and it references import_to_google_doc for conversion behavior. It also states when not to combine operations, as with shortcuts, making the when-to-use guidance unusually concrete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/taylorwilsdon/google_workspace_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server