Skip to main content
Glama
aaronsb

Google Workspace MCP Server

by aaronsb

manage_sheets

Read, write, and manage Google Sheets: append rows, update ranges, clear cells, and handle tabs (add, rename, delete, duplicate, copy) across spreadsheets.

Instructions

Read, write, and manage Google Sheets spreadsheets.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
emailYesAccount email address
indexNoPosition among tabs (0-based). Appended at the end if omitted.
rangeNoA1 notation range (e.g. 'Sheet1!A1:D10', or just 'Sheet1' for a whole tab). On `append`, the target tab — defaults to 'Sheet1'; use 'MyTab' or 'MyTab!A:Z' to append to a specific one.
titleNoOn `create`, the spreadsheet title (defaults to 'Untitled spreadsheet'); on `renameSpreadsheet`, its new title. On `addSheet`, the name of the new TAB; on `renameSheet`, that tab's new title; on `duplicateSheet`, the name for the copy (defaults to 'Copy of <source>').
valuesNoComma-separated values for a single row (e.g. 'Alice,100,true')
sheetIdNoSheet ID of the tab, from `manage_sheets get`. On `duplicateSheet` and `copySheetTo`, the SOURCE tab to copy.
rowCountNoInitial row count (default 1000)
operationYesget: get spreadsheet metadata and sheet names | create: create a new spreadsheet (optionally with a title) | read: read cell values from a range; rendered rows are prefixed with their sheet row number (e.g. 'R3: …') since blank rows are otherwise invisible | append: append rows to a spreadsheet (rows land after the last row of existing data in the target range) | getValues: get values from a specific range (raw API); rendered rows are prefixed with their sheet row number (e.g. 'R3: …') | updateValues: write values to a specific range | clearValues: clear cell values from a range (structure preserved) | addSheet: add a new tab (sheet) to the spreadsheet | renameSheet: rename a tab (sheet) within a spreadsheet | deleteSheet: delete a tab (sheet) from the spreadsheet — irreversible | duplicateSheet: duplicate a tab within the same spreadsheet | renameSpreadsheet: rename the spreadsheet (the document title, not a tab) | copySheetTo: copy a tab from this spreadsheet into another spreadsheet
jsonValuesNoJSON 2D array of rows (e.g. '[["a","b"],["c","d"]]'). Use for bulk and multi-row writes.
columnCountNoInitial column count (default 26)
spreadsheetIdNoSpreadsheet ID. On `copySheetTo`, the SOURCE spreadsheet.
valueInputOptionNoHow input is interpreted: USER_ENTERED (default, parses formulas/types) or RAW
destinationSpreadsheetIdNoDestination spreadsheet ID
Install Server

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, but 'read, write, and manage' only vaguely signals mutation. It does not mention side effects, irreversibility like deleteSheet, creation behavior, or output shape; those details appear later in the schema but are absent from the description itself.

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 a single front-loaded sentence with no filler, and every word earns its place. It is appropriately terse given the schema's rich parameter and operation documentation, though it offers no structured guidance for the many operations.

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

Completeness3/5

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

The input schema is rich and covers all parameters and operation semantics, so the generic description is not fatal. However, with no output schema and no usage direction beyond 'Google Sheets,' an agent must rely almost entirely on the schema to understand call patterns, operation selection, and expected results.

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

Parameters3/5

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

Schema description coverage is 100%, and every parameter has a detailed description, so the baseline is 3. The tool description adds no parameter-level meaning beyond identifying the domain, but the schema fully compensates.

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

Purpose4/5

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

The description, 'Read, write, and manage Google Sheets spreadsheets,' names a specific resource and clear high-level verbs. It distinguishes the tool from sibling manage_* tools by explicitly targeting Google Sheets, though it does not enumerate the 13 operations or contrast directly with tools like manage_docs or manage_drive.

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

Usage Guidelines3/5

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

Use is implied by the resource phrase 'Google Sheets spreadsheets,' which gives basic context among the manage_* sibling suite. There is no explicit when-to-use/when-not-to-use guidance, and no alternatives are mentioned.

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

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/aaronsb/google-workspace-mcp'

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