Skip to main content
Glama
vic08

Google Sheets Advanced MCP Server

by vic08

Google Sheets Advanced MCP Server

An MCP server that gives AI assistants full control over Google Sheets — not just read/write, but charts, pivot tables, formulas, formatting, and analytics.

What Makes This Different

Existing Google Sheets MCP servers only support basic CRUD (read cells, write cells). This server exposes the full Google Sheets API:

  • 15 chart types — bar, line, pie, scatter, histogram, waterfall, and more

  • Pivot tables — group, aggregate, cross-tabulate

  • Conditional formatting — color scales, value-based rules, custom formulas

  • Data validation — dropdowns, number constraints, checkboxes

  • Server-side analytics — summary stats, trend analysis, duplicate detection

  • 30 tools total — 9 free, 21 pro

Related MCP server: Google Sheets MCP Server

Installation

npx mcp-google-sheets-advanced

Or install globally:

pnpm add -g mcp-google-sheets-advanced

Quick Start

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "google-sheets-advanced": {
      "command": "npx",
      "args": ["-y", "mcp-google-sheets-advanced"],
      "env": {
        "GOOGLE_CLIENT_ID": "your-client-id",
        "GOOGLE_CLIENT_SECRET": "your-secret"
      }
    }
  }
}

On first run, a browser window opens for Google OAuth authentication.

Available Tools

Free Tier (Read Operations)

Tool

Description

sheets_list_spreadsheets

List accessible spreadsheets

sheets_get_spreadsheet_info

Get spreadsheet metadata

sheets_read_range

Read cell values from a range

sheets_read_multiple_ranges

Batch read multiple ranges

sheets_get_formulas

Get formulas from a range

sheets_get_sheet_metadata

Get sheet properties

sheets_list_named_ranges

List named ranges

sheets_list_charts

List charts

sheets_list_filter_views

List filter views

Pro Tier ($16/mo)

Tool

Description

sheets_write_range

Write values to a range

sheets_write_multiple_ranges

Batch write to multiple ranges

sheets_append_rows

Append rows to a table

sheets_clear_range

Clear values from a range

sheets_create_sheet

Add a new sheet

sheets_delete_sheet

Delete a sheet

sheets_create_chart

Create charts (15 types)

sheets_update_chart

Modify existing charts

sheets_delete_chart

Remove charts

sheets_create_pivot_table

Create pivot tables

sheets_add_conditional_formatting

Add conditional formatting

sheets_set_data_validation

Set data validation rules

sheets_format_cells

Format cells (fonts, colors, borders)

sheets_summarize_range

Compute summary statistics

sheets_find_duplicates

Find duplicate values

sheets_analyze_trends

Analyze trends with linear regression

sheets_create_named_range

Create named ranges

sheets_sort_range

Sort data

sheets_set_basic_filter

Apply/clear filters

sheets_protect_range

Protect ranges

sheets_find_replace

Find and replace

Configuration

Required Environment Variables

Variable

Description

GOOGLE_CLIENT_ID

OAuth client ID from Google Cloud Console

GOOGLE_CLIENT_SECRET

OAuth client secret

Optional

Variable

Description

Default

GOOGLE_TOKEN_PATH

Path to store OAuth tokens

~/.config/mcp-gsheets/tokens.json

Development

# Install dependencies
pnpm install

# Run in development mode
pnpm dev

# Build
pnpm build

# Run tests
pnpm test

# Type check
pnpm typecheck

# Test with MCP Inspector
pnpm inspect

License

MIT

Available Tools

30 tools
sheets_add_conditional_formattingC
Idempotent

Adds a conditional formatting rule to a range in a spreadsheet

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesThe A1 notation range to apply formatting to
formatNoCell format to apply when condition is met
valuesNoCondition values (e.g. threshold numbers, text to match, formula)
rule_typeYesThe type of conditional formatting rule
color_scaleNoColor scale configuration (only used when rule_type is color_scale)
spreadsheet_idYesThe ID of the spreadsheet

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare this is a non-destructive mutation (readOnlyHint=false, destructiveHint=false) that is idempotent. The description adds nothing beyond that: it doesn't say whether rules accumulate on a range, whether they can be overwritten or removed, or what permissions are needed.

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?

A single clean sentence with the verb and resource front-loaded and no wasted words. It is efficient, though arguably too terse to be fully useful.

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?

For a 6-parameter mutation tool with nested objects and no output schema, the full schema and annotations cover structural needs, but the description leaves behavioral questions open (rule accumulation, interaction with existing rules, effect on the target range).

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%, so every parameter including the nested format and color_scale objects is documented in the schema itself. The description adds no parameter meaning, which is the expected baseline when the schema does the heavy lifting.

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?

States a specific verb (adds) and resource (conditional formatting rule) scoped to a range in a spreadsheet. The term 'conditional formatting' is distinct enough from siblings like sheets_format_cells or sheets_set_data_validation, though the description never explicitly contrasts itself with them.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus sheets_format_cells (static formatting) or sheets_set_data_validation. No prerequisites, no mention of what happens when a rule already exists on the range.

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

sheets_append_rowsB
Idempotent

Appends rows of data after the last row with content in a range

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesThe A1 notation range to search for a table to append to (e.g. Sheet1!A:E)
valuesYes2D array of row values to append
spreadsheet_idYesThe ID of the spreadsheet

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the useful behavioral detail that placement is determined by searching for the last row with content, but says nothing about permission needs, failure modes, or what the response returns.

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

Conciseness5/5

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

A single sentence with zero padding, and the key scoping fact about where rows land is front-loaded.

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?

A simple three-parameter mutation tool with full schema coverage and annotations, so the description needn't explain returns. However, for a write tool the caller would benefit from knowing what is returned for use in follow-up edits, and no such detail is given.

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%, so all three parameters are documented in the schema, giving a baseline of 3. The description's 'after the last row with content in a range' adds a little meaning to how 'range' is interpreted, but no format details or constraints beyond the schema.

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?

States a specific verb ('Appends') and resource ('rows of data') plus the placement semantics ('after the last row with content'). This clearly differentiates it from sheets_write_range, though it never names that sibling explicitly, which keeps it just short of a 5.

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

Usage Guidelines2/5

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

No guidance on when to use this versus sheets_write_range, which also writes to cells. The description implies a preference for appending when the table position is unknown, but that condition is never stated.

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

sheets_clear_rangeA
Destructive

Clears all values from a specified range while preserving formatting

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesThe A1 notation range to clear (e.g. Sheet1!A1:C10)
spreadsheet_idYesThe ID of the spreadsheet

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the safety profile is known. The description adds a genuinely useful behavioral fact beyond annotations: formatting is preserved, i.e. only cell values are removed, not styling. It omits irreversibility/undo and permission requirements, keeping it short of a 5.

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

Conciseness5/5

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

A single, front-loaded sentence with zero filler. Every clause earns its place by naming the action, the target, and the preservation guarantee.

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

Completeness4/5

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

For a two-parameter mutation tool with full schema coverage and no output schema, the description covers what is cleared and what is retained. Minor omissions are error behavior on invalid/empty ranges and permission requirements, which limit it below 5.

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%, so both required parameters (range as A1 notation, spreadsheet_id) are fully documented in the schema. The description adds no parameter-level detail, which is the correct baseline when the schema does the heavy lifting.

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?

States a specific verb (clears) and resource (values in a range), and adds the differentiating detail that formatting is preserved, which separates it from write_range and delete_sheet. It does not explicitly name the sibling it competes with, but the scope is unambiguous.

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

Usage Guidelines2/5

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

The description implies usage but gives no explicit when-to-use or when-not-to-use guidance. An agent must infer that this is the tool for emptying a range versus sheets_write_range or sheets_delete_sheet on its own.

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

sheets_create_chartC
Idempotent

Creates a chart in a Google Sheets spreadsheet

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoThe title of the chart
optionsNoAdditional chart options
positionNoWhere to place the chart
chart_typeYesThe type of chart to create
data_rangeYesThe data range in A1 notation (e.g. A1:C20)
sheet_nameYesThe name of the sheet containing the data
spreadsheet_idYesThe ID of the spreadsheet

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true, so the safety profile is mostly covered. The description adds nothing behavioral beyond the word 'Creates' — not where the chart is placed by default, not what happens if the range is invalid, and not what identifier is returned for later update/delete calls.

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

Conciseness3/5

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

It is a single front-loaded sentence with no wasted words, which is structurally sound. But the extreme brevity for a 7-parameter creation tool means it is under-specified rather than genuinely concise.

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

Completeness2/5

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

This is a mutation tool with 7 parameters, nested objects, and no output schema, yet the description says nothing about the return value (e.g. a chart ID needed for the sibling update/delete tools) or default placement behavior. For a creation tool of this complexity, one sentence is not complete enough.

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% with all 7 parameters (including nested options, position, and the chart_type enum) documented in the schema. The description adds no parameter meaning beyond that, so the baseline of 3 applies.

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 gives a specific verb and resource ('Creates a chart'), so an agent immediately knows the action and object. However, it does not distinguish this from siblings like sheets_update_chart, sheets_delete_chart, or sheets_list_charts, which is the difference between a 4 and a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to create a chart versus updating or deleting one, no prerequisites (e.g. data must exist, a data_range must be supplied), and no mention of the alternatives available in the toolset. The agent must infer usage entirely from the name.

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

sheets_create_named_rangeA
Idempotent

Creates a named range in a spreadsheet

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name for the named range
rangeYesThe A1 notation range (e.g. Sheet1!A1:C10)
spreadsheet_idYesThe ID of the spreadsheet

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already disclose that the tool is not read-only, not open-world, idempotent, and not destructive. The description adds little beyond restating the action, but it does confirm the mutation scope. With annotations covering the safety profile, the bar is lower, so a 4 is fair for a concise confirmation that doesn't contradict.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with zero waste. It conveys the essential action without unnecessary elaboration.

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?

For a mutation tool with no output schema and full annotation coverage, the description is minimally adequate. However, it omits key behavioral details such as whether the range must be unique, what happens on name collision, or whether the range is scoped to the spreadsheet. These gaps reduce completeness despite the annotations handling safety.

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%, so the schema already documents all three parameters in detail. The description adds no parameter meaning beyond what the schema provides, which is acceptable when schema does the heavy lifting. Baseline 3 applies.

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 states a clear verb+resource: 'Creates a named range in a spreadsheet.' This distinguishes it from sibling tools like sheets_list_named_ranges (read vs. create). It doesn't explicitly differentiate from other create tools (e.g., sheets_create_sheet), but the resource is specific enough to be unambiguous.

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

Usage Guidelines2/5

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

The description provides no when-to-use guidance, no prerequisites (e.g., spreadsheet must exist), and no mention of alternatives. An agent must infer usage from the tool name and siblings alone.

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

sheets_create_pivot_tableC
Idempotent

Creates a pivot table in a Google Sheets spreadsheet

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsYesRow groups for the pivot table
valuesYesValue fields for the pivot table
columnsNoColumn groups for the pivot table
destinationYesThe destination cell in A1 notation (e.g. Sheet2!A1)
source_rangeYesThe source data range in A1 notation including sheet name (e.g. Sheet1!A1:E100)
spreadsheet_idYesThe ID of the spreadsheet

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, covering the safety profile. The description adds no behavioral context beyond that: it doesn't say whether the destination range is overwritten, whether a new sheet is created, or whether the operation fails on invalid column headers. With annotations present, the description should still contribute mutation-specific detail, and it contributes none.

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?

A single, front-loaded sentence with zero waste. It is efficient, though arguably undersized for a six-parameter tool with nested row/column/value structures.

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

Completeness2/5

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

For a structurally complex tool (6 params, nested rows/values/columns objects) with no output schema, the description omits the mechanics an agent needs: that rows/columns define grouping, values define aggregation, and where the resulting pivot lands. Annotations cover safety only, leaving the functional explanation incomplete.

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%, so every parameter (spreadsheet_id, source_range, destination, rows, values, columns) is already documented in the schema, including A1 notation examples and aggregation enums. The description adds nothing beyond the schema, so the baseline of 3 applies.

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 states a clear verb+resource ('Creates a pivot table in a Google Sheets spreadsheet'), so the agent knows exactly what operation is performed. However, it offers no differentiation from sibling creation tools such as sheets_create_chart or sheets_create_sheet, and does not hint at the required source range, row/column grouping, or value aggregation that make this tool distinct.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like sheets_create_chart or sheets_summarize_range, nor any stated prerequisites. The agent is left to infer usage entirely from the name and schema.

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

sheets_create_sheetC
Idempotent

Creates a new sheet (tab) in an existing spreadsheet

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesThe name for the new sheet
row_countNoNumber of rows in the new sheet
column_countNoNumber of columns in the new sheet
spreadsheet_idYesThe ID of the spreadsheet

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond that — it does not say what happens if the title already exists, whether existing sheets are affected, or whether the new sheet becomes active.

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?

A single front-loaded sentence with zero filler, correctly sized for a simple create operation. It is arguably under-specified rather than over-long, but nothing wasteful is present.

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 tool is simple and the schema is fully documented, but as a mutation with no output schema the description omits any hint of what the call returns or how the new sheet is identified afterward. Adequate but with a clear gap.

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%, so all four parameters (spreadsheet_id, title, row_count, column_count) are already documented in the schema. The description adds no extra semantics such as title-uniqueness rules or the default dimensions, so the baseline of 3 applies.

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?

States a specific verb (Creates) and resource (a new sheet/tab) plus the scope constraint (in an existing spreadsheet), and the '(tab)' gloss disambiguates from similarly named siblings like sheets_create_chart or sheets_create_named_range. It does not, however, explicitly name or contrast with any sibling tool.

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

Usage Guidelines2/5

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

No guidance on when to use this versus alternatives (e.g. sheets_delete_sheet or sheets_write_range on a new tab), and no prerequisites such as required spreadsheet permissions. The phrase 'existing spreadsheet' hints at one precondition but nothing more.

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

sheets_delete_chartC
Destructive

Deletes an embedded chart from a Google Sheets spreadsheet

ParametersJSON Schema
NameRequiredDescriptionDefault
chart_idYesThe ID of the chart to delete
spreadsheet_idYesThe ID of the spreadsheet

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, idempotentHint=false, and readOnlyHint=false, so the safety profile is covered by structured data. The description adds almost nothing beyond that: it never states that the deletion is permanent/irreversible, what happens to the chart's data or references, or whether any permissions are required.

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?

A single front-loaded sentence with the operation and target stated first and no filler. It is efficient, though the extreme brevity is a symptom of under-specification rather than disciplined conciseness.

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?

For a two-parameter delete tool with full schema coverage and annotations that already flag it as destructive, the description is minimally sufficient. It nonetheless omits the irreversibility caveat and the fact that chart_id is typically discovered through another call, both of which matter for a destructive operation.

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 both required parameters (spreadsheet_id, chart_id) are documented in the schema itself. The description adds no format, scope, or sourcing detail beyond what the schema provides, so the baseline 3 applies.

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?

States a specific verb (deletes) and resource (embedded chart in a Google Sheets spreadsheet). The word 'embedded' distinguishes it from a hypothetical standalone-chart deletion and from sheets_delete_sheet, though it never names a sibling tool explicitly.

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

Usage Guidelines2/5

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

No when-to-use guidance at all. It does not say that a chart_id must first be obtained (e.g. via sheets_list_charts) or how deletion interacts with sheets_update_chart and sheets_create_chart. The agent must infer everything from the name.

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

sheets_delete_sheetA
Destructive

Deletes a sheet (tab) from a spreadsheet by name

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_nameYesThe name of the sheet to delete
spreadsheet_idYesThe ID of the spreadsheet

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, non-idempotent. The description adds that deletion is by sheet name, which is useful for identifying the target. However, it doesn't disclose irreversible data loss, required permissions, or what happens if the sheet doesn't exist. With annotations covering the safety profile, a 3 is appropriate – some added context but not rich behavioral detail.

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

Conciseness5/5

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

A single, front-loaded sentence with no wasted words. It clearly identifies the action, target, and scope.

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?

For a destructive tool with no output schema, the description is minimal but adequate given annotations cover safety. It could mention irreversibility or that the sheet must exist, but it provides sufficient information for an agent to invoke the tool correctly.

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 coverage is 100%, so both parameters (spreadsheet_id, sheet_name) are fully documented in the schema. The description reiterates that deletion is by name but adds no syntax, format, or constraints beyond the schema. Baseline 3 is correct when the schema does the heavy lifting.

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?

States a specific verb (deletes) and resource (sheet/tab from spreadsheet), clarified as 'by name'. This distinguishes it from sibling sheets_create_sheet and other delete tools like sheets_delete_chart. However, it doesn't explicitly note the sibling alternative or that deletion is by sheet name vs. index.

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?

The phrase 'from a spreadsheet by name' implies when to use it (to remove a tab), but there is no explicit when-to-use guidance, prerequisites, or mention of alternatives like clearing vs deleting. Usage is implied rather than stated.

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

sheets_find_duplicatesB
Read-onlyIdempotent

Finds duplicate rows in a range based on specified columns

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesThe A1 notation range to search (first row treated as headers)
columnsNo0-based column indices to check for duplicates (default: all columns)
spreadsheet_idYesThe ID of the spreadsheet

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond purpose, like how duplicates are handled or what a match means. With annotations doing the heavy lifting, a 3 is fair.

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

Conciseness5/5

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

A single sentence with no waste, front-loaded with the action. Efficient and to the point.

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?

Complete enough for basic invocation since annotations cover safety and schema covers parameters. However, no output schema exists and the description does not explain the return format (e.g., row indices, counts), which would be useful for a read-only analysis tool. Adequate but with gaps.

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%, so the schema already documents range, columns, and spreadsheet_id semantics, including the 0-based indexing and default behavior for columns. The description mentions 'specified columns' but adds no syntax or format beyond the schema. Baseline 3 applies when schema carries the load.

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?

States a specific verb+resource: 'Finds duplicate rows in a range based on specified columns.' Clear what it does but no sibling differentiation beyond naming. An agent can tell it apart from sheets_find_replace or sheets_sort_range by the resource, but the description does not explicitly route to alternatives.

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

Usage Guidelines2/5

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

No when-to-use or when-not guidance. There are 28 sibling tools and the description doesn't name any alternative or clarify context. Implied usage is weak; the agent must infer when this is preferable to reading and deduplicating manually.

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

sheets_find_replaceB
Idempotent

Finds and replaces text across a spreadsheet or within a specific range

ParametersJSON Schema
NameRequiredDescriptionDefault
findYesThe text to find
rangeNoOptional A1 notation range to limit the search
use_regexNoWhether to treat the find string as a regex
match_caseNoWhether the search is case-sensitive
replacementYesThe text to replace with
spreadsheet_idYesThe ID of the spreadsheet
search_formulasNoWhether to search within formulas
match_entire_cellNoWhether to match the entire cell content

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the agent knows this mutates but is repeatable and non-destructive. The description only adds the scoping fact (whole sheet vs. a range) and omits operationally important behavior: whether all occurrences are replaced, whether formulas are touched by default, and whether the change can be reverted. With annotations covering the safety profile, this is a modest but real contribution.

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

Conciseness5/5

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

A single front-loaded sentence with no filler, no restatement of the tool name, and zero wasted clauses. Everything stated earns its place.

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?

For an 8-parameter mutation tool with no output schema, the definition is only minimally sufficient. It conveys scope but says nothing about return values (e.g., count of replacements), default behavior for formula cells, or how to confirm success, which an agent would want before running a bulk mutation.

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%, so all eight parameters, including use_regex, match_case, match_entire_cell and search_formulas, are already documented in the schema. The description adds only the notion of limiting scope via range, which the schema already states; baseline 3 is appropriate.

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 uses a specific verb ('finds and replaces') and resource ('text across a spreadsheet or within a specific range'), so the operation is immediately unambiguous. It does not, however, name or contrast itself with nearby siblings such as sheets_find_duplicates or sheets_read_range, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to reach for this tool versus alternatives (e.g., writing back a modified range, or using sheets_find_duplicates to locate rather than mutate). No prerequisites, no exclusions, no mention of what happens if nothing matches.

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

sheets_format_cellsC
Idempotent

Formats cells in a range with font, color, alignment, and number format options

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesThe A1 notation range to format
formatYesFormatting options to apply
spreadsheet_idYesThe ID of the spreadsheet

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnly=false, idempotent=true, and destructive=false, so the safety profile is covered. The description adds no behavioral context beyond the annotations: it does not say whether existing formatting is replaced or merged, whether cell contents are preserved, or what is returned.

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?

A single, front-loaded sentence that wastes no words. It is efficient, though it is perhaps too terse to convey the tool's full behavior.

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?

For an idempotent mutation whose safety annotations and full schema coverage carry most of the load, the description is adequate. However, it omits whether content is altered vs. presentation only and how it relates to overlapping siblings, leaving a small gap for a 3-parameter tool with a nested object.

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%, so every parameter and nested format property is already documented in the schema. The description's mention of 'font, color, alignment, and number format options' loosely mirrors those properties but adds no syntax or format detail beyond the schema. Baseline 3 is appropriate.

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?

States a specific verb ('Formats') and resource ('cells in a range') and enumerates the formatting dimensions (font, color, alignment, number format). It is clearly distinct from read/write siblings, though it never names which sibling handles overlapping concerns like conditional formatting.

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

Usage Guidelines2/5

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

No when-to-use guidance is present. It does not clarify how this differs from sheets_add_conditional_formatting or sheets_write_range, nor whether it preserves cell values while only altering presentation. The agent must infer usage entirely.

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

sheets_get_formulasB
Read-onlyIdempotent

Gets all formulas from a specified range, returning cell references and formula text

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesThe A1 notation range to inspect for formulas
spreadsheet_idYesThe ID of the spreadsheet

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that results include cell references plus formula text, which is mildly useful, but says nothing about empty cells, partial ranges, or response size behavior.

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

Conciseness5/5

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

A single front-loaded sentence with no waste; the essential action and return content are stated immediately.

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

Completeness4/5

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

For a simple two-parameter read tool with no output schema, the description adequately conveys the return shape (references + formula text). The main gap is lack of routing guidance against sibling read tools, but structurally it is nearly complete.

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%, so both parameters (range, spreadsheet_id) are already documented in the schema. The description only echoes 'specified range' and adds no syntax, format, or A1-notation detail beyond what the schema provides, so baseline 3 applies.

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?

States a specific verb and resource ('Gets all formulas from a specified range') and specifies the return content ('cell references and formula text'). This distinguishes it from a generic value reader, though it never names the obvious sibling (sheets_read_range) that returns values instead of formulas.

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

Usage Guidelines2/5

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

No guidance on when to use this versus alternatives. Given the many sibling readers (sheets_read_range, sheets_summarize_range, sheets_read_multiple_ranges), an agent would benefit from being told this specifically extracts formula text rather than computed values, but nothing is stated.

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

sheets_get_sheet_metadataB
Read-onlyIdempotent

Gets metadata for a specific sheet within a spreadsheet

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_nameYesThe name of the sheet
spreadsheet_idYesThe ID of the spreadsheet

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false, and destructiveHint=false, so the safety profile is fully covered. The description adds nothing beyond restating the read, and says nothing about what metadata is returned, though a read-only idempotent getter has a low disclosure burden.

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?

A single front-loaded sentence with no filler or repetition. It is efficient, though it is perhaps too terse to earn the top score given room for useful disambiguation.

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?

For a simple two-parameter read-only tool with full schema coverage and annotations, the description is minimally adequate. There is no output schema, so the description could usefully say what metadata is returned (dimensions, title, index, etc.), which is currently missing.

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%, so both spreadsheet_id and sheet_name are already documented in the schema. The description adds no format, naming, or ID-syntax detail beyond that, making the baseline 3 appropriate.

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?

Clear verb (Gets) and resource (metadata for a specific sheet within a spreadsheet), and the 'specific sheet' scope distinguishes it from spreadsheet-level siblings like sheets_get_spreadsheet_info. However, it doesn't name that sibling or clarify the boundary between sheet-level and spreadsheet-level metadata, which is the main ambiguity among the ~30 siblings.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no pointer to alternatives such as sheets_get_spreadsheet_info or sheets_read_range. The agent must infer the correct tool purely from the name.

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

sheets_get_spreadsheet_infoB
Read-onlyIdempotent

Gets metadata about a spreadsheet including its sheets, properties, and named ranges

ParametersJSON Schema
NameRequiredDescriptionDefault
spreadsheet_idYesThe ID of the spreadsheet

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description usefully discloses the payload shape (sheets, properties, named ranges), but adds nothing about auth needs, scope errors, or limits beyond that.

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

Conciseness5/5

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

One front-loaded sentence with zero filler; the returned content is listed immediately after the purpose. Nothing is extraneous.

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

Completeness4/5

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

For a low-complexity read-only metadata fetch with no output schema, the enumerated return contents give the agent enough to know what it will receive. Only the sibling-differentiation gap and lack of access-error detail keep it from being fully complete.

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?

There is a single parameter with 100% schema description coverage ('The ID of the spreadsheet'), so the schema carries the semantics. The description adds no format hints or sourcing guidance (e.g., how to obtain the ID), so the baseline 3 applies.

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 states a specific verb+resource ('Gets metadata about a spreadsheet') and enumerates what the metadata contains (sheets, properties, named ranges). However, it does not distinguish itself from close siblings like sheets_get_sheet_metadata or sheets_list_named_ranges, whose scopes overlap with the listed contents.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as sheets_get_sheet_metadata or sheets_list_named_ranges. The agent is left to infer that this is the broad lookup while the siblings are narrower.

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

sheets_list_chartsA
Read-onlyIdempotent

Lists all charts in a spreadsheet, optionally filtered by sheet name

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_nameNoFilter charts to a specific sheet
spreadsheet_idYesThe ID of the spreadsheet

TDQS

A3.6/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds nothing behavioral beyond the scoping detail—no mention of output shape, pagination, or what happens if the spreadsheet has no charts.

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

Conciseness5/5

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

A single well-formed sentence that front-loads the action and resource, with the optional filter coming last. No redundant or filler content.

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

Completeness4/5

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

For a simple read-only list tool with rich annotations and only two fully documented parameters, the description is nearly sufficient. The only minor gap is that the return shape is not described, which is acceptable since no output schema exists but the operation is straightforward.

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 coverage is 100%, with both spreadsheet_id and sheet_name already documented in the schema. The description's 'optionally filtered by sheet name' merely restates the schema, so the baseline of 3 applies.

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?

States a specific verb (Lists), resource (charts), and container (spreadsheet), with an explicit optional filter. It is clearly distinguishable from the sibling mutation tools (create_chart, update_chart, delete_chart), though it does not name any sibling explicitly.

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?

Usage is implied (read-only enumeration of charts with an optional sheet scope), but there is no explicit statement of when to prefer this over siblings like sheets_get_sheet_metadata or sheets_get_spreadsheet_info, and no conditions or exclusions given.

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

sheets_list_filter_viewsB
Read-onlyIdempotent

Lists all filter views in a spreadsheet

ParametersJSON Schema
NameRequiredDescriptionDefault
spreadsheet_idYesThe ID of the spreadsheet

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond the annotations—no return format, pagination, or rate limit details.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with zero wasted words. It communicates the core action immediately.

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

Completeness4/5

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

For a simple read-only list operation with full annotation coverage and no output schema, the description is nearly complete. It could mention pagination or result structure, but those are minor gaps for a straightforward listing tool.

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?

The schema has 100% description coverage for the single spreadsheet_id parameter, so the baseline of 3 applies. The description only implies the parameter by mentioning 'in a spreadsheet' and adds no new semantic detail.

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 uses a specific verb ('Lists') and a specific resource ('filter views') scoped to a spreadsheet. This clearly distinguishes it from sibling list tools like sheets_list_named_ranges, sheets_list_charts, and sheets_list_spreadsheets.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives or prerequisites. It only states what the tool does, leaving the agent to infer usage context entirely.

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

sheets_list_named_rangesA
Read-onlyIdempotent

Lists all named ranges in a spreadsheet with their A1 notation references

ParametersJSON Schema
NameRequiredDescriptionDefault
spreadsheet_idYesThe ID of the spreadsheet

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds that results include A1 notation references, which is useful framing, but no auth, pagination, or edge-case behavior is disclosed.

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

Conciseness5/5

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

A single front-loaded sentence with no filler; every clause earns its place.

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

Completeness4/5

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

For a simple closed-world read tool with fully documented single parameter and annotations covering safety, the description is nearly sufficient, especially since it hints at the return content (A1 notation). Slightly more on output shape would make it complete, but no output schema exists to lean on.

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?

Only one parameter, spreadsheet_id, and schema description coverage is 100%, so the schema already carries the semantics. The description adds nothing about the parameter format, which is acceptable at this coverage level.

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?

States a specific verb (Lists) and resource (named ranges in a spreadsheet) and adds scope detail ('with their A1 notation references'). An agent can distinguish this from write-side siblings like sheets_create_named_range without opening a schema.

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?

The purpose implies usage (retrieve named ranges for a spreadsheet), but there is no explicit when-to-use or when-not guidance, and no alternatives are named despite several nearby siblings such as sheets_get_spreadsheet_info and sheets_create_named_range.

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

sheets_list_spreadsheetsB
Read-onlyIdempotent

Lists spreadsheets accessible to the authenticated user via Google Drive

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch query to filter spreadsheets by name
max_resultsNoMaximum number of results to return (default 20, max 100)

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds only the auth/Drive scoping context and says nothing about result ordering, pagination, or truncation behavior at the 100-item cap.

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?

A single front-loaded sentence with no filler or redundancy. It is arguably too terse for the tool's role as the discovery entry point, but every word earns its place.

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?

No output schema exists, and the description does not describe the return shape or whether the Drive 'max_results' cap causes silent truncation. For a low-complexity two-parameter read tool whose annotations cover safety, this is adequate but leaves the agent to infer how results are shaped and how to page through more than 100 items.

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% with only two simple parameters, so the schema already documents 'query' and 'max_results' including the default and max. The description adds no syntax detail for the query (e.g. whether it is a name substring or a Drive query string), so it neither compensates nor misleads.

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?

States a specific verb and resource ('Lists spreadsheets') plus scope ('accessible to the authenticated user via Google Drive'), so the agent knows this is a top-level discovery tool. It does not explicitly contrast itself with the many per-spreadsheet siblings (sheets_get_sheet_metadata, sheets_list_named_ranges, etc.), leaving that distinction implicit.

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

Usage Guidelines2/5

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

The description offers no when-to-use guidance, no statement that this is the entry point for obtaining spreadsheet IDs that the other siblings require, and no exclusions or prerequisites. The 'accessible to the authenticated user' clause hints at scope but is not actionable guidance.

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

sheets_protect_rangeB
Idempotent

Protects a range from editing, optionally as a warning only

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesThe A1 notation range to protect
descriptionNoDescription of why the range is protected
warning_onlyNoIf true, shows a warning but still allows editing
spreadsheet_idYesThe ID of the spreadsheet

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description usefully adds the warning-only behavioral mode, but says nothing about permission requirements, effect on existing editors, or whether protection can be removed.

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

Conciseness5/5

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

A single sentence with the core action front-loaded and the optional mode trailing. Zero waste, nothing to trim.

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?

All four parameters are documented via the schema and no output schema is needed for this mutation. However, for a mutation tool with no annotation coverage of permissions or reversibility, the description leaves notable behavioral gaps.

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%, so the schema already documents range, warning_only, description, and spreadsheet_id. The description's 'optionally as a warning only' reinforces the warning_only semantics but adds no syntax or format detail beyond the schema.

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 names a specific verb (protects) and resource (range from editing), plus a meaningful variant (warning only). It doesn't explicitly differentiate from siblings, but no sibling tool is about protection, so the intent is unambiguous.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus alternatives, when to choose warning_only over full protection, or what preconditions exist (e.g., edit access needed). The 'optionally as a warning only' phrase hints at a mode but doesn't say when to pick it.

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

sheets_read_multiple_rangesA
Read-onlyIdempotent

Reads cell values from multiple ranges in a single batch request

ParametersJSON Schema
NameRequiredDescriptionDefault
rangesYesArray of A1 notation ranges to read
value_renderNoHow values should be rendered: formatted (default), unformatted (raw numbers), or formula
spreadsheet_idYesThe ID of the spreadsheet

TDQS

A3.5/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the batch behavior, which is contextually useful, but no return format, range-mismatch behavior, or limits are disclosed given no output schema.

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

Conciseness5/5

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

A single, front-loaded sentence that states the operation and its distinguishing batch trait with zero waste.

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?

Adequate minimum for a simple batch read whose annotations cover safety, but with no output schema the description should say more about the return shape (e.g., how results map to the input ranges) or any per-range error behavior. It leaves the batch-result contract undefined.

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%, so the schema already documents all three parameters including the A1 notation format and value_render enum. The description adds no parameter-level detail beyond the schema, so baseline 3 applies.

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?

States a specific verb (Reads) and resource (cell values) with the batch scope clarified as 'multiple ranges in a single batch request'. Distinguishes somewhat from the sibling sheets_read_range, though it doesn't name that sibling explicitly.

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?

The 'multiple ranges in a single batch request' phrasing implies when this is preferable to a single-range read, but there's no explicit when/when-not guidance or named alternative. Usage is only implied.

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

sheets_read_rangeC
Read-onlyIdempotent

Reads cell values from a specified range in a spreadsheet

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesThe A1 notation range to read (e.g. Sheet1!A1:D10)
value_renderNoHow values should be rendered: formatted (default), unformatted (raw numbers), or formula
spreadsheet_idYesThe ID of the spreadsheet

TDQS

C2.9/5.0
Behavior2/5

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

The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds nothing behavioral beyond that - no mention of empty-cell handling, response shape, size limits, or whether a missing sheet errors out.

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?

A single front-loaded sentence with no padding or redundancy. It is efficient, though its brevity comes at the cost of information rather than being tight-but-complete.

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?

For a simple read tool with 100% schema coverage and full annotation coverage, the essentials are present. But with no output schema, the description should at least hint at the return shape (e.g., a grid of values) and would benefit from noting it handles one range only.

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%, so spreadsheet_id, range (with A1 notation example), and the value_render enum are already fully documented. The description only restates the range concept and adds no extra meaning, which is the expected baseline when the schema does the heavy lifting.

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?

States a specific verb and resource: reads cell values from a specified range in a spreadsheet. However, it does not distinguish itself from close siblings like sheets_read_multiple_ranges, sheets_summarize_range, or sheets_get_formulas, leaving the agent to infer when this single-range reader is the right choice.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no exclusions, and no mention of alternatives, even though sheets_read_multiple_ranges sits right beside it as an obvious alternative for multi-range reads. The agent must guess which reader to pick.

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

sheets_set_basic_filterB
Idempotent

Sets or clears a basic filter on a range

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNoIf true, clears the existing basic filter instead of setting one
rangeYesThe A1 notation range for the filter
criteriaNoFilter criteria object keyed by 0-based column index
spreadsheet_idYesThe ID of the spreadsheet

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the useful fact that the tool can either set or clear a filter, but does not disclose what happens if a filter already exists on the range or how clearing interacts with other filters.

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?

A single front-loaded sentence with no filler, correctly leading with the action and target. It is efficient, though extremely terse for a tool with a nested criteria object.

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

Completeness2/5

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

For a mutation tool, the description omits behavior on existing filters and gives no help for the `criteria` parameter, whose value shape is an opaque `additionalProperties: {}` object. With no output schema, the ambiguity around what a successful set/clear returns is also unaddressed.

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%, so every parameter is already documented in the schema, including the `clear` flag and the A1-notation `range`. The description adds no syntax, format, or default detail beyond that baseline.

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?

States a specific verb ('sets or clears') and resource ('basic filter on a range'), so the agent understands it is a dual-mode mutation. It does not name or differentiate itself from the related sibling `sheets_list_filter_views`, which involves filters on the same object, so sibling routing is left to inference.

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

Usage Guidelines2/5

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

There is no guidance about when to use a basic filter versus a filter view, nor prerequisites such as existing sheet/range requirements. The 'clear' mode is described only inside the schema, not contextualized as an alternative action in the description.

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

sheets_set_data_validationC
Idempotent

Sets data validation rules on a range of cells

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesThe A1 notation range to validate
strictNoWhether to reject invalid input (true) or show a warning (false)
valuesNoValidation values (dropdown options, number bounds, formula, etc.)
spreadsheet_idYesThe ID of the spreadsheet
validation_typeYesThe type of validation to apply

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description adds nothing beyond that: it does not say whether existing validation on the range is replaced, whether certain validation_type values require specific entries in `values`, or what happens when `strict` is false.

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?

A single front-loaded sentence with no filler; the operation and target are stated up front. It is efficient, though it borders on under-specification rather than deliberate brevity.

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?

With full schema coverage and annotations covering the write-safety profile, the definition is minimally viable. It still omits the type-dependent semantics of `values` and the effect on pre-existing validation rules, which the schema does not capture either.

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%, so all five parameters are documented in the schema itself. The description adds no extra meaning about how `validation_type` drives the expected shape of `values` (dropdown options vs. number bounds vs. custom formula), so the baseline of 3 applies.

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 names a specific verb ('Sets') and resource ('data validation rules on a range of cells'), so an agent immediately knows the operation. It does not, however, distinguish itself from adjacent write-style siblings like sheets_add_conditional_formatting or sheets_format_cells, which occupy similar spreadsheet-mutation space.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no exclusions, and no alternatives named. Nothing tells the agent whether to reach for this tool versus conditional formatting or plain range writes when the goal is constraining input.

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

sheets_sort_rangeC
Idempotent

Sorts a range of data by one or more columns

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesThe A1 notation range to sort
sort_specsYesArray of sort specifications applied in order
spreadsheet_idYesThe ID of the spreadsheet

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare it is a non-read-only, idempotent, non-destructive mutation, so the safety profile is covered. The description adds nothing beyond the name about whether the sort mutates the sheet in place, what happens to surrounding data, or result format.

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?

One efficient, front-loaded sentence with zero waste. It is a bit under-specified rather than over-long, but structurally sound.

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?

For a simple 3-parameter mutation with a fully documented schema and no output schema, the description is minimally adequate. It could note in-place mutation behavior, but nothing essential for calling the tool is missing.

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%, so all three parameters (spreadsheet_id, range, sort_specs) are fully documented in the schema, including the 0-based column index and ascending/descending order. Description adds no parameter meaning beyond the schema, so baseline 3 applies.

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?

States a specific verb (sorts), resource (a range of data), and mechanism (by one or more columns). It is clear what the tool does, though it offers no differentiation from siblings like write_range or format_cells.

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

Usage Guidelines2/5

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

No guidance on when to use this over alternatives such as format_cells or writing a reordered range, and no prerequisites or exclusions. The agent must infer usage purely from the purpose.

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

sheets_summarize_rangeB
Read-onlyIdempotent

Computes summary statistics for columns in a range, with optional grouping

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesThe A1 notation range to summarize (first row treated as headers)
spreadsheet_idYesThe ID of the spreadsheet
group_by_columnNo0-based column index to group by before computing stats

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds no behavioral detail beyond that — notably it never says which statistics are produced or how missing/non-numeric cells are handled, which matters for an aggregation 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?

A single tight sentence with the core action front-loaded and the optional modifier at the end. No wasted words, though the brevity contributes to the transparency gaps noted elsewhere.

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?

There is no output schema, so the description is the only place an agent could learn what the summary actually returns (count, mean, min/max, etc.), and it does not. For a computation tool with a structured return, this is a meaningful omission even though the input side is well covered.

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%, so all three parameters (range, spreadsheet_id, group_by_column) are documented in the schema. The description's 'optional grouping' merely echoes the existing group_by_column description rather than adding format or semantic detail, so the baseline 3 applies.

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?

States a specific verb ('Computes summary statistics') and resource ('columns in a range'), with the optional grouping qualifier. This clearly distinguishes it from siblings like sheets_read_range and sheets_analyze_trends, though it never names an alternative explicitly.

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

Usage Guidelines2/5

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

No guidance on when to prefer this over sheets_read_range, sheets_analyze_trends, or sheets_find_duplicates, and no prerequisites or constraints stated. The agent must infer usage from the one-sentence purpose alone.

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

sheets_update_chartC
Idempotent

Updates an existing chart in a Google Sheets spreadsheet

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoNew title for the chart
chart_idYesThe ID of the chart to update
chart_typeNoNew chart type (basic chart types only)
data_rangeNoNew data range in A1 notation (e.g. Sheet1!A1:C20)
spreadsheet_idYesThe ID of the spreadsheet

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so safety and repeatability are covered structurally. The description adds essentially nothing beyond them: it does not say whether unspecified fields are preserved (partial vs full replacement), whether the chart must already exist, or what happens on an invalid chart_id.

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?

A single short sentence with no filler or redundancy. It is efficient, though its brevity reflects under-specification rather than disciplined editing.

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

Completeness2/5

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

For a 5-parameter mutation tool with no output schema, the description omits critical context: whether updates are partial or replace the whole chart definition, what identifying requirements exist, and what the caller gets back. The annotations cover safety but cannot compensate for the missing update semantics.

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%, so every parameter (title, chart_id, chart_type, data_range, spreadsheet_id) is already documented in the schema, including the chart_type enum. The description adds no syntax, format, or constraint detail beyond what the schema provides.

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?

States a specific verb ('updates') and resource ('an existing chart in a Google Sheets spreadsheet'), which implicitly distinguishes it from create_chart and delete_chart siblings. However, it does not explicitly name those alternatives or clarify what kind of update it performs.

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

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternative guidance is given. The agent must infer from the name alone that this applies to modifying an existing chart rather than creating one, and there is no mention of prerequisites such as the chart already existing.

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

sheets_write_multiple_rangesB
Idempotent

Writes values to multiple ranges in a single batch operation

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesArray of range-value pairs to write
spreadsheet_idYesThe ID of the spreadsheet

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already disclose that this is a write operation, idempotent, non-destructive, and closed-world. The description adds only that it operates as a single batch, without clarifying overwrite semantics, atomicity, or auth requirements. No contradiction with annotations.

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

Conciseness5/5

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

A single front-loaded sentence with no filler. It states the operation and batching behavior efficiently.

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?

Adequate given full schema coverage and rich annotations, but the description omits return behavior (and there is no output schema) and does not explain whether existing values are overwritten or how errors are handled. Thin but minimally sufficient for invocation.

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 the schema fully documents spreadsheet_id, data, range, and values. The description adds no parameter-level detail beyond the notion of multiple ranges, so the baseline 3 is appropriate.

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?

States a specific verb (writes), resource (values), and scope (multiple ranges in a single batch operation). This distinguishes it from the single-range sibling sheets_write_range, though it does not name that sibling explicitly.

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

Usage Guidelines2/5

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

No explicit when-to-use guidance, prerequisites, or alternatives are given. The phrase 'multiple ranges in a single batch operation' implies the use case but does not tell an agent when to choose this over sheets_write_range or sheets_append_rows.

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

sheets_write_rangeC
Idempotent

Writes values to a specified range in a Google Sheets spreadsheet

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesThe A1 notation range to write to (e.g. Sheet1!A1:C3)
valuesYes2D array of values to write
input_modeNoHow input data should be interpreted. user_entered parses as if typed into the UI; raw stores as-isuser_entered
spreadsheet_idYesThe ID of the spreadsheet

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing behavioral beyond that — notably it never says that existing cell contents in the target range are overwritten, which is the single most consequential trait of a range write.

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?

A single efficient sentence with the verb and resource front-loaded and zero filler. It is concise, though at the cost of omitting anything an agent might need beyond the bare action.

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

Completeness2/5

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

For a mutating write tool with four parameters, no output schema, and no mention of overwrite behavior, permission requirements, or what happens on partial failures, the definition is thin. Annotations cover only the safety hints, leaving the description short of what an agent needs to call this confidently.

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%, so every parameter including the input_mode enum ('user_entered' vs 'raw') is already documented in the schema. The description contributes no additional parameter meaning, so the baseline 3 applies.

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?

States a specific verb (writes) and resource (values to a range in a Google Sheets spreadsheet), so the operation is unmistakable. It does not, however, contrast itself with close siblings such as sheets_append_rows, sheets_write_multiple_ranges, or sheets_clear_range, so the agent gets no help distinguishing it from those.

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

Usage Guidelines2/5

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

There is no when-to-use guidance at all: nothing says to prefer this over sheets_append_rows when adding rows versus overwriting a fixed range, nor when sheets_write_multiple_ranges is the better choice. The agent must infer selection from the tool name alone.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 30 tool updatesv0.1.0
    • First observedsheets_add_conditional_formatting
    • First observedsheets_analyze_trends
    • First observedsheets_append_rows
    • First observedsheets_clear_range
    • First observedsheets_create_chart
    • First observedsheets_create_named_range
    • First observedsheets_create_pivot_table
    • First observedsheets_create_sheet
    • First observedsheets_delete_chart
    • First observedsheets_delete_sheet
    • First observedsheets_find_duplicates
    • First observedsheets_find_replace
    • First observedsheets_format_cells
    • First observedsheets_get_formulas
    • First observedsheets_get_sheet_metadata
    • First observedsheets_get_spreadsheet_info
    • First observedsheets_list_charts
    • First observedsheets_list_filter_views
    • First observedsheets_list_named_ranges
    • First observedsheets_list_spreadsheets
    • First observedsheets_protect_range
    • First observedsheets_read_multiple_ranges
    • First observedsheets_read_range
    • First observedsheets_set_basic_filter
    • First observedsheets_set_data_validation
    • First observedsheets_sort_range
    • First observedsheets_summarize_range
    • First observedsheets_update_chart
    • First observedsheets_write_multiple_ranges
    • First observedsheets_write_range

TDQS

B3.1/5.0

Scored across 30 tools

Disambiguation4/5

Each tool targets a fairly distinct action or resource, and descriptions clarify boundaries. Minor potential confusion exists between metadata getters (sheet vs spreadsheet) and between write variants (range vs multiple ranges vs append), but these are resolvable from context.

Naming Consistency5/5

All tools use the same snake_case convention with a consistent sheets_ prefix and verb_noun structure. The pattern is predictable throughout the entire set.

Tool Count2/5

30 tools exceeds the 25-tool threshold and feels heavy even for an advanced Google Sheets server. Many niche operations could be consolidated or collapsed into batch-style tools without losing core capability.

Completeness3/5

Core value read/write/append/clear and basic tab management are covered, but advanced resources have incomplete lifecycles: named ranges can be created but not updated/deleted, pivot tables only created, conditional formatting/data validation not removable, and no spreadsheet create/delete or row/column insertion/deletion.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers