Skip to main content
Glama
conorbronsdon

Google Workspace (GWS) MCP Server

gws-mcp-server

Google Workspace for AI agents: Gmail, Calendar, Drive, Sheets, Docs, Slides, and Tasks as a curated set of 51 Model Context Protocol tools, built on the official Google Workspace CLI (gws).

npm version License: MIT Node Podcast X


Why?

The gws CLI had a built-in MCP server that was removed in v0.8.0 because it exposed 200-400 tools — causing context window bloat in MCP clients. This server takes a curated approach: you choose which Google services to expose, and only a focused set of high-value, narrowly scoped operations are registered as tools. Every tool declares all four MCP annotation hints — readOnlyHint, destructiveHint, idempotentHint, openWorldHint — so clients can reason about side effects, know which writes are safe to retry, and surface clearer consent prompts. This is the permissions leg of trust infrastructure for agents: a deliberately narrow tool surface, side effects declared on every tool, and no freestanding send tool — the only outbound email an agent can trigger is calendar invite/update notifications, opt-in via sendUpdates and off by default.

Related MCP server: Vopak Workspace MCP

Prerequisites

  • Node.js 18+

  • gws CLI installed and authenticated (npm install -g @googleworkspace/cli && gws auth login)

Grant fewer scopes than the default

This server exposes no freestanding send toolgmail_drafts_create explicitly does not send, and the only outbound email an agent can trigger is calendar invite/update notifications via sendUpdates, which is enum-validated and defaults to none. The token gws auth login mints is broader than that.

gws auth login opens a scope picker listing nine scopes. The default grant is seven: full read-write drive, spreadsheets, gmail.modify (Google documents it as "Read, compose, and send emails"), calendar, documents, presentations, and tasks — the same seven you get running non-interactively as DEFAULT_SCOPES.

The other two rows are Cloud Pub/Sub and Cloud Platform, and neither is part of the default grant — gws auth login --help describes --full as "Request all scopes incl. pubsub + cloud-platform."

Which rows start checked has not been verified against a live picker — the seven above are the documented default grant, not an observation of the TUI. Read the checkboxes before pressing Enter rather than trusting this paragraph.

So the token on disk can send mail and rewrite Drive even though nothing here will. Deselect what you do not need in the picker, or:

gws auth login --readonly    # read-only across services

-s gmail limits the picker to Gmail, per the flag's own help text ("Comma-separated service names to limit scope picker"). It cannot pull in cloud-platform or pubsub, because those two are reachable only through --full.

On Linux there is no keyring, and the encryption key is a file next to the data it encrypts. gws enables the keyring crate's native backends only for macOS and Windows; on every other platform the dependency is declared with no backend feature, so the store falls through to writing .encryption_key into ~/.config/gws/. That file is not a backup of a key held elsewhere — it is the key, and the credential store's own doc comment says it is never deleted. Setting GOOGLE_WORKSPACE_CLI_KEYRING_BACKEND=file changes nothing there because that is already the only path. On macOS and Windows the key file is removed once the OS keyring holds the key. If you run this headless on Linux, treat ~/.config/gws/ as a password file: anyone who can read the directory has the credentials.

Quick start

# Install
npm install -g gws-mcp-server

# Or run from source
git clone https://github.com/conorbronsdon/gws-mcp-server.git
cd gws-mcp-server
npm install && npm run build

Configuration

Claude Code (.mcp.json)

{
  "mcpServers": {
    "google-workspace": {
      "command": "npx",
      "args": [
        "gws-mcp-server",
        "--services", "drive,sheets,calendar,docs,slides,gmail,tasks"
      ]
    }
  }
}

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "google-workspace": {
      "command": "npx",
      "args": [
        "gws-mcp-server",
        "--services", "drive,sheets,calendar"
      ]
    }
  }
}

Options

Flag

Description

Default

--services, -s

Comma-separated list of services to expose

All services

--gws-path

Path to the gws binary

gws

--read-only

Register only the read-only tools

off

--read-only

--read-only registers 22 tools instead of 51. Every tool that writes to Google is left unregistered, so it never appears in tools/list and there is nothing for an agent to call — including gmail_drafts_create, which is a write even though it never sends. drive_files_download stays, since it reads.

gws-mcp-server --read-only
gws-mcp-server --read-only --services drive,calendar   # combines with -s

This constrains the agent, not the credential. The token on disk keeps whatever scopes it was granted, and anything else on the machine can still use it. gws auth login --readonly is what narrows the token; the two are complementary. For an MCP server the agent is the threat model, but that is the limit of the claim.

Trimming context cost

Every registered tool rides along in each conversation: the full registry is roughly 37 KB of tools/list payload (~9.5K tokens) that your MCP client loads before anything else happens. The two flags above compose, and dropping whole services you don't use is the cheapest context win there is:

gws-mcp-server --services calendar                       # calendar assistant: 6 tools
gws-mcp-server --services drive,docs                     # document work, nothing else
gws-mcp-server --read-only --services drive,docs,sheets  # research setup: reads only

In .mcp.json or claude_desktop_config.json, the same trimming is just editing the args array:

"args": ["gws-mcp-server", "--services", "drive,calendar"]

A service's tool count (headers below) tracks its context cost: dropping tasks (12 tools) saves the most, docs (3 tools) the least. There is no per-tool exclude flag today — if service granularity is too coarse for your setup, open an issue describing the split you need.

Available services & tools

drive (14 tools)

  • drive_files_list — Search and list files

  • drive_files_get — Get file metadata

  • drive_files_create — Create files (with optional upload)

  • drive_files_copy — Copy files (useful for format conversion)

  • drive_files_update — Update file metadata/content

  • drive_files_delete — Delete files

  • drive_files_export — Export Google Workspace files (Doc, Sheet, Slide) to other formats

  • drive_files_download — Download file content (text inline, binary as base64 or saved to a path; Google-native files are exported to a readable format)

  • drive_permissions_create — Share files

  • drive_permissions_list — List all permissions on a file (audit sharing state, e.g. check for public access)

  • drive_permissions_update — Change an existing permission's role (e.g. reader to writer); downgrades remove capabilities. Use the dedicated transfer tools below for ownership changes.

  • drive_permissions_delete — Revoke a permission from a file

  • drive_permissions_transferOwnership — Immediately transfer ownership to another Google Workspace account in the SAME organization, downgrading the current owner to writer; sends a mandatory notification email; not supported for shared drive files

  • drive_permissions_proposeOwnershipTransfer — Propose transferring ownership between personal/consumer accounts; the recipient must separately accept (mandatory email notification), this doesn't transfer it outright

sheets (5 tools)

  • sheets_get — Get spreadsheet metadata

  • sheets_values_get — Read cell values

  • sheets_values_update — Write cell values

  • sheets_values_append — Append rows

  • sheets_batchUpdate — Apply updates to a spreadsheet (conditional formatting, cell/border formatting, adding sheets, and more; delete requests are permanent)

calendar (6 tools)

  • calendar_events_list — List events

  • calendar_events_get — Get event details

  • calendar_events_insert — Create events, optionally with attendees. sendUpdates controls invitation email (default none — no email, though the event may still appear on attendees' calendars depending on their settings)

  • calendar_events_update — Update events (only supplied fields change — except attendees, which replaces the whole list; omitted attendees are uninvited). Same sendUpdates support as insert

  • calendar_events_delete — Delete events

  • calendar_freebusy_query — Query free/busy information for one or more calendars over a time range

docs (3 tools)

  • docs_get — Get document content

  • docs_create — Create documents

  • docs_batchUpdate — Apply document updates

slides (5 tools)

  • slides_get — Get a presentation's slides, layouts, masters, and page elements

  • slides_create — Create a blank presentation

  • slides_batchUpdate — Apply updates (insert/update/delete slides, text, shapes, tables, etc)

  • slides_pages_get — Get a single page (slide, layout, or master)

  • slides_pages_getThumbnail — Get a thumbnail image URL for a page

gmail (6 tools)

  • gmail_messages_list — Search messages

  • gmail_messages_get — Read a message

  • gmail_threads_list — Search threads

  • gmail_threads_get — Read a full thread

  • gmail_threads_modify — Add/remove labels on a thread (archive, mark read, star)

  • gmail_drafts_create — Create a draft (plain text and/or HTML, with reply threading via threadId). Drafts are never auto-sent

tasks (12 tools)

  • tasks_tasklists_list — List task lists

  • tasks_tasklists_get — Get a task list

  • tasks_tasklists_insert — Create a task list

  • tasks_tasklists_update — Update a task list (only supplied fields change)

  • tasks_tasklists_delete — Delete a task list

  • tasks_tasks_list — List tasks (filters: completed/hidden/due dates)

  • tasks_tasks_get — Get a task

  • tasks_tasks_insert — Create a task (optionally nested or positioned)

  • tasks_tasks_update — Update a task (only supplied fields change; common use: mark complete)

  • tasks_tasks_move — Move a task within/across lists or reorder

  • tasks_tasks_delete — Delete a task

  • tasks_tasks_clear — Hide all completed tasks in a list

Update semantics: the *_update tools (calendar events, tasks, task lists) use the Google API's patch verb — they merge the fields you supply and leave the rest untouched. To clear an existing value, pass it explicitly (e.g. an empty string) rather than omitting it.

Total: 51 tools (vs 200-400 in the old implementation)

Adding new tools

Edit src/services.ts to add tool definitions. Each tool maps directly to a gws CLI command:

{
  name: "drive_files_list",           // MCP tool name
  description: "List files in Drive", // Shown to AI
  command: ["drive", "files", "list"],// gws CLI args
  params: [                           // Maps to --params JSON
    { name: "q", description: "Search query", type: "string", required: false },
  ],
  bodyParams: [                       // Maps to --json body
    { name: "name", description: "File name", type: "string", required: true },
  ],
}

Typed errors

Tool call failures are mapped to a typed error hierarchy (src/errors.ts): AuthenticationError (401/403), RateLimitError (429), ValidationError (400), NotFoundError (404, with a shared-drive access hint for drive commands), and ServerError (5xx), all extending a base GwsError. Unlike an HTTP API client, this server has no response object to read a status code from — it spawns the gws CLI as a subprocess and only sees plain text (stdout/stderr, or a rejected promise's .message). mapGwsErrorToTyped() recovers a status-like code from that text, handling both a raw JSON error body (Google's own {"error":{"code":...,"message":...}} shape) and plain text containing an HTTP-status-like token (e.g. "Error 404: ..."). If neither pattern is found, the original message passes through unchanged rather than forcing an invented status onto it.

Architecture

MCP Client (Claude) ←→ stdio ←→ gws-mcp-server ←→ gws CLI ←→ Google APIs

The server is a thin wrapper: it translates MCP tool calls into gws CLI invocations, passes --params and --json as appropriate, and returns the JSON output. Authentication stays in the gws CLI — this server never sees or stores your Google credentials.

Development

git clone https://github.com/conorbronsdon/gws-mcp-server.git
cd gws-mcp-server
npm ci
npm run lint    # type-check
npm run build
npm test        # vitest, mocks the executor layer — no real gws calls

Contributing

Issues and pull requests are welcome. The most useful contributions are new tool definitions in src/services.ts for high-value gws operations (see "Adding new tools" above). Keep the curated contract: a focused set of narrowly scoped tools, not a 1:1 mirror of every Google API surface. See SECURITY.md for how to report vulnerabilities.

Other options

This server is deliberately narrow: a curated tool surface, side effects declared on every tool, no freestanding send tool. That is the right trade for some workflows and the wrong one for others. The real alternatives:

You want

Use

Every Workspace API, self-hosted, with tiers and multi-user OAuth

taylorwilsdon/google_workspace_mcp — 120+ tools across 12 services, MIT, --tool-tier core|extended|complete

Google's own servers, hosted by Google

Google Workspace remote MCP servers — 8 endpoints, 42 tools. Developer Preview: requires an application, a Workspace account (not personal Gmail), and a supported client plan

No MCP at all — CLI plus agent skills

googleworkspace/cli — 100+ Agent Skills on the same gws auth login this server uses

Worth saying plainly: Google's official Gmail MCP server is also draft-only, with no send tool — the curated-surface argument is no longer contrarian. What this server still does that those don't: Google Tasks (Google's official lineup has no Tasks server), all four MCP annotation hints on every tool, a local stdio server with no preview application or plan gating, and --read-only as a single flag.

The analytics siblings

Data

Server

Google Workspace

this repo

Search Console

gsc-mcp — same curated approach, including derived views like gsc_striking_distance

YouTube Analytics

yt-analytics-mcp — owner-side channel, video, and playlist metrics; read-only, nine tools

Google Analytics 4

googleanalytics/google-analytics-mcp — Google's own, read-only

BigQuery

googleapis/mcp-toolbox — Google's own

These are separate credential families, not one login: Workspace authenticates with gws auth login, Search Console with a webmasters OAuth credential, YouTube Analytics with a yt-analytics.readonly OAuth credential, GA4 with Application Default Credentials scoped analytics.readonly. Nothing here shares a token with anything else.

About

Built and maintained by Conor Bronsdon. I host the Chain of Thought podcast, which covers AI infrastructure, developer tools, and how practitioners actually use this stuff. I built this to give the agent workflows that run the show safe, curated access to Gmail, Calendar, Drive, Sheets, Docs, Slides, and Tasks.

Companion tools:

  • Transistor-MCP: the Transistor.fm MCP server. Episodes, transcripts, and download counts.

  • substack-mcp: read posts and manage drafts on Substack, safe for agent workflows.

  • podcastindex-mcp: the Podcast Index MCP server, search by person or topic, trending shows, feed health.

  • op3-mcp: podcast analytics through OP3. Downloads, geography, apps. Read-only.

  • ai-tools-for-creators: a curated list of AI skills and MCP servers for people who ship ideas for a living.

More at chainofthought.show and on X.


Disclaimer

This is an independent personal project, not affiliated with, sponsored by, or endorsed by any company. All views expressed are my own.

License

MIT

Available Tools

39 tools
calendar_events_deleteA
Destructive

Delete a calendar event.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventIdYesEvent ID to delete
calendarIdYesCalendar ID

TDQS

A3.5/5.0
Behavior3/5

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

The description aligns with annotations (destructiveHint=true) by stating 'Delete', but it adds no additional behavioral context beyond what annotations already provide, such as consequences, permissions, or side effects.

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 extremely concise at four words, front-loading the key action and resource. Every word is necessary and earned, with no wasted text.

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 deletion tool with two well-documented parameters and no output schema, the description is minimally adequate. However, it could be improved by mentioning permanence or required permissions.

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?

With 100% schema description coverage, the input schema already fully documents both required parameters (eventId and calendarId). The description adds no further semantic value beyond the schema.

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 'Delete a calendar event' clearly specifies the action (delete) on a resource (calendar event), and among sibling tools like calendar_events_get, insert, list, and update, it uniquely identifies this tool as the deletion operation.

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 is provided on when to use this tool versus alternatives, prerequisites, or when not to use it. The description lacks any contextual usage hints.

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

calendar_events_getA
Read-only

Get a single calendar event by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventIdYesEvent ID
calendarIdYesCalendar ID

TDQS

A3.8/5.0
Behavior3/5

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

The description adds no behavioral details beyond the annotation readOnlyHint=true, which already indicates a safe read operation. No mention of authentication, rate limits, or return behavior. The description is adequate given the annotation coverage.

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 concise sentence of six words with no unnecessary information. It is front-loaded with the key action and resource.

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 get operation, the description is nearly complete. It lacks specifics about the return value (e.g., whether it returns full event details), but given no output schema and the tool's straightforward nature, this is a minor 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?

Both parameters (calendarId, eventId) are fully described in the input schema (100% coverage). The description does not add any additional parameter semantics beyond what the schema provides, which meets the baseline.

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 clearly states the verb 'Get', the resource 'single calendar event', and the selection criterion 'by ID'. It effectively distinguishes this tool from sibling tools like calendar_events_list (multiple events) and calendar_events_insert/update/delete.

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 context is implied by the tool name and purpose: use when you need a single event by ID. However, no explicit guidance on when not to use or alternatives (e.g., calendar_events_list for multiple events) is provided.

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

calendar_events_insertC

Create a new calendar event.

ParametersJSON Schema
NameRequiredDescriptionDefault
endYesEnd time JSON
startYesStart time JSON (e.g. '{"dateTime":"2026-03-10T10:00:00-07:00"}')
summaryYesEvent title
locationNoEvent location
calendarIdYesCalendar ID
descriptionNoEvent description

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false, so the description's 'Create' is consistent but adds nothing beyond that. No disclosure of behavioral traits like timezone handling, recurrence, or error responses.

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

Conciseness4/5

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

The description is extremely concise at 5 words. It is front-loaded but lacks any structure or elaboration. Every word earns its place, but the brevity may sacrifice completeness.

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?

Given the complexity (6 parameters, 4 required, no output schema), the description is insufficient. It does not cover return values, prerequisites, or side effects. Annotations provide minimal context, but the description should compensate.

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 baseline is 3. The description adds no additional meaning beyond the schema; it does provide an example for 'start' in the schema but not in the description field itself.

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 'Create a new calendar event' clearly states the verb (create) and resource (calendar event). It is specific enough to distinguish from sibling tools like update or delete, though it is brief.

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 alternatives (e.g., update, delete). No exclusions or context provided. Sibling tools exist but no differentiation is offered.

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

calendar_events_listB
Read-only

List events from a calendar.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoFree-text search
orderByNoSort order: startTime or updated
timeMaxNoUpper bound (RFC3339)
timeMinNoLower bound (RFC3339, e.g. "2026-03-07T00:00:00Z")
calendarIdYesCalendar ID (use 'primary' for main calendar)
maxResultsNoMax events to return
singleEventsNoExpand recurring events (usually true)

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, and the description is consistent ('list'). However, the description does not add any behavioral context beyond the annotation, such as pagination or time zone handling.

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 clear, concise sentence with no waste. Efficiently communicates the tool's purpose, though it could be slightly expanded for completeness.

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?

Despite good schema coverage, the description lacks context about return value (list of events), pagination behavior, or usage scenarios. For a list tool with 7 parameters and many siblings, the description is too minimal.

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 description adds no extra meaning beyond the schema. Baseline 3 applies as the schema already documents each parameter thoroughly.

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 'List events from a calendar' uses a specific verb ('list') and resource ('events'), clearly distinguishing it from siblings like calendar_events_get or calendar_events_delete.

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 vs alternatives. The description does not provide context on when to choose this over other list tools like drive_files_list or gmail_threads_list.

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

calendar_events_updateA

Update an existing calendar event with patch semantics (only supplied fields change).

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoEnd time JSON
startNoStart time JSON
eventIdYesEvent ID to update
summaryNoEvent title
calendarIdYesCalendar ID
descriptionNoEvent description

TDQS

A4.4/5.0
Behavior4/5

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

The annotation readOnlyHint=false confirms it's a write operation. The description adds important patch semantics, disclosing that only supplied fields change, which is beyond 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?

One sentence, no wasted words, front-loaded key information.

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?

No output schema, but the description is sufficient for a simple update tool; the agent can infer the return value. Lacks explicit return description but not necessary.

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

Parameters4/5

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

Schema coverage is 100% so baseline is 3. The description adds value by explaining patch semantics, clarifying how parameters interact (only supplied fields change).

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 clearly states the tool updates an existing calendar event and specifies patch semantics, distinguishing it from siblings like insert, delete, get, and list.

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

Usage Guidelines4/5

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

The description implies usage by stating patch semantics; it is clear when to use (modify existing event) but lacks explicit when-not-to-use or alternatives guidance.

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

docs_batchUpdateC

Apply updates to a Google Doc (insert text, formatting, etc).

ParametersJSON Schema
NameRequiredDescriptionDefault
requestsYesArray of update requests as JSON string
documentIdYesThe document ID

TDQS

C2.9/5.0
Behavior2/5

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

The annotation 'readOnlyHint: false' already indicates a write operation. The description adds only 'apply updates' which is consistent but provides no additional behavioral traits like auth needs, rate limits, or side effects.

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

Conciseness4/5

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

The description is a single sentence, concise with no filler. It effectively communicates the tool's purpose in minimal words.

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 mutation tool, the description is adequate but lacks mention of output or common use cases. Given no output schema, more context would be helpful.

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 the parameters are fully described. The description adds small value by giving examples of request types (insert text, formatting), but overall does not significantly enhance parameter understanding.

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 clearly states 'Apply updates to a Google Doc' with specific examples like 'insert text, formatting, etc.' This is a specific verb+resource but does not differentiate from sibling tools like docs_create.

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 alternatives, nor any exclusivity or prerequisites. The description only states what it does, not the context for its use.

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

docs_createB

Create a new empty Google Doc.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesDocument title

TDQS

B3.2/5.0
Behavior2/5

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

The description does not disclose behavioral traits beyond the annotation (readOnlyHint: false). No information about what happens if the title exists, whether the doc is created in a specific folder, or what the response contains. It adds no value beyond the annotation.

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, concise sentence with no unnecessary words. It is front-loaded and to the point.

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 simple creation tool, the description lacks critical context such as return value (e.g., document ID) or default location. With no output schema, the description should compensate but does not.

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 one parameter described as 'Document title'. The tool description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

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 clearly states the action (create) and the resource (new empty Google Doc). It distinguishes from sibling tools like docs_get or drive_files_create by specifying 'empty Google Doc'.

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 guidance on when to use this tool versus alternatives. No mention of when to use docs_create vs drive_files_create or docs_batchUpdate, nor any prerequisites or exclusions.

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

docs_getB
Read-only

Get a Google Doc's content and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesThe document ID

TDQS

B3.3/5.0
Behavior3/5

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

The description adds 'content and metadata' to the behavior, which is consistent with the readOnlyHint annotation. However, it does not disclose additional behavioral traits such as the format of returned content, rate limits, or required permissions. The annotation already indicates read-only, so the description provides marginal extra value.

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 concise sentence that is front-loaded with the core purpose. Every word earns its place; there is no redundancy or unnecessary detail.

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?

Given the simple input (one parameter with full schema coverage) and annotations covering the read-only behavior, the description is adequate but not rich. It does not mention the output structure, which could be helpful for an agent. No output schema exists to compensate, so slightly more detail could be beneficial.

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 covers 100% of parameters with a description for documentId. The tool description does not add additional semantic meaning beyond what the schema provides, so baseline score is appropriate. No parameter details are missing.

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 clearly states the tool retrieves a Google Doc's content and metadata, using a specific verb ('Get') and resource ('Google Doc'). It differentiates from sibling tools like docs_batchUpdate (which modifies) and sheets_get (different resource type), though it doesn't explicitly highlight these distinctions.

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 is provided on when to use this tool versus alternatives. It does not mention prerequisites (e.g., document must exist), when not to use it, or scenarios where other tools like docs_batchUpdate or drive_files_get would be more appropriate.

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

drive_files_copyB

Copy a file. Useful for converting formats (e.g. markdown to Google Doc).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the copy
fieldsNoFields to return
fileIdYesSource file ID to copy
parentsNoParent folder IDs (JSON array as string)
mimeTypeNoTarget MIME type for conversion

TDQS

B3.4/5.0
Behavior2/5

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

Beyond the annotation indicating a write operation, the description does not disclose behavioral details such as permissions needed, whether the original is preserved, or what happens during conversion. No contradictions 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?

Extremely concise: two sentences with no unnecessary words. The key action and a practical use case are front-loaded.

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?

Despite only 5 parameters and no output schema, the description lacks context about the copy behavior (e.g., permissions, location), the parents parameter, and the fields parameter. It leaves significant gaps for an agent to infer.

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?

With 100% schema coverage, the baseline is 3. The description adds minimal value by hinting at the mimeType parameter with an example, but does not elaborate on other parameters.

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 clearly states the verb 'copy' and resource 'file', and provides a specific use case (format conversion). This distinguishes it from siblings like drive_files_create and drive_files_update.

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?

It implies usage for copying and converting formats but lacks explicit guidance on when to use this tool vs alternatives like drive_files_export or drive_files_create. No when-not-to conditions are mentioned.

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

drive_files_createB

Create a new file in Google Drive. Use with bodyParams for metadata and optionally upload a local file.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFile name
fieldsNoFields to return (e.g. "id,webViewLink")
parentsNoParent folder IDs (JSON array as string, e.g. '["folderId"]')
mimeTypeNoMIME type (e.g. "application/vnd.google-apps.document")
uploadPathNoLocal file path to upload

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false, so the description adds minimal behavioral insight. It does not disclose authentication needs, rate limits, or consequences of creating a file with an existing name. The burden on description is higher due to no additional context.

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?

Two short sentences with no unnecessary words. The description is front-loaded with the purpose and immediately provides usage context. Every sentence earns its place.

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?

Despite good schema coverage, the description lacks information on return values, error handling, or prerequisites (e.g., required scopes). For a tool with 5 parameters and no output schema, more context is needed for the agent to use it 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 description coverage is 100%, so all parameters have individual descriptions. The description adds a general hint about using bodyParams, but does not provide additional meaning or constraints beyond the schema. Baseline score of 3 is appropriate.

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 clearly states 'Create a new file in Google Drive,' specifying the verb and resource. It distinguishes this tool from siblings like drive_files_list, drive_files_get, etc.

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 description hints at using 'bodyParams' for metadata and optional file upload, but does not explicitly state when to use this tool versus alternatives like drive_files_copy or other creation methods. No exclusion criteria or prerequisites are given.

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

drive_files_deleteA
Destructive

Permanently delete a file.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileIdYesThe file ID to delete

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, clearly signaling mutation. The description adds the qualifier 'permanently', reinforcing irreversibility. However, it does not disclose additional behavioral traits such as whether the deletion affects shared permissions or fails for non-existent files.

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 sentence containing only essential information. Every word serves a purpose, and there is no redundancy or extraneous 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?

Given the tool's simplicity and the presence of annotations (destructiveHint), the description adequately covers the core action. However, it could mention that the operation does not return a response body or clarify the source of the fileId (though the schema supplies that). Overall, it is mostly complete for a straightforward delete.

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 input schema provides full coverage for the single parameter fileId with a description. The tool's description does not add extra meaning beyond what the schema already states, so the baseline score of 3 is appropriate.

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 'Permanently delete a file' uses a specific verb ('delete') and resource ('file'), directly and unambiguously stating the tool's action. It clearly distinguishes itself from sibling tools like drive_files_copy or drive_files_update by specifying the destructive nature of the operation.

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 explicit guidance on when to use this tool versus alternatives (e.g., trashing a file or using a delete with confirmation). The word 'permanently' implies irreversibility, which offers implicit context, but no when-not-to-use or alternative tool names are mentioned.

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

drive_files_downloadA
Read-only

Download a file's content from Google Drive. Returns the text content for text files, or a base64-encoded string for binary files. For Google Docs/Sheets/Slides, exports to a readable format (plain text by default).

ParametersJSON Schema
NameRequiredDescriptionDefault
fileIdYesThe file ID to download
savePathNoFor binary files (images, PDFs): save to this local path instead of returning content inline. The file path is returned in the response.
exportMimeTypeNoFor Google-native files (Docs/Sheets/Slides): export format. Defaults to text/plain for Docs, text/csv for Sheets. Examples: text/plain, text/csv, application/pdf

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=true. The description adds value by explaining return formats (text, base64, export) and the savePath option. It does not contradict annotations and discloses important behavioral details beyond them.

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?

Three sentences with no wasted words, front-loading the core purpose. Each sentence adds distinct value, making it highly concise and structured.

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?

Given good annotations and full schema coverage, the description covers key behaviors. It could mention error handling or size limits, but the provided context is sufficient for typical usage. No output schema is needed as return behavior is described.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds meaning beyond schema by explaining return behavior based on file type and default export MIME types, enhancing parameter understanding.

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 clearly states the tool downloads file content from Google Drive, specifying behavior for text files, binary files, and Google native files. It uses specific verbs and resource, and distinguishes from siblings like drive_files_export and drive_files_get.

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 description does not provide explicit guidance on when to use this tool versus alternatives like drive_files_export. It implies usage for downloading content but lacks when-not or alternative tool mentions.

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

drive_files_exportA
Read-only

Export a Google Workspace file (Doc, Sheet, Slide) to a specific format. Returns JSON with export metadata. Use drive_files_download for automatic export with content returned inline.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileIdYesThe Google Workspace file ID to export
mimeTypeYesExport format: text/plain, text/csv, application/pdf, application/vnd.openxmlformats-officedocument.wordprocessingml.document (docx), application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (xlsx)

TDQS

A4.5/5.0
Behavior4/5

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

Read-only nature is consistent with readOnlyHint annotation. Description adds that return is JSON metadata, which is useful context beyond annotations. No mention of permissions or rate limits, but sufficient given 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?

Two concise sentences: first defines action and scope, second provides sibling guidance and return type. No wasted words.

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

Completeness5/5

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

For a simple export tool with two parameters, the description covers purpose, supported files, return format, and alternative usage. No output schema, but return type is mentioned. Complete given complexity and context from siblings.

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?

Input schema already provides descriptions for both parameters (fileId and mimeType) with mimeType listing possible formats. The description does not add new parameter insights beyond what schema provides, so baseline 3 applies due to 100% schema coverage.

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?

Clearly states the tool exports a Google Workspace file to a specific format, specifying file types (Doc, Sheet, Slide) and return type (JSON metadata). Distinguishes from sibling tool drive_files_download.

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

Usage Guidelines5/5

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

Explicitly directs to use drive_files_download for automatic export with inline content, providing clear alternative for when the agent wants content instead of metadata.

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

drive_files_getA
Read-only

Get a file's metadata by ID. Shared drive files are supported automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoFields to include
fileIdYesThe file ID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, marking it as a safe read. The description adds that 'Shared drive files are supported automatically,' which is a useful behavioral detail beyond annotations. However, no other side effects, permissions, or limitations are 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?

Two sentences, no redundancy, essential information front-loaded: action and resource in the first sentence, special feature in the second. Every word serves a purpose.

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 metadata retrieval tool with 2 parameters and no output schema, the description covers the core purpose and an important edge case (shared drives). A minor gap is lack of mention about return format or optional fields usage, but overall sufficient.

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 parameters (fileId, fields) well-described in the schema. The description does not add any additional meaning, examples, or clarification beyond what the schema already provides.

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 starts with a verb ('Get') and specifies the resource ('a file's metadata') and method ('by ID'). It clearly differentiates from sibling tools like drive_files_list, drive_files_download, etc., by focusing on metadata retrieval for a single file.

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 guidance on when to use this tool vs alternatives (e.g., drive_files_list for listing, drive_files_get vs drive_files_download for content vs metadata). No when-not-to-use or prerequisites are mentioned.

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

drive_files_listA
Read-only

List files in Google Drive. Supports search queries via the 'q' parameter. Shared drive files are included automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoSearch query (e.g. "name contains 'report'" or "mimeType='application/vnd.google-apps.folder'")
fieldsNoFields to include (e.g. "files(id,name,mimeType)")
orderByNoSort order (e.g. "modifiedTime desc")
pageSizeNoMax results per page (1-1000, default 100)

TDQS

A4.4/5.0
Behavior5/5

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

Description aligns with readOnlyHint annotation and adds valuable behavior: 'Shared drive files are included automatically'. No contradictions.

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?

Two concise, front-loaded sentences with no filler. Every sentence adds value.

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?

Covers purpose, search queries, and shared drive behavior. Lacks mention of pagination or default behavior (pageSize schema covers this partly). Adequate for a read-only list 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?

Schema coverage is 100% with parameter descriptions already present. Description adds only high-level context ('Supports search queries') but does not deepen parameter meaning significantly.

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?

Clearly states 'List files in Google Drive' with specific features (search queries, shared drive inclusion). Distinct purpose from sibling tools like drive_files_get and drive_files_create.

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

Usage Guidelines4/5

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

Provides clear context for use (listing files with search support) but does not explicitly mention when not to use it or direct alternatives among siblings.

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

drive_files_updateC

Update a file's metadata or content.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew file name
fieldsNoFields to return
fileIdYesThe file ID to update
mimeTypeNoNew MIME type
uploadPathNoLocal file path to upload

TDQS

C2.8/5.0
Behavior2/5

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

The annotations indicate it is a write operation (readOnlyHint=false), and the description confirms it updates. However, no additional behavioral details are given—e.g., whether content updates replace or append, permission requirements, or error conditions.

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?

The description is a single sentence, which is concise but at the cost of completeness. It is appropriately short but lacks necessary details for effective tool invocation.

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?

With no output schema and minimal annotations, the description fails to cover important aspects like return values, side effects, or prerequisites. This leaves the agent underinformed for correct usage.

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?

All parameters have schema descriptions (100% coverage), so the description adds minimal extra meaning. It does hint at the distinction between metadata (name, mimeType) and content (uploadPath) but does not elaborate 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 clearly states the tool updates a file's metadata or content, distinguishing it from sibling tools like drive_files_copy (copy) and drive_files_create (create). However, it does not explicitly differentiate itself from other update tools in the sibling set.

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 is provided on when to use this tool versus alternatives such as drive_files_copy or docs_batchUpdate. The description lacks context for appropriate usage scenarios.

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

drive_permissions_createB

Share a file by creating a permission.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYesPermission role: owner, organizer, fileOrganizer, writer, commenter, reader
typeYesGrantee type: user, group, domain, anyone
fileIdYesThe file ID to share
emailAddressNoEmail of user/group (required for user/group type)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations indicate it's a mutation (readOnlyHint=false). Description adds no further details about side effects (e.g., notifications) or required access. With annotations present, bar is lowered, but description is minimal.

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?

Extremely concise single sentence. No wasted words. Could include slightly more context but remains efficient.

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?

Tool has 4 parameters with conditional requirements (emailAddress needed for user/group type). Description does not mention this or output behavior. Schema covers param details, so overall context is borderline adequate.

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 covers all parameter descriptions (100% coverage). Description adds no new meaning beyond the schema. Baseline of 3 is appropriate.

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?

Description clearly states the tool creates a permission to share a file, using specific verb 'Share' and resource 'permission'. It distinguishes from sibling tools which operate on files or other entities.

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 vs. alternatives like drive_files_update. No mention of prerequisites (e.g., permission to share) or exclusions.

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

gmail_drafts_createA

Create a Gmail draft. Pass threadId to attach the draft to an existing conversation (it will appear as a reply within that thread). The draft is NOT sent — open Gmail to review and send.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNoCC recipient(s), comma-separated
toYesRecipient(s). Comma-separated for multiple, e.g. "a@x.com, b@y.com"
bccNoBCC recipient(s), comma-separated
bodyNoPlain-text body
subjectNoSubject line. When attaching to a thread via threadId, Gmail expects the subject to match the thread (typically "Re: <original>").
htmlBodyNoHTML body. If both body and htmlBody are provided, the draft is multipart/alternative.
threadIdNoThread ID to attach this draft to. Get it from gmail_threads_list / gmail_messages_get.
inReplyToNoMessage-ID header value of the message being replied to. Improves threading robustness alongside threadId.
referencesNoReferences header value (space-separated Message-IDs of ancestor messages).

TDQS

A4.1/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false, confirming write operation. The description adds that the draft is not sent and that threadId attaches it to an existing conversation, providing useful behavioral context beyond annotations. No contradictions.

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 concise (three sentences) and front-loaded with the primary action. Every sentence adds essential information without redundancy.

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 description covers the core purpose and key caveat (not sent) but omits return value information (e.g., draft ID). Given no output schema, the agent would benefit from knowing what to expect from the response. This gap reduces completeness.

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 the baseline is 3. The description adds minimal value beyond the schema parameter descriptions, only reiterating threadId usage. The schema itself documents each parameter sufficiently.

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 clearly states the action 'Create a Gmail draft' and distinguishes it from siblings by specifying the draft is not sent and can be attached to a thread via threadId. This provides precise verb+resource+scope.

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

Usage Guidelines4/5

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

The description explains that the draft is not sent (implying use when a draft is needed before sending) and mentions threadId for replying within a thread. However, it does not explicitly list alternatives or conditions when not to use. This is clear but lacks explicit exclusions.

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

gmail_messages_getB
Read-only

Get a single Gmail message by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesMessage ID
formatNoResponse format: full, metadata, minimal, raw
userIdYesUser ID (use 'me')

TDQS

B3.1/5.0
Behavior2/5

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

Beyond the readOnlyHint annotation, the description adds no behavioral details. It does not mention error handling, rate limits, or that the format parameter controls response content. The description relies entirely on the schema and annotations.

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

Conciseness4/5

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

The description is a single, clear sentence. It is appropriately concise for a simple get operation, though it could include more context without becoming overly long.

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?

Given the tool has 3 parameters and no output schema, the description is too sparse. It does not explain how to obtain the message ID or the significance of the format parameter. More context would aid agent decision-making.

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 parameter descriptions. The tool description adds no additional meaning about parameters, but the baseline for high coverage is 3. No parameter-specific information is provided beyond the schema.

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 clearly states the action (get), resource (a single Gmail message), and method (by ID). It accurately distinguishes this tool from siblings like gmail_messages_list which retrieves multiple messages.

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 alternatives such as gmail_messages_list or gmail_threads_get. The description provides no context about prerequisites or scenarios.

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

gmail_messages_listB
Read-only

List Gmail messages matching a query.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoGmail search query (e.g. "from:user@example.com subject:hello")
userIdYesUser ID (use 'me')
labelIdsNoLabel IDs to filter by
maxResultsNoMax messages to return

TDQS

B3.2/5.0
Behavior2/5

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

Annotations declare readOnlyHint=true, so the agent knows it's safe. However, the description adds no additional behavioral details like pagination limits, default maxResults, or that it returns message IDs/snippets rather than full bodies. For a list tool with no output schema, more transparency is needed.

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?

Single sentence, no filler, perfectly concise. Every word earns its place.

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?

The tool has no output schema and 4 parameters. The description does not explain what the response contains (e.g., list of message resources, metadata only). For a list operation, this is a significant omission that forces the agent to assume based on analogies. Does not fully cover the tool's behavior.

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 input schema already has 100% coverage with clear descriptions for all 4 parameters (q, userId, labelIds, maxResults). The description adds no further semantic value beyond restating the filter capability. Baseline score of 3 is appropriate.

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 clearly states the tool lists Gmail messages filtered by a query, with a specific verb ('List') and resource ('Gmail messages'). It distinguishes from sibling tools like gmail_messages_get (single message) and gmail_threads_list (threads vs messages).

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 alternatives (e.g., gmail_threads_list for threads, gmail_messages_get for a single message) or when not to use it. The description lacks context about scope, such as that it returns message metadata, not full content.

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

gmail_threads_getA
Read-only

Get a full Gmail thread by ID (all messages in the conversation).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThread ID
formatNoResponse format: full, metadata, minimal
userIdYesUser ID (use 'me')

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, aligning with the read operation. The description adds that the tool returns all messages in the thread. Given annotation coverage, it provides sufficient behavioral context without contradicting.

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?

Single sentence that is clear, direct, and free of verbosity. Every word is necessary and front-loaded.

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 get-by-ID tool, the description adequately conveys the purpose and result. It omits details like thread ID format or any limits, but the schema covers the parameter meaning. No output schema exists, so the return description is helpful.

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 detailed parameter descriptions. The description does not add additional parameter semantics beyond stating the result is a 'full thread'. Baseline 3 is appropriate.

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 clearly states the action ('Get'), the resource ('full Gmail thread by ID'), and adds clarifying context ('all messages in the conversation'). This distinguishes it from siblings like gmail_messages_get (single message) and gmail_threads_list (list threads).

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 description implies usage for retrieving an entire thread, but does not explicitly state when to use this tool versus alternatives like gmail_threads_modify or gmail_messages_get. No exclusions or usage context provided.

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

gmail_threads_listB
Read-only

List Gmail threads matching a query.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoGmail search query
userIdYesUser ID (use 'me')
maxResultsNoMax threads to return

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, so the description adds no further behavioral details. The description does not mention pagination, limits, or that results may be thread summaries. However, it does not contradict annotations, so a baseline of 3 is appropriate.

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

Conciseness4/5

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

The description is a single concise sentence with no waste. While very terse, it effectively communicates the core action. It could be slightly expanded for clarity but remains well-structured.

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?

Given the tool is a simple list operation with fully documented parameters and no output schema, the description is minimally adequate. It lacks details like pagination behavior, query syntax notes, or what thread fields are returned, but it is not grossly 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?

The input schema has 100% coverage, fully describing all three parameters (q, userId, maxResults). The description only indirectly references 'q' via 'matching a query', adding no additional semantic value beyond what the schema already provides.

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 clearly states the verb 'List' and the resource 'Gmail threads', and specifies the filtering aspect 'matching a query'. This effectively distinguishes it from sibling tools like gmail_threads_get (single thread retrieval) and gmail_messages_list (messages vs threads).

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 guidance on when to use this tool versus alternatives such as gmail_threads_get or gmail_messages_list. It lacks any context about prerequisites, query syntax hints, or recommended use cases.

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

gmail_threads_modifyA

Modify a Gmail thread: add/remove labels. To archive, remove INBOX. To mark read, remove UNREAD. To star, add STARRED.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThread ID
userIdYesUser ID (use 'me')
addLabelIdsNoJSON array of label IDs to add, e.g. ["STARRED"]
removeLabelIdsNoJSON array of label IDs to remove, e.g. ["INBOX","UNREAD"]

TDQS

A4.7/5.0
Behavior5/5

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

The description explains the effects of actions (e.g., 'remove INBOX' to archive, 'remove UNREAD' to mark read) and aligns with the readOnlyHint=false annotation. No contradictions; it adds context beyond 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?

Two sentences, front-loaded with purpose, followed by key examples. No unnecessary words; every sentence 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?

The description covers all essential use cases for a modification tool, but lacks information about prerequisites (e.g., OAuth scopes) or error handling. Since there is no output schema, return values are not explained, but that is acceptable for a mutation tool.

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

Parameters5/5

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

Schema coverage is 100%, and the description adds semantic value by showing how to use addLabelIds and removeLabelIds with common label identifiers (STARRED, INBOX, UNREAD), making it easier for the agent to select correct parameter values.

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 clearly states the action: 'Modify a Gmail thread: add/remove labels' and provides specific examples (archive, mark read, star) that distinguish it from sibling tools like gmail_threads_get or gmail_threads_list.

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

Usage Guidelines4/5

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

The description gives concrete use cases (archive, mark read, star) but does not explicitly state when not to use the tool or mention alternatives for other modifications (e.g., deleting). Still, the examples are practical and cover common scenarios.

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

sheets_getB
Read-only

Get spreadsheet metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
spreadsheetIdYesThe spreadsheet ID
includeGridDataNoInclude grid data

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, so the agent knows it's safe. The description adds no further behavioral details (e.g., what metadata contains, error cases), but does not contradict annotations.

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

Conciseness4/5

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

The description is a single sentence, concise and directly to the point. It could be slightly more informative while remaining concise, but it has no wasted words.

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?

Without an output schema, the description should clarify what metadata is returned and explain the includeGridData parameter. It lacks this context, making it less complete for a simple 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?

Schema description coverage is 100% (both parameters have descriptions). The description adds no additional meaning beyond the schema, meeting the baseline of 3.

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

Purpose5/5

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

The description 'Get spreadsheet metadata.' clearly states the action (get) and resource (spreadsheet metadata), distinguishing it from sibling tools like sheets_values_get which retrieve cell values.

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 is provided on when to use this tool versus alternatives (e.g., sheets_values_get for cell data). No prerequisites or context are mentioned.

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

sheets_values_appendB

Append values after the last row of a spreadsheet range.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesA1 notation range to append to
valuesYes2D array of values as JSON string
spreadsheetIdYesThe spreadsheet ID
valueInputOptionYesRAW or USER_ENTERED

TDQS

B3.3/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false, so a write operation is expected. However, the description does not disclose behavioral details such as whether rows are automatically created, what happens if the range does not exist, or any authorization requirements. It adds minimal value beyond the annotation.

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

Conciseness4/5

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

The description is a single sentence with no wasted words. It is appropriately front-loaded. While concise, it could include a brief note about return value or behavior without becoming verbose.

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?

Given the absence of an output schema, the description should explain what the tool returns (e.g., the updated range). It does not mention return values, error states, or side effects. This leaves the agent with incomplete information for safe 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?

The input schema has 100% coverage with descriptions for all parameters. The tool description adds no additional meaning beyond the schema; for example, it does not clarify how the 'range' parameter interacts with the append operation. Baseline 3 is appropriate.

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 clearly states the verb 'Append', the resource 'values', and specifies the location 'after the last row of a spreadsheet range'. It effectively distinguishes from sibling tools like 'sheets_values_update' which modifies existing data, and 'sheets_values_get' which reads data.

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 description implies use for adding data to the end of a sheet, but it provides no explicit context about when to use versus alternatives, such as when to use 'sheets_values_update' instead. No exclusions or prerequisites are mentioned.

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

sheets_values_getB
Read-only

Read values from a spreadsheet range.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesA1 notation range (e.g. "Sheet1!A1:D10")
spreadsheetIdYesThe spreadsheet ID
majorDimensionNoROWS or COLUMNS
valueRenderOptionNoFORMATTED_VALUE, UNFORMATTED_VALUE, or FORMULA

TDQS

B3.4/5.0
Behavior3/5

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

The readOnlyHint annotation already informs the agent that this is a safe read operation. The description adds no further behavioral context, such as data format, pagination, or error handling. With annotations covering safety, a score of 3 is appropriate—adequate but lacking extra detail.

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

Conciseness4/5

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

The description is a single, front-loaded sentence of seven words, with no redundancy. While concise, it could include slightly more context without becoming verbose, but it earns a 4 for efficiency.

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?

Given the simple read operation and no output schema, the description provides the minimum necessary information. It does not explain the return format (e.g., 2D array), but the agent can infer from typical spreadsheet API behavior. Sibling tools are diverse, but the purpose is sufficiently clear.

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?

All four parameters are documented in the input schema (100% coverage). The description does not add extra meaning beyond the schema, so the baseline score of 3 applies. The schema already explains range format, majorDimension options, and valueRenderOption choices.

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 clearly states the verb 'Read' and the resource 'values from a spreadsheet range', accurately conveying the tool's function. It distinguishes from sibling write tools (sheets_values_append, sheets_values_update) and possibly from sheets_get (sheet metadata), making selection 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?

No guidance is given on when to use this tool versus siblings. For example, it does not contrast with sheets_get (which reads sheet properties) or sheets_values_update (which modifies values). The agent must infer from the name and schema alone.

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

sheets_values_updateC

Write values to a spreadsheet range.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangeYesA1 notation range to write
valuesYes2D array of values as JSON string (e.g. '[["A","B"],["C","D"]]')
spreadsheetIdYesThe spreadsheet ID
valueInputOptionYesRAW or USER_ENTERED

TDQS

C2.9/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false, confirming mutation. The description adds no further behavioral details such as overwrite behavior, authorization needs, or rate limits. For a mutation tool, additional transparency would be beneficial.

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 sentence of 7 words, highly concise and front-loaded with the core action. No unnecessary text.

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?

No output schema, and the description lacks details about behavior (e.g., overwriting, cell effects) and usage context. For a mutation tool with 4 required params, more completeness is expected.

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 all four parameters described. The description does not add meaning beyond the schema, resulting in a baseline score of 3.

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 'Write values to a spreadsheet range' clearly states the verb (write) and resource (spreadsheet range). It distinguishes from sibling tools like sheets_values_get (read) and sheets_values_append (add rows), though it does not explicitly contrast with append.

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 is provided on when to use this tool versus alternatives (e.g., sheets_values_append). The description only states the core action without usage context or exclusions.

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

tasks_tasklists_deleteA
Destructive

Delete a task list. If it contains assigned tasks, the originals (in Docs/Chat Spaces) are also removed.

ParametersJSON Schema
NameRequiredDescriptionDefault
tasklistYesTask list ID to delete

TDQS

A4/5.0
Behavior4/5

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

Annotations indicate destructiveHint=true; description adds specific behavioral detail: if task list contains assigned tasks, originals in Docs/Chat Spaces are also removed. No contradiction.

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?

Single concise sentence that conveys the core purpose and an important side effect. No unnecessary words.

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 delete operation with one parameter, the description covers the key side effect. However, missing details on success response or error conditions, but acceptable given no output schema.

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?

Single parameter 'tasklist' is fully described in the schema as 'Task list ID to delete'. Description adds no additional meaning, but schema coverage is 100%, so baseline 3 is appropriate.

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?

Clearly states the action (delete) and resource (task list), with an additional note about side effects on assigned tasks, distinguishing it from other operations.

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?

No explicit guidance on when to use this tool versus alternatives like tasks_tasks_delete or tasks_tasklists_update. Implicitly clear from the name, but no differentiation from sibling tools.

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

tasks_tasklists_getA
Read-only

Get a task list by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
tasklistYesTask list ID (use "@default" for the user's default list)

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, so the read-only nature is covered. Description adds no extra behavioral context 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.

Conciseness4/5

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

Single sentence is concise and front-loaded with purpose. No wasted words, but could be slightly richer without sacrificing brevity.

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

Completeness5/5

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

For a simple read-only tool with one parameter and no output schema, the description is fully complete. All necessary information is provided.

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% and already describes the parameter including the '@default' usage. Description adds no additional meaning beyond the schema.

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?

Description clearly states verb 'Get' and resource 'task list by ID'. Distinguishes from sibling tools like tasks_tasks_get (gets a task) and tasks_tasklists_list (lists all task lists).

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?

No explicit when-to-use or alternative guidance. Usage is implied by the verb and resource, but no exclusions or prerequisites are mentioned.

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

tasks_tasklists_insertB

Create a new task list.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTask list title

TDQS

B3.1/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false, so the write nature is known. However, the description adds no extra behavioral details (e.g., authentication needed, rate limits, or that the created list is empty). Relies solely on annotations.

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?

Very concise at 5 words, front-loaded with the action. However, could include a brief note about the return value without becoming verbose. Acceptable for a simple tool.

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?

Given no output schema, the description should explain what the tool returns (e.g., the created task list object). It does not, leaving the return format ambiguous. Also lacks context about required scopes or typical use cases.

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 the 'title' parameter described as 'Task list title.' The description adds no further semantic value beyond the schema, meeting the baseline expectation.

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?

Description clearly states the verb 'Create' and the resource 'a new task list,' distinguishing it from sibling tools like tasks_tasklists_delete or tasks_tasklists_get. It is specific and 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?

No guidance on when to use this tool versus alternatives. No prerequisites, exclusions, or context such as 'Use when you need a new empty task list' or 'Not for updating existing lists.' Lacks explicit usage instructions.

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

tasks_tasklists_listA
Read-only

List the authenticated user's task lists.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageTokenNoToken for the next page of results
maxResultsNoMax task lists per page (1-100, default 20)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare a safe read operation (readOnlyHint=true). The description adds that it's scoped to the 'authenticated user', which is useful but minimal. No further behavioral traits (e.g., pagination behavior) are disclosed.

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

Conciseness4/5

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

The description is a single sentence with no wasted words. It is concise and front-loaded, though it could be expanded slightly without harming 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?

No output schema, so return structure is unspecified. The description is adequate for a simple list operation but could mention that it returns a list of task lists to aid the agent. Annotations provide safety context.

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?

Input schema covers both parameters (pageToken, maxResults) with descriptions, so schema coverage is 100%. The description adds no additional meaning beyond the schema fields.

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 is a specific verb+resource: 'List the authenticated user's task lists.' It clearly distinguishes this tool from sibling tools like tasks_tasklists_get (specific) and tasks_tasklists_delete, etc.

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?

No explicit guidelines on when to use this tool vs alternatives. The description implies that it lists all task lists for the authenticated user, but it doesn't mention when to use tasks_tasklists_get for a single list or other write operations.

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

tasks_tasklists_updateA

Update a task list (only supplied fields change).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoNew task list title
tasklistYesTask list ID to update

TDQS

A4/5.0
Behavior4/5

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

Annotations only provide readOnlyHint=false, indicating mutation. The description adds the important behavioral detail that only supplied fields change (PATCH-like behavior), which is not evident from annotations alone. However, it does not disclose potential side effects or error conditions.

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, compact sentence that communicates the essential purpose and key behavioral trait. No redundant or irrelevant information.

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?

Given the tool's simplicity (2 parameters, no output schema), the description is sufficient: it states the action and partial update behavior. It could mention that the tasklist ID is required, but that is already in the schema. A minor gap: what the tool returns is unspecified, but no output schema exists.

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 both parameters described. The description adds the partial update context, which marginally clarifies parameter usage (title is optional). With complete schema, baseline is 3, and the description doesn't significantly enhance parameter understanding.

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 clearly states the tool updates a task list and specifies partial update behavior ('only supplied fields change'). This distinguishes it from sibling tools like tasks_tasklists_insert (create) and tasks_tasklists_delete (delete), making the purpose unambiguous.

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 description implies usage for updating an existing task list, but does not explicitly state when to use this tool versus alternatives like tasks_tasklists_insert or tasks_tasklists_delete. No guidance on when not to use or prerequisites.

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

tasks_tasks_clearA
Destructive

Hide all completed tasks in a list. Cleared tasks are not deleted but stop appearing in default list responses.

ParametersJSON Schema
NameRequiredDescriptionDefault
tasklistYesTask list ID to clear

TDQS

A4/5.0
Behavior4/5

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

Description adds beyond annotations: clarifies that clearing hides, not deletes, tasks. Annotations indicate destructive=true, readOnly=false, which align. No contradictions.

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?

Two concise sentences, no wasted words, front-loaded with action. Every sentence adds value.

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?

Simple tool with one parameter, no output schema. Description explains key behavioral nuance (hide vs delete) and purpose. 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 already describes 'tasklist' as 'Task list ID to clear'. Description adds no extra parameter info. Baseline 3 since schema coverage is 100%.

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 clearly states the verb 'Hide' and resource 'all completed tasks in a list'. It distinguishes from deletion by noting tasks are not deleted but stop appearing in default responses.

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?

Implies usage for hiding completed tasks, but no explicit when-to-use or alternatives. Sibling tools like tasks_tasks_delete are not mentioned, leaving the agent to infer differentiation.

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

tasks_tasks_deleteA
Destructive

Delete a task. If assigned from Docs/Chat Spaces, the original is also removed.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesTask ID to delete
tasklistYesTask list ID

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true, and the description adds useful context that deletion also removes the original if assigned from Docs/Chat Spaces. This goes beyond the annotation flag.

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?

Two sentences with 17 words, front-loaded with the verb 'Delete', and no wasted text. Every word adds value.

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?

Given the low complexity (2 required params, no output schema), the description covers the essential behavior and side-effect. It is complete enough for an agent to understand the tool's impact.

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 descriptions for both parameters. The tool description does not add any extra meaning to the parameters beyond what the schema provides.

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 clearly states 'Delete a task' with a specific verb and resource, distinguishing it from other deletion tools. It also adds nuance about removal from Docs/Chat Spaces, which is a unique detail.

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 description implies usage for deleting tasks but provides no explicit guidance on when to use this tool versus alternatives like tasks_tasks_clear. No exclusions or context are given.

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

tasks_tasks_getA
Read-only

Get a task by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesTask ID
tasklistYesTask list ID

TDQS

A3.6/5.0
Behavior2/5

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

Description adds no behavioral context beyond the readOnlyHint annotation. No mention of permissions, rate limits, or response 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?

Single sentence, no unnecessary words, front-loaded with essential information.

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?

Adequate for a simple get operation; could mention response structure but not required without output schema.

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 descriptions in schema; description adds no additional parameter meaning, meeting baseline for high coverage.

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?

Description 'Get a task by ID' specifies verb (get) and resource (task by ID), clearly distinguishing from sibling tools like tasks_tasks_list (list) or tasks_tasks_insert (create).

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?

No explicit guidance on when to use vs. alternatives; usage is implied but not elaborated.

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

tasks_tasks_insertA

Create a new task. Use parent to nest as a subtask, previous to position after a sibling.

ParametersJSON Schema
NameRequiredDescriptionDefault
dueNoDue date (RFC 3339, e.g. "2026-06-01T00:00:00.000Z")
notesNoFree-text notes / body
titleYesTask title
parentNoParent task ID (insert as a subtask under this task)
statusNoTask status: needsAction or completed
previousNoSibling task ID (insert immediately after this task)
tasklistYesTask list ID to insert into

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false, so the write intent is clear. The description adds behavioral details on nesting and ordering beyond annotations, but does not mention return behavior or potential side effects (e.g., response shape, idempotency).

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?

Two concise sentences, front-loaded with the primary action, zero waste. Every word serves a purpose.

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?

The description is complete for the tool's purpose given its complexity. It covers the core creation action and optional nesting/ordering. It could be improved by mentioning the return value (e.g., created task ID), but this is not critical.

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

Parameters4/5

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

Schema coverage is 100% with good individual parameter descriptions. The description adds value by explaining how 'parent' and 'previous' interact (nesting vs. ordering), which goes beyond the schema's isolated descriptions.

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 clearly states the tool creates a new task and explains how the 'parent' and 'previous' parameters enable subtask nesting and sibling positioning, distinguishing it from siblings like tasks_tasks_move and tasks_tasks_update.

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

Usage Guidelines4/5

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

The description explains the core action and when to use the 'parent' and 'previous' parameters, but it does not explicitly state when not to use this tool or provide alternatives for similar tasks (e.g., updating instead of inserting).

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

tasks_tasks_listA
Read-only

List tasks in a task list. Excludes hidden and assigned tasks by default; set showHidden/showAssigned to include them.

ParametersJSON Schema
NameRequiredDescriptionDefault
dueMaxNoUpper bound on due date (RFC 3339)
dueMinNoLower bound on due date (RFC 3339)
tasklistYesTask list ID (use "@default" for the default list)
pageTokenNoToken for the next page of results
maxResultsNoMax tasks per page (1-100, default 20)
showHiddenNoInclude hidden (cleared) tasks
updatedMinNoLower bound on last-modified time (RFC 3339)
showDeletedNoInclude deleted tasks
completedMaxNoUpper bound on completion date (RFC 3339)
completedMinNoLower bound on completion date (RFC 3339)
showAssignedNoInclude tasks assigned from Docs/Chat Spaces
showCompletedNoInclude completed tasks (default true; ignored unless showHidden is also true)

TDQS

A4.1/5.0
Behavior4/5

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

The description adds behavioral context beyond the readOnlyHint annotation by specifying default exclusions of hidden and assigned tasks. It does not contradict annotations. However, it does not mention pagination or rate limits.

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 two sentences, front-loaded with the core action, and contains no redundant information.

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?

Given the tool has 12 parameters including pagination and multiple date filters, the description only covers default filters. It lacks mention of pagination (pageToken, maxResults) and other filtering options, making it somewhat incomplete for an agent.

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 baseline is 3. The description adds meaningful context only for showHidden and showAssigned parameters, but other parameters are adequately documented in the schema.

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 clearly states the tool lists tasks in a task list, specifies the default exclusion of hidden and assigned tasks, and distinguishes it from other tasks tools like getting a single task or modifying task lists.

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

Usage Guidelines4/5

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

The description provides guidance on default filtering and how to include hidden/assigned tasks with parameters. It implicitly distinguishes from other tasks tools, but could be more explicit about when to use this list vs. other list tools (though only one exists).

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

tasks_tasks_moveA

Move a task within its list or to another list. Use parent/previous to set position; destinationTasklist to change list.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesTask ID to move
parentNoNew parent task ID (move as subtask under this task)
previousNoNew sibling task ID (move immediately after this task)
tasklistYesSource task list ID
destinationTasklistNoDestination task list ID (omit to move within the source list)

TDQS

A4.2/5.0
Behavior3/5

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

The description aligns with annotations (readOnlyHint=false) by indicating a write operation. It discloses the core behavior: moving within or between lists via positioning parameters. However, it does not detail potential side effects (e.g., removal from old list, permission requirements) or confirm non-destructiveness beyond the implied move.

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 extremely concise (two sentences, 20 words) and front-loaded with the action. Every sentence provides essential information without redundancy.

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?

Given the 5 parameters, 2 required, and no output schema, the description adequately covers the operation by explaining the key parameters and their purposes. It omits potential edge-case behaviors (e.g., moving from a subtask position), but remains complete for typical use.

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

Parameters4/5

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

The description adds value beyond the schema by clarifying the roles of 'parent' and 'previous' for ordering, and 'destinationTasklist' for changing lists. Since schema coverage is 100%, the baseline is 3; the extra usage context justifies a 4.

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 clearly states the action 'Move a task within its list or to another list', specifying the resource (task) and scope (within or between lists). It distinguishes from sibling tools like tasks_tasks_update or tasks_tasks_list by focusing solely on relocation and reordering.

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

Usage Guidelines4/5

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

The description provides explicit guidance on parameter usage: 'Use parent/previous to set position; destinationTasklist to change list.' It implies when to use each parameter, though it does not explicitly exclude alternatives or state when not to use the tool. For a move operation, this is sufficient.

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

tasks_tasks_updateA

Update a task (only supplied fields change). Common use: complete a task by setting status to "completed".

ParametersJSON Schema
NameRequiredDescriptionDefault
dueNoDue date (RFC 3339)
taskYesTask ID to update
notesNoFree-text notes / body
titleNoTask title
statusNoTask status: needsAction or completed
tasklistYesTask list ID

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false, consistent with the update nature. The description adds partial update behavior and a common use case. It does not discuss side effects or permissions, but for a simple update, this is adequate.

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 two sentences, no redundant words. It front-loads the purpose and immediately adds useful detail. Every word 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?

Given the simple update operation and no output schema, the description covers purpose, use case, and partial update behavior. It could mention return values (e.g., updated task object) but this is a minor gap.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents each parameter. The description adds value by clarifying that only supplied fields change, which is a behavioral nuance not evident from individual parameter descriptions.

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 clearly states 'Update a task' with specific verb and resource. It distinguishes from siblings like tasks_tasks_insert and tasks_tasks_delete by focusing on updating existing tasks, and provides a common use case.

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

Usage Guidelines4/5

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

The description explicitly notes 'only supplied fields change,' implying partial update semantics. It gives a concrete example for completing a task. However, it does not mention when to use alternatives (e.g., tasks_tasks_move for moving tasks) or when not to use this tool.

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. 12 tool updatesv0.4.0
    • Addedtasks_tasklists_delete
    • Addedtasks_tasklists_get
    • Addedtasks_tasklists_insert
    • Addedtasks_tasklists_list
    • Addedtasks_tasklists_update
    • Addedtasks_tasks_clear
    • Addedtasks_tasks_delete
    • Addedtasks_tasks_get
    • Addedtasks_tasks_insert
    • Addedtasks_tasks_list
    • Addedtasks_tasks_move
    • Addedtasks_tasks_update
  2. 2 tool updatesv0.1.2
    • Addedgmail_drafts_create
    • Addedgmail_threads_modify
  3. 25 tool updatesv1.0.0
    • First observedcalendar_events_delete
    • First observedcalendar_events_get
    • First observedcalendar_events_insert
    • First observedcalendar_events_list
    • First observedcalendar_events_update
    • First observeddocs_batchUpdate
    • First observeddocs_create
    • First observeddocs_get
    • First observeddrive_files_copy
    • First observeddrive_files_create
    • First observeddrive_files_delete
    • First observeddrive_files_download
    • First observeddrive_files_export
    • First observeddrive_files_get
    • First observeddrive_files_list
    • First observeddrive_files_update
    • First observeddrive_permissions_create
    • First observedgmail_messages_get
    • First observedgmail_messages_list
    • First observedgmail_threads_get
    • First observedgmail_threads_list
    • First observedsheets_get
    • First observedsheets_values_append
    • First observedsheets_values_get
    • First observedsheets_values_update

TDQS

A3.7/5.0

Scored across 39 tools

Disambiguation5/5

Tools are clearly separated by service prefix (calendar_events_, docs_, drive_files_, etc.) and each has a distinct purpose. The few pairs that could be confused (e.g., drive_files_download vs. drive_files_export) are well-differentiated by their descriptions.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with service prefix (e.g., calendar_events_list, drive_files_create). The naming convention is uniform and predictable across all services.

Tool Count4/5

39 tools cover multiple Google Workspace services (Calendar, Docs, Drive, Gmail, Sheets, Tasks) with essential CRUD and some extra operations. While on the higher end, the count is justified by the breadth of the domain and each tool serves a clear function.

Completeness5/5

The tool surface covers the full lifecycle for each service: create, read, update, delete, plus service-specific actions like move, export, and modify. There are no obvious dead ends, and any gaps (e.g., docs deletion) are handled by other tools (drive_files_delete).

Maintenance

ActivityActive
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers