Skip to main content
Glama
rajool

google-workspace-mcp

by rajool

google-workspace-mcp

One MCP server, all your Google accounts.

A multi-account Google Workspace MCP server for Claude CodeGmail, Calendar, Drive, and Tasks across any number of Google accounts in parallel. Every tool takes an account slug, so a single Claude session can email from one account, file in another's Drive, and book an event in a third. Ships as a Claude Code plugin that is also its own marketplace.

CI License: MIT Plugin version Claude Code plugin Changelog


Why google-workspace-mcp

  • One server, every account. Each tool call passes an account slug (e.g. work, personal). The server loads and refreshes that account's OAuth token transparently — no switching, no separate servers.

  • Per-project access control. Accounts are configured at runtime, never baked into code. Each project's .mcp.json scopes it to a subset, so a personal project never even sees your work account.

  • Your own OAuth client. You bring a (free) Google Cloud OAuth client, so you own the access and get the full tool surface — including things the default claude.ai connector can't do, like deleting a draft. Nothing is routed through anyone else's infrastructure.

  • Secrets stay out of the tree. The OAuth client and per-account refresh tokens live under ~/.config/google-workspace-mcp/ (written 0600), never next to code.

  • 38 tools across four services — see the catalog below.

Related MCP server: google-workspace-mcp

Table of contents

Install

/plugin commands run inside Claude Code — type them at the prompt.

# 1) Register the marketplace (once per machine)
/plugin marketplace add rajool/google-workspace-mcp

# 2) Install the plugin
/plugin install google-workspace-mcp@google-workspace-mcp

This gives you the /google-workspace-setup command, which walks you through everything in Setup — checking prerequisites, creating the OAuth client, defining accounts, authorizing each one in the right browser, and wiring the server into your project.

Some environments don't expose the /plugin slash command. Add the block below to .claude/settings.json at user level (~/.claude/settings.json, applies everywhere) or project level (committed, so teammates get it on trust). The runtime reconciles enabledPlugins at startup and fetches the marketplace automatically:

{
  "extraKnownMarketplaces": {
    "google-workspace-mcp": {
      "source": { "source": "github", "repo": "rajool/google-workspace-mcp" }
    }
  },
  "enabledPlugins": {
    "google-workspace-mcp@google-workspace-mcp": true
  }
}

Setup

Requires uv on your PATH. The /google-workspace-setup command automates these steps; here is the manual path.

1. Create your own Google Cloud OAuth client

Each user creates their own client (free):

  1. Go to the Google Cloud Console and create a project (or pick one).

  2. APIs & Services → Enabled APIs & services → + Enable APIs — enable the Gmail, Google Calendar, Google Drive, and Google Tasks APIs.

  3. APIs & Services → OAuth consent screen — User type External. Fill the required fields. Under Test users, add every Google account you intend to connect. (Leaving the app in Testing is fine.)

  4. APIs & Services → Credentials → + Create credentials → OAuth client ID → Application type: Desktop app. Download the JSON.

  5. Save that JSON as:

    ~/.config/google-workspace-mcp/credentials.json

2. Install the server binary

So a project's .mcp.json can launch it by name:

# from GitHub:
uv tool install git+https://github.com/rajool/google-workspace-mcp

# …or from a local clone:
uv tool install .

This installs two commands: google-workspace-mcp (the server) and google-workspace-authorize (the OAuth helper).

3. Define your accounts

Give each account a short slug. Two ways:

a) A registry file (recommended) — ~/.config/google-workspace-mcp/accounts.json (template: accounts.example.json):

{
  "accounts": {
    "work":     { "email": "you@company.com", "name": "Your Name" },
    "personal": { "email": "you@gmail.com",   "name": "Your Name" }
  }
}

name is the display name shown in the From: header on sent mail (set it to "" to send with the bare address).

b) Or inline per project via the GWM_ACCOUNTS env var (see step 5) — handy if you don't want a shared registry file.

4. Authorize each account

This prints a Google consent URL — open it in a browser signed into that account and click Allow:

# account already in accounts.json — just the slug:
google-workspace-authorize work

# or register a brand-new account inline (adds it to accounts.json):
google-workspace-authorize personal you@gmail.com "Your Name"

You'll click through the "Google hasn't verified this app" warning (it's your own app) → Continue → Select all → Continue. The refresh token is written to ~/.config/google-workspace-mcp/tokens/<slug>.json.

5. Wire it into a project

Add a .mcp.json at the project root. GWM_ACCOUNTS decides which accounts this project may use:

{
  "mcpServers": {
    "google-workspace": {
      "command": "google-workspace-mcp",
      "env": { "GWM_ACCOUNTS": "work,personal" }
    }
  }
}
  • GWM_ACCOUNTS can be a comma-list of slugs from your registry, or an inline JSON map ({"work":{"email":"…","name":"…"}}) if you skipped the registry.

  • Omit GWM_ACCOUNTS to expose every account in the registry.

Restart Claude Code (or reconnect MCP) to pick it up, then ask Claude to list accounts to confirm.

Per-project access control

The point of GWM_ACCOUNTS is isolation: a project literally cannot act as an account that isn't in its list — the server refuses the slug. Tokens are stored centrally (authorize once), but each project's .mcp.json chooses its own slice:

Project

.mcp.json GWM_ACCOUNTS

Can use

personal site

personal

personal only

work app

work,support

work + support

Tools

Every call requires an account slug. accounts_list shows the configured accounts and which have valid tokens.

Gmail

Tool

What it does

gmail_send

Send immediately — to/cc/bcc, plain or HTML, and correct reply threading via thread_id + in_reply_to_message_id.

gmail_draft_create / gmail_draft_update

Create a draft / overwrite its contents.

gmail_draft_send / gmail_draft_delete

Send a draft / permanently delete one (the thing the default connector can't do).

gmail_drafts_list

List drafts, with Gmail query syntax.

gmail_search

Search messages (from:foo subject:bar), returns sender/subject/date metadata in one round trip.

gmail_message_get / gmail_thread_get

Fetch one message (with decoded plain-text body) / a whole thread.

gmail_message_modify

Add/remove labels (e.g. mark read by removing UNREAD).

gmail_message_trash

Move to Trash (reversible for 30 days).

gmail_labels_list

List all labels.

Email body format. Write body as plain text: blank-line paragraphs, - bullets, 1. / 1) numbered lines (ASCII or Persian digits). The server sends it as multipart/alternative — the text/plain part byte-identical to your body, plus a generated Gmail-composer-style text/html part (<div dir="auto"> per line, real <ul>/<ol> for lists). Recipients see proper paragraphs and Gmail-native bullets/numbering, RTL and LTR lines both lay out correctly, and a draft opened in the Gmail web UI can be edited and sent safely (Gmail hard-wraps plain-text-only messages at ~70 columns on Send; multipart is immune). Never hard-wrap lines yourself; pass html=true only when the body is already real HTML. | gmail_label_create | Create a label (nested via Parent/Child names). Idempotent — an existing label is returned as-is. | | gmail_attachment_download | Download one attachment to a local path (attachment_id from a format=full message). |

Calendar

Tool

What it does

calendar_list

All calendars the account can access.

calendar_events_list

Events in a time range, with search and recurring-event expansion.

calendar_event_get

Fetch one event.

calendar_event_create

Timed or all-day events — attendees, location, timezone, invitation emails (send_updates), optional Google Meet link.

calendar_event_update

Patch only the fields you pass.

calendar_event_delete

Delete an event.

Drive

Tool

What it does

drive_search

List/search with the Drive query language; shared drives included.

drive_file_get

Full metadata for one file.

drive_file_download

Download any file; exports Google Docs/Sheets/Slides to e.g. PDF or CSV.

drive_file_upload

Upload a local file; optionally convert .docx/.xlsx/.pptx to native Google formats.

drive_file_move / drive_file_rename

Move between folders / rename.

drive_file_trash

Move to trash (reversible).

drive_folder_create

Create a folder.

drive_file_share

Share with someone by email — role from reader to organizer, optional notification message.

Tasks

Tool

What it does

tasklist_list / tasklist_create / tasklist_delete

Manage task lists.

task_list / task_get

List tasks (incl. completed/hidden) / fetch one.

task_create

New task — notes, due date, as a subtask (parent), ordered (previous).

task_update / task_complete

Patch fields / mark completed.

task_move

Reposition: under a parent and/or after a sibling.

task_delete

Delete a task.

Configuration & storage

Everything lives under the config home — $GWM_HOME, else $XDG_CONFIG_HOME/google-workspace-mcp, else ~/.config/google-workspace-mcp/:

What

Path

Override

OAuth client secret

<config-home>/credentials.json

$GWM_CREDENTIALS

Account registry

<config-home>/accounts.json

$GWM_ACCOUNTS_FILE

Per-account tokens

<config-home>/tokens/<slug>.json

$GWM_TOKENS_DIR

Per-instance account scope

$GWM_ACCOUNTS

Token files are written 0600.

Scopes

Broad on purpose — these are your own accounts; narrower scopes would force a re-auth every time a tool is added:

  • https://mail.google.com/

  • https://www.googleapis.com/auth/calendar

  • https://www.googleapis.com/auth/drive

  • https://www.googleapis.com/auth/tasks

Adding a scope (as v0.3.0 did for Tasks) requires re-running google-workspace-authorize <slug> for each account.

Trust & security

  • Local only. The server speaks stdio to Claude Code and talks only to Google's APIs. The one listener it ever opens is a temporary 127.0.0.1 redirect during google-workspace-authorize, which closes as soon as consent lands.

  • Your client, your tokens. The OAuth client and tokens stay on your machine, outside this repo. Never commit credentials.json or tokens/ (the bundled .gitignore refuses both).

  • Nothing shared between users. Each teammate runs their own OAuth client and authorizes their own accounts.

  • Treat the config dir as a secret store. Tokens grant broad access to your mail/calendar/drive/tasks — ~/.config/google-workspace-mcp/ deserves the same care as ~/.ssh/.

  • An MCP server that can send email and share files deserves review before you enable it — the whole surface is ~1,300 lines of Python in src/google_workspace_mcp/. See SECURITY.md to report a vulnerability.

Repository layout

google-workspace-mcp/
├── .claude-plugin/
│   ├── plugin.json                  # the plugin manifest
│   └── marketplace.json             # single-repo marketplace (source: "./")
├── commands/
│   └── google-workspace-setup.md    # /google-workspace-setup — guided setup
├── src/google_workspace_mcp/
│   ├── server.py                    # the MCP server — all 38 tools
│   ├── auth.py                      # token load/refresh + Google service builders
│   ├── accounts.py                  # runtime account registry + GWM_ACCOUNTS scoping
│   └── authorize.py                 # standalone OAuth consent flow (CLI)
├── accounts.example.json            # template for ~/.config/google-workspace-mcp/accounts.json
├── pyproject.toml                   # uv/hatchling package — the two console scripts
└── .github/workflows/ci.yml         # lint, import smoke test, manifest validation

Development

git clone https://github.com/rajool/google-workspace-mcp
cd google-workspace-mcp
uv sync                                   # create .venv with locked deps
claude --plugin-dir .                     # load the plugin without installing

# Quality gates (CI runs the same — see .github/workflows/ci.yml)
uvx ruff check .                          # lint
uv run python -m py_compile src/google_workspace_mcp/*.py
uv run python -c "from google_workspace_mcp import server"   # import smoke test
claude plugin validate . --strict         # validate plugin + marketplace manifests

A user-facing change bumps version in .claude-plugin/plugin.json, pyproject.toml, and src/google_workspace_mcp/__init__.py, and adds a CHANGELOG.md entry — installed projects pick it up on /plugin marketplace update.

Contributing

Contributions are welcome. The repo is public, generic, and English-only — no personal emails, real account slugs, home paths, or secrets. See CONTRIBUTING.md for the development setup and checks, and CODE_OF_CONDUCT.md for community expectations.

License

MIT © Ali Rajool. Part of the same toolkit family as yar and boote.

Available Tools

40 tools
accounts_listA

List the configured Google accounts and whether each has a valid token.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

The description explains the output (list of accounts with token validity) but does not disclose potential side effects, errors, or security implications. With no annotations, a 3 is appropriate as it provides basic behavioral insight without 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.

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys the full purpose without any wasted words. It is appropriately concise.

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 list operation with no parameters and a clear output expectation, the description is complete. It covers what the tool returns (accounts and token status), which is sufficient given the absence of an output schema.

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?

There are zero parameters, so the baseline is 4. The description does not need to add parameter information since none exist.

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 (List), the resource (configured Google accounts), and the specific detail (whether each has a valid token). This is precise and distinguishes the tool from siblings, as no other tool deals with account listing.

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?

Although no explicit when-to-use or alternatives are provided, the description gives clear context for when to invoke this tool (to list accounts and check tokens). Since it's the only accounts tool among siblings, the usage is implied and no exclusions are necessary.

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

calendar_event_createB

Create an event. start/end are RFC3339 datetimes; date-only ('2026-06-10') makes an all-day event.

ParametersJSON Schema
NameRequiredDescriptionDefault
endYes
startYes
accountYes
summaryYes
locationNo
timezoneNo
attendeesNo
calendar_idNoprimary
descriptionNo
send_updatesNonone
add_google_meetNo

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description explains the start/end format nuance but omits other behavioral aspects like permissions, error conditions, side effects of attendee list or send_updates, and return value structure.

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 that convey the essential action and a critical formatting note. Every word adds value.

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 complexity of 11 parameters, no output schema, and no annotations, the description is incomplete. It covers the datetime nuance but nothing about return values, error handling, or timezone behavior.

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

Parameters2/5

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

Schema description coverage is 0%, yet the description only adds meaning for two parameters (start, end) out of eleven. The remaining parameters (account, summary, calendar_id, etc.) are left entirely to schema property names.

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's purpose: 'Create an event.' It also adds a useful detail about datetime format and all-day event creation, which is specific and helpful.

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 does not provide any guidance on when to use this tool versus alternatives (e.g., calendar_event_update), nor does it mention prerequisites or conditions for use.

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

calendar_event_deleteC

Delete an event.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
event_idYes
calendar_idNoprimary
send_updatesNonone

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It only states the action but omits details like permanence, side effects (e.g., notifications), or required permissions.

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

Conciseness2/5

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

Extremely concise (3 words) but under-specified. Conciseness should balance with informativeness; this is insufficient.

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

Completeness1/5

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

Given 4 parameters, no output schema, and no annotations, the description is vastly incomplete. It fails to explain required vs. optional parameters, return behavior, or error cases.

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

Parameters1/5

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

Schema has 0% description coverage, and the description provides no explanation of parameters. It does not add meaning beyond the parameter names and types.

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?

Description is a clear verb+resource 'Delete an event', but does not distinguish from sibling tools like calendar_event_update or calendar_event_get.

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 like calendar_event_update or calendar_event_trash. No context on prerequisites or common scenarios.

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

calendar_event_getC

Fetch one event.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
event_idYes
calendar_idNoprimary

TDQS

C2.4/5.0
Behavior2/5

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

No annotations exist. The description only states 'Fetch', which implies a read, but no details on failure modes, permissions, or side effects 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.

Conciseness2/5

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

Extremely brief (3 words) but severely under-specified for a tool with three parameters. Lacks critical information needed for proper use.

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's simplicity, the description should at minimum explain input requirements and output behavior. It omits both, leaving the agent without enough context for correct invocation.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not explain any parameter meanings. The schema lists three parameters (account, event_id, calendar_id) but the description adds no semantic context.

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 'Fetch one event' clearly indicates a read operation for a single event. While brief, it distinguishes from sibling tools like calendar_events_list and CRUD operations.

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 provided on when to use this tool versus alternatives such as calendar_events_list for multiple events. No exclusions or prerequisites mentioned.

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

calendar_events_listC

List events. time_min/time_max are RFC3339 (e.g. '2026-06-05T00:00:00-07:00').

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
accountYes
time_maxNo
time_minNo
calendar_idNoprimary
max_resultsNo
single_eventsNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It only provides a format tip for time_min/time_max (RFC3339) but omits other behaviors like pagination, default ordering, or authentication requirements.

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 very short (one sentence + example), which is concise but under-specifies the tool. It front-loads the action but lacks necessary details for effective use.

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 7 parameters and no output schema, the description is insufficient. It should explain each parameter's purpose, default behavior, and response structure to enable correct invocation.

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

Parameters2/5

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

Schema coverage is 0%. The description only adds meaning for time_min/time_max (format example). Other parameters (account, calendar_id, query, max_results, single_events) remain undocumented, offering minimal additional value.

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 says 'List events', which clearly identifies the action and resource. Given the tool name 'calendar_events_list', it distinguishes from sibling tools like 'calendar_event_get' (single event) or 'calendar_event_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 vs alternatives (e.g., calendar_event_get, calendar_search). The description only lists the tool's basic function without context for decision-making.

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

calendar_event_updateB

Patch an existing event — only the fields you pass are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNo
startNo
accountYes
summaryNo
event_idYes
locationNo
timezoneNo
attendeesNo
calendar_idNoprimary
descriptionNo
send_updatesNonone

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It only mentions partial update behavior, but does not disclose potential side effects (e.g., notification to attendees via send_updates parameter), required permissions, error handling, or confirmation of changes. This is minimal disclosure for a mutation tool.

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

Conciseness4/5

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

The description is a single short sentence that is immediately understandable. It is front-loaded and wastes no words. However, it could be slightly expanded with a note about required parameters or common usage without losing conciseness.

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 11 parameters, no output schema, and no annotations, the description is incomplete. It does not mention required parameters (account, event_id), the default for calendar_id ('primary'), or how to format date strings. The send_updates parameter with three options is not addressed. The description lacks sufficient detail for an agent to confidently invoke the tool.

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

Parameters2/5

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

Schema description coverage is 0%, so the description is expected to add meaning. It only says 'only the fields you pass are changed' which is a general behavior, but does not explain any of the 11 parameters (e.g., date format for start/end, the meaning of attendees, or the send_updates enum). The description adds very little value beyond what the parameter names and types suggest.

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 'Patch an existing event' which is a specific verb+resource, and 'only the fields you pass are changed' explains the scope of the update. This distinguishes it from sibling tools like calendar_event_create (create) and calendar_event_delete (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?

The description implies use for updating an existing event, but does not explicitly state when to use versus alternatives or when not to use. It provides no exclusions or comparisons with other tools, relying on the tool name and context from siblings.

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

calendar_listC

List all calendars the account can access.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavioral traits. It only states a simple read action but omits details like pagination, return format, authentication requirements, or any 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 a single, concise sentence with no extraneous information. It is front-loaded and efficient.

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 lack of output schema and annotations, the description is incomplete. It fails to describe the return format, possible errors, or parameter semantics, leaving significant gaps for an agent.

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

Parameters1/5

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

The schema has 0% description coverage, and the description does not explain the 'account' parameter (e.g., format, permissible values). The agent has no semantic clues beyond the parameter name.

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 all calendars the account can access, using a specific verb and resource. It effectively distinguishes from sibling tools like accounts_list (lists accounts) and event-specific tools.

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 over alternatives, no exclusions, and no context about prerequisites. The agent must infer usage solely from the name and description.

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

drive_file_downloadB

Download a file. For Google Docs/Sheets/Slides, pass export_mime_type (e.g. 'application/pdf', 'text/plain', 'text/csv').

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
file_idYes
save_toYes
export_mime_typeNo

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only discloses the export MIME type behavior for certain file types but omits other important behavioral traits like overwrite behavior, authentication requirements, rate limits, or what happens when saving to a path. The disclosure 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?

Two sentences with no waste. The first sentence states the core purpose, and the second adds essential nuance. Structurally efficient, though could be slightly more organized with parameter hints.

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 4 parameters, no output schema, and no annotations. The description is incomplete: it does not explain all parameters, constraints (e.g., file size limits), or what the tool returns (e.g., whether it writes to a file or returns binary). The export note is helpful but insufficient.

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

Parameters2/5

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

Schema description coverage is 0%, meaning parameters are not described in the schema. The description adds meaning for `export_mime_type` with examples, but does not explain `account`, `file_id`, or `save_to`. With 4 parameters and zero schema descriptions, the description should compensate more fully.

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 'Download a file' with a specific verb and resource. It adds crucial detail about exporting Google Docs/Sheets/Slides with `export_mime_type`, distinguishing it from sibling tools like `drive_file_get` which might only retrieve metadata.

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 downloading files and hints at when to use `export_mime_type`, but it does not explicitly state when to use this tool versus others (e.g., `drive_file_get` for metadata) or provide exclusions. Usage context is clear but not comprehensive.

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

drive_file_getC

Get a file's full metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
file_idYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description does not disclose safety, read-only nature, error behavior, or authentication needs. While 'get' implies a safe read operation, it does not explicitly state that no side effects occur.

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 short sentence efficiently communicates the core purpose. However, the extreme brevity sacrifices valuable information that could be added without losing conciseness (e.g., a brief note on expected input format).

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 annotations, no output schema, and sparse parameter info, the description fails to provide sufficient context for correct usage. It does not explain what 'full metadata' includes, nor how to interpret the response.

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

Parameters1/5

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

Schema coverage is 0%, meaning no parameter descriptions in the schema. The description adds no explanation for the two required parameters (account, file_id), leaving their meaning and format entirely opaque.

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 'Get a file's full metadata' clearly states the action (get) and resource (file metadata), distinguishing it from sibling tools that download, move, or delete files. However, 'full metadata' is slightly vague and could benefit from specifying typical fields.

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 like drive_search or drive_file_download. The description does not mention prerequisites, such as requiring the file ID, or contrast with other retrieval methods.

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

drive_file_moveC

Move a file to a new folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
file_idYes
new_parent_idYes
remove_old_parentsNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only states the basic action, omitting important details such as whether permissions are affected, if multiple files can be moved, if the operation is reversible, or any side effects like automatic removal of old parents (though a parameter hints at this).

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 extremely concise at one sentence, but at the expense of completeness. While there is no wasted text, the brevity fails to convey necessary details given the tool's complexity (4 parameters, no annotations). It is efficiently written but under-informative.

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

Completeness1/5

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

Given the tool has 4 parameters, no annotations, and no output schema, the description is severely lacking. It provides no information on return values, required permissions, error scenarios, or parameter dependencies. The description is insufficient for an agent to use the tool reliably.

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

Parameters1/5

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

The schema has 0% description coverage, and the tool's description adds no information about any parameter. Parameters like 'account', 'file_id', 'new_parent_id', and 'remove_old_parents' are not explained, leaving the agent without essential context to set them correctly.

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 action ('Move') and resource ('file'), and the target ('new folder'). It distinguishes from sibling tools like rename, share, or trash. However, it lacks specificity about scope (e.g., within account) and the meaning of 'folder' in the context of drives.

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 move versus alternative tools (e.g., rename, share). There is no mention of prerequisites, limitations, or when not to use the tool. The description is purely functional without contextual guidance.

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

drive_file_renameD

Rename a file.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
file_idYes
new_nameYes

TDQS

D1.5/5.0
Behavior1/5

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

No annotations exist, and the description provides zero behavioral details. It does not disclose side effects, permissions, or whether renaming affects file location or metadata.

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

Conciseness2/5

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

The description is technically concise but fails to convey necessary information. For a tool with multiple parameters and siblings, significant under-specification outweighs brevity.

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

Completeness1/5

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

Given no output schema, no annotations, and a complex sibling set, the description is entirely insufficient. It omits return values, error conditions, and practical usage context.

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

Parameters1/5

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

Input schema has 3 required parameters with 0% description coverage. The description adds no meaning to account, file_id, or new_name, leaving agents without crucial formatting or context hints.

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

Purpose2/5

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

Description 'Rename a file.' is a tautology that adds no value beyond the tool name. It provides a verb and resource but is minimal and does not distinguish from siblings like drive_file_move or drive_file_share.

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 compared to alternatives. Given siblings like drive_file_move or drive_file_trash, agents need context to decide which to invoke.

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

drive_file_shareC

Share a file with someone by email.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoreader
emailYes
accountYes
file_idYes
messageNo
send_notificationNo

TDQS

C2.3/5.0
Behavior2/5

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

No annotations exist, and the description is too brief to disclose behavioral traits such as sharing immediacy, notification behavior, error handling, or permission requirements. The schema hints at parameters like 'send_notification' and 'message', but the description does not explain them.

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

Conciseness2/5

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

The description is extremely concise (6 words), but this is an under-specification rather than efficient conciseness. It lacks structure and fails to convey necessary details.

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

Completeness1/5

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

Given the tool's complexity (6 parameters, no output schema, no annotations), the description is grossly incomplete. It does not cover return values, side effects, prerequisites, or parameter behavior, leaving the agent with insufficient information.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description adds almost no value for any of the 6 parameters. Terms like 'account', 'file_id', 'role', 'send_notification', and 'message' remain unexplained, leaving the agent without crucial semantic context.

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 action 'Share', the resource 'a file', and the method 'by email'. It is specific and gives a basic understanding of the tool's purpose, though it does not explicitly distinguish it from sibling tools.

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 usage guidelines are provided. The description does not indicate when to use this tool versus alternatives, nor does it mention prerequisites or when not to use it.

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

drive_file_trashC

Move a file to trash (reversible).

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
file_idYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. It only states 'reversible', omitting important details such as permission requirements, effects on shared files, or whether the operation is idempotent.

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 extraneous information. However, given the lack of other context, it may be too brief, but it remains well-structured for its length.

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 tool with two required parameters and no output schema or annotations, the description is incomplete. It lacks parameter documentation and usage instructions, which are necessary for an agent to correctly invoke the tool.

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

Parameters1/5

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

The input schema has 0% description coverage for parameters, and the description does not explain the meaning or format of 'account' and 'file_id' beyond their names. This provides no added value for 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 action ('Move a file to trash') and the resource ('file'), and explicitly notes reversibility, which distinguishes it from permanent deletion. 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 is provided on when to use this tool versus alternatives (e.g., drive_file_move, gmail_message_trash). No when-not-to-use or context information is given.

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

drive_file_uploadB

Upload a local file to Drive. convert_to_google_doc=True converts .docx/.xlsx/.pptx to native Google Docs/Sheets/Slides.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
accountYes
mime_typeNo
local_pathYes
parent_folder_idNo
convert_to_google_docNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It discloses upload action and conversion, but misses critical behavioral traits: permissions needed, overwrite behavior, file size limits, error states, or what happens to the uploaded file. Lacks depth.

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 fluff, directly states purpose and key feature. Well front-loaded. Efficient use of characters.

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 6 parameters, no output schema, and no annotations, the description is too brief. It doesn't mention return values, prerequisites, or error handling. Leaves significant gaps for an agent to correctly invoke the tool.

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

Parameters2/5

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

Schema description coverage is 0%, yet description only elaborates on convert_to_google_doc. The 5 other parameters (account, local_path, name, parent_folder_id, mime_type) are left unexplained. Fails to compensate for the schema's lack of 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 it uploads a local file to Drive, with a specific verb and resource. It distinguishes from sibling tools (e.g., download, move) by being the only upload tool. The conversion feature adds specificity.

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 vs alternatives. It mentions a conversion option but doesn't specify prerequisites or contexts. Implicitly it's for uploading files, but no when-not-to or alternative recommendations.

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

drive_folder_createC

Create a new folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
accountYes
parent_folder_idNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, and the description lacks any behavioral details such as side effects, permissions required, or return value. 'Create a new folder' gives no insight into what happens upon creation or potential issues.

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

Conciseness2/5

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

The description is extremely concise but at the expense of completeness. It is under-specified, failing to provide essential details for a 3-parameter tool. Every sentence should earn its place; here one sentence is insufficient.

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's complexity (3 parameters, no output schema, no annotations), the description is severely incomplete. It does not clarify the role of 'account', whether 'parent_folder_id' is needed for nesting, or what the operation returns.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must clarify parameter meanings. It does not explain any of the three parameters (account, name, parent_folder_id), leaving the agent without necessary context.

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 folder' clearly states the action (create) and the resource (folder), which is specific and unambiguous. However, it does not differentiate from any sibling tools, though no direct folder siblings exist in the list.

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. The sibling list includes other drive operations, but no mention of conditions or exclusions is provided.

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

gmail_attachment_downloadA

Download one attachment to a local path. Get attachment_id from the message payload parts (gmail_message_get with format=full).

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
save_toYes
message_idYes
attachment_idYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the core action ('download') but omits details such as permissions required, file overwrite behavior, size limits, or error handling. The description is minimal but not misleading; a score of 3 reflects adequate transparency for a simple download operation.

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 concise, consisting of two sentences with no wasted words. It front-loads the primary action and quickly provides a key prerequisite. However, it could be slightly expanded (e.g., parameter details) without losing conciseness; the current length is appropriate but lacks some completeness.

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 download with no output schema, the description provides the essential context: what it does and how to get the `attachment_id`. However, it omits details about the `save_to` path (absolute vs relative, directory existence) and any potential error scenarios. It is marginally adequate for a basic tool.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only explains the `attachment_id` parameter (how to obtain it) and does not describe `account`, `message_id`, or `save_to`. The description adds minimal meaning beyond the schema, leaving users unclear about the purpose or constraints of three required 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 tool's action: 'Download one attachment to a local path.' It identifies the specific resource (attachment) and distinguishes it from sibling tools like gmail_message_get (which retrieves message payloads) or gmail_send. The mention of 'attachment_id' and how to obtain it further solidifies the purpose.

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 provides a prerequisite: 'Get `attachment_id` from the message payload parts (gmail_message_get with format=full).' However, it does not explicitly state when to use this tool versus alternatives (e.g., when not to use it) or provide contrasts with other tools. The context is helpful but insufficient for comprehensive usage guidance.

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

gmail_draft_createC

Create a Gmail draft. Returns {id, message: {...}}.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNo
toYes
bccNo
bodyYes
htmlNo
accountYes
subjectYes
thread_idNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided, so the description must disclose behavioral traits. It only states creation and return type, but omits potential failures, authentication needs, or that it does not send the email. Insufficient for a write operation.

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?

Efficient single sentence with return hint, but could include essential details without becoming verbose. Good conciseness at the expense of 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?

With 8 parameters, no output schema, and no annotations, the description fails to explain body format, thread usage, or parameter constraints. Incomplete for a complex creation tool.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds no meaning to parameters. Agent must infer from names only (e.g., 'account' ambiguous, 'html' unexplained). Severely lacking.

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 'Create a Gmail draft' with a specific verb and resource, and distinguishes from sibling tools like gmail_draft_delete and gmail_draft_send.

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 gmail_send, or prerequisites such as account validity. The description lacks context for proper selection.

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

gmail_draft_deleteC

Permanently delete a draft (the thing the default connector can't do).

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
draft_idYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It mentions 'permanently delete', implying irreversibility, but lacks details on permissions required, error handling (e.g., if draft does not exist), or side effects. The description is too minimal to adequately inform an agent.

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 redundant words. It is appropriately front-loaded and easy to parse.

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 delete tool with two parameters and no output schema, the description is incomplete. It fails to explain return values, error conditions, or idempotency. Parameter semantics are entirely absent, leaving the agent with insufficient context.

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

Parameters1/5

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

The input schema has 0% description coverage, and the description provides no information about the two required parameters (account and draft_id). An agent has no guidance on what values to supply or how they are used.

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: 'Permanently delete a draft'. It uniquely identifies the resource (draft) and verb (delete), and distinguishes it from sibling tools like gmail_draft_create or gmail_draft_update. The parenthetical adds context about why this tool exists.

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 like gmail_draft_send or gmail_draft_create. The parenthetical hints at a special use case but does not clearly specify scenarios or exclusions.

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

gmail_draft_sendC

Send an existing draft.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
draft_idYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the action. It does not disclose what happens to the draft after sending (e.g., it becomes a sent message and the draft is removed), nor any authentication or rate limit considerations.

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 very concise (one short sentence), but it sacrifices necessary detail. It is front-loaded with the core action, yet would benefit from additional context to be truly helpful.

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 simplicity of the tool (two required string params, no output schema), the description should explain the effect (e.g., draft is sent and becomes a sent message) and distinguish from similar siblings like gmail_send. It fails to provide a complete picture.

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

Parameters2/5

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

Schema description coverage is 0% and the description does not explain the parameters 'account' and 'draft_id'. Their semantics are left entirely to inference from the names, which is insufficient for an agent to correctly invoke the tool.

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 'Send an existing draft' clearly states the verb (send) and the resource (existing draft), differentiating it from sibling tools like gmail_draft_create or gmail_draft_delete. However, it could be more specific by noting that it sends a draft that has been created previously.

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 like gmail_send or gmail_draft_update. There is no mention of prerequisites or exclusions, leaving the agent to infer usage context.

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

gmail_drafts_listC

List drafts. query uses standard Gmail search syntax.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
accountYes
max_resultsNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must convey behavior. It only states 'List drafts' without explaining output format, pagination, rate limits, or any side effects. This is minimal for a read operation.

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 with two sentences. Front-loaded with the primary action. No extraneous information.

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 three parameters, one required, and no output schema, the description fails to provide enough context for the agent to correctly invoke the tool. Missing details on return structure, pagination behavior, and account usage.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaning only for 'query' by mentioning Gmail search syntax. 'account' and 'max_results' receive no explanation, leaving the agent to infer their roles.

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 'List drafts' with a specific verb and resource. It is distinct from siblings like gmail_search (which targets messages) and other draft operations. The addition of query syntax reference adds specificity.

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 like gmail_search for messages or gmail_draft_create. The description does not mention when not to use it or prerequisites.

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

gmail_draft_updateC

Overwrite an existing draft's contents.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNo
toYes
bccNo
bodyYes
htmlNo
accountYes
subjectYes
draft_idYes

TDQS

C2.5/5.0
Behavior2/5

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

The description says 'overwrite' implying destructive mutation but does not clarify if fields not specified are reset or keep previous values. No disclosure of idempotency, authorization, or side effects. With no annotations, the description carries full burden but falls short.

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

Conciseness2/5

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

The description is only five words, which is too concise for a tool with 8 parameters. It lacks any structure or detail, leading to underspecification.

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

Completeness1/5

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

Given no output schema, no annotations, and 0% parameter description coverage, the description is severely incomplete. It does not cover return values, error conditions, or how the update affects existing draft fields.

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

Parameters1/5

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

Schema coverage is 0%, yet the description adds no parameter-specific information beyond the schema titles (e.g., to, subject). It does not explain formats, constraints, or behavior of optional fields like cc and bcc.

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 (overwrite) and the resource (existing draft), distinguishing it from sibling tools like gmail_draft_create (create) and gmail_draft_send (send).

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. It does not mention that for creating a new draft, gmail_draft_create should be used, or any conditions for update.

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

gmail_label_createA

Create a label. Nested labels use 'Parent/Child' names; create each parent level first. Idempotent: an existing label is returned as-is.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
accountYes
label_list_visibilityNolabelShow
message_list_visibilityNoshow

TDQS

A3.9/5.0
Behavior4/5

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

Without annotations, the description discloses key behavioral traits: idempotency (existing labels returned as-is) and nesting requirements. This adds value beyond the tool name alone. However, it does not cover permissions, rate limits, or response format.

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 with two sentences, no fluff. Every sentence adds value: the first states the primary action, the second adds nested label usage and idempotency. Well-structured.

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 4 parameters, no output schema, and no annotations, the description is incomplete. It does not explain all parameters or their defaults, and does not describe the return value for new labels. The nesting tip and idempotency note are helpful but insufficient for full understanding.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the burden. It only hints at the 'name' parameter format for nesting, but provides no explanation for 'account', 'label_list_visibility', or 'message_list_visibility'. The description adds minimal 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 clearly states 'Create a label', specifying the action and resource. It also provides additional context about nested labels, making the purpose specific and distinguishable from sibling tools like gmail_labels_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 clear guidance on when to use the tool and how to handle nested labels (create parent first). It also notes idempotency, indicating safe repeated calls. No exclusions or alternatives are provided, but the context is sufficient.

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

gmail_labels_listC

List all labels for the account.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states 'list all labels' with no disclosure of behavioral traits like read-only nature, auth requirements, or error 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?

The description is a single short sentence with no wasted words. However, it could include more useful information without sacrificing conciseness.

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, no annotations, and minimal description, the tool is under-documented. Missing information about return values, authentication, and parameter semantics.

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

Parameters1/5

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

Schema description coverage is 0%. The description does not add any meaning to the 'account' parameter beyond what is in the schema. No explanation of what 'account' refers to (e.g., email address, ID).

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 (list) and the resource (labels) for the account. No sibling tools exist for labels, so no differentiation needed.

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. While there are no sibling label tools, the description does not mention any context for usage.

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

gmail_message_getC

Fetch one message. format=full includes the body.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNofull
accountYes
message_idYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, description only reveals that format=full includes the body, implying others may not. No disclosure of authentication 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.

Conciseness3/5

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

Two sentences with no redundancy, but extremely brief. Could be expanded 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?

No output schema and minimal description leave uncertainty about return values and how to interpret results.

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

Parameters2/5

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

Schema coverage is 0%; the description only clarifies the 'format' parameter effect. 'account' and 'message_id' are left unexplained.

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 it fetches one message and explains the format parameter's effect. However, it does not distinguish from sibling tools like gmail_thread_get or gmail_search, which also retrieve message data.

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 mention of prerequisites, limitations, or when to avoid.

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

gmail_message_modifyC

Add/remove labels on a message (e.g. mark read by removing UNREAD).

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
message_idYes
add_label_idsNo
remove_label_idsNo

TDQS

C2.9/5.0
Behavior2/5

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

Annotations are absent, so the description must fully disclose behavioral traits. It implies mutation (adding/removing labels) but does not mention reversibility, permissions, rate limits, or side effects like UI changes. The example hints at usage but is insufficient.

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 that efficiently conveys the core action. It could be restructured to include parameter details, but as is, it is concise and front-loaded.

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

Completeness1/5

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

Given the tool has 4 parameters, no output schema, and no annotations, the description is severely incomplete. It fails to explain how to obtain label IDs, the behavior when both add and remove are specified, error handling, or usage across multiple messages.

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

Parameters2/5

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

With 0% schema description coverage, the description must explain parameter meanings. It only indirectly references 'add_label_ids' and 'remove_label_ids' via the example, but does not clarify their format, source, or relation to Gmail labels. Two required parameters (account, message_id) are completely unexplained.

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 'Add/remove' and the resource 'labels on a message', and provides a concrete example ('mark read by removing UNREAD'). This distinguishes it from sibling tools like gmail_message_trash or gmail_send.

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., gmail_message_trash for deletion, gmail_message_get for reading). It lacks context on prerequisites or decision criteria.

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

gmail_message_trashB

Move a message to Trash (reversible for 30 days).

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
message_idYes

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses reversibility and duration, but omits details like required permissions, thread-level effects, or the behavior if the message is already trashed. This is adequate but not thorough for a mutation action.

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 with no wasted words. It is front-loaded with the core action and includes a parenthetical qualifier for reversibility. Perfectly concise.

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

Completeness2/5

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

Given no output schema, no annotation coverage, and minimal description, the tool is under-documented. The agent lacks information about return values, error conditions, or handling of edge cases (e.g., message already in trash). Requires significant inference.

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

Parameters1/5

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

Schema description coverage is 0%, meaning neither the schema nor the description explains the parameters. The description does not mention 'account' or 'message_id', leaving the agent to guess their meaning. This severely undermines correct invocation.

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 message to Trash') and includes a key behavioral detail (reversible for 30 days). It effectively distinguishes from sibling tools like gmail_message_get (read-only) and gmail_send (send email).

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., permanent deletion, archiving). It does not mention prerequisites or constraints beyond the 30-day reversibility, leaving the agent to infer appropriate use cases.

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

gmail_sendA

Send an email immediately from the given account.

For replies, pass thread_id AND in_reply_to_message_id (the RFC822
Message-Id header value, NOT the Gmail message id) so the reply
threads correctly.
ParametersJSON Schema
NameRequiredDescriptionDefault
ccNo
toYes
bccNo
bodyYes
htmlNo
accountYes
subjectYes
thread_idNo
in_reply_to_message_idNo

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, description carries full burden. It states the email is sent immediately and warns that in_reply_to_message_id must be RFC822 Message-Id, not Gmail id. Discloses important behavioral detail about reply threading. Could also mention that sending is irreversible.

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 wasted words. First sentence gives main action, second adds crucial reply context. Front-loaded and 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?

Given 9 parameters, 0% schema coverage, no output schema, and no annotations, the description partially addresses the complexity. It covers key parameters for sending and replying but omits cc, bcc, html, and output behavior. Could be more complete.

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

Parameters3/5

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

Schema description coverage is 0%, so description must add meaning. It explains account, to, subject, body (implicitly), and gives detailed semantics for thread_id and in_reply_to_message_id. However, it does not cover cc, bcc, or html parameters, leaving gaps.

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 'Send an email immediately from the given account.' This provides a specific verb and resource, and distinguishes from siblings like gmail_draft_create or gmail_draft_send by emphasizing immediate sending.

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?

Explicitly explains how to use the tool for replies, including needed parameters thread_id and in_reply_to_message_id. It implies usage for new emails without these. No explicit when-not-to-use, but clear enough for the agent.

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

gmail_thread_getC

Fetch a whole thread (all messages).

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
thread_idYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It only states it fetches all messages but does not disclose pagination, formatting, authentication requirements, rate limits, or return structure. Minimal behavioral insight.

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?

Extremely concise single sentence, but it is too minimal. While it has no fluff, it lacks necessary detail to be informative. Could benefit from more context without sacrificing conciseness.

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, so description should explain return values. It says 'all messages' but is vague on structure (e.g., includes subject, body, attachments). Incomplete for a fetch tool with no other documentation.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain the two parameters (account and thread_id). No format hints or examples provided. The description adds no 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 'Fetch a whole thread (all messages)' clearly states the verb (Fetch), resource (thread), and scope (all messages). It distinguishes itself from siblings like gmail_message_get (single message) and gmail_search (search 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?

No guidance on when to use this tool versus alternatives (e.g., gmail_message_get for a single message). No context about prerequisites or scenarios. The description is too brief to provide usage guidance.

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

task_completeB

Mark a task completed (shortcut for status='completed').

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
task_idYes
tasklist_idNo@default

TDQS

B3.3/5.0
Behavior3/5

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

No annotations provided, so description carries burden. It discloses the mutation (mark completed) but omits details on side effects, permissions, or reversibility.

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, instantly clear, no waste.

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, no annotations, and parameter semantics are absent. The description covers only the core action, leaving many operational details unspecified.

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

Parameters1/5

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

Schema has 3 parameters with 0% description coverage. The description adds no meaning to 'account', 'task_id', or 'tasklist_id', leaving the agent without guidance on how to specify them.

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 ('Mark a task completed') and resource ('task'), and distinguishes it as a shortcut for setting status to 'completed', which differentiates it from sibling tools like task_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?

The description implies when to use (as a shortcut for completion) but does not explicitly provide context on when not to use or compare with alternatives like task_update.

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

task_createA

Create a task. due is RFC3339 (e.g. '2026-06-15T00:00:00Z') — Google Tasks keeps only the DATE part. parent makes it a subtask of that task id; previous orders it after that task id.

ParametersJSON Schema
NameRequiredDescriptionDefault
dueNo
notesNo
titleYes
parentNo
accountYes
previousNo
tasklist_idNo@default

TDQS

A3.6/5.0
Behavior3/5

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

Discloses due date truncation and subtask/parent ordering, but with no annotations, it omits auth needs, error handling, or side effects like tasklist modification.

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?

Front-loaded with 'Create a task.' Three sentences with no fluff. Each sentence adds value.

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 7 parameters, no output schema, and no annotations, the description leaves notes and tasklist_id unexplained. It doesn't cover error conditions or return values.

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?

Explains due, parent, and previous (3 of 7 parameters), adding format and behavior details. However, notes, tasklist_id, account, and title are not explained beyond the schema, which has 0% 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?

The description states 'Create a task' with a specific verb and resource, and it is distinct from sibling tools like task_update or task_complete.

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 when-not-to-use, but the creation context is implied. Alternatives like task_update for modifications are not mentioned.

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

task_deleteC

Delete a task. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
task_idYes
tasklist_idNo@default

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states 'Irreversible', which is important, but omits other key aspects such as permissions required, effects on subtasks, or whether deletion requires ownership. The single trait is insufficient for a destructive operation.

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 very concise (two sentences) with no redundant words. However, it lacks structure and is too minimal for a 3-parameter tool. It is not well-structured to guide an agent on usage.

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

Completeness1/5

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

Given 3 parameters (two required), no output schema, and no annotations, the description is severely incomplete. It fails to explain the role of each parameter, the context of the task (e.g., which task list), or the return value. The agent cannot reliably invoke this tool correctly.

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

Parameters1/5

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

The schema description coverage is 0%, so the description must compensate. However, it provides no explanation of the three parameters (account, task_id, tasklist_id). The agent cannot infer the format or purpose of account or task_id beyond their names.

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 task' clearly states the verb (delete) and resource (a task). It is unambiguous and distinguishes from sibling tools like task_complete (which marks complete) and task_update (which modifies).

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 mentions 'Irreversible' as a caution, but does not provide explicit guidance on when to use this tool versus alternatives like task_complete or task_update. No conditions 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.

task_getC

Fetch a single task.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
task_idYes
tasklist_idNo@default

TDQS

C2.6/5.0
Behavior2/5

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

The description says 'Fetch a single task,' implying a read operation, but does not explicitly state that it is read-only, nor mention any side effects or requirements. With no annotations, the description should disclose more behavioral details.

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 very concise (4 words) with no wasted words. However, it is under-specified; a slightly longer description would improve clarity without losing conciseness.

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 3 parameters and no output schema, the description is incomplete. It does not explain the return value, parameter constraints, or any context about the task object. The tool's simplicity does not excuse the lack of essential details.

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

Parameters2/5

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

The description does not explain the parameters (account, task_id, tasklist_id). With 0% schema description coverage, the description must compensate, but it provides no extra meaning beyond parameter names.

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

Purpose4/5

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

The description states 'Fetch a single task,' which clearly indicates the verb and resource. It distinguishes from siblings like task_list (list multiple tasks) and task_create. However, it could be more specific about the task context.

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 like task_list. The description lacks explicit usage context, such as when to fetch a single task vs. listing all tasks.

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

task_listB

List tasks in a list. Find ids via tasklist_list; '@default' is the account's default list.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
max_resultsNo
show_hiddenNo
tasklist_idNo@default
show_completedNo

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, and the description fails to disclose behavioral traits such as read-only nature, pagination, or authentication requirements.

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 very concise with two clear sentences, but could be slightly more informative 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 5 parameters, no output schema, and no annotations, the description is insufficient—it omits output format, pagination, and parameter details beyond tasklist_id.

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

Parameters2/5

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

With 0% schema coverage, the description only mentions tasklist_id and '@default', ignoring crucial parameters like account, show_completed, show_hidden, and max_results.

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 'List tasks in a list' and provides specific details about the '@default' tasklist_id, making the tool's 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?

It tells users to find ids via tasklist_list and explains the '@default' shortcut, but does not specify when to use this tool versus siblings like task_get or task_create.

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

tasklist_createC

Create a new task list.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
accountYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations provided. The description does not disclose behavioral traits such as whether it is destructive, requires authentication, or has rate limits. For a creation tool, it only implies mutation without further detail.

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 lacks structure. It could benefit from additional detail without sacrificing conciseness.

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 simple tool (2 required params, no output schema), the description is incomplete. It does not mention return values, error conditions, or any side effects, leaving gaps for the agent.

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

Parameters2/5

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

The input schema has two parameters (account, title) with 0% description coverage. The tool description adds no meaning beyond the schema, leaving the agent without guidance on parameter semantics.

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 action 'Create' and the resource 'task list', distinguishing it from sibling tools like tasklist_delete or tasklist_list. However, it lacks specificity about what a task list entails in this context.

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 like task_create. No context on prerequisites or conditions for creation.

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

tasklist_deleteB

Delete a task list and all its tasks. Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes
tasklist_idYes

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description bears full burden. It discloses irreversibility and cascading deletion of tasks, which are important behavioral traits. However, it does not mention permission requirements, side effects, or any potential failure modes.

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, no fluff, front-loaded with the key verb and resource. Every word serves a purpose.

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 delete operation with no output schema, the description covers the core action and irreversibility. However, it lacks any mention of the return value or confirmation response, which would help an agent understand the tool's behavior completely.

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

Parameters1/5

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

Schema description coverage is 0% (no parameter descriptions in input schema). The description does not explain either parameter ('account', 'tasklist_id') at all. It adds no meaning beyond what the parameter names imply.

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

Purpose5/5

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

The description uses a specific verb 'Delete' and clearly identifies the resource 'a task list', noting that it deletes all associated tasks. The word 'Irreversible' adds emphasis. This clearly distinguishes from sibling tools like tasklist_create or tasklist_list.

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, no prerequisites, and no exclusions. It simply states what the tool does, leaving the agent to infer usage from the tool name alone.

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

tasklist_listA

List the account's task lists (each has an id + title).

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations exist, so the description carries full burden. It identifies this as a read operation and mentions output fields, but lacks disclosure of pagination, error conditions, or authentication requirements. Adequate for a simple list tool.

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, front-loaded with the action, and contains no superfluous words. It is appropriately sized for the tool's simplicity.

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

Completeness4/5

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

For a low-complexity tool with one parameter and no output schema, the description is mostly complete, mentioning the output structure. Lacks mention of array formatting or potential empty results, but these are minor omissions.

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

Parameters2/5

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

The schema has one required parameter 'account' with 0% description coverage. The description does not explain the account parameter (e.g., format like email). The name is somewhat self-explanatory, but the description adds no 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 clearly states the verb 'list' and the resource 'task lists', and distinguishes from siblings like tasklist_create and tasklist_delete by indicating it is a read operation. The output format (id + title) is specified.

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 listing all task lists but provides no explicit guidance on when to use this tool versus alternatives (e.g., task_list for tasks within a list) or prerequisites like account format.

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

task_moveB

Reposition a task: under parent (as a subtask) and/or after previous in the same list.

ParametersJSON Schema
NameRequiredDescriptionDefault
parentNo
accountYes
task_idYes
previousNo
tasklist_idNo@default

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description is expected to disclose behavioral traits. It only states the effect (repositioning) but does not mention side effects (e.g., does it affect subtask relationships?), permissions required, or reversibility. The lack of detail leaves the agent uninformed about consequences.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the core action and the two placement options.

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 5 parameters, no output schema, and no annotations, the description is too brief. It omits details about required parameters, the meaning of 'tasklist_id', and the absence of return value or side effects. The tool's behavior is only partially described.

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 0%, so the description must compensate. It adds meaning for 'parent' (as subtask) and 'previous' (after in list), but does not explain 'account', 'task_id', or 'tasklist_id' (though the latter has a default). The explanation is partially helpful but incomplete.

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

Purpose5/5

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

The description uses the specific verb 'Reposition' and identifies the resource as 'task', clearly indicating it moves a task. It distinguishes from siblings like task_update or task_complete by specifying the repositioning action and the two ways to do it (under parent as subtask, after previous).

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 repositioning tasks but does not explicitly state when to use this tool vs alternatives like task_update (which could also modify positions) or when not to use it. No exclusions or context are provided.

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

task_updateA

Patch a task's fields. status='completed' completes it (or use task_complete).

ParametersJSON Schema
NameRequiredDescriptionDefault
dueNo
notesNo
titleNo
statusNo
accountYes
task_idYes
tasklist_idNo@default

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavioral traits. It notes that setting status='completed' completes the task, which is a specific behavior. However, it does not describe other potential side effects, idempotency, or permission requirements, leaving gaps for a mutation tool.

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

Conciseness4/5

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

The description is very concise and front-loaded, with no wasted words. It packs purpose and a usage hint into a single sentence. However, it could be slightly more structured (e.g., separating usage notes) to improve clarity.

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 output schema and 7 parameters with no schema descriptions, the description is incomplete. It does not explain return values or how to use most parameters, relying heavily on the user's prior knowledge. The sibling tools provide some context but the description itself is insufficient.

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

Parameters2/5

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

The input schema has 7 parameters with 0% description coverage. The description only mentions the 'status' parameter and its effect, leaving the remaining 6 parameters (account, task_id, tasklist_id, title, notes, due) unexplained. This insufficiently compensates for the low 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?

The description clearly states 'Patch a task's fields,' which is a specific verb+resource. It also distinguishes from sibling tool 'task_complete' by noting that setting status='completed' completes it or use the dedicated tool.

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 mentions an alternative (task_complete) for the specific action of completing a task, giving some guidance on when to use this tool versus another. However, it does not provide explicit when-not-to-use guidance or broader usage context.

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. Dates show when Glama detected each change.

  1. 2 tool updatesv0.5.0
    • Addedgmail_attachment_download
    • Addedgmail_label_create
  2. 38 tool updatesv0.3.0
    • First observedaccounts_list
    • First observedcalendar_event_create
    • First observedcalendar_event_delete
    • First observedcalendar_event_get
    • First observedcalendar_event_update
    • First observedcalendar_events_list
    • First observedcalendar_list
    • First observeddrive_file_download
    • First observeddrive_file_get
    • First observeddrive_file_move
    • First observeddrive_file_rename
    • First observeddrive_file_share
    • First observeddrive_file_trash
    • First observeddrive_file_upload
    • First observeddrive_folder_create
    • First observeddrive_search
    • First observedgmail_draft_create
    • First observedgmail_draft_delete
    • First observedgmail_draft_send
    • First observedgmail_draft_update
    • First observedgmail_drafts_list
    • First observedgmail_labels_list
    • First observedgmail_message_get
    • First observedgmail_message_modify
    • First observedgmail_message_trash
    • First observedgmail_search
    • First observedgmail_send
    • First observedgmail_thread_get
    • First observedtask_complete
    • First observedtask_create
    • First observedtask_delete
    • First observedtask_get
    • First observedtask_list
    • First observedtask_move
    • First observedtask_update
    • First observedtasklist_create
    • First observedtasklist_delete
    • First observedtasklist_list

TDQS

B3/5.0
Disambiguation5/5

Each tool is clearly scoped to a specific service and action, with prefixes like calendar_, drive_, gmail_, task_, and tasklist_. Overlaps like gmail_send vs gmail_draft_send are adequately explained in descriptions, preventing confusion.

Naming Consistency5/5

All tools follow a consistent snake_case pattern with service prefix followed by verb_noun (e.g., calendar_event_create, drive_file_upload, gmail_search). The naming is uniform and predictable across all 40 tools.

Tool Count4/5

At 40 tools, the set is comprehensive but slightly heavy. However, given the breadth of Google Workspace (Calendar, Drive, Gmail, Tasks), each tool addresses a distinct operation, justifying the count without being overwhelming.

Completeness4/5

The tool surface covers CRUD and common workflows for all four services, including specialized actions like gmail_draft_send and task_complete. Minor gaps exist (e.g., recurring calendar events, advanced Drive permissions), but the core functionality is well-covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rajool/google-workspace-mcp'

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