google-services-mcp
One-liner: google-services-mcp is an MCP server that gives AI agents direct, multi-account access to your Google services (Gmail, Calendar, Meet, Drive, Contacts, Tasks, Sheets, Docs, Slides, YouTube, Forms) via OAuth.
Accounts — add a Google account via browser OAuth, list accounts, remove one, set the default, and check credential/token health (
google_account_*). Any tool accepts anaccountnickname to pick which connected account to use.Gmail — send, draft, reply, list, read, search, trash/untrash, permanently delete messages, manage labels (list/create/delete), modify labels, and list/download attachments (text decoded, binary as base64).
Calendar — list calendars and events (with query and time-range filters), create timed/all-day events, create events with Google Meet links, get/update/delete events.
Drive — list and search files, get metadata, upload/create files with text content, update or rename, delete, copy, create folders, share with users (reader/writer/commenter), download raw bytes, and export Google-native Docs/Sheets/Slides/Drawings to other formats (e.g. PDF).
Contacts — list, search (including non-connected people), and create contacts with name/email/phone.
Tasks — list task lists and tasks, create tasks with notes/due dates, complete tasks, delete tasks.
Sheets — create spreadsheets with tabs, read ranges, write values, append rows, get metadata, and send raw batchUpdate requests (formatting, sheet ops, etc.).
Docs — create documents, read as plain text or full structural JSON, insert text at an index, find-and-replace (template filling), and send raw batchUpdate requests.
Slides — create presentations, get presentation/slide-page structure, add or delete slides, find-and-replace across a deck, and send raw batchUpdate requests (textboxes, shapes, images, styling).
YouTube — search videos, get video details/statistics, list your uploads, list/create/delete playlists, add videos to playlists, and list channel subscriptions.
Forms — create forms, add text or multiple-choice questions, get form structure, and read submitted responses.
All tools are prefixed google_ so agents can chain services freely (e.g. read an email → create a Calendar event → attach a Drive file to a draft).
Provides tools to send, list, read, modify, and reply to email messages.
Allows managing calendars and events, including creating, reading, updating, deleting, and adding Google Meet links.
Allows creating documents, reading text, inserting or replacing text, and performing batch updates.
Provides tools to list, read, upload, update, delete, and share files in Google Drive.
Allows creating forms, adding questions, and reading responses.
Enables integration with Google Meet for creating meetings and generating meeting links.
Supports creating spreadsheets, reading/writing/appending cell ranges, and batch updating.
Enables creating presentations, adding or deleting slides, and find-and-replace text.
Provides tools to list task lists, and create, complete, or delete tasks.
Provides tools to search videos and manage uploads, playlists, and subscriptions.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@google-services-mcpWhat's on my calendar today?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
google-services-mcp
MCP (Model Context Protocol) server that gives AI agents direct access to your Google services — Gmail, Calendar, Google Meet, Drive, Contacts, Tasks, Sheets, Docs, Slides, YouTube, and Forms — with multi-account OAuth support.
Add one account, wire the server into any MCP-compatible AI client, and your agent can read and send email, manage your calendar, find files in Drive, create documents and spreadsheets, and more — using your real Google data.
npm install -g google-services-mcp # or run without installing: npx -y google-services-mcpGoogle Workspace MCP
One MCP server for your Google Workspace apps — Gmail, Calendar, Google Meet,
Drive, Contacts, Tasks, Sheets, Docs, Slides, YouTube, and Forms — with
multi-account OAuth. Every tool is prefixed google_ (e.g. google_gmail_list,
google_calendar_list_events), so agents can combine services freely: read
email, then create a Calendar event from it, or attach a Drive file to a draft.
Related MCP server: google-cli-mcp
Features
Gmail — full Gmail access: send, draft, reply, list, read, search, label, and manage attachments
Calendar — Google Calendar events: list calendars, create/read/update/delete events, create Google Meet links
Drive — list, read, upload, update, delete, and share files
Contacts — list, search, and create contacts
Tasks — list task lists, create/complete/delete tasks
Sheets — create spreadsheets, read/write/append cell ranges, batch update
Docs — create documents, read text, insert/replace text, batch update
Slides — create presentations, add/delete slides, find-and-replace text
YouTube — search videos, manage uploads/playlists/subscriptions
Forms — create forms, add questions, read responses
Multi-account — connect several Google accounts, set a default, or pass an
accountargument to any toolOAuth 2.0 — one-time browser authorization; tokens are stored locally and refreshed automatically
134 tools across 11 services, all prefixed
google_. Full reference: docs/TOOLS.md.
Requirements
Node.js 24+ (CI runs Node 24; local dev on 26)
A Google Cloud project with the required APIs enabled and an OAuth 2.0 Desktop app client (one-time setup, ~10 minutes — see below)
Install
No install needed — run straight from npm via npx:
npx -y google-services-mcp --versionnpx downloads the package on first run and caches it. Every command in
this README (add, list, status, ...) works the same way:
npx -y google-services-mcp add personalPin a version for reproducibility — check the current release with
npm view google-services-mcp version, then run an exact version:npx -y google-services-mcp@<version> add personalMCP clients auto-launch this server, so pinning avoids surprise breakage when a new release ships.
Alternative: global install
Prefer a persistent google-services-mcp command (and faster MCP client
startup)?
npm install -g google-services-mcpThen replace npx -y google-services-mcp with google-services-mcp
everywhere below.
Release channels
latest— stable releases, published automatically when a merge tomainchanges something the package shipsbeta— preview builds, not a snapshot ofmain. The tag moves to whichever build ran last: a PR branch (each push to a non-draft PR, including the moment it is marked ready for review), av*-beta*tag, or a manual run frommain. Installing@betagets you unmerged code that is currently under review.
Install a stable version unless you specifically want to try a branch:
npx -y google-services-mcp@latest --version # stable
npx -y google-services-mcp@beta --version # preview buildAll publishes are signed with npm provenance (trusted publishing via GitHub Actions OIDC) — no npm token is stored in CI.
Quick start
Add a Google account — opens your browser for one-time authorization:
npx -y google-services-mcp add personalRegister the server with your MCP client (see MCP client configuration for Claude Desktop, opencode, and generic configs).
Start using it — ask your agent to "check my email" or "add an event to my calendar". Or add more accounts any time:
npx -y google-services-mcp add work.
MCP client configuration
The server speaks MCP over stdio. Point your client at the
google-services-mcp package via npx and pass your OAuth credentials via
environment variables. (If you installed globally, use google-services-mcp
as the command instead.)
opencode
In opencode.json (or your global config):
{
"mcp": {
"google-services-mcp": {
"type": "local",
"command": ["npx", "-y", "google-services-mcp"],
"enabled": true,
"environment": {
"GOOGLE_MCP_CLIENT_ID": "your-client-id",
"GOOGLE_MCP_CLIENT_SECRET": "your-client-secret"
}
}
}
}Claude Desktop / Cursor / other MCP clients
In the client's MCP settings file (e.g. claude_desktop_config.json):
{
"mcpServers": {
"google-services-mcp": {
"command": "npx",
"args": ["-y", "google-services-mcp"],
"env": {
"GOOGLE_MCP_CLIENT_ID": "your-client-id",
"GOOGLE_MCP_CLIENT_SECRET": "your-client-secret"
}
}
}
}Google Cloud setup (one-time)
Each installation uses its own OAuth client — credentials are per-user and never shared.
1. Create a project
Open the Google Cloud Console, choose
Select a project → New Project, and name it (e.g. google-services-mcp).
2. Configure the OAuth consent screen
APIs & Services → OAuth consent screen:
User type: External (required for regular Google accounts).
App name: anything you like (e.g.
Google Service MCP); support email = yours.Under Audience → Test users, click Add users and enter every Google account that will use this server. While the app is in Testing mode, accounts not on this list get
access blockedon the consent screen.
3. Enable the required APIs
APIs & Services → Library, search and Enable each:
Gmail API · Google Calendar API · Google Drive API · People API ·
Google Tasks API · Google Sheets API · Google Docs API ·
Google Slides API · YouTube Data API v3 · Google Forms API
Automated: with the
gcloudCLI installed and authenticated (gcloud auth login), enable all 10 APIs at once — idempotent, safe to re-run:bash scripts/enable-apis.sh --project your-project-id
4. Create OAuth client credentials
APIs & Services → Credentials → Create Credentials → OAuth client ID:
Application type: Desktop app.
Authorized redirect URIs:
http://localhost:8787.Copy the Client ID and Client Secret.
5. Provide the credentials
Set these environment variables (or put them in your MCP client config as above):
GOOGLE_MCP_CLIENT_ID=<your-oauth-client-id>
GOOGLE_MCP_CLIENT_SECRET=<your-oauth-client-secret>Optional:
GOOGLE_MCP_DIR=~/.google-services-mcp # where config and tokens live (default ~/.google-services-mcp)
GOOGLE_MCP_REDIRECT_PORT=8787 # local loopback port for OAuth (default 8787)
# A client secret supplied through the environment is never written to
# config.json; an invalid port fails at startup instead of binding a NaN port.
# Full redirect URI override. Takes precedence over REDIRECT_PORT and must
# exactly match a URI registered for this OAuth client in the Cloud Console.
# GOOGLE_MCP_REDIRECT_URI=http://127.0.0.1:8787/oauth2callback6. Connect your first account
npx -y google-services-mcp add personalA browser opens to the Google consent screen. After you approve, the account is
stored in ~/.google-services-mcp/accounts/ and ready to use. Repeat with a
different name (e.g. work) to connect more accounts.
CLI reference
npx -y google-services-mcp # run the MCP server over stdio
npx -y google-services-mcp add <name> # add a Google account (opens browser)
npx -y google-services-mcp list # list connected accounts
npx -y google-services-mcp remove <name> # remove an account
npx -y google-services-mcp set-default <name> # set the default account
npx -y google-services-mcp status # show config and token health
npx -y google-services-mcp --help # show helpFor AI agents
All tools are prefixed
google_, e.g.google_gmail_list,google_calendar_list_events,google_drive_list_files.The
accountargument selects which connected account a tool uses; omit it to use the default account.Agents can connect new accounts themselves via the
account_addtool — it opens the browser consent flow without needing the CLI.See docs/TOOLS.md for the full tool reference.
Security
OAuth tokens are stored in
~/.google-services-mcp/accounts/<account-name>.jsonwith restrictive file permissions. Keep them private — never commit them.The server never logs tokens or credentials.
Scopes requested: Gmail modify, Calendar, Drive, Contacts, Tasks, Sheets, Docs, Slides, YouTube, Forms, plus
userinfo.emailfor account display.If a client secret is ever exposed, rotate it in the Google Cloud Console (Credentials → your OAuth client → rotate secret).
Troubleshooting
Symptom | Cause / fix |
| Account not in Test users (setup step 2.3) — add it and retry |
| Exactly |
Tokens stop after ~7 days | App in Testing mode — re-run |
| GUI clients may lack PATH — use |
| Normal — click Advanced → Continue for personal use |
Local development
git clone https://github.com/nabheet/google-services-mcp.git
cd google-services-mcp
npm install
npm run build # compile to dist/
npm test # vitest, TDD suites (incl. hermetic E2E in test/e2e/)
npm run typecheck # tsc --noEmit
npm run dev # run from source with tsxSee AGENTS.md for architecture and conventions.
Releases (maintainers)
All publishing happens from GitHub Actions — no local npm login needed:
Stable — a merge to
mainthat changes shipping files auto-publishes the next patch version tolatestwith provenance, then creates avX.Y.Ztag and GitHub release. No manual steps. The next version is derived from the last publishedlateston npm, so repeated merges never collide; an intentional minor/major bump inpackage.jsonis honored.Preview — the
betadist-tag points at the last preview build, and is advanced by three things:a push to a non-draft PR in this repository (including the ready-for-review transition), as
<version>-beta.<run_number>a
v*-beta*tag pusha manual run: Actions → CI → Run workflow, which publishes a
0.x.x-beta.Xbuild ofmain
betatherefore tracks whichever build ran last, notmain. Uselatestfor anything you rely on.
Prerelease tags v*-beta* publish to beta with a prerelease GitHub release
(patch/minor builds for milestone testing). Publishing uses npm trusted
publishing (OIDC): configure it once per package at
npmjs.com/package/google-services-mcp/access with the GitHub repository
nabheet/google-services-mcp and workflow name ci.yml.
npm allows one trusted publisher per package and validates the calling
workflow's filename — all channels run from the same ci.yml file.
No NPM_TOKEN secret is required.
License
MIT
Available Tools
134 toolsgoogle_account_addAdd a Google accountA
Start the OAuth consent flow to connect a new Google account. Opens a browser for sign-in.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Nickname for the account (e.g. personal, work). | |
| openBrowser | No | Open a browser automatically (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It clearly discloses that this starts an interactive OAuth consent flow and opens a browser for sign-in, which are the key side effects. It could additionally mention that the flow requires user interaction or that a token is stored after successful sign-in, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The main action ('Start the OAuth consent flow') is front-loaded, and the browser behavior is stated immediately after.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter interactive tool, the description covers the initiation, the mechanism, and the user-visible behavior. It does not describe the post-sign-in result or the fact that the flow is blocking/interactive, but these are not critical given the overall simplicity and fully described schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already fully documents both parameters. The description adds little beyond the schema, though 'new Google account' reinforces that the name parameter is a nickname for a newly linked account. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('add'/'connect a new Google account') and clearly names the OAuth consent flow as the mechanism. It is easy to distinguish from sibling account-management tools like google_account_remove, google_account_set_default, google_account_list, and google_account_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when to use it: when a new Google account needs to be connected. However, it does not explicitly mention when not to use it or point to alternatives such as google_account_list for checking connected accounts or google_account_remove for removing an existing one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_account_listList connected Google accountsA
List all connected accounts with their email and default status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the output fields (email, default status) and implies a read-only operation through 'List all.' However, it does not explicitly state that it is safe and non-destructive, nor does it mention any authentication prerequisites or response format beyond the fields listed. This is adequate for a simple read tool but 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action ('List all connected accounts') and adds essential detail ('with their email and default status'). Every word earns its place, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters, no output schema, and no annotations, the description is fairly complete. It states what is returned (email and default status), implying a collection result. It doesn't mention the exact return format or any edge cases, but given the low complexity, this is sufficient. A slight gap is the lack of explicit statement that it lists all accounts across all connections, though 'all connected accounts' conveys that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100% (effectively no parameters). According to the baseline for 0 params, a score of 4 is appropriate. The description does not need to elaborate on parameters since there are none, and the absence of any parameter mention is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List all connected accounts with their email and default status.' It identifies the resource (connected accounts) and the specific action (list all). It differentiates from siblings like google_account_add/remove/set_default by indicating a read operation, but does not explicitly contrast with google_account_status, so it doesn't fully distinguish itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description only states what it does, without mentioning that it should be used when you need an overview of all accounts, or that google_account_status might be used for a single account. No exclusions or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_account_removeRemove a Google accountB
Disconnect an account and delete its stored tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Account nickname to remove. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It does state the destructive effect clearly ('delete its stored tokens'), which is useful, but it omits important side effects such as requiring re-authentication, breaking dependent Google tools, or irreversibility of the token deletion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no filler, front-loading the key action. It is appropriately concise for a simple tool, though it could earn a 5 by including a short clause about re-authentication or side effects without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity and single well-documented parameter, the description is mostly adequate, but the lack of annotations and output schema leaves the return value, success/failure behavior, and impact on connected tools undisclosed. For a destructive account operation, slightly more context would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the single parameter, describing 'name' as 'Account nickname to remove'. The description adds no further meaning, so the baseline of 3 applies because the schema handles the parameter documentation sufficiently.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses precise verbs ('Disconnect', 'delete') and a specific resource ('stored tokens'), clarifying that this removes local credential access rather than deleting a Google account. This distinguishes it from sibling tools like google_account_add, google_account_set_default, and google_account_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives, nor any indication of prerequisites or consequences. The intended context can only be inferred from the tool name and the word 'Disconnect', which is not proactive enough for an agent deciding between account-management siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_account_set_defaultSet the default Google accountA
Set which account is used when no account is specified.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Account nickname to use as default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states the core state change but does not disclose side effects, persistence, authentication requirements, error behavior, or what happens if the nickname is invalid. This is a minimal disclosure for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to the meaning, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter setter, the description and schema are mostly adequate, but with no annotations and no output schema, the agent is left without information about return values, side effects, or whether the nickname must already exist. It is minimally viable but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the single parameter completely with 'Account nickname to use as default.' The description adds no further parameter-level meaning, so it neither enhances nor detracts from the schema. Baseline 3 is appropriate given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Set') and resource ('default Google account') and clarifies the behavior with 'when no account is specified.' This distinguishes it clearly from sibling account tools like google_account_add, google_account_list, google_account_remove, and google_account_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the default matters ('when no account is specified') but does not explicitly state when to invoke this tool versus alternatives, nor does it mention prerequisites such as the account needing to exist. Usage context is present but not fully articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_account_statusGoogle services statusA
Show credential configuration, data directory, connected accounts and token health.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It says 'Show', implying a read-only operation, and lists the information categories, which gives some transparency. However, it does not mention potential side effects (e.g., token refresh) or failure conditions, nor the exact format of the output. For a status tool, this is adequate but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the action and key objects. It is appropriately concise, with no filler words or repetitive details, making it efficient for an agent to parse and act upon.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple: no parameters, no output schema, and no nested objects. The description adequately covers the scope by enumerating the four content areas (credential config, data directory, connected accounts, token health). While it does not detail return structure, the lack of complexity makes this listing sufficient for the agent to understand the tool's purpose and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so there is no parameter semantic burden. Per the rubric, the baseline for 0 params is 4; the description adds no confusion and correctly implies no inputs are needed. The schema coverage is effectively 100%, so the description is not required to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with the action 'Show' and specifies four concrete subjects: 'credential configuration, data directory, connected accounts and token health'. This clearly identifies the tool's function and differentiates it from sibling tools like google_account_list (which only lists accounts) by focusing on broader status/health information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given about when to use this tool compared to alternatives such as google_account_list (account listing only) or google_account_add/remove (account management). The description states what it does but not when it should be preferred over sibling tools, 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.
google_calendar_createCreate calendarC
Create a secondary calendar with a name, timezone, and description.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| summary | Yes | Calendar name. | |
| timeZone | No | IANA timezone (e.g. America/Los_Angeles). | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose permission/scope requirements, whether the new calendar becomes visible in the calendar list, whether it is set as default, or what is returned. It only identifies the entity being created.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the entity and its configurable attributes are immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is thin: it omits required fields (only 'summary' is required, yet the sentence implies all three are expected), permission needs, and side effects. An agent can guess how to call it but not the consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, with the 'description' property undocumented in the schema. The description merely restates the three named fields without adding format, constraint, or interaction detail, so it does little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Create) and resource (a secondary calendar), plus the fields it accepts. Calling it 'secondary' distinguishes it from editing the primary calendar, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus google_calendar_create_event, google_calendar_create_meet, or google_calendar_update. The word 'secondary' hints at scope but the agent must infer that this does not create events or meet links.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_create_eventCreate calendar eventC
Create a timed or all-day event. All-day events use YYYY-MM-DD dates.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End: RFC3339 datetime or YYYY-MM-DD (exclusive) for all-day. | |
| start | Yes | Start: RFC3339 datetime or YYYY-MM-DD for all-day. | |
| account | No | Account nickname to use. | |
| colorId | No | Event color ID (1-11). | |
| summary | Yes | Event title. | |
| location | No | ||
| timeZone | No | IANA time zone, e.g. America/Denver. Required for recurring timed events. | |
| attendees | No | Attendee emails. | |
| calendarId | No | Calendar ID (default primary). | |
| recurrence | No | RRULE strings, e.g. ["RRULE:FREQ=WEEKLY;BYDAY=TH"]. | |
| description | No | ||
| sendUpdates | No | Control attendee notification emails. | |
| transparency | No | Show as busy (opaque) or free (transparent). | |
| reminderMethod | No | Reminder delivery method. | |
| reminderMinutes | No | Minutes before event. | |
| remindersUseDefault | No | Use calendar default reminders instead of overrides. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and falls well short. For a mutation tool it says nothing about attendee invite emails, sendUpdates defaults, reminder behavior, or required auth/scopes. The one useful nugget is the all-day date convention, but that duplicates the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler, and the primary purpose is front-loaded ahead of the format note. Every sentence earns its place, even if the total content is thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter mutation tool with no annotations and no output schema, a two-sentence description is inadequate. Aspects like attendee notification control, recurrence/timezone interaction, and default behavior are left entirely to the schema, leaving meaningful gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 88%, so the schema already documents nearly all 16 parameters, giving a baseline of 3. The description's only parameter-related content (all-day YYYY-MM-DD dates) merely restates what the start/end schema descriptions already say, adding no new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a ... event') and distinguishes two modes (timed vs all-day). It does not differentiate itself from nearby siblings such as google_calendar_create, google_calendar_update_event, or google_calendar_create_meet, so an agent gets the core action but no explicit routing signal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives like google_calendar_create or google_calendar_create_meet. The only guidance offered is a date-format note for all-day events, which is a formatting rule rather than usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_create_meetCreate event with Google MeetB
Create a calendar event with an attached Google Meet link.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End RFC3339 datetime. | |
| start | Yes | Start RFC3339 datetime. | |
| account | No | Account nickname to use. | |
| summary | Yes | Meeting title. | |
| attendees | No | Attendee emails. | |
| calendarId | No | Calendar ID (default primary). | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but it only states the high-level effect. It does not disclose whether a Meet conference is actually created, what permissions/auth are required, what the response contains, or other side effects. This is a significant gap 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler; every word contributes to selecting and understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a well-described schema, the definition lacks an output schema and provides no usage alternatives, return behavior, or auth/side-effect context. For a 7-parameter mutation tool with no annotations, this is too thin to be fully actionable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (86%) and parameter descriptions already define meaning. The tool description adds no parameter-level detail, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a calendar event') with a concrete differentiator ('attached Google Meet link') that distinguishes it from the sibling google_calendar_create_event. An agent can tell exactly what this tool produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: choose this when a Google Meet link is needed. However, it does not explicitly mention when not to use it or point to google_calendar_create_event as the plain-event alternative, so routing depends on inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_deleteDelete calendarB
Delete a secondary calendar permanently (destructive).
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| calendarId | Yes | Calendar ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the key trait that the deletion is permanent and destructive. However, it omits whether contained events are also destroyed, whether this is reversible, and any permission/auth requirements, leaving meaningful behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the destructive nature parenthesized at the end; nothing is wasted and the purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter delete with a fully documented schema, the description covers purpose and the destructive/permanent trait. But with no annotations and no output schema, it should say more about consequences (e.g. collateral deletion of events) and would-be-restricted behavior to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, so the schema already documents calendarId and account. The description adds no syntax, format, or sourcing detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Delete a secondary calendar") and adds the scoping qualifier "secondary," which separates it from primary-calendar operations. It also implicitly distinguishes from the sibling google_calendar_delete_event by naming a calendar rather than an event, though it never makes that distinction explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no mention of alternatives, prerequisites, or how to react if the calendarId refers to a primary calendar. The only usage signal is the word "secondary," which constrains scope but is not framed as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_delete_eventDelete calendar eventB
Delete an event by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| eventId | Yes | Event ID. | |
| calendarId | No | Calendar ID (default primary). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. 'Delete' implies a destructive action, but the description does not state that deletion is permanent, require any special permissions, or describe side effects such as handling of recurring events. It adds no behavioral context beyond what the tool name already implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, 'Delete an event by ID,' with no filler or redundant information. It is front-loaded with the action and the key qualifier, making it extremely efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with full schema coverage and no output schema, the description provides the essential action and target. However, it omits additional context such as irreversibility, default calendar behavior (though schema covers calendarId default), and any permission requirements. Given the low complexity, this is minimally adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description mentions 'by ID', which only highlights the required eventId but adds no new meaning beyond the schema's 'Event ID.' Baseline 3 is appropriate because the description does not compensate for or enhance the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete an event by ID' uses a specific verb (delete) and resource (event) and clearly identifies the key parameter (ID). It distinguishes the tool from sibling calendar tools like create/update/get and from delete tools in other services, so an agent can immediately know its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as google_calendar_update_event or when deletion would be inappropriate. The description simply states the action without any context, prerequisites, or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_free_busyQuery calendar free/busyA
Query busy intervals across calendars to find free meeting windows. A calendar that could not be read returns errors instead of looking free.
| Name | Required | Description | Default |
|---|---|---|---|
| items | No | Calendar IDs to query (default primary). | |
| account | No | Account nickname to use. | |
| timeMax | Yes | End of range (RFC3339 datetime). | |
| timeMin | Yes | Start of range (RFC3339 datetime). | |
| timeZone | No | IANA timezone (e.g. America/Los_Angeles). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose one genuinely valuable failure mode: an unreadable calendar surfaces errors rather than appearing free, which prevents false 'available' conclusions. It leaves out whether the call is strictly read-only, permission/auth expectations, and what the response shape looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the core purpose front-loaded and the caveat about partial failures placed immediately after. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter read tool with full schema coverage and no output schema, the description covers purpose and the key error behavior. It could go slightly further in describing the returned busy-interval structure or timezone/range edge cases, but nothing critical for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (items, account, timeMin, timeMax, timeZone) are already documented in the schema. The description adds no parameter-level meaning beyond that, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Query busy intervals across calendars') and adds the practical intent ('find free meeting windows'), which distinguishes it from google_calendar_list_events at a conceptual level. It never names that sibling explicitly, so differentiation relies on the agent inferring the busy-vs-detailed-events distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'to find free meeting windows' implies the usage context, but there is no explicit when-to-use/when-not guidance and no mention of alternatives such as google_calendar_list_events for event details. Usage must be inferred from the purpose sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_get_eventGet calendar eventA
Fetch a single event by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| eventId | Yes | Event ID. | |
| calendarId | No | Calendar ID (default primary). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, 'Fetch' indicates a read-only retrieval, but the description doesn't add context about account/calendar defaults, errors, or returned data. It is transparent on side-effect risk but thin on operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no filler, front-loading the verb and resource; max signal per token.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple fetch tool: schema supplies parameter details and defaults, but no output guidance or operational context beyond the core action, and there is no output schema to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 3 parameters with descriptions, so baseline is 3; the description only reinforces that eventId is the lookup key and adds no new parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Fetch'), a clear resource ('calendar event'), and a selection criterion ('single event by ID'), which distinguishes it from sibling list/create/update/delete event tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'single' implies use when you have an event ID rather than listing or creating events, but the description provides no explicit when-to-use guidance or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_list_calendarsList calendarsB
List calendars the account can access.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| pageToken | No | Page token from a previous result's nextPageToken. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only discloses access scoping ('the account can access'). It omits pagination behavior despite a pageToken parameter, whether the primary calendar is included, ordering, and any read-only/safety context. This is thin for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero wasted words. It states purpose and scope immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with full schema coverage, the description covers the core action. However, it lacks pagination guidance and any behavioral context that would be needed in the absence of annotations, leaving it minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (account, pageToken) are already documented in the schema. The description adds no parameter-level meaning beyond what structured data provides, which is the baseline for full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (calendars) with the scope 'the account can access,' which inherently distinguishes it from sibling tools like google_calendar_list_events. It does not explicitly call out the sibling comparison, but the resource noun is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., list_events, free_busy) or what prerequisites exist. The scope clause hints at account filtering but does not say when the tool should be selected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_list_eventsList calendar eventsB
List upcoming events in a calendar, optionally filtered by time range or query.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search (e.g. meeting). | |
| account | No | Account nickname to use. | |
| timeMax | No | End of range (ISO 8601). | |
| timeMin | No | Start of range (ISO 8601, default now). | |
| pageToken | No | Page token from a previous result's nextPageToken. | |
| calendarId | No | Calendar ID (default primary). | |
| maxResults | No | Max events (default 25). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. 'List' implies read-only and non-destructive, which is useful, but it omits pagination behavior (despite pageToken/nextPageToken in the schema), the default result cap of 25, and how recurring events or 'upcoming' are resolved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. It is appropriately sized for the message it delivers, though that brevity leaves the other useful details (paging, defaults, account scope) unaddressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Seven parameters, no annotations, and no output schema mean the description should do more work. It never explains pagination (pageToken fields exist), the default 25/250 limits, the account-vs-calendarId relationship, or what an event record looks like on return.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters are already documented inline (q, account, timeMin/timeMax, pageToken, calendarId, maxResults). The description only restates the time-range and query filters, adding no meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('List upcoming events in a calendar') plus the optional filtering dimension. It's clear enough to distinguish from get_event or create_event, but never names those siblings or clarifies how it differs from google_calendar_free_busy or google_calendar_list_calendars.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by 'List upcoming events' and 'optionally filtered'. There is no explicit when-to-use guidance, no exclusions (e.g. use get_event for a single event, free_busy for availability), and no mention of prerequisites like which account is used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_respondRespond to calendar event inviteA
Accept, decline, or mark tentative an event invite by setting the attendee responseStatus. The address must already be on the invite.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Attendee email to respond as (defaults to signed-in account). | ||
| account | No | Account nickname to use. | |
| eventId | Yes | Event ID. | |
| calendarId | No | Calendar ID (default primary). | |
| sendUpdates | No | Who to notify of the change (defaults to none). | |
| responseStatus | Yes | Attendance response to set. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It does add real behavioral context — that the response is recorded against an attendee already on the invite — but says nothing about notification side effects (the sendUpdates default of 'none'), permission requirements, or whether the organizer can respond for others.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, with the action and the hard precondition front-loaded. Nothing is redundant with the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six parameters, no annotations, and no output schema, the description is on the thin side. It covers the core action and one failure mode, but omits notification behavior and the fact that responses can be set for other attendees via the email parameter — both relevant to calling it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds only marginal meaning, tying 'responseStatus' to attendance and constraining 'email' to an existing invitee; the other four parameters are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb set (accept, decline, mark tentative) and a specific resource (an event invite's attendee responseStatus), so the agent knows exactly what the operation does. It does not name or differentiate from the closest sibling, google_calendar_update_event, which could also plausibly touch attendance state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sentence 'The address must already be on the invite' is a genuine precondition that tells the agent when this call will fail. However, there is no explicit guidance on when to use this versus google_calendar_update_event, and no statement about whether the caller must be an attendee.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_updateUpdate calendarC
Update a calendar's name, color, timezone, or description (partial).
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| colorId | No | Color ID (1-24). | |
| summary | No | New calendar name. | |
| timeZone | No | IANA timezone (e.g. America/Los_Angeles). | |
| calendarId | Yes | Calendar ID. | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. '(partial)' usefully discloses that unspecified fields are left untouched, but the description says nothing about permission requirements, whether the change is reversible, or what happens to fields not passed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though it is arguably too terse to be maximally helpful for a mutation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no annotations and no output schema, the description is thin. It omits when-to-use context, prerequisites, and behavioral details an agent needs to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, so the schema already documents calendarId, colorId, summary, timeZone and account. The description only restates the same field set in prose, adding no format or constraint detail beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Update) and resource (a calendar) plus the exact editable fields (name, color, timezone, description), which distinguishes it from the sibling google_calendar_update_event. It is clear, but it does not explicitly name the sibling it is not to be confused with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus google_calendar_create or google_calendar_delete, nor any prerequisites. The only hint is the parenthetical '(partial)', which does not tell the agent when this operation is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_update_eventUpdate calendar eventC
Update fields of an existing event (partial update).
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | New end RFC3339 datetime (or YYYY-MM-DD for all-day). Given alone, the start keeps the current duration. | |
| start | No | New start RFC3339 datetime (or YYYY-MM-DD for all-day). Given alone, the end keeps the current duration. | |
| account | No | Account nickname to use. | |
| colorId | No | Event color ID (1-11). | |
| eventId | Yes | Event ID. | |
| summary | No | ||
| location | No | ||
| timeZone | No | IANA time zone, e.g. America/Denver. Required when updating to recurring timed events. | |
| attendees | No | Full attendee list. | |
| calendarId | No | Calendar ID (default primary). | |
| recurrence | No | RRULE strings, e.g. ["RRULE:FREQ=WEEKLY;BYDAY=TH"]. | |
| description | No | ||
| sendUpdates | No | Control attendee notification emails. | |
| transparency | No | Show as busy (opaque) or free (transparent). | |
| reminderMethod | No | Reminder delivery method. | |
| reminderMinutes | No | Minutes before event. | |
| remindersUseDefault | No | Use calendar default reminders instead of overrides. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers almost nothing: it doesn't say that attendee updates replace the whole list, that changes may trigger notification emails (sendUpdates), whether changes apply to recurring instances, or whether the operation is reversible. The only behavioral disclosure is the '(partial update)' note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is efficient, though its brevity is partly under-specification rather than true density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 17-parameter mutation tool with zero annotations and no output schema, one sentence is not enough: risks of overwriting attendees/recurrence, notification side effects, and account/calendar scoping all go unaddressed. Only the schema carries the detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 82%, so the schema already documents nearly all 17 parameters, including the subtle start/end duration behavior and enum meanings. The description adds no parameter meaning of its own, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Update fields of an existing event') and clarifies the partial-update semantics, which is a meaningful distinction. It doesn't differentiate from nearby siblings like google_calendar_update or google_calendar_create_event, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites (eventId required, calendarId defaulting to primary), and no mention of when to prefer this over google_calendar_update or how it relates to google_calendar_get_event. '(partial update)' is the only usage hint and it is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_contacts_createCreate contactC
Create a new contact with a name and optional email/phone/address/organization/photo.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Contact full name. | |
| No | |||
| phone | No | ||
| account | No | Account nickname to use. | |
| address | No | Freeform postal address. | |
| photoBytes | No | Base64-encoded photo bytes (JPEG/PNG). | |
| organization | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden for a mutation tool. It says nothing about permissions, duplicate handling, reversibility, or whether the created contact is returned with an identifier; 'create' alone is the only behavioral signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though it leaves out one parameter (account) and could have traded a few words for a usage clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with no annotations and no output schema, the description is thin: it omits account selection, duplicate/validation behavior, and what the caller gets back. An agent can form a rough call but not a fully informed one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 57%, so the schema documents name, account, address and photoBytes but leaves email, phone and organization bare in their own definitions. The description names most of these fields and flags them as optional, which partially compensates, though it omits 'account' and adds no format or constraint detail beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a new contact') and enumerates the payload fields, so an agent can distinguish it from google_contacts_get/list/search/update/delete. It stops short of any sibling-specific routing language, so it is clear but not maximally differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to create versus update an existing contact, no prerequisites, and no mention of which account context applies despite the sibling set containing google_account_list/set_default/add. The agent must infer all usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_contacts_deleteDelete contactC
Delete a contact by resourceName.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| resourceName | Yes | Contact resource name, e.g. people/123 (from list/search). |
TDQS
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 and does not meet it. It never states whether the deletion is permanent or reversible, whether the contact moves to a trash/recoverable state (as sibling google_gmail_trash implies is a pattern in this API surface), or what permissions are required. For a destructive operation this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero filler, front-loaded with the action. It is efficient, though the brevity borders on under-specification for a destructive tool rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a delete tool with no annotations and no output schema, the description says nothing about irreversibility, error behavior for a bad resourceName, or side effects. An agent has enough to form the call but not enough to judge whether calling it is safe.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already documents both `resourceName` (with an example format) and `account`. The description names resourceName but adds no syntax, format, or validation detail beyond what the schema supplies, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete a contact') and identifies the keying parameter ('by resourceName'), so an agent immediately knows the operation. It does not differentiate itself from siblings such as google_contacts_update or google_contacts_get, relying on the tool name to do that work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given, and no alternative is named. The only hint at context is the schema note that resourceName comes 'from list/search', which is not in the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_contacts_getGet contactB
Get a contact by resourceName with rich fields (name, email, phone, address, org).
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| resourceName | Yes | Contact resource name, e.g. people/123 (from list/search). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden but discloses only that this is a read operation ('Get') and what fields it returns. It omits auth requirements (including how the 'account' nickname affects access), error handling for a missing contact, and any rate-limit context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that packs purpose and return fields without filler. It is appropriately sized for a simple getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity getter with complete schema coverage and no output schema, the description covers purpose and return fields but omits usage routing and behavioral details. An agent would still benefit from knowing when to prefer this over list/search.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the description adds no parameter details beyond the required 'resourceName' and the returned-field list. The optional 'account' parameter's nickname semantics are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a contact') and scopes it by 'resourceName', while listing the rich fields returned. This implicitly distinguishes it from the collection-returning siblings google_contacts_list and google_contacts_search, but it does not name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 guidance; it neither names alternatives like google_contacts_search nor states prerequisites. The phrase 'by resourceName' only weakly implies the identifier must already be known, e.g., from list/search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_contacts_listList contactsC
List the account's contacts with names, emails and phones.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| pageSize | No | Max contacts (default 100). | |
| pageToken | No | Page token from a previous result's nextPageToken. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. 'List' implies a read-only operation, but there is no mention of pagination limits, ordering, permission scoping, or how nextPageToken results behave — the schema mentions the token but the description does not explain the paging loop an agent must run.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with no filler, and the core resource is front-loaded. It is appropriately sized, though the space saved could have been spent on paging or sibling differentiation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-optional-parameter read tool with full schema coverage and no output schema, the description minimally suffices and usefully hints at returned fields. However, it omits result paging behavior (nextPageToken) and how many records come back by default, which matter in practice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so account, pageSize, and pageToken are already documented in structured data. The description adds no meaning beyond the schema and does not clarify default account behavior when 'account' is omitted — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list contacts) plus the fields returned (names, emails, phones). It does not explicitly differentiate from the sibling google_contacts_search or google_contacts_get, so an agent must infer the distinction from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no indication of when to prefer this over google_contacts_search or google_contacts_get, and no guidance on paging through results. It says nothing about when NOT to use it or what prerequisites (account selection/default) apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_contacts_searchSearch contactsB
Search contacts (including non-connected) by name, email or phone.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search text. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does add one behavioral trait: 'including non-connected' – indicating the search covers contacts beyond direct connections. However, it does not mention what the output looks like (e.g., list of contacts, pagination, ordering), or any error behavior. This is minimal disclosure for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the purpose and key scope. There is no fluff or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with two parameters and 100% schema coverage, the description covers the core functionality. However, it omits any information about the return format (since there is no output schema), and it does not mention the 'account' parameter's role in the search. Given the low complexity, it is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers both parameters with descriptions, so the baseline is 3. The description adds value by specifying that the query can match 'name, email or phone', giving the agent a clearer idea of what to put in the query field. It does not elaborate on the 'account' parameter, but the schema already describes it as a nickname.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Search), the resource (contacts), and specifies the scope ('including non-connected') and search fields (name, email, phone). This distinguishes it from the sibling google_contacts_list, which presumably lists contacts without a query. The specificity is strong, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is used when a search query is available, but it provides no explicit guidance on when to use it versus google_contacts_list or other contact tools. There is no mention of when not to use it or any prerequisites. The context is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_contacts_updateUpdate contactB
Update a contact's name, email, phone, address, organization or photo. Multi-valued fields keep their other entries.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New full name. | |
| No | New email. | ||
| phone | No | New phone number. | |
| account | No | Account nickname to use. | |
| address | No | Freeform postal address. | |
| photoBytes | No | Base64-encoded photo bytes (JPEG/PNG). | |
| organization | No | ||
| resourceName | Yes | Contact resource name, e.g. people/123 (from list/search). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It does disclose one genuinely useful behavior — multi-valued fields keep their other entries, i.e. partial/additive semantics — but never says what happens to fields not supplied (cleared vs. preserved), whether the operation is reversible, or what auth/permissions are needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste, with the mutable-field scope front-loaded before the behavioral caveat. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation tool with no annotations and no output schema, the description covers which fields can change but omits the key open questions: partial vs. full replacement for omitted fields, failure behavior for an invalid resourceName, and confirmation of what is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 88%, so the schema already documents name, email, phone, account, address, photoBytes, organization, and resourceName. The description only echoes the field list and adds the multi-valued retention nuance, which is marginal value on top of an already well-documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Update') and resource ('a contact's') and enumerates the mutable fields, so the agent can tell it apart from google_contacts_create, google_contacts_get, and google_contacts_delete. It does not explicitly name those siblings, but the operation is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus google_contacts_create or google_contacts_search, and no mention that resourceName must come from a prior list/search call (that hint lives only in the schema). Usage is only implied by the word 'update'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_docs_batch_updateBatch update documentC
Send raw Docs batchUpdate requests (styles, tables, headers, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| requests | Yes | Docs API batchUpdate requests. | |
| documentId | Yes | Document ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden, but it only restates the operation and offers examples of request types. It does not disclose the operation's mutation effect on the document, what the API response contains, error behavior, or any per-call limits. This goes little beyond what the tool name already implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler; the verb and resource are front-loaded and the parenthetical adds useful scope. It is appropriately minimal for what it conveys, though it could afford a second sentence on usage without harming clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description is thin for a low-level API passthrough. It omits return value shape, side effects, and how errors manifest, and it does not connect to sibling higher-level update tools. The schema's parameter coverage is complete, but the overall tool contract remains under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all three parameters with simple descriptions, so baseline is 3. The description adds modest value by giving examples of request kinds (styles, tables, headers) that clarify the otherwise open-ended 'requests' array, but it does not explain the request object structure or required fields, leaving most semantics to the Docs API knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific action ('Send raw Docs batchUpdate requests') and a resource (the document), with examples of what kinds of updates are supported (styles, tables, headers). It distinguishes from sibling read/create/text-insert tools because it targets the low-level batchUpdate endpoint, though 'batchUpdate' in the title partially duplicates that idea.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose raw batchUpdate over the higher-level google_docs_insert_text, google_docs_replace_text, or google_docs_create, nor when not to use it. The word 'raw' implies advanced use, but this is not an explicit recommendation or exclusion, so an agent must infer timing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_docs_createCreate documentA
Create a new Google Docs document with a title.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Document title. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose the core side effect: a new document is created. However, it omits account-selection behavior, default storage location, permissions, and what is returned, leaving the behavioral disclosure thin but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short, front-loaded sentence that states the action and object immediately. Every word contributes to the core meaning and there is no boilerplate or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the schema fully covers both parameters, so the input side is adequately specified. However, there is no output schema and the description fails to explain what is returned after creation (e.g., document ID or URL) or how the optional `account` parameter is resolved. This leaves a meaningful gap for an agent trying to use the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both `title` and `account`; the baseline is therefore 3. The description adds no new detail about the `account` parameter and only restates that a document has a title. No additional parameter semantics are introduced beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Create a new Google Docs document.' It clearly communicates the deliverable and distinguishes this tool from sibling creation tools like google_sheets_create or google_slides_create. The word 'new' also makes the creation semantics unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage context—use this when a brand-new Google Docs document is needed—but it provides no explicit alternatives, exclusions, or prerequisites. There is no guidance about when to use this instead of google_docs_batch_update or google_sheets_create, so the agent must infer the scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_docs_delete_rangeDelete rangeC
Delete a range of content from a document.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| endIndex | Yes | 1-based end index (exclusive). | |
| documentId | Yes | Document ID. | |
| startIndex | Yes | 1-based start index (inclusive). |
TDQS
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 implies a destructive mutation but says nothing about irreversibility, permission requirements, or how document indices shift after a deletion, which is the single most important behavioral fact for a range-delete tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler. It is efficient, though its brevity comes partly from omitting behavior an agent needs rather than from disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a destructive mutation tool with no annotations and no output schema. The description should warn about index invalidation after deletion and about the operation being irreversible, and it covers neither.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents that startIndex is 1-based inclusive and endIndex is 1-based exclusive. The description adds nothing beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Delete') and a specific resource ('a range of content from a document'), so an agent knows exactly what the tool does. It does not distinguish itself from siblings that can also remove content, such as google_docs_batch_update or google_docs_replace_text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus google_docs_batch_update or google_docs_replace_text, and no statement of prerequisites. Usage is only implied by the verb 'delete'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_docs_getGet documentB
Get the full Google Docs document (structural JSON).
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| documentId | Yes | Document ID. |
TDQS
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 discloses that the return value is 'structural JSON' and implies a read operation through 'Get', but it does not explicitly state that this is read-only, nor does it mention any permissions, side effects, or rate limits. For a simple retrieval tool, the output format hint adds some value, but more explicit behavioral disclosure would be better.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately states the action and the output format. There is no unnecessary verbiage, and the key information is front-loaded. It is appropriately sized for a simple get operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only two parameters and no output schema, the description provides enough information to call it correctly: it states what it does and the output format. However, it lacks any guidance on when to choose this over the sibling 'google_docs_read', which is a meaningful gap given the tool's simplicity. It does not need to explain return values in detail, but mentioning the differentiation would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — both 'account' and 'documentId' are described in the schema. The description adds no additional meaning beyond what the schema already provides. It does not explain the structure of the returned JSON or any nuances of the parameters, so it does not compensate for or enhance the schema's documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'full Google Docs document', and specifies the output as 'structural JSON'. It is specific enough to convey the tool's function, but it does not differentiate from the sibling 'google_docs_read', which could be a similar read operation. This leaves some ambiguity about which tool to use for different reading needs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like 'google_docs_read'. The description does not mention any context, exclusions, or scenarios where one tool is preferred over another. An agent would have to infer usage from the name and schema alone, which is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_docs_insert_inline_imageInsert inline imageB
Insert an inline image from a public URI and return the created object id.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | Yes | Publicly accessible PNG/JPEG/GIF URI (< 50MB, <= 25MP). | |
| index | Yes | 1-based index inside an existing paragraph. | |
| account | No | Account nickname to use. | |
| documentId | Yes | Document ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It implies a mutation by saying 'insert' and mentions the returned object id, but it does not state permission requirements, reversibility, failure behavior, or rate limits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no wasted words. It states the action, source, and return value efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential action and return value, and the schema fully documents parameters. However, for a mutation tool with no annotations, it should say more about operational context such as authentication needs or constraints on insertion position.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the four parameters are already documented. The description adds little beyond the schema: it implies URI source and object-id return, but does not clarify index placement or account selection semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: insert an inline image. It also specifies the source (public URI) and return value (created object id). It is clearly distinguishable from google_docs_insert_text and google_docs_insert_table, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives such as google_slides_create_image or google_docs_insert_text. It also omits prerequisites, like whether the document must already exist or the index must fall inside an existing paragraph.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_docs_insert_tableInsert tableC
Insert an empty table at a model index (a newline is added before it).
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | Number of rows. | |
| index | Yes | 1-based index where the table is inserted. | |
| account | No | Account nickname to use. | |
| columns | Yes | Number of columns. | |
| documentId | Yes | Document ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that the inserted table is empty and that a newline is added before it, but it does not mention write permissions, what happens to existing content at the index, failure behavior, or the response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted text. The parenthetical side-effect note is compact and useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is too thin. It explains the core insert action but omits permission requirements, return behavior, and error or edge-case context an agent would need before invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all five parameters, so the baseline is 3. The description does not add parameter-level meaning beyond the schema, such as index constraints or account behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: insert an empty table. The word 'table' distinguishes it from sibling tools like google_docs_insert_text and google_docs_insert_inline_image, though the phrase 'model index' is somewhat ambiguous and no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as google_docs_insert_text or google_docs_batch_update, and no stated preconditions. Usage is only implied by the purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_docs_insert_textInsert text in documentB
Insert text into a document at an index or at the end.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to insert. | |
| index | No | 1-based character index to insert at (default end of document). | |
| account | No | Account nickname to use. | |
| documentId | Yes | Document ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral-disclosure burden. 'Insert' implies a write operation, but the description omits edit-permission requirements, effects on existing content or index shifting, and return behavior; only the default end-of-document location is stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no redundancy, efficiently stating the action and insertion location.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple insert operation with fully documented parameters, the description covers the action and target location. However, with no annotations and no output schema, it leaves mutation side effects, permissions, and response behavior undisclosed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description echoes the index-or-end behavior already present in the schema and adds no further format or constraint details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (insert) and resource (text into a document), plus the insertion location (index or end). This distinguishes it from replace_text and insert_table by operation, but it does not explicitly route among the docs-editing siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use guidance, prerequisites, or alternatives. An agent must infer from sibling tools whether to use this versus google_docs_replace_text or google_docs_batch_update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_docs_readRead document textB
Read a Google Docs document as plain text.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| documentId | Yes | Document ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It does make the read-only nature and plain-text output explicit, but it does not mention whether formatting is stripped, how large documents are handled, or any access-related requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence communicates the essential purpose without wasted words. Every part of the description contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with fully documented parameters, the description is mostly sufficient. However, the lack of any differentiation from google_docs_get and the absence of output-format details beyond 'plain text' leave moderate gaps for an agent selecting among many Google siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both documentId and account are already documented in the schema. The description adds no parameter-specific meaning, placing this at the baseline expected when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Read), a clear resource (Google Docs document), and the output form (plain text). It is understandable on its own, but it does not differentiate itself from the sibling google_docs_get, which could plausibly overlap in purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives only the basic action and no guidance about when to choose this tool over alternatives like google_docs_get or google_docs_batch_update. There are no explicit when-to-use, when-not-to-use, or alternative-routing statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_docs_replace_textReplace text in documentB
Replace all occurrences of a string in a document (template filling).
| Name | Required | Description | Default |
|---|---|---|---|
| find | Yes | Text to find (e.g. {{name}}). | |
| account | No | Account nickname to use. | |
| replace | Yes | Replacement text. | |
| matchCase | No | Match case (default true). | |
| documentId | Yes | Document ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It states the operation replaces all occurrences, which is a key behavior, but lacks details like case sensitivity defaults (though matchCase parameter hints at it), effect on formatting, and whether replacement is reversible. It does not contradict annotations since none exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that immediately conveys the core action and a common use case. It is appropriately front-loaded and contains no unnecessary words, though it could add a bit more context without bloating.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, 3 required, and no output schema, the description is adequate but not complete. It does not explain the effect of matchCase, the need for an account, or what happens if find text is not present. An agent could call it correctly for simple cases but might be unsure about edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description adds minimal semantics beyond the schema, only implying template filling via the parenthetical. That matches the baseline of 3 since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'replace' and the resource 'text in a document', and the parenthetical '(template filling)' hints at a common use case. It is distinguishable from siblings like google_docs_insert_text and google_slides_replace_text, though it doesn't explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for template filling, but does not explicitly state when to use this tool versus alternatives like google_docs_batch_update or insert_text. No exclusions or conditions are given, leaving some ambiguity for an agent deciding between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_copyCopy Drive fileC
Copy a file, optionally with a new name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name. | |
| fileId | Yes | Drive file ID. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only says 'Copy a file, optionally with a new name.' It does not reveal where the copy is created, whether it overwrites existing files, what permissions are needed, or what side effects occur. This is a minimal statement rather than a transparent one.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler, and the core action is front-loaded. It earns conciseness points, though it is so terse that it sacrifices useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and all parameters are documented in the schema, but there is no annotation or output schema to fill gaps. The description omits the copy destination, return value, and any behavioral caveats, making it minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no real semantic detail beyond the schema; it loosely maps to the 'name' parameter but does not explain the behavior of fileId or account. This is adequate but not additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the operation as copying a Drive file, with an optional new name. This is a specific verb and resource, and among the sibling tools it is the only copy operation, so the action is unambiguous. It does not explicitly contrast itself with related tools like upload or update, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool versus alternatives such as google_drive_upload or google_drive_update. The description does not state prerequisites, destination behavior, or exclusions, leaving the agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_create_folderCreate Drive folderC
Create a folder in Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Folder name. | |
| account | No | Account nickname to use. | |
| parentFolderId | No | Parent folder ID (root if omitted). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure, but it only states the outcome (creates a folder). It does not mention account requirements, default location (root if parentFolderId omitted), potential errors (e.g., duplicate names), or whether the operation is reversible or requires specific permissions. This leaves the agent uninformed about important behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the purpose, with no fluff. It is front-loaded with the core action, making it efficient for an agent to parse, though it sacrifices some behavioral detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with a simple schema, the description is minimally adequate, but it lacks important context that an agent might need: it doesn't clarify that the folder is created in the user's Drive (not a shared drive), doesn't mention the default root when parentFolderId is omitted, and doesn't specify whether the account parameter affects where the folder is created. The absence of an output schema also means the description could have mentioned what the response includes (e.g., folder ID), but it doesn't.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes all parameters with clear descriptions (name, account, parentFolderId), achieving 100% schema coverage. The description adds no additional meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('create a folder') and the target resource (Drive), which is sufficient to distinguish it from most sibling operations, though it does not explicitly name sibling tools like google_drive_upload or google_drive_update. The verb and resource are specific enough for an agent to understand the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as when to use google_drive_upload for files or google_drive_copy for duplicating existing folders. The sibling context implies a clear distinction (folder creation vs. file operations), but the description does not explicitly state exclusions or alternative conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_deleteDelete Drive fileA
Permanently delete a file from Drive. IRREVERSIBLE — prefer google_drive_trash (recoverable).
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | Drive file ID. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well on the biggest risk: it declares the operation IRREVERSIBLE and contrasts it with the recoverable trash path. It stops short of covering permissions/ownership requirements or whether shared users lose access, which would matter for a delete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences; the destructive nature is front-loaded and the fallback suggestion follows immediately. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers the decisive behavioral fact (irreversibility) and the alternative. It could additionally note permission/ownership prerequisites, but nothing critical to a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (fileId, account) are documented inline, so the baseline of 3 applies. The description adds no syntax or format detail about fileId beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (delete) and resource (file from Drive) with the crucial scope qualifier 'permanently'. It is immediately distinguishable from google_drive_trash in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: 'prefer google_drive_trash (recoverable)' names the alternative and the condition (recoverability) that should select it. This is exactly the when-not guidance a destructive tool needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_delete_permissionDelete Drive file permissionC
Revoke a permission from a file by permission ID.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | Drive file ID. | |
| account | No | Account nickname to use. | |
| permissionId | Yes | Permission ID (from google_drive_list_permissions). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state that this is an irreversible access removal, whether owner/editor privileges are required, what happens to shared-link state, or that the affected user loses access immediately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is tight, though its brevity is part of why behavioral context is missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, unannotated mutation with three parameters and no output schema, the description should say more about consequences, permissions, and failure modes. As written, it is adequate only at the surface level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with fileId, permissionId, and account all documented in the schema, including the hint that permissionId comes from google_drive_list_permissions. The description adds nothing beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (revoke) and resource (permission on a file) plus the identifier used to target it (permission ID), so an agent can distinguish it from google_drive_share or google_drive_list_permissions. It stops short of explicitly naming a sibling or contrast case, which would be needed for a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no alternatives named. The agent is left to infer that the permission ID must first be obtained via google_drive_list_permissions, even though that sibling exists in the toolset.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_downloadDownload Drive fileA
Download a file's raw bytes (non-Google-native files). Text content returns decoded text; binary returns base64. Pass saveToPath to write bytes to a local file instead.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | Drive file ID. | |
| account | No | Account nickname to use. | |
| saveToPath | No | Local path to write the raw bytes to (returns { savedTo }). Must be inside the save root: GOOGLE_MCP_SAVE_ROOT, default ~/Downloads. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does add real value by specifying the conditional return shape (decoded text vs. base64). However, it omits what happens when the file IS Google-native (error? empty?), whether saveToPath overwrites an existing file, and any size/permission constraints on large binaries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and scope, then the return-variant rule, then the optional output destination. Nothing is padded and each clause adds distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no output schema and no annotations, the description covers the primary return shapes but leaves the Google-native edge case, overwrite behavior, and size limits unstated. Adequate to invoke on the happy path, thin on failure modes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so fileId, account and saveToPath are already fully documented, including the save-root restriction. The description restates saveToPath's effect without adding constraints beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (download) and resource (a file's raw bytes), and narrows the scope with '(non-Google-native files)'. That scope carve-out implicitly separates it from google_drive_export, but the sibling is never named, so the agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The '(non-Google-native files)' parenthetical implies that Google-native docs belong elsewhere, and the saveToPath sentence gives one usage pattern, but neither is framed as an explicit when-to-use rule. There is no routing to google_drive_export for Docs/Sheets/Slides and no guidance on when returning bytes vs. writing to disk is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_exportExport Drive fileA
Export a Google-native file (Docs/Sheets/Slides/Drawings) to another format (e.g. application/pdf, text/plain, application/vnd.openxmlformats-officedocument.wordprocessingml.document). Pass saveToPath to write the exported bytes to a local file instead.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | Drive file ID. | |
| account | No | Account nickname to use. | |
| mimeType | Yes | Target MIME type (e.g. application/pdf). | |
| saveToPath | No | Local path to write the exported bytes to (returns { savedTo }). Must be inside the save root: GOOGLE_MCP_SAVE_ROOT, default ~/Downloads. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral load. It discloses the destination behavior and mentions the { savedTo } return shape, but says nothing about auth requirements, the roughly 10MB Drive export size limit, whether the source file is modified, or error behavior on unsupported MIME conversions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero padding, with the capability and its file-type scope front-loaded before the optional output-routing behavior. Every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param tool with full schema coverage and no output schema, the description covers what it does, what it accepts, and the two output modes. It falls short only on operational limits and MIME-compatibility caveats that an agent might need to avoid failed calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all four parameters including the save-root constraint. The description only restates mimeType examples and saveToPath's purpose, adding no format rules or validation details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource with an explicit scope restriction (Google-native Docs/Sheets/Slides/Drawings only), which effectively separates it from google_drive_download for binary files. It does not name the sibling outright, so the differentiation is inferred rather than declared.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear applicability context: only Google-native files can be exported, and passing saveToPath switches from returning bytes to writing a local file. No explicit when-not-to-use or named alternative (e.g. 'for non-native binary files use google_drive_download') is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_getGet Drive fileB
Get metadata for a single file by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | Drive file ID. | |
| account | No | Account nickname to use. |
TDQS
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 says 'Get metadata' which implies a read-only operation, but it doesn't disclose what metadata fields are returned, whether the file content is included, or any error conditions (e.g., invalid ID, permissions). For a read tool, this is a moderate gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, zero waste. It earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool with 2 params and no output schema, the description is adequate but not complete. It doesn't mention what the response contains (metadata fields) or any caveats like needing the file to be shared with the account. Given no annotations and no output schema, a bit more detail would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds the context that fileId is the target and account is the account nickname, but doesn't add meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('metadata for a single file by ID'), which clearly distinguishes it from sibling tools like google_drive_download, google_drive_export, or google_drive_delete. It doesn't explicitly name a sibling, but the scope is clear enough to differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use this when you need metadata for a single file by ID. It doesn't explicitly say when not to use it or mention alternatives like google_drive_list for browsing files, but the context is reasonably clear for a simple get-by-ID tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_listList Drive filesB
List files in Drive, newest first, with an optional query.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Drive query (e.g. 'name contains "report"'). | |
| account | No | Account nickname to use. | |
| pageSize | No | Max files (default 25). | |
| pageToken | No | Page token from a previous result's nextPageToken. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden, and it does disclose the default sort order ('newest first') — genuine behavioral context. It omits what a result contains, how pagination behaves beyond the schema's own pageToken/pageSize fields, and what happens with no query (full listing, presumably). Useful but incomplete for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the resource and the default ordering front-loaded and zero filler. Nothing could be removed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A 4-parameter listing tool with no annotations and no output schema leaves the agent guessing at what a returned file record looks like and how to page through large result sets. The schema covers parameter syntax well, but the description does nothing to fill the behavioral and return-shape gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter is documented there, including the query example, account nickname, page size default, and page token usage. The description adds only that the query is optional, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('List files in Drive') plus a default ordering ('newest first'), which is enough to distinguish it from google_drive_get, google_drive_export, and the many write-side Drive siblings. It stops short of naming a specific alternative, but the operation is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says what the tool does but never when to choose it over google_drive_get (single file) or google_drive_export (export to another format). There are no prerequisites, no exclusions, and no mention of how a query narrows results versus listing everything.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_list_permissionsList Drive file permissionsC
List who can access a file and with what role.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | Drive file ID. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It implies a read-only listing but never states this, nor does it mention required permissions/scope, what happens for a file with no explicit permissions, or the shape of the returned roles.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler, well sized for a simple two-parameter read tool. It is appropriately terse rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool the description is arguably adequate, but with no output schema and no annotations it leaves the agent guessing about return structure (who/role fields) and read-only safety. Minimum viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so fileId and account are already documented in the schema; baseline is 3. The description adds nothing beyond intent, but nothing is missing either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (list) and a specific resource (who can access a file and their role), so an agent can clearly distinguish this as a read operation on permission metadata. It does not explicitly name relatives like google_drive_share or google_drive_delete_permission, which keeps it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus google_drive_get or the share/delete_permission siblings, and no prerequisites such as needing an existing fileId. It only describes what the tool does, not when to reach for it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_moveMove Drive file to folderA
Move a file into a folder. Provide removeParentFolderId to also remove it from its current folder (true move); omit to add it to an additional folder.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | Drive file ID. | |
| account | No | Account nickname to use. | |
| parentFolderId | Yes | Destination folder ID. | |
| removeParentFolderId | No | Current folder ID to remove the file from (optional). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose a genuinely non-obvious Drive trait: omitting removeParentFolderId adds a second parent rather than relocating the file. It stops short of 5 because it says nothing about required edit permissions on source/destination or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core action front-loaded and the optional-parameter nuance immediately after. No filler, no repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers the essential semantics an agent needs to pick the right mode. It omits permission/ownership requirements and the shape of the result, which keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes beyond the schema's terse 'Current folder ID to remove the file from (optional)' by explaining the downstream effect of supplying vs omitting the parameter. That is real added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Move a file into a folder'), which is naturally distinguishable from adjacent siblings like google_drive_copy or google_drive_update. It never names an alternative sibling explicitly, so it stops short of the 5 tier, but an agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear conditional guidance for the two modes: supply removeParentFolderId for a true move, omit it to add the file to an additional folder. This is actionable context rather than inference. However, it offers no tool-level alternatives (e.g. why not copy+delete) and no prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_restoreRestore Drive file from trashB
Restore a trashed file (sets trashed: false).
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | Drive file ID. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the mechanism ('sets trashed: false'), but omits permission requirements, what happens if the file is not trashed, and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the operation front-loaded and zero filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter restore tool the description is minimally adequate, but with no annotations and no output schema it should say more about permissions and error behavior to be self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so fileId and account are already documented in the schema. The description adds no parameter-level detail beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Restore a trashed file') that clearly identifies the operation. It does not explicitly differentiate from siblings like google_drive_delete or google_gmail_untrash, but the name and title make the scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus alternatives such as google_drive_delete or google_drive_trash, nor any stated prerequisites (e.g., the file must currently be trashed). Usage is only implied by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_trashMove Drive file to trashA
Move a file to trash (recoverable via google_drive_restore). Safer than google_drive_delete.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | Drive file ID. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the full behavioral burden. It discloses recoverability and the safer alternative, which is the key trait for a mutation. However it omits permission/scope requirements and what happens to files already in trash.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence plus a six-word comparison statement. Zero waste and front-loaded with the action and the key safety property.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with no output schema, recoverability and the safer-alternative routing are the essential disclosures, and both are present. Permission or rate-limit specifics would complete it but the core is there.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters documented, so the baseline is 3. The description adds the semantic distinction of the operation, though it does not need to restate fileId semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Move a file to trash'), and the parenthetical names the recovery path. The agent can distinguish it from google_drive_delete without opening sibling schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes to google_drive_restore as the recovery mechanism and to google_drive_delete as the contrast, matching the 'safer than' guidance. When-to-use is fully implied and the alternative is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_updateUpdate Drive fileC
Rename a file and/or replace its content (text or local file path).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name. | |
| path | No | Local file path to upload as new content (reads raw bytes; use instead of content). | |
| fileId | Yes | Drive file ID. | |
| account | No | Account nickname to use. | |
| content | No | New content. | |
| mimeType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the operation is a rename/replace, but does not disclose that replacing content overwrites existing data, whether changes are reversible, what permissions or account requirements apply, or what happens when only one field is supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every clause ('Rename', 'replace its content', 'text or local file path') earns its place by mapping directly to supported parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with six parameters, no annotations, and no output schema, the description is too thin. It omits usage context, destructive-write warnings, permission expectations, and any behavior beyond the basic rename/replace summary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, so the schema already documents most parameters. The description adds only a brief gloss on content vs. local file path, while fileId, account, and mimeType remain documented only in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Rename a file', 'replace its content') and distinguishes the two primary update modes. It is clear what the tool does, though it does not explicitly name sibling tools like google_drive_upload or google_drive_move for contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no prerequisites, and no comparison to sibling tools. The description implies this is for updating an existing file, but an agent must infer that from the required fileId and cannot tell when to choose this over google_drive_upload, google_drive_move, or other Drive operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_uploadCreate/upload Drive fileA
Create a file in Drive, optionally with text content (blank Google-native file if omitted) or by local file path (binary-safe).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | File name. | |
| path | No | Local file path to upload (reads raw bytes from disk; use instead of content). | |
| account | No | Account nickname to use. | |
| content | No | Text content to upload. | |
| mimeType | Yes | MIME type (e.g. text/plain, image/png, application/vnd.google-apps.document). | |
| parentFolderId | No | Parent folder ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does disclose useful behavior: omitting content yields a blank Google-native file, and the path route reads raw bytes ('binary-safe'). It says nothing about write permissions/scope, overwrite or duplicate-name behavior, what is returned (e.g. file ID for later use), or how parentFolderId affects placement, which are material 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence covering the primary action and both optional modes, with no filler. It is dense and slightly parenthetical, but every clause earns its place by distinguishing the two upload paths.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no annotations and no output schema, the description covers the core modes adequately but leaves gaps: it does not explain the account parameter's role, how parentFolderId interacts with default placement, whether the call requires a specific OAuth scope, or what identifier the agent gets back to use with google_drive_get/update/share.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds real semantics the schema does not: the consequence of omitting content (blank Google-native file) and the binary-safe nature of the path route versus the text-only content route. It does not explain account nicknames or the meaning of parentFolderId beyond the schema's own text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a file in Drive') and clarifies the two creation modes, which separates it from google_drive_create_folder, google_docs_create, and google_sheets_create. It stops short of naming those siblings explicitly, so an agent must still infer which of the Drive/Docs/Sheets creators to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sentence implies the two usage modes (text content vs. local path) and when each applies ('binary-safe', 'blank Google-native file if omitted'), which is genuine guidance for parameter choice. However, it gives no when-to-use context relative to the many sibling creation tools (Docs/Sheets/Slides creators, create_folder) and no prerequisites such as account or parent folder selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_forms_add_questionAdd form questionC
Append a text or multiple-choice question to the end of a form.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Question type (default text). | |
| title | Yes | Question text. | |
| formId | Yes | Form ID. | |
| account | No | Account nickname to use. | |
| options | No | Choices for multiple_choice. | |
| required | No | Whether the question is required (default false). | |
| description | No | Optional help text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full behavioral burden, yet it says nothing about required write permissions, whether the form must be unpublished, whether the append is reversible, or what identifier is returned. Only the positional behavior (append at end) is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single economical sentence with the key action and placement constraint front-loaded and zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with no annotations and no output schema, the description omits what matters most operationally: what is returned (e.g., a question ID needed for later update/move/delete) and any preconditions. It is too thin for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter is already documented in the schema; the description adds only the 'text or multiple-choice' type hint, which restates the enum. Parameters such as options, required, description, and account are left entirely to the schema, which is acceptable given full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (append) and resource (question) and gives positional scope (end of a form). It stops short of distinguishing append from the sibling google_forms_update_question or google_forms_move_question, so an agent must infer the difference from the names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no reference to alternatives like update_question, move_question, or delete_question. The only implicit cue is the word 'append', which hints at position but not at tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_forms_createCreate formC
Create a new Google Form with a title.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Form title. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action ('create') without revealing side effects, authentication requirements, whether an account parameter is mandatory, what happens on success or failure, or whether the created form is immediately usable. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler words. It conveys the core purpose efficiently. However, it is somewhat under-specified for a tool with a second optional parameter, and the balance between conciseness and completeness could be improved. Still, it earns a high score for being appropriately sized and non-redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a creation tool with no output schema and no annotations, the description should clarify at least the return value (e.g., the created form ID) and the role of the optional 'account' parameter. It does neither. An agent would be left unsure how to use the result in subsequent calls (e.g., google_forms_add_question). The description is not complete enough for reliable tool invocation without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both 'title' and 'account' have clear parameter descriptions. The tool description adds only 'with a title,' which reiterates the schema. It does not provide additional meaning about the 'account' parameter (e.g., default behavior, relationship to the 'account' concept). Since the schema already documents parameters adequately, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create') and resource ('a new Google Form') with a required parameter (title). It clearly identifies the tool's function and distinguishes it from siblings like google_forms_get or google_forms_responses by focusing on the creation action. However, it does not explicitly contrast it with other create tools in the suite, so it lacks the explicit differentiation seen in higher-scoring examples.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing an account), scenarios where this tool is preferred over other form-related tools, or any conditions under which it should not be used. The agent must infer usage context entirely from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_forms_deleteDelete formB
Permanently delete a form.
| Name | Required | Description | Default |
|---|---|---|---|
| formId | Yes | Form ID. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full behavioral burden. It does disclose the most important trait for a destructive operation — permanence/irreversibility — but says nothing about authorization requirements, whether associated responses are also destroyed, or what the call returns on success or failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single four-word sentence with the irreversible nature front-loaded and zero filler. Nothing to trim and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a permanent destructive tool with no annotations and no output schema, the definition is too thin: it omits recovery options, permission/ownership requirements, and the fate of existing form responses. The fully documented schema offsets this only partially.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (formId and account are both documented in the schema), so the baseline of 3 applies. The description adds no extra meaning about either parameter, such as what a form ID looks like or how the account nickname interacts with multi-account setups.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ("delete a form"), which cleanly separates it from the question-level siblings such as google_forms_delete_question. However, it is close to a restatement of the title "Delete form," with "Permanently" being the only added information, so it stops short of the highest tier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus alternatives (e.g., no trash/restore path exists here, but nothing says deletion is irreversible-by-design), nor any prerequisites such as required permissions or ownership. The agent is left to infer everything about timing and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_forms_delete_questionDelete form questionC
Delete a question from a form by questionId.
| Name | Required | Description | Default |
|---|---|---|---|
| formId | Yes | Form ID. | |
| account | No | Account nickname to use. | |
| questionId | Yes | Question ID to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not mention that deletion is irreversible, what permissions are required, or how responses or form structure may be affected. This is a significant gap for a destructive mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It states the action, target, and identifier directly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no annotations and no output schema, the description should compensate with more context about consequences, permissions, or reversibility. It omits these entirely, leaving the agent with only the bare action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents formId, account, and questionId. The description only reiterates that questionId identifies the question to delete, adding no syntax, format, or constraint details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete') and resource ('question from a form'), and clarifies the identifier used ('by questionId'). It is clear enough to distinguish from sibling form operations like update_question or move_question, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus related form tools like update_question or move_question, nor any prerequisites or exclusions. The description only states the action, leaving usage context entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_forms_export_responsesExport form responses to SheetsA
Append form responses to Sheets with a __google_forms_response_id column for deduplication by response ID. Existing rows are migrated by answer matching; added questions go after the ID column, while reordered columns fail safely.
| Name | Required | Description | Default |
|---|---|---|---|
| formId | Yes | Form ID. | |
| account | No | Account nickname to use. | |
| sheetName | No | Tab name (default Sheet1). | |
| spreadsheetId | Yes | Destination spreadsheet ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does a solid job: it discloses deduplication semantics, row migration by answer matching, placement of newly added questions, and a failure mode (reordered columns fail safely). It omits permission/scope requirements and whether the destination sheet must already exist, which keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with zero filler, front-loaded with the core action and then the non-obvious migration semantics. Every clause carries information an agent would otherwise have to discover at runtime.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutation with no output schema, the description covers the hard parts (dedup, migration, failure mode) but leaves open whether the tab is created when absent and what an export returns (row counts, new vs. migrated). Those gaps are minor given the otherwise rich behavioral detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so formId, account, sheetName and spreadsheetId are already documented in the schema. The description's mention of the ID column and column ordering adds context about write behavior but nothing about parameter formats or the default tab behavior. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource pair ("Append form responses to Sheets") and adds a distinctive implementation detail (a __google_forms_response_id column). An agent can distinguish it from google_forms_responses (read) and google_sheets_append, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use statement or named alternative. Usage is only implied through behavior: the dedup column and row migration tell an agent that repeated exports are safe, but nothing says when to call google_forms_responses instead or what preconditions exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_forms_getGet formA
Get a Google Form's structure and questions.
| Name | Required | Description | Default |
|---|---|---|---|
| formId | Yes | Form ID (from the URL). | |
| account | No | Account nickname to use. |
TDQS
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 tool retrieves structure and questions, implying a non-mutating read operation. However, it does not explicitly confirm the read-only nature, mention auth requirements, or describe edge cases like non-existent forms. For a simple getter this is acceptable but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with zero filler. The verb and resource are front-loaded, making it immediately scannable. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple: 2 parameters, no output schema, and no annotations. The phrase 'structure and questions' gives a sufficient sense of the returned data and differentiates it from response-related siblings. Minor gaps, such as error handling or account behavior, are not critical for a read-only getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes both parameters (formId and account) with 100% coverage, so the schema already carries the semantic weight. The description adds no parameter-level detail, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb, 'Get', and a clear resource, 'a Google Form's structure and questions'. This distinguishes it from sibling tools like google_forms_responses, which retrieves responses, and google_forms_create, which creates forms. An agent can clearly tell what this tool retrieves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The implied usage is clear: use when you need a form's structure and questions. However, the description provides no explicit when-not-to-use guidance or alternatives, such as contrasting with google_forms_responses. The context is clear but leaves exclusions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_forms_move_questionMove form questionC
Reorder a question to a new position in the form.
| Name | Required | Description | Default |
|---|---|---|---|
| formId | Yes | Form ID. | |
| account | No | Account nickname to use. | |
| newIndex | Yes | Destination item index (0-based). | |
| questionId | Yes | Question ID to move. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full behavioral burden, yet it discloses nothing beyond the basic action. It does not say whether other questions shift index, whether the move is reversible, what happens on an out-of-range newIndex, or what permissions are needed for a form mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the action front-loaded and no filler. It is efficient, though it is perhaps too terse to carry additional needed context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Parameters are fully covered by the schema and there is no output schema to explain, so the only substantive gap is behavioral (index shifting, ordering side effects, error conditions). For a mutation tool with no annotations, the definition is minimally adequate but leaves that behavioral gap open.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so formId, questionId, and newIndex are already documented (including the 0-based note and minimum 0). The description adds no parameter-level meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (reorder) and resource (a question within a form), clearly distinct from siblings like google_forms_update_question, add_question, and delete_question. It stops short of explicitly naming any alternative, but the resource+action pairing is unambiguous on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus google_forms_update_question (which might also touch ordering) or how it relates to add/delete. The reordering intent is implied by the verb but no prerequisites or selection conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_forms_renameRename formC
Update a form's title.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | New form title. | |
| formId | Yes | Form ID. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It only states that a title is updated, without mentioning permissions, reversibility, side effects, or the optional account parameter's role. It is a mutation tool with almost no behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no wasted words. It is front-loaded and appropriately sized, though it is minimally informative rather than richly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple rename mutation with a fully documented schema, the description is minimally adequate. However, it omits usage context, the optional account parameter's effect, and any behavioral traits, and no output schema or annotations compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented in the schema. The description adds no parameter-level meaning beyond what the schema provides, making the baseline score appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: update a form's title. It distinguishes the form-title scope from sibling tools that update questions or delete forms, but it does not explicitly name or compare against those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as google_forms_update_question, google_forms_get, or google_forms_delete. No prerequisites, 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.
google_forms_responsesGet form responsesC
List responses submitted to a form.
| Name | Required | Description | Default |
|---|---|---|---|
| formId | Yes | Form ID. | |
| account | No | Account nickname to use. | |
| pageSize | No | Max responses (default 100). | |
| pageToken | No | Token from a previous page's nextPageToken. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'List responses' implies a read operation, but it does not disclose permissions, ordering, whether answers are included, or any rate-limit or pagination behavior beyond the schema parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It is appropriately sized for a simple list operation, even if more details would improve other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and a closely related sibling (google_forms_export_responses), the description is too thin. It does not explain return content, pagination behavior, or when export is the better alternative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the schema. The description adds no extra meaning about formId, account, pageSize, or pageToken, which is the expected baseline when the schema does the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: list responses submitted to a form. That is clear enough to distinguish it from mutation or form-editing siblings, but it does not explicitly differentiate it from google_forms_export_responses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives no guidance on when to use this tool rather than google_forms_export_responses, nor prerequisites such as permissions or form ownership. The only implied usage is that an agent should call it when it wants form responses.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_forms_update_questionUpdate form questionC
Update a question's title, description, options or required flag.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | New question text. | |
| formId | Yes | Form ID. | |
| account | No | Account nickname to use. | |
| options | No | New choices (choice questions only). | |
| required | No | Required flag. | |
| questionId | Yes | Question ID (from form structure). | |
| description | No | New help text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and largely fails it. It does not disclose whether this is a partial or full replacement update, what happens to omitted fields, permission/account requirements, or any return behavior. For a mutation tool with zero annotation coverage this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-front-loaded sentence that names the operation and the affected fields with no filler. It is efficient, though the extreme brevity leaves little room for the behavioral detail an un-annotated mutation tool needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A 7-parameter mutation tool with no annotations and no output schema demands more than one field list. The description never addresses the account parameter, partial-update semantics, or the choice-question restriction on options, leaving real gaps for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema, establishing the baseline of 3. The description restates the same fields without adding format, constraint, or precedence details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (update) and resource (a form question) and enumerates the mutable fields: title, description, options, required flag. This distinguishes it from sibling add/delete/move question tools at a glance. It stops short of explicitly naming those siblings, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and never mentions the alternatives (add_question, delete_question, move_question, rename). The agent can infer it edits an existing question, but nothing is stated about when this is the right tool versus the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_deleteDelete email permanentlyA
Permanently delete a message (irreversible).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message ID. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It does disclose the most critical behavioral trait—permanent, irreversible deletion—but omits other relevant context such as whether special permissions are required, effects on labels/attachments, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single seven-word sentence that front-loads the operative verb and the critical qualifier. Every word earns its place—there is zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with full schema coverage and no output schema, the core semantics are captured. The main gap is lacking a pointer to the trash/untrash siblings for reversible deletion scenarios, which would materially help an agent choose correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both 'id' (Message ID) and 'account' (Account nickname). The description adds no parameter-level meaning, but the baseline of 3 applies because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Permanently delete') and resource ('a message'), and crucially adds 'irreversible' which distinguishes it from the sibling google_gmail_trash. An agent can immediately tell this is permanent deletion versus a reversible trash operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like google_gmail_trash or google_gmail_untrash. The word 'irreversible' implies caution, but there is no explicit direction such as 'use trash for recoverable deletion'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_drafts_createCreate email draftC
Create a draft email (not sent).
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | CC recipient(s). | |
| to | Yes | Recipient email(s). | |
| bcc | No | BCC recipient(s). | |
| body | Yes | Message body. | |
| from | No | Send-as alias or address to set as the From header. | |
| account | No | Account nickname to use. | |
| replyTo | No | Address to set as the Reply-To header. | |
| subject | Yes | Subject line. | |
| bodyType | No | Body format (default text). | |
| attachments | No | Local files to attach to the draft. | |
| driveFileIds | No | Drive file IDs to attach by reference (downloaded under the Gmail size limit). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states only that the email is not sent; it does not cover authentication requirements, which account is used, whether the draft is saved persistently, or what happens to unspecified fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no redundant or wasted text. It communicates the core action and the key non-sending behavior directly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 11 parameters, no annotations, and no output schema. A single sentence is too sparse for this complexity; an agent would lack context about draft persistence, account selection, or how the created draft is identified for later use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 11 parameters are already documented in the input schema. The description adds no parameter-level meaning beyond what the schema provides, making the baseline score of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: creating an email draft, and clarifies it is not sent. This distinguishes it from send operations, though it does not name the sibling tools such as google_gmail_send or google_gmail_drafts_send.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. The parenthetical '(not sent)' is a behavioral note, not an explicit when-to-use or when-not-to-use rule, and no alternative tools are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_drafts_deleteDelete email draftC
Delete a draft email.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Draft ID. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Delete a draft email' and does not mention whether deletion is permanent, reversible, or scoped to an account. The agent is left without information about side effects, error conditions, or what happens to associated attachments or messages.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with no wasted words. However, it is essentially a restatement of the tool title and lacks the substance that would make the conciseness genuinely useful. It is not overly verbose, but it is also under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no annotations and no output schema, the description provides minimal context. It does not explain irreversibility, account handling, or which sibling tools are appropriate alternatives. An agent has only the parameter names to work with, which is insufficient for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters ('Draft ID' and 'Account nickname to use') with 100% coverage. The description adds no additional parameter meaning, but because the schema is complete, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Delete a draft email.' It is clear and unambiguous about the operation. However, it does not explicitly differentiate this from related Gmail draft tools beyond the action itself, so it stops short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, such as google_gmail_delete, google_gmail_trash, or other draft operations. No context, prerequisites, or exclusions are provided. The description only restates the action without helping an agent decide between sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_drafts_getGet email draftA
Fetch a single draft with parsed headers and body.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Draft ID. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. The verb 'Fetch' implies a read-only operation and 'parsed headers and body' hints at return content, but it doesn't disclose side effects, auth requirements, or error behavior. It adds some value beyond the bare title but remains thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Every word contributes meaning; the verb, object, and qualifier are all present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter read tool, the description covers the essential resource and return style. It could add a pointer to the sibling list tool or clarify 'single' against the list variant, but nothing critical is missing given the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: both id and account are described adequately. The description doesn't elaborate on parameter meaning or format beyond the schema, so the high-coverage baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Fetch), a specific resource (a single draft), and the scope (parsed headers and body). This clearly differentiates it from sibling tools like google_gmail_drafts_list (plural) and google_gmail_get (regular messages).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus siblings such as google_gmail_drafts_list or google_gmail_get. It only states what it does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_drafts_listList email draftsC
List draft emails.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| pageToken | No | Token from a previous page's nextPageToken. | |
| maxResults | No | Max drafts (default 25). |
TDQS
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 does not state that this is a read-only operation, what the default account behavior is when 'account' is omitted, how pagination behaves beyond the schema's nextPageToken hint, or what the returned items contain. For a no-annotation tool this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and free of waste, but it is under-specified rather than genuinely concise — there is room to add scoping or pagination context without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a fully described 3-parameter schema and no output schema, the definition is minimally sufficient to call the tool. It does not explain return shape (draft IDs, message snippets) or default account resolution, which an agent would need to interpret results or omit parameters safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (account, pageToken, maxResults with its default of 25 and 1-100 bounds) are already documented in the schema. The description adds nothing beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ("List draft emails"), and the word "drafts" distinguishes it from the message-oriented siblings like google_gmail_list and google_gmail_threads_list. However, it is essentially a restatement of the title "List email drafts" and adds no scope detail such as which account or whether all drafts are returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus google_gmail_list, google_gmail_threads_list, or google_gmail_drafts_get. The agent must infer the distinction 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.
google_gmail_drafts_sendSend email draftB
Send an existing draft email.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Draft ID. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'Send an existing draft email.' It does not disclose side effects (draft is sent/removed), auth requirements, or failure behavior. For a mutating action this is a significant disclosure gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. It is very concise, though possibly too spare to carry behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with full schema coverage, the description plus schema gives an agent enough to invoke it with the required id. However, zero annotations and no output schema leave behavioral expectations (e.g., success/error, draft consumption) undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so id and account are already documented. The description adds marginal semantic value by specifying the draft must already exist, but it does not explain how id relates to draft lifecycle or the account parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('Send') on a specific resource ('existing draft email'), which clearly separates it from google_gmail_send (new email) and draft management siblings. The word 'existing' signals it operates on drafts already created.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this over google_gmail_send or how drafts are created. No exclusions or alternative routing are provided; usage must be inferred from the name and title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_drafts_updateUpdate email draftA
Replace the contents of an existing draft (recipients, subject, body, attachments).
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | CC recipient(s). | |
| id | Yes | Draft ID to update. | |
| to | Yes | Recipient email(s). | |
| bcc | No | BCC recipient(s). | |
| body | Yes | Message body. | |
| from | No | Send-as alias or address to set as the From header. | |
| account | No | Account nickname to use. | |
| replyTo | No | Address to set as the Reply-To header. | |
| subject | Yes | Subject line. | |
| bodyType | No | Body format (default text). | |
| threadId | No | Thread ID when the draft continues a thread. | |
| attachments | No | Local files to attach to the draft. | |
| driveFileIds | No | Drive file IDs to attach by reference (downloaded under the Gmail size limit). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It usefully discloses that the operation replaces the draft contents rather than patching them, but it does not cover permissions, whether omitted fields are cleared, or the return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero waste, and the key replacement behavior is front-loaded. It is appropriately sized for the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter mutation tool with no annotations and no output schema, the description is minimal. It conveys the main operation but omits side-effect details, prerequisites, and return-value expectations that an agent might need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description lists recipients, subject, body, and attachments but adds no syntax, format, or default information beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Replace') and resource ('contents of an existing draft') and enumerates the main replaceable fields. It distinguishes itself from siblings like google_gmail_drafts_create and google_gmail_drafts_send by emphasizing existing draft replacement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'existing draft' implies the tool is for modifying, not creating or sending, but no explicit when-to-use or alternatives are named. The agent must infer that drafts_create and drafts_send are different operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_filters_createCreate Gmail filterC
Create a Gmail filter with criteria and action (e.g. auto-archive).
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action to apply when matched (e.g. markAsRead via removeLabelIds UNREAD). | |
| account | No | Account nickname to use. | |
| criteria | No | Match criteria. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it omits the most agent-relevant facts: filters only apply to future messages, what permissions/account are needed, and whether creation is idempotent. It conveys only that a persistent mutation occurs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the verb and resource front-loaded and zero filler. It is appropriately small, though the brevity contributes to the gaps elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with nested criteria/action objects, zero annotations, and no output schema, the description is too thin. It should at minimum say filters affect only new mail and what the action can target, which the agent cannot derive from structured fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents action, account, and criteria and their nested fields. The description only restates 'criteria and action' and offers one example (auto-archive), adding marginal value over the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create) and resource (Gmail filter) plus the two conceptual inputs (criteria, action). It does not distinguish itself from the sibling google_gmail_filters_list/delete or clarify that this only affects future mail, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites (e.g. needing label IDs to exist first), and no mention of the related filter list/delete siblings. Usage must be inferred entirely from the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_filters_deleteDelete Gmail filterC
Delete a Gmail filter by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Filter ID. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden for a destructive mutation. It says 'delete' but discloses nothing about permanence/irreversibility, required scopes or auth, side effects, or whether the operation can be undone. For a delete tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the verb and scope front-loaded and zero filler. Nothing is wasted, and the key constraint ('by ID') appears immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no annotations and no output schema, the description should cover irreversibility, permissions, and error behavior (e.g., invalid ID). It provides none of these, leaving the agent under-informed for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (id and account both documented in the schema), so the baseline is 3. The description's 'by ID' only restates the schema's 'Filter ID' and adds no format, sourcing, or account-selection meaning beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Delete) and resource (Gmail filter) with the key identifier ('by ID'), which cleanly distinguishes it from sibling tools like google_gmail_filters_list and google_gmail_filters_create. It does not, however, explicitly differentiate itself from other delete tools (e.g., google_gmail_delete, google_gmail_labels_delete), so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use context, no prerequisites, and no mention of alternatives. 'By ID' faintly implies the ID comes from a list operation, but nothing routes the agent between this tool and its siblings. This is bare guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_filters_listList Gmail filtersB
List Gmail filters (auto-archive/apply rules).
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only listing operation but says nothing about authentication, pagination, return format, or what the filter list contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with zero waste, and the core operation is front-loaded immediately. It is appropriately sized for a simple list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is low complexity with one optional parameter, but with no annotations and no output schema, the description is minimal. It clarifies the resource type but does not describe return contents or any operational constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is only one optional parameter, so the schema already fully documents it. The description adds no parameter details, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('Gmail filters') and clarifies what filters are with the parenthetical '(auto-archive/apply rules)'. It does not explicitly differentiate from sibling filter tools like create or delete, but the name and description make the read operation clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no conditions, and no named alternatives. The listing intent is implied by the verb, but the description leaves any routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_getRead an emailA
Fetch a single message with parsed headers, body and attachment flags.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message ID. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It does disclose that this is a read operation ('Fetch') and usefully clarifies that only attachment flags are returned, not the attachments themselves. However, it doesn't mention body content format (HTML vs plain text), truncation behavior, or error cases for invalid/absent IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 12-word sentence with zero waste. The verb and resource are front-loaded, and the result detail is packed efficiently. Every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool, this is nearly complete. With no output schema present, the description helpfully enumerates return components (parsed headers, body, attachment flags), serving the role of return-value documentation. Minor gaps remain around error behavior and body format, but nothing an agent would struggle with for a basic fetch.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — both 'id' and 'account' are already documented in the schema. The description adds no parameter-level detail beyond the implication that 'id' selects which single message to fetch. This matches the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Fetch'), a resource ('a single message'), and the expected result ('parsed headers, body and attachment flags'). This distinguishes it from google_gmail_list (multiple messages), google_gmail_get_attachment (attachment content, not the message), and google_gmail_drafts_get (drafts, not messages).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: use this when you need to read one email message. However, no explicit routing guidance is given — there's no mention of using google_gmail_get_attachment for actual attachment content or google_gmail_list for browsing messages. Given over 70 siblings, explicit when/when-not guidance would materially help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_get_attachmentGet email attachmentA
Download a single attachment by message ID and attachment ID. Text-like files are returned decoded as text; binary files as base64. Attachments that would produce an inline result over 6 MB are rejected — pass saveToPath to write the raw bytes to a local file instead. The limit is measured on the JSON-RPC frame, not the raw bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message ID. | |
| partId | No | Stable part ID (from list_attachments); preferred over attachmentId for lookup. | |
| account | No | Account nickname to use. | |
| maxBytes | No | Inline size limit in bytes (default 6 MB), measured on the JSON-RPC frame the client receives. Escaping can inflate a payload (base64 ~1.33x, NUL-heavy text ~7x). Ignored when saving to disk. | |
| saveToPath | No | Local path to write the raw bytes to (returns savedTo and kind "saved" instead of an inline payload). Must be inside the save root: GOOGLE_MCP_SAVE_ROOT, default ~/Downloads. | |
| attachmentId | Yes | Attachment ID (from list_attachments). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does well: it discloses that oversized attachments are rejected, how the limit is measured (JSON-RPC frame, not raw bytes), and the escape hatch. It leaves the read-only nature and any permission/account requirements implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, each earning its place: identification, return encoding, then the failure mode and its workaround. The size constraint arrives before the caveat about how it is measured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description covers the inline return encoding (text vs base64) and the saved-path alternate mode, which is what an agent most needs. It stops short of describing the actual response envelope for the inline case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents id, partId, maxBytes, saveToPath, and account in detail. The description reinforces the saveToPath/maxBytes trade-off but adds no syntax or format information beyond what the schema states, making 3 the correct baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Download a single attachment by message ID and attachment ID' — and immediately clarifies the decoding behavior for text vs binary. This cleanly separates it from its sibling google_gmail_list_attachments, which enumerates rather than fetches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a genuine routing rule: attachments that would exceed 6 MB inline must instead be written via saveToPath. It does not, however, point the agent at google_gmail_list_attachments as the source of the required IDs, nor mention the partId preference noted in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_labels_createCreate email labelC
Create a custom Gmail label.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Label name. | |
| account | No | Account nickname to use. | |
| labelListVisibility | No | e.g. labelShow or labelHide. | |
| messageListVisibility | No | e.g. show or hide. |
TDQS
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 only states the action 'create' without mentioning potential side effects, idempotency (what happens if the label already exists), permission requirements, or the nature of the response. This is a significant gap for a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately conveys the core action. There is no redundancy or fluff, and it front-loads the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is underspecified. It does not disclose return values, error handling, or edge cases (e.g., duplicate labels), nor any account context (the 'account' parameter is not mentioned in the description). An agent would lack necessary behavioral context to call this tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all parameters with descriptions (100% coverage), so the schema already documents each parameter's purpose. The tool description adds no additional meaning beyond stating that a custom label is created. This meets the baseline for schema-covered parameters, but does not enrich understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'custom Gmail label,' which distinguishes it from sibling tools like google_gmail_labels_list and google_gmail_labels_delete. It is specific enough for an agent to understand the tool's primary function, though it does not elaborate on what 'custom' implies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites (e.g., requiring a Gmail account) or constraints (e.g., label name uniqueness). An agent must infer usage solely from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_labels_deleteDelete email labelC
Delete a Gmail label.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Label ID. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It states only the action ('Delete'), but does not disclose that deletion is permanent, that system labels may not be deletable, or that messages are not deleted. This leaves important side effects undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler or redundant words; it is efficiently structured. It sacrifices some helpful details, but as a concise statement it is well-formed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a destructive Gmail operation with no annotations or output schema, yet the description omits critical context like irreversible deletion, the fact that only custom labels can be deleted, and the relationship between labels and messages. An agent has enough to identify the tool but not enough to anticipate failures or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (id as 'Label ID', account as 'Account nickname'), so the schema already documents the parameters. The description adds no additional meaning, such as how to find the label ID or whether account is needed for multi-account setups, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Delete') and a concrete resource ('Gmail label'), making the tool's function immediately understandable. It is clear enough to be distinguished from sibling delete tools by resource type, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to choose this tool over alternatives such as google_gmail_delete or google_gmail_trash, and no mention of prerequisites or situations to avoid. The only usage signal is implied by the verb and resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_labels_listList email labelsB
List all Gmail labels.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavioral traits. 'List' implies a read-only operation, but the description does not explicitly state that there are no side effects, whether authentication or an existing account is required, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no wasted words. It is appropriately sized for such a simple tool, though it adds no clarifying structure beyond the title's message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only tool, the description is minimally sufficient: an agent can understand the basic operation. However, it omits account behavior details, return format, and any usage context, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents the single 'account' parameter with 100% coverage, so the description does not need to add parameter details. It also does not mislead, maintaining the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('List') and the resource ('all Gmail labels'), making the tool's purpose unambiguous and distinct from sibling tools like google_gmail_list (emails) and google_gmail_labels_create/delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, nor are any exclusions or prerequisites mentioned. The description only restates the operation without providing decision context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_labels_updateUpdate email labelC
Update a Gmail label's name or visibility (partial).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Label ID. | |
| name | No | New label name. | |
| account | No | Account nickname to use. | |
| labelListVisibility | No | e.g. labelShow or labelHide. | |
| messageListVisibility | No | e.g. show or hide. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. '(partial)' implies only supplied fields are changed, which is useful, but it omits permission/auth requirements, reversibility, and what happens to unspecified fields like messageListVisibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though the parenthetical '(partial)' is somewhat cryptic and would benefit from one clarifying clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter mutation tool with no annotations and no output schema, the description is too thin. It leaves behavioral, prerequisite, and return-value expectations entirely unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (including account) are documented in the schema. The description adds no syntax or format detail beyond what the schema already provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Update) and resource (Gmail label) with the mutable fields (name or visibility). It is distinguishable from labels_create, labels_delete, and labels_list, though it does not explicitly name those siblings as alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or reference to alternatives. It does not say the label must already exist or when a partial update is preferable to a delete/recreate. The cryptic '(partial)' is the only hint at scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_listList emailsB
List messages from the inbox, newest first, with an optional Gmail search query.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Gmail search query (e.g. from:bob, newer_than:2d). | |
| account | No | Account nickname to use. | |
| pageToken | No | Page token from a previous result's nextPageToken. | |
| maxResults | No | Max messages (default 25). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses ordering ('newest first') and inbox scoping, but says nothing about what the result set contains (IDs/snippets vs full bodies), whether pagination is needed (the schema hints at it via pageToken), or whether spam/trash/other labels are included — an agent can't tell whether a follow-up google_gmail_get call is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the resource and ordering front-loaded and zero filler. Nothing in it is redundant or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters, no annotations, and no output schema, the description should say what a returned message looks like and whether it's a summary or full payload. It covers scope and ordering adequately but leaves the return shape and follow-up path (get vs list) unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents query, account, pageToken, and maxResults with examples and a default. The description adds no parameter detail beyond restating that the query is optional; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb plus resource ('List messages from the inbox') with scope qualifiers (newest first, optional search query). It distinguishes itself from google_gmail_send/get/drafts by its inbox-listing nature, but never names a sibling such as google_gmail_threads_list or google_gmail_list_attachments, which a reader must infer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sentence implies a list operation with an optional query, but gives no explicit when-to-use or when-not guidance. Nothing tells the agent when to pick this over google_gmail_threads_list, google_gmail_drafts_list, or google_gmail_get for retrieving mail content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_list_attachmentsList email attachmentsA
List attachments on a message (metadata only, no bytes).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message ID. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool returns metadata only and does not expose bytes, which is a meaningful behavioral boundary. It does not describe return structure or error behavior, but for a simple listing operation this is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that communicates the core function and a key boundary in under ten words. Every part is informative and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list-metadata operation, the description plus schema is sufficient. It tells the agent what the tool does, what it does not do (no bytes), and the schema documents the parameters. Minor omissions like output format are acceptable here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'id' and 'account' are already documented in the schema. The description adds no additional parameter-level meaning, meeting the baseline for a fully covered schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'List attachments on a message', and immediately clarifies the scope with 'metadata only, no bytes'. This clearly differentiates the tool from google_gmail_get_attachment, which retrieves actual attachment bytes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'metadata only, no bytes' effectively tells the agent when to use this tool: when only attachment metadata is needed, not content. It implies the alternative but does not explicitly name google_gmail_get_attachment or state concrete conditions, leaving slight room for inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_modifyModify email labelsC
Add or remove labels on a message (e.g. mark read/unread, star, archive).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message ID. | |
| account | No | Account nickname to use. | |
| addLabels | No | Labels to add (e.g. STARRED, INBOX, TRASH). | |
| removeLabels | No | Labels to remove (e.g. UNREAD). |
TDQS
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 that labels can be added or removed, but offers no information about required permissions, side effects (e.g., whether removing UNREAD marks the message as read), idempotency, or failure behavior. This is a significant gap 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. It is appropriately short for the tool's simplicity, though it sacrifices some helpful detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, this description leaves important gaps. It does not specify when to use it over sibling tools, what happens after the operation, or any prerequisites. Given the simplicity of the tool and complete schema, it is minimally adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage, describing all four parameters with clear types. The description adds some semantic value by giving examples of label values (STARRED, UNREAD, etc.), which helps an agent infer valid inputs, but it does not explain the relationship between addLabels/removeLabels and these examples beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('add or remove labels') and the resource ('a message'), with concrete examples that make its scope understandable. It does not explicitly differentiate from sibling tools like google_gmail_trash or google_gmail_untrash, but the label-oriented framing is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. For example, it does not mention that google_gmail_trash and google_gmail_untrash should be used for trash-specific operations, or that google_gmail_labels_* tools manage labels themselves rather than applying them to messages.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_replyReply to an emailA
Reply to an existing message inside its thread, preserving threading headers.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Reply body. | |
| from | No | Send-as alias or address to set as the From header. | |
| account | No | Account nickname to use. | |
| replyTo | No | Address to set as the Reply-To header. | |
| bodyType | No | Body format (default text). | |
| threadId | Yes | Thread ID of the conversation. | |
| messageId | Yes | ID of the message being replied to. | |
| attachments | No | Local files to attach to the reply. | |
| driveFileIds | No | Drive file IDs to attach by reference (downloaded under the Gmail size limit). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral burden. It contributes the key detail that threading headers are preserved, which is important behavior for a reply. However, it omits critical behavioral aspects such as whether sending is restricted to the account that owns the thread, whether any fields are mutable, or what happens if the messageId is not in the thread. This is a moderate gap for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, efficient sentence that front-loads the action and resource and includes a crucial scope constraint. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a mutation tool with no annotations and no output schema, the description is too sparse. It does not cover permissions, side effects, error conditions, or the fact that a new message is created in the thread. An agent would need to infer too much, making the definition incomplete for safe correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents all parameters. The description adds little parameter-level meaning beyond what the schema provides; it mentions 'threading headers' but not parameter specifics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Reply to an existing message inside its thread') and clearly distinguishes this tool from the send sibling by emphasizing threading and preservation of threading headers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: to reply within a thread you need threadId and messageId, which differentiates it from google_gmail_send. However, the description does not explicitly say when to use this instead of google_gmail_send or other alternatives, nor does it mention prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_sendSend emailC
Send an email from the connected account.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | CC recipient(s). | |
| to | Yes | Recipient email(s). | |
| bcc | No | BCC recipient(s). | |
| body | Yes | Message body. | |
| from | No | Send-as alias or address to set as the From header. | |
| account | No | Account nickname to use. | |
| replyTo | No | Address to set as the Reply-To header. | |
| subject | Yes | Subject line. | |
| bodyType | No | Body format (default text). | |
| attachments | No | Local files to attach to the email. | |
| driveFileIds | No | Drive file IDs to attach by reference (downloaded under the Gmail size limit). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it says almost nothing: it does not disclose that sending is immediate and irreversible, that it requires send scope/auth, that it consumes Gmail quota, or whether the message is stored in Sent. 'Send' implies mutation but the description never confirms the side-effect profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, but it is under-specified rather than concise given an 11-parameter mutation tool. The brevity leaves real gaps that a slightly longer description could close.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an irreversible outbound-message tool with 11 parameters, no annotations and no output schema, the description omits the essentials: irreversibility, auth/scope needs, and behavior when attachments exceed Gmail size limits. An agent could invoke it but would lack confidence about consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter (to, cc, bcc, body, bodyType, attachments, driveFileIds, from, replyTo, account) is documented in the schema itself. The description adds nothing beyond that, so the baseline 3 applies; the phrase 'connected account' is even mildly ambiguous against the explicit `account` nickname parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Send an email' precisely names the action, and 'from the connected account' scopes the sender. However, it does nothing to distinguish this from close siblings like google_gmail_reply or google_gmail_drafts_send, which an agent must choose between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus google_gmail_reply (for replies to existing threads) or google_gmail_drafts_send (for pre-composed drafts). No prerequisites, no exclusions, no context about immediate vs deferred sending.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_sendas_createCreate send-as aliasC
Create a Gmail send-as alias (subject to domain/verification rules).
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| isDefault | No | ||
| displayName | No | ||
| sendAsEmail | Yes | Email address for the alias. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. The parenthetical about domain/verification rules is a genuine constraint, but the description says nothing about required scopes/permissions, whether the alias needs separate verification, or what a failed creation means. For a mutation tool with zero annotation coverage, this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words, and the qualifier is placed where it belongs. It is efficient, though arguably too terse to be useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutation tool with 50% schema coverage, no annotations, and no output schema, the description leaves the agent guessing about half the inputs and the entire behavioral profile. The one parenthetical does not close the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'account' and 'sendAsEmail' are documented in the schema, while 'isDefault' and 'displayName' are undocumented in both schema and description. The description adds no parameter meaning (e.g., that sendAsEmail must be a verified address, or what isDefault implies), so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Create a Gmail send-as alias'), which an agent can distinguish from the read-only sibling google_gmail_sendas_list. It does not explicitly name or differentiate itself from siblings, but the verb+resource pairing is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus google_gmail_sendas_list or other Gmail tools. The parenthetical '(subject to domain/verification rules)' hints at a precondition but never states it as a usage condition (e.g., what must be true before creating an alias).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_sendas_listList send-as aliasesB
List Gmail send-as aliases.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose whether this is a read-only operation, authentication requirements, rate limits, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 a simple parameter, the description should at least state that it's a read operation or what the return value contains. It omits essential behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes the single parameter 'account' with 100% coverage, so the baseline is 4. The description adds no parameter information, but the schema fully documents it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'List Gmail send-as aliases.' It is distinct from siblings like google_gmail_sendas_create and other list operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as google_gmail_sendas_create or other Gmail list tools. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_threads_getRead an email threadB
Fetch a full conversation thread with every message parsed (headers, body, attachments).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Thread ID. | |
| format | No | Payload format (default full). | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses what a call returns (all messages, headers, body, attachments parsed), which is real behavioral context, but says nothing about read-only nature, auth/scope requirements, quota cost, or how large threads or attachment payloads are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb 'Fetch', no redundancy, and the parenthetical efficiently enumerates the parsed payload contents. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a three-parameter read tool with a fully covered schema and no output schema — the sentence explains roughly what comes back. It nonetheless omits thread-vs-message ID provenance and any efficiency caveat for large threads, leaving the agent to discover behavior empirically.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds only marginal parameter meaning: 'full conversation thread' loosely mirrors the format enum default of 'full' but does not explain metadata/minimal tradeoffs or the account nickname parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Fetch a full conversation thread') and goes further by saying every message is parsed with headers, body and attachments. It clearly implies thread-level retrieval rather than message-level, but it never names the siblings it differs from (google_gmail_get, google_gmail_threads_list), so differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance at all. An agent is not told when to pick this over google_gmail_get (single message) or google_gmail_threads_list (list threads), nor whether an ID must come from the list call. Context is implied by the name only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_threads_listList email threadsB
List conversation threads, newest first, with an optional Gmail search query.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Gmail search query (e.g. from:bob, newer_than:2d). | |
| account | No | Account nickname to use. | |
| pageToken | No | Page token from a previous result's nextPageToken. | |
| maxResults | No | Max threads (default 25). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It does disclose two useful behaviors the schema does not: results are ordered newest-first and the query filter is optional, which implies an unfiltered full-listing mode. It omits pagination mechanics beyond the pageToken field and whether results are thread summaries, IDs, or full messages.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 12-word sentence with no filler, front-loading the resource and its ordering. It is efficient but so terse that useful routing information was cut.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple read-only list call with fully documented params, but with no output schema the description should say what a returned item looks like (thread ID, snippet, message count) and how it differs from google_gmail_list. Those gaps matter for an agent choosing among ~10 Gmail listing siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (query, account, pageToken, maxResults) are already documented with defaults and limits. The description only echoes that query is optional; baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("List conversation threads") plus ordering ("newest first"), which is clear on its own. It never contrasts itself with the closely-related siblings google_gmail_list (messages) or google_gmail_threads_get (single thread), so the message-vs-thread distinction is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"with an optional Gmail search query" hints at filtering but gives no guidance on when to pick this over google_gmail_list or google_gmail_threads_get, and no preconditions (account selection, auth). Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_trashTrash emailB
Move a message to trash.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message ID. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry behavioral disclosure. It communicates the action but does not mention side effects, whether the operation is reversible via untrash, permissions required, or response behavior. 'Trash' implies recoverability, but this is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the schema covers both parameters, but with no output schema and no annotations, a bit more context on expected result or side effects would make it more self-contained. Overall it is minimally adequate for a straightforward action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters id and account are already documented. The description adds no additional parameter meaning beyond the schema, which is acceptable at the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Move a message to trash') with a clear resource and destination. It is distinguishable from siblings like google_gmail_delete and google_gmail_untrash, though it does not explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is provided. With siblings like google_gmail_delete, google_gmail_untrash, and google_gmail_modify, an agent receives no help choosing between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_untrashRestore email from trashA
Restore a message from trash.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message ID. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only restates the operation without explaining what happens to labels, whether the action is reversible, or what authentication/account considerations apply. It does at least indicate a state-changing action, so it is not completely opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no filler or redundant words. The key information is front-loaded and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description is mostly sufficient. However, with no annotations, it lacks important contextual guidance such as edge-case behavior for already-untrashed messages, account requirements, or what the agent should expect after the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes both parameters ('id' as Message ID and 'account' as Account nickname), giving baseline 3. The description adds no additional parameter-level meaning beyond the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Restore'), a precise object ('a message'), and the source ('from trash'). This is unambiguous and clearly distinguishes the tool from its inverse sibling google_gmail_trash and from permanent deletion operations like google_gmail_delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the message must currently be in the trash, but it does not explicitly say when to prefer this over alternatives such as google_gmail_trash or google_gmail_delete. Usage context is clear but no exclusions or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_vacation_getGet vacation responderC
Get the Gmail vacation (out-of-office) responder settings.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not say what happens when no vacation responder is configured, whether any scope/permission is required, or what the response contains. For a settings-retrieval tool with zero annotation coverage this is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with no filler, front-loading the verb and resource. It is appropriately sized, though it is so short that it omits any routing or return-value information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description is the only place an agent could learn what the call returns, yet it never describes the settings fields (message, enable/disable state, date range). Adequate for selecting the tool, incomplete for interpreting the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single 'account' parameter documented in the schema, so the baseline of 3 applies. The description adds nothing about the account parameter or multi-account behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Get') and resource ('Gmail vacation (out-of-office) responder settings'), and the parenthetical clarifies the ambiguous term 'vacation responder'. It does not explicitly name the read/write counterpart google_gmail_vacation_update, but the intent is unambiguous from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus google_gmail_vacation_update or any other sibling. The read-only nature is implied by 'Get' but no context, prerequisites, or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_vacation_updateUpdate vacation responderC
Update the Gmail vacation (out-of-office) responder settings.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| endTime | No | End time as ms epoch string. | |
| startTime | No | Start time as ms epoch string. | |
| enableAutoReply | No | Turn the auto-reply on/off. | |
| responseSubject | No | Subject of the auto-reply. | |
| responseBodyHtml | No | HTML body of the auto-reply. | |
| responseBodyPlainText | No | Plain-text body of the auto-reply. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full behavioral burden for a mutation tool, and it discloses almost nothing. It does not say whether this is a partial patch or a full replace, what happens to fields omitted from the request, whether it requires account authorization, or how to disable the responder.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste. It is efficient, though the terseness is arguably under-specification rather than exemplary conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a seven-parameter mutation tool with no annotations and no output schema, the description leaves key questions unanswered: partial vs full update semantics, required authorization, and the effect of enableAutoReply=false. It is not sufficient on its own.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (account, startTime, endTime, enableAutoReply, responseSubject, responseBodyHtml, responseBodyPlainText) is already documented in the schema. The description adds no syntax, format, or constraint detail beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Update the Gmail vacation (out-of-office) responder settings.' An agent can distinguish it from google_gmail_vacation_get by the update/get verb pair, though the description never explicitly contrasts them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus google_gmail_vacation_get (to inspect current settings) or google_gmail_send. No prerequisites, no note about needing the vacation responder feature enabled, and no mention that all seven parameters are optional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_sheets_add_sheetAdd spreadsheet tabC
Add a new tab (sheet) to a spreadsheet.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | 0-based position to insert at (appended at end if omitted). | |
| title | Yes | Title of the new tab. | |
| account | No | Account nickname to use. | |
| spreadsheetId | Yes | Spreadsheet ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing beyond the mutation itself. It does not state whether the tab is appended or inserted, what permissions are required, whether the operation is reversible, or how the new tab is identified on return.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. It is appropriately sized, though it is arguably too terse given the lack of behavioral detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (4 params, no nested objects, no output schema) and the schema fully documents inputs, so the description is minimally sufficient. However, with zero annotations, it should do more to explain the mutation's effects and requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all four parameters, including the index positioning semantics and account nickname, are documented in the schema). The description adds no parameter meaning beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ("Add") and resource ("a new tab (sheet)") with the target container ("to a spreadsheet"), so the agent knows exactly what operation is performed. It does not, however, distinguish itself from siblings such as google_sheets_create (new spreadsheet) or google_sheets_rename_sheet/delete_sheet, so the differentiation is left to the tool name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives like google_sheets_create or google_sheets_batch_update. Usage is only implied by the verb, which is the bare minimum.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_sheets_appendAppend to spreadsheetB
Append rows below the existing data in a sheet.
| Name | Required | Description | Default |
|---|---|---|---|
| range | Yes | A1 range of the table to append to, e.g. Sheet1!A1. | |
| values | Yes | Rows of values to append. | |
| account | No | Account nickname to use. | |
| spreadsheetId | Yes | Spreadsheet ID. | |
| valueInputOption | No | How to interpret values (default USER_ENTERED). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states that rows are appended below existing data, which implies a non-destructive addition, but it does not disclose response behavior, whether existing data is preserved explicitly, how valueInputOption affects results, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the core action and target resource. It contains no filler or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple append operation, the description conveys the essential behavior, and the schema covers parameter details. However, with no annotations and no output schema, the description leaves out return-value expectations and selection guidance relative to the many sheet-related siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all five parameters with 100% description coverage, including the A1 range format, the values array of rows, and the valueInputOption enum. The description adds no additional parameter meaning, which is acceptable given the schema completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Append rows below the existing data in a sheet.' It clearly communicates the operation and its positional behavior. It distinguishes itself from siblings like google_sheets_write by emphasizing appending below existing data, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'below the existing data' implies the tool is appropriate when adding rows without overwriting current content. However, there is no explicit guidance about when to choose this over google_sheets_write or google_sheets_batch_update, and no exclusions or conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_sheets_batch_updateBatch update spreadsheetB
Send raw Sheets batchUpdate requests (add/delete sheets, formatting, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| requests | Yes | Sheets API batchUpdate requests. | |
| spreadsheetId | Yes | Spreadsheet ID. |
TDQS
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 discloses that it sends raw requests and can mutate the spreadsheet (add/delete sheets, formatting), but it does not mention that this is a low-level passthrough that requires the caller to know the Sheets API format, that it can be destructive, or that it may fail if requests are invalid. The description is too thin to convey the risk and complexity of a raw batchUpdate endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loads the key verb and resource. It includes useful examples in parentheses. It earns its place, though it 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a raw passthrough tool with no annotations and no output schema, the description is incomplete. It doesn't explain that the tool is a low-level API passthrough, what the response looks like, or that the caller must construct valid Sheets API requests. An agent would need to know the Sheets API batchUpdate format to use this correctly, and the description doesn't warn about that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds context that 'requests' are raw Sheets API batchUpdate requests, which is helpful, but it doesn't explain the structure of the request objects or the account parameter's role. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Send raw Sheets batchUpdate requests') and resource ('spreadsheet'), and gives examples of what it can do ('add/delete sheets, formatting, etc.'). It is clear enough to distinguish from google_sheets_read/write/append, though it doesn't explicitly name a sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use this when you need raw Sheets API batchUpdate operations rather than simple read/write/append. However, it does not explicitly state when to use it versus alternatives like google_sheets_write or google_sheets_batch_update (which doesn't exist in siblings, but google_slides_batch_update does). No exclusions or conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_sheets_createCreate spreadsheetB
Create a new spreadsheet, optionally with pre-made sheet tabs.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Spreadsheet title. | |
| sheets | No | Sheet tab names to create. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only restates the action and optional tabs, without mentioning side effects like persisting a file in Drive, authentication requirements, or what the create operation returns. This is a meaningful gap 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with the core verb and noun front-loaded and no filler words. It communicates the essential action and the one optional behavior efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description should clarify return values or side effects. It only states the action, leaving the agent unaware of what the tool returns (e.g., a spreadsheet ID/URL) or how the account parameter affects execution. A simple phrase about return value would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds minimal value by noting that sheet tabs are optional ('pre-made sheet tabs'), which echoes the schema's non-required status. No further parameter semantics are needed beyond this baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Create' with the resource 'spreadsheet' and an optional modifier about pre-made sheet tabs. It clearly distinguishes itself from sibling read/write/append tools and other Google resource creates by naming the exact resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Create a new spreadsheet' implies the tool is for creating rather than editing an existing spreadsheet, giving some usage context. However, it does not explicitly mention alternatives or when-not-to-use conditions, so the guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_sheets_delete_rowsDelete rowsB
Delete rows from a sheet starting at a 0-based row index.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| numRows | No | Number of rows (default 1). | |
| sheetId | Yes | Numeric sheet ID (from google_sheets_get metadata). | |
| startIndex | Yes | 0-based row index of the first row to delete. | |
| spreadsheetId | Yes | Spreadsheet ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It identifies deletion but does not disclose that it is destructive/irreversible, required permissions, or what happens to existing data and formulas.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no filler. The key operation and indexing semantics are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with five parameters and no annotations or output schema, the description is too thin. It should at least clarify destructive behavior, default row count, and any permission or irreversibility considerations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description restates the 0-based startIndex semantics already documented in the schema and does not add meaning for spreadsheetId, sheetId, numRows, or account.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: "Delete rows from a sheet." It also states the deletion is scoped by a 0-based row index, which clearly distinguishes it from deleting a whole sheet or inserting rows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It does not explain when to use this tool versus alternatives such as google_sheets_insert_rows or google_sheets_delete_sheet. The index semantics imply row deletion, but no explicit usage conditions or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_sheets_delete_sheetDelete spreadsheet tabA
Permanently delete a tab (sheet) from a spreadsheet.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| sheetId | Yes | Numeric sheet ID (from google_sheets_get metadata). | |
| spreadsheetId | Yes | Spreadsheet ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It correctly discloses destructive, irreversible behavior with 'Permanently delete,' which is critical for a mutation tool. However, it omits permission requirements, side effects on existing data, and any recoverability limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler or redundancy. It is appropriately sized for the core purpose, though its brevity contributes to gaps in usage and safety context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter destructive tool with full schema coverage and no output schema, the description conveys the core action and permanence. It still lacks usage boundaries and safety context, but the schema covers invocation details and no return-value explanation is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema itself documents spreadsheetId, sheetId (including that it comes from google_sheets_get metadata), and account. The description adds no additional parameter-level meaning, so the baseline of 3 for high schema coverage applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('delete') and resource ('tab (sheet) from a spreadsheet'), and 'permanently' clarifies the operation's irreversible nature. It also implicitly distinguishes this tab-level deletion from siblings like add_sheet, rename_sheet, and delete_rows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as google_sheets_add_sheet, google_sheets_rename_sheet, or google_sheets_delete_rows. Prerequisites such as obtaining the numeric sheetId from get metadata are only in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_sheets_getGet spreadsheetB
Get spreadsheet metadata and optionally cell values from a range.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | A1 range to also read values from, e.g. Sheet1!A1:B5. | |
| account | No | Account nickname to use. | |
| spreadsheetId | Yes | Spreadsheet ID (from the URL). |
TDQS
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 discloses that the tool can optionally read cell values, but it does not describe the return format, whether the operation is read-only, any authentication requirements, or what happens if the range is invalid. For a read operation, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the primary purpose and adds the optional behavior. No wasted words, though it 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is thin. It does not explain what 'metadata' includes, how the optional range affects the response, or any edge cases. For a tool with three parameters and no structured output documentation, this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds the context that 'range' is for reading cell values, which aligns with the schema. It does not add deeper semantics beyond that, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('spreadsheet metadata') and adds an optional behavior ('cell values from a range'). It is clear about what the tool does, though it does not explicitly differentiate from the sibling google_sheets_read, which likely also reads spreadsheet data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use this tool to get metadata and optionally values from a range. However, it does not explicitly state when to prefer this over google_sheets_read or other sibling tools, nor does it mention any exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_sheets_get_named_rangesGet named rangesB
List named ranges on a spreadsheet.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| spreadsheetId | Yes | Spreadsheet ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'List' conveys a read-only operation, but nothing is said about permissions, the optional 'account' selection behavior, or what the response contains, leaving the behavioral profile largely undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with the resource front-loaded and zero filler. Appropriately sized for a simple listing tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no output schema, the description identifies the operation but says nothing about the returned structure of named ranges or how the account parameter affects results. Adequate but with clear gaps the agent must infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (account, spreadsheetId) are already documented in the schema. The description adds no additional syntax or format meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('named ranges on a spreadsheet'), so the agent knows it reads named-range definitions. It implicitly contrasts with the sibling google_sheets_set_named_range (read vs. write), but never names the sibling or scope beyond the single spreadsheet, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no exclusions, and no mention of the alternative google_sheets_set_named_range for creating ranges. The read intent is only implied by the verb 'List'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_sheets_insert_rowsInsert rowsC
Insert blank rows into a sheet at a 0-based row index.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| numRows | No | Number of rows (default 1). | |
| sheetId | Yes | Numeric sheet ID (from google_sheets_get metadata). | |
| startIndex | Yes | 0-based row index where rows are inserted. | |
| spreadsheetId | Yes | Spreadsheet ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state that existing rows shift down, whether surrounding formulas/references are adjusted, whether any formatting is applied to the new blank rows, or what permissions are required. Only the bare mutation is conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the index semantic is included because it is operationally important. It is arguably too terse for a mutation tool, but nothing in it is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Parameters are fully covered by the schema, so the only real gap is behavioral: row-shifting effects and side effects of the insert are undocumented for a write operation with zero annotations and no output schema. Minimum viable for a simple insert, but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description only restates the '0-based row index' detail already documented on startIndex. It adds no meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Insert blank rows into a sheet') and a location semantic, which cleanly separates it from google_sheets_delete_rows and google_sheets_append. It does not name any sibling explicitly, so differentiation is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus google_sheets_append (add at end) or google_sheets_write (overwrite existing cells), which are the two obvious confusable siblings. The agent must infer the choice 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.
google_sheets_readRead spreadsheet rangeC
Read cell values from a range as rows of strings.
| Name | Required | Description | Default |
|---|---|---|---|
| range | Yes | A1 notation, e.g. Sheet1!A1:C10. | |
| account | No | Account nickname to use. | |
| spreadsheetId | Yes | Spreadsheet ID. | |
| majorDimension | No | Read direction (default ROWS). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says what the tool does, not any behavioral traits such as read-only semantics, how empty cells are represented, whether formulas or values are returned, or any auth/permission requirements. This is a minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the verb and resource. It is appropriately concise with no filler. It could have added a bit more behavioral context, but as a concise statement it is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool, the description covers the basic purpose and output format, and the schema handles parameters. However, with no output schema and no annotations, an agent is left without information on edge cases (e.g., empty cells, range formatting) or how results are structured beyond 'rows of strings', so it is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters, including A1 notation, account nickname, spreadsheet ID, and majorDimension. The description's mention of 'rows of strings' hints at the majorDimension default but does not add meaning beyond what the schema provides, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Read cell values from a range') and even specifies the output format ('as rows of strings'), making the core purpose clear. It does not explicitly differentiate from google_sheets_get, which might also be a read operation, but the emphasis on range-based cell values is reasonably distinguishing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The sibling list contains google_sheets_get, google_sheets_write, and google_sheets_append, but the description does not mention when this tool is the right choice, when it is not, or what the alternatives are.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_sheets_rename_sheetRename spreadsheet tabC
Rename a tab (sheet) in a spreadsheet.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | New tab title. | |
| account | No | Account nickname to use. | |
| sheetId | Yes | Numeric sheet ID (from google_sheets_get metadata). | |
| spreadsheetId | Yes | Spreadsheet ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state that this is a mutating operation, whether permissions are needed, whether the rename is reversible, or what happens if the title collides with an existing tab. For a write tool with zero annotation coverage this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the action and target with no wasted words. It is efficient, though arguably too sparse to count as a fully optimized definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter mutating tool with no annotations and no output schema, the description leaves the agent without behavioral context (permissions, reversibility, side effects). Rich schema coverage documents the inputs, but the description should do more to prepare an agent to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (spreadsheetId, sheetId, title, account) are documented in the schema itself, establishing the baseline of 3. The description adds no syntax, format, or constraint detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Rename') and resource ('a tab (sheet) in a spreadsheet'), so an agent can distinguish it from google_sheets_add_sheet or google_sheets_delete_sheet. It lacks explicit sibling differentiation in the text, but the title and description together make the operation unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use guidance, no prerequisites, and no references to alternatives like google_sheets_add_sheet or google_sheets_delete_sheet. An agent must infer the usage context entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_sheets_set_named_rangeSet named rangeC
Create a named range over a grid region.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the named range. | |
| range | Yes | Grid region the range covers. | |
| account | No | Account nickname to use. | |
| spreadsheetId | Yes | Spreadsheet ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing about permissions/account requirements, idempotency, what happens on a name collision, or whether existing ranges are affected. For a mutation tool this is a notable gap, though 'create' does convey the basic write nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words; the verb and resource lead. It is terse but not redundant, though its brevity leaves behavioral and usage context unaddressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with no annotations, no output schema, and a nested object parameter deserves more than one sentence. Missing behavioral facts (name-collision behavior, auth/account role, reversibility) leave the agent without enough to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description's phrase 'over a grid region' only loosely restates the range parameter and adds no syntax, format, or boundary details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Create a named range') over a 'grid region', which is clear and distinguishable from the read-oriented sibling google_sheets_get_named_ranges. However, it does not explicitly name or contrast with that sibling, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as google_sheets_get_named_ranges for listing existing named ranges. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_sheets_writeWrite to spreadsheetA
Write rows of values starting at a range top-left cell (overwrites in place).
| Name | Required | Description | Default |
|---|---|---|---|
| range | Yes | A1 notation of the top-left cell, e.g. Sheet1!A1. | |
| values | Yes | Rows of values to write. | |
| account | No | Account nickname to use. | |
| spreadsheetId | Yes | Spreadsheet ID. | |
| valueInputOption | No | How to interpret values (default USER_ENTERED). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It does disclose the crucial 'overwrites in place' behavior, which is genuinely useful. However, it omits other behavioral context an agent may need, such as authentication requirements, whether the operation is reversible, or what happens to cells outside the written block.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the core action and immediately provides the most decision-relevant nuance: overwriting rather than appending. Every word earns its place, with no redundant restatement of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write operation with no output schema and no annotations, the description is serviceable but thin. All parameters are documented in the schema, but the description does not cover usage boundaries relative to sibling tools, auth context, or effect expectations beyond 'overwrites in place', leaving an agent with moderate but incomplete guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and all parameter descriptions are already meaningful: 'top-left cell', 'Rows of values to write', and the RAW/USER_ENTERED enum. The tool description does not add parameter-level meaning beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Write rows of values') and a specific resource (a spreadsheet range), with the additional scope qualifier 'starting at a range top-left cell'. The parenthetical '(overwrites in place)' distinguishes it from sibling tools like google_sheets_append without requiring the agent to inspect schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use this tool when writing values beginning at a top-left cell and overwriting existing content. However, it does not explicitly mention when not to use it or name alternatives such as google_sheets_append, leaving the routing decision partly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_slides_add_slideAdd slideB
Add a blank slide to a presentation.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| presentationId | Yes | Presentation ID. |
TDQS
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 only states the action ('add a blank slide') without mentioning side effects (e.g., slide appended at end), required permissions, or error handling. It is a mutation but provides no details beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no superfluous words. It is appropriately front-loaded with the core action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and lack of annotations or output schema, the description is minimal but still incomplete. It does not specify return values, whether the slide is inserted at a specific position, or any prerequisites. An agent might need additional context to call it correctly, especially among similar slide-related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (account and presentationId). The description adds no extra meaning about parameter usage, such as format or constraints, so it meets the baseline of 3 but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Add a blank slide to a presentation' states a specific verb (add), resource (blank slide), and destination (presentation). It clearly distinguishes from siblings like google_slides_delete_slide and google_slides_batch_update by specifying 'blank' and 'add'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like google_slides_batch_update or google_slides_get_page. The description does not mention any context, prerequisites, or exclusions, 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.
google_slides_batch_updateBatch update presentationC
Send raw Slides batchUpdate requests (create textboxes, shapes, images, style elements, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| requests | Yes | Slides API batchUpdate requests array. | |
| presentationId | Yes | Presentation ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'send requests', which implies mutation but doesn't state that changes are irreversible, require specific permissions, or what the response contains. It's silent on auth, rate limits, and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence that front-loads the core action and gives illustrative examples. No unnecessary words, though it could include a link to documentation without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a raw API tool with a complex request array, yet the description provides no information on how to construct valid requests, what fields are supported, or how the response is structured. The schema's 'requests' property has empty items, so the agent is left with no guidance. This is severely inadequate for a low-level tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no parameter-specific meaning beyond the schema; it doesn't explain the structure of the 'requests' array, which is critical since the schema items are empty.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (send batchUpdate requests) and the resource (Slides presentation), with examples of what can be created. It distinguishes from sibling tools by being 'raw', though it doesn't explicitly contrast with the higher-level slides tools like add_slide or replace_text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 doesn't mention that this is the low-level escape hatch for operations not covered by the other slides tools, nor does it suggest when to prefer it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_slides_createCreate presentationC
Create a new Google Slides presentation with a title.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Presentation title. | |
| account | No | Account nickname to use. |
TDQS
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 that it creates a presentation, but does not mention any side effects, required permissions, account handling (despite the optional 'account' parameter), or what the tool returns (e.g., presentation ID or URL). This is a significant gap 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the verb and resource. There is no redundant wording or filler. It is appropriately concise for the simplicity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with no output schema and no annotations, the description is incomplete. It does not mention what the tool returns (e.g., presentation ID), how the 'account' parameter behaves if omitted, or any prerequisites. An agent would need to guess at the result format and account handling, making the description insufficient for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description adds no additional meaning beyond what the schema provides, such as clarifying the 'account' parameter's role or the format of the title. The baseline of 3 applies because the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (a new Google Slides presentation), and specifies it includes a title. This distinguishes it from other slides tools like get, add_slide, or replace_text, though it doesn't explicitly name them. It is specific enough for an agent to understand the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor any mention of exclusions or prerequisites. The description simply states what it does without contextual cues about when it is appropriate, such as 'use this to create a new presentation, not to edit existing ones.' This leaves the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_slides_create_imageCreate imageC
Insert an image from a URL onto a slide. Sizes in points.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Left offset in points (default 0). | |
| y | No | Top offset in points (default 0). | |
| url | Yes | Public URL of the image. | |
| width | No | Width in points (default 200). | |
| height | No | Height in points (default 150). | |
| account | No | Account nickname to use. | |
| pageObjectId | Yes | Object ID of the slide to add the image to. | |
| presentationId | Yes | Presentation ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full behavioral burden. 'Insert' implies a mutation, but nothing is said about required scopes/permissions, whether the image is downloaded and stored, what happens on an unreachable URL, or whether the operation is reversible. Only the URL source and point-based sizing 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and with zero filler. The trailing fragment 'Sizes in points' is terse but does earn its place by flagging the unit system.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an eight-parameter mutation tool with no annotations and no output schema, the description omits too much: no return information (e.g. whether an image object ID comes back), no auth requirements, and no failure modes. The schema covers inputs fully, but the behavioral and output surface is entirely undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all eight parameters including defaults (x=0, y=0, width=200, height=150) are already documented. 'Sizes in points' restates the unit already present in the schema and adds no new syntax or format detail; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Insert an image ... onto a slide'), which is enough to separate it from adjacent Slides tools like add_slide or create_textbox. It does not explicitly name a sibling or disambiguate from google_docs_insert_inline_image, but the verb+resource pairing is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives (e.g. batch_update, create_textbox), and no prerequisites are stated. The requirement that the URL be publicly reachable and that the target slide already exist is left entirely to the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_slides_create_textboxCreate textboxC
Create a text box on a slide, optionally with initial text. Sizes in points.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | Left offset in points (default 0). | |
| y | No | Top offset in points (default 0). | |
| text | No | Initial text content. | |
| width | No | Width in points (default 100). | |
| height | No | Height in points (default 50). | |
| account | No | Account nickname to use. | |
| pageObjectId | Yes | Object ID of the slide to add the text box to. | |
| presentationId | Yes | Presentation ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it only says the text is optional and sizes are in points. It does not disclose permission/auth needs, whether the textbox lands at a default position when x/y are omitted, or what the tool returns (e.g., the new object ID) for a mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the action front-loaded and the optional-text and units facts compactly appended. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation tool with no annotations and no output schema, the description is thin. It omits default positioning behavior, whether an empty textbox is allowed, and what is returned, leaving the agent to rely entirely on the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter including units and defaults. The description's 'optionally with initial text' and 'Sizes in points' only echo what the schema provides, adding no new meaning. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a text box on a slide') and adds that initial text is optional, so an agent can tell this apart from google_slides_create_image or add_slide. It does not explicitly name siblings, but the action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no indication of when to use this tool versus alternatives (e.g., batch_update, create_image, or add_slide), nor prerequisites such as needing an existing slide object ID. The description only restates what the tool does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_slides_delete_slideDelete slideB
Delete a slide by object ID.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| slideObjectId | Yes | Slide object ID to delete. | |
| presentationId | Yes | Presentation ID. |
TDQS
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 states 'Delete a slide,' which implies a destructive, irreversible action, but it does not disclose any side effects, permission requirements, or what happens if the slide does not exist. For a mutation with zero annotation coverage, this is a minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler or redundant words. The action is front-loaded ('Delete a slide'), and the identifier method is appended. This is exemplary conciseness for a simple operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with no output schema and simple parameters, the description covers the core action. However, it does not mention that the slide belongs to a presentation (though presentationId is in the schema) or provide any context about the operation's effects. It is minimally sufficient but lacks a fuller picture that an agent might need when deciding to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all three parameters, so the schema already documents them. The description adds no extra meaning beyond the schema, such as how to obtain a slideObjectId or that presentationId is required. Baseline 3 is appropriate given the high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete) and the resource (slide), with the specific identifier (object ID). It distinguishes from sibling tools like google_slides_add_slide or google_slides_batch_update by naming the exact operation. A concise, unambiguous purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 this is the direct way to remove a slide, nor does it note any exclusions (e.g., cannot delete the last slide). Without this, an agent must infer usage from the name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_slides_duplicate_slideDuplicate slideC
Duplicate a slide and return the new slide object ID.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| slideObjectId | Yes | Object ID of the slide to duplicate. | |
| presentationId | Yes | Presentation ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It mentions the returned object ID but says nothing about where the copy is placed, whether it requires edit permissions, or whether the operation is reversible — significant 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the action and result front-loaded, no filler. It is efficient, though it omits anything that would help an agent in ambiguous cases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description should clarify behavior such as placement of the duplicate and permission requirements. As written, it is too thin for correct invocation in non-trivial cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (account, slideObjectId, presentationId) are already documented in the schema. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (duplicate) and resource (slide) plus a return value, which clearly separates it from google_slides_add_slide, google_slides_delete_slide and google_slides_move_slide. It stops short of explicitly naming those siblings, so it is clear but not maximally differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to duplicate versus add a slide, nor any prerequisites (e.g. slide must exist, account selection). The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_slides_getGet presentationB
Get a Google Slides presentation (structural JSON).
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| presentationId | Yes | Presentation ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says the tool returns 'structural JSON' and does not disclose whether this is a read-only operation, whether it requires specific permissions, what the JSON structure contains, or any side effects. For a retrieval tool, the lack of explicit read-only confirmation and output detail is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that is front-loaded with the action and resource, and it adds the useful qualifier 'structural JSON'. It is appropriately concise, though it 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with two parameters and no output schema, the description is minimal. It does not explain what 'structural JSON' includes (e.g., slides, layouts, text elements), nor does it clarify the read-only nature or any prerequisites. Given the lack of annotations and output schema, the description is not fully complete for an agent to know what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('Account nickname to use.' and 'Presentation ID.'). The description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('Google Slides presentation'), and clarifies the output is 'structural JSON'. It is clear enough to distinguish from siblings like google_slides_get_page, which targets a page rather than the whole presentation. However, it does not explicitly differentiate from google_docs_get or google_sheets_get beyond the resource name, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: call this when you need the full structural JSON of a Google Slides presentation. It does not state when not to use it or mention alternatives like google_slides_get_page for page-level access. The context is clear but no exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_slides_get_pageGet slide pageA
Get the contents of a single slide page by object ID.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| pageObjectId | Yes | Slide page object ID. | |
| presentationId | Yes | Presentation ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of indicating behavior. 'Get' clearly signals a read-only retrieval, but it does not disclose response format, error behavior, or any other operational details beyond the action itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. It states the action, target, and identifier without wasting tokens.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter, the description covers the core operation and the required object ID. However, with no output schema and no mention of what 'contents' includes, an agent may not know exactly what to expect, and the lack of sibling differentiation is a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already explains presentationId and pageObjectId. The description adds only 'by object ID,' which is already captured in the schema, so it provides no extra semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('contents of a single slide page'), and identifies the key selector ('by object ID'). It is clear on its own but does not explicitly contrast with google_slides_get, so it misses the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving one slide page's contents, which is a use case. However, it does not state when to prefer this over google_slides_get or any other sibling, nor does it mention alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_slides_move_slideMove slideB
Move a slide to a new position in the deck by insertion index.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| slideObjectId | Yes | Object ID of the slide to move. | |
| insertionIndex | Yes | 0-based index where the slide should be inserted. | |
| presentationId | Yes | Presentation ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for a mutation tool. It does not disclose write requirements, side effects on other slide indices, reversibility, or error behavior; it only restates the action and key parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It states the action and mechanism immediately and contains no redundant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple reorder mutation, the core action and required parameters are clear from the schema. However, with no annotations or output schema, the description should compensate with behavioral context such as permissions or effects on other slides, and it does not. It is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented. The phrase 'by insertion index' mirrors the schema's own description of insertionIndex and adds no new syntax or constraints. The baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Move) and resource (slide) plus the mechanism (insertion index), so the agent can identify the action. It does not explicitly contrast with sibling slide operations like add, delete, or duplicate, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative guidance. The description does not mention sibling tools such as google_slides_duplicate_slide or batch_update, nor any prerequisite like write access. Usage is only implied by the action itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_slides_replace_textReplace text in presentationB
Replace all occurrences of a string across a presentation (template filling).
| Name | Required | Description | Default |
|---|---|---|---|
| find | Yes | Text to find (e.g. {{name}}). | |
| account | No | Account nickname to use. | |
| replace | Yes | Replacement text. | |
| matchCase | No | Match case (default true). | |
| presentationId | Yes | Presentation ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral disclosure burden. It conveys that all occurrences are replaced, but for a mutating tool it does not disclose that the operation permanently modifies the presentation, that write permissions are required, or what happens when no matches are found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one efficient sentence with a useful parenthetical. Every word earns its place, and the core behavior is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema covers parameters and the description states the core behavior, so an agent can probably invoke it correctly. However, with no annotations, no output schema, and no guidance about mutation effects or alternatives, the description is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds no new parameter-level meaning beyond the obvious find/replace concept, keeping it at the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (replace), resource (presentation), and scope (all occurrences), with a useful template-filling hint. It is clear, though it does not explicitly distinguish itself from sibling tools like google_docs_replace_text or google_slides_batch_update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(template filling)' implies a common use case, but the description does not state when to use this tool versus alternatives such as google_slides_batch_update or per-slide edits. It provides implied context but no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_completeComplete taskB
Mark a task as completed.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | Task ID. | |
| account | No | Account nickname to use. | |
| tasklistId | No | Task list ID (default @default). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description alone must disclose behavioral traits. It only names the state transition and says nothing about reversibility, idempotency, effects on subtasks/timestamps, or response format, which leaves meaningful ambiguity for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short and front-loaded, with no wasted words. However, it essentially restates the title ('Complete task') and adds no information, so it is under-specified rather than clearly value-adding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation with no output schema and no annotations, the description is incomplete: it doesn't state prerequisites, how account/tasklist selection works beyond the schema, or what happens after completion. An agent must infer context from sibling tool names and parameter names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters and the baseline is 3. The description adds no additional parameter context, but the schema's brief field descriptions for taskId, account, and tasklistId are adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear, specific action ('mark a task as completed') on a well-defined resource, so an agent can tell it completes rather than creates, deletes, or lists tasks. It does not explicitly contrast with siblings, but the action is unambiguous among the Google Tasks family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The verb phrase implies the intended use (when a task is done), so there is some implicit usage context. It provides no explicit when-to-use guidance, no prerequisites, and no mention of sibling tools like google_tasks_list for obtaining task IDs or the @default task list semantics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_createCreate taskB
Create a task, optionally with notes, due date, or as a subtask.
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | Due date (RFC3339, e.g. 2026-08-15T17:00:00Z). | |
| notes | No | ||
| title | Yes | Task title. | |
| account | No | Account nickname to use. | |
| tasklistId | No | Task list ID (default @default). | |
| parentTaskId | No | Parent task ID to create a subtask. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a mutating write but says nothing about required scopes/auth, what happens if tasklistId is omitted (the schema mentions @default but the description does not), error behavior, or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every clause maps to a real capability of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no annotations and no output schema, the description is adequate but thin. It omits side effects, auth requirements, and default behavior for the task list, which an agent would need to invoke reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, so the schema already documents due (RFC3339), tasklistId (@default), parentTaskId, and account. The description only echoes notes/due/parentTaskId at a high level and adds no format or constraint detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create) and resource (task) and names the optional facets (notes, due date, subtask). It does not distinguish itself from sibling google_tasks_create_list, which creates a list rather than a task, so it falls short of the 5 benchmark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, no mention of prerequisites (e.g. an existing tasklist), and no routing to alternatives such as google_tasks_update or google_tasks_complete. The agent gets no help choosing between this and its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_create_listCreate task listC
Create a new Google Tasks list.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Task list title. | |
| account | No | Account nickname to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden and says nothing beyond the bare action. It does not say whether the list becomes the default, what identifier comes back, whether account must pre-exist, or any mutation 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the action front-loaded and no filler. It is appropriately sized for a simple create call, though it is arguably too terse to be fully useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter create with no annotations and no output schema, the definition is minimally sufficient – the agent knows what it creates from the name and schema. It omits the return value (e.g., the new list's ID) and the account-default behavior, which the missing output schema leaves unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (title, account) are already documented in the schema; baseline 3 applies. The description adds no extra meaning such as how 'account' resolves to a nickname or what happens if omitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Create) and resource (Google Tasks list), and 'new' distinguishes it from update_list/delete_list siblings. It doesn't explicitly name alternatives, but the create semantics are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus google_tasks_update_list, google_tasks_list_lists, or the more generic google_tasks_create. No mention of prerequisites such as which account is needed or whether one must exist first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_deleteDelete taskC
Delete a task.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | Task ID. | |
| account | No | Account nickname to use. | |
| tasklistId | No | Task list ID (default @default). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It only states 'Delete a task.' without mentioning permanence, side effects on subtasks, required permissions, or reversibility. While 'delete' implies destruction, the description omits critical behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief, but it is under-specified rather than concise. It provides only a bare phrase with no structure or additional information. It fails to earn its place by adding any value beyond the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters and no output schema or annotations, the description is inadequate. It does not explain what happens after deletion, whether the tasklistId is required for certain scenarios, or any error conditions. An agent would have no context for calling this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (taskId, account, tasklistId) are already documented. The description adds no extra meaning or context about parameters, but the schema sufficiently covers them. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Delete a task.' is essentially a tautology with the tool name (google_tasks_delete) and title (Delete task). It states the verb and resource but does not distinguish from siblings like google_tasks_complete or google_tasks_create, and adds no specificity beyond the title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. There is no mention of prerequisites, exclusions, or comparisons to related task tools such as google_tasks_list or google_tasks_complete. An agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_delete_listDelete task listC
Delete a Google Tasks list (removes its tasks).
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| tasklistId | Yes | Task list ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It partially conveys destructive behavior by saying 'Delete... (removes its tasks)', which hints at the cascade effect—a useful behavioral detail. However, it omits critical information such as whether the list can be recovered, what permissions are required, or what happens to shared lists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the action and resource. It is appropriately sized, though it 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no annotations, no output schema, and only two parameters, the description is insufficiently complete. It doesn't clarify required permissions, irreversibility, or how it differs from sibling tools like google_tasks_delete and google_tasks_update_list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters. The description adds no additional parameter meaning beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb 'Delete' and resource 'Google Tasks list', making the purpose understandable. However, it does not distinguish this tool from the sibling google_tasks_delete (which deletes tasks within a list) or google_tasks_update_list, so an agent must infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is provided. The description doesn't mention prerequisites like ownership, required permissions, or the fact that deletion is irreversible. There is no mention of alternatives or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_listList tasksB
List tasks in a task list (default list if not specified).
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| dueAfter | No | Only tasks due at or after this RFC3339 datetime. | |
| dueBefore | No | Only tasks due at or before this RFC3339 datetime. | |
| pageToken | No | Page token from a previous result's nextPageToken. | |
| tasklistId | No | Task list ID (default @default). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'List' implies a read-only operation, but the description says nothing about pagination behavior (despite pageToken existing), what fields are returned, ordering, or whether completed tasks are included. For a 5-parameter tool this leaves notable behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero waste, front-loading the action and resource. Nothing in it is redundant padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation with fully documented parameters and no output schema, the description is minimally sufficient, but it omits filtering/pagination context that would help an agent use the dueAfter/dueBefore and pageToken parameters together.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (account, dueAfter, dueBefore, pageToken, tasklistId) are already documented in the schema. The description only restates the default tasklistId behavior, adding no semantics beyond what structured data provides; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List tasks in a task list') and clarifies the default target list. It does not explicitly distinguish itself from the sibling google_tasks_list_lists (which lists the lists themselves), so an agent must infer that difference from the name, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives such as google_tasks_list_lists or how to combine it with google_tasks_complete. The only contextual hint is the parenthetical default-list behavior, which is usage of a parameter rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_list_listsList task listsC
List the account's Google Tasks lists.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| pageToken | No | Page token from a previous result's nextPageToken. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden and delivers almost nothing beyond the name. It does not state that the call is read-only, that results are paginated (pageToken exists only in the schema), what the default account behavior is, or roughly what a result contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste, which is the right shape for a simple list operation. It is efficient but also so terse that the brevity costs it on other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description is the only place to explain that the response is a paged collection of list objects with ids and titles. None of that is present, leaving the agent without enough to plan the follow-up call reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both 'account' and 'pageToken' are fully documented in the schema, and the description adds no parameter meaning of its own. The baseline 3 applies since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the account's Google Tasks lists'), so the agent knows it enumerates task lists rather than tasks. However, it never disambiguates from the very similarly named sibling 'google_tasks_list', which lists tasks inside a list; a one-clause note would have made the distinction airtight.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no mention of the natural next step (use google_tasks_list with a returned list id), and no exclusion against the similarly named task-listing sibling. The agent must infer the whole workflow 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.
google_tasks_updateUpdate taskC
Update a task's title, notes, due date, or status (partial).
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | Due date (RFC3339, e.g. 2026-08-15T17:00:00Z). | |
| notes | No | New task notes. | |
| title | No | New task title. | |
| status | No | Task status. | |
| taskId | Yes | Task ID. | |
| account | No | Account nickname to use. | |
| tasklistId | No | Task list ID (default @default). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. The '(partial)' qualifier usefully signals partial-update semantics, but there is no disclosure of auth/permission requirements, whether unspecified fields are preserved or cleared, or how the account/tasklistId scoping affects the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste. It is appropriately sized for a short description, though it is arguably terse given a seven-parameter mutation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description does too little. It omits the account/tasklistId scoping, permission requirements, and any confirmation of what the call returns, leaving an agent with only field names already present in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema, including the RFC3339 due format, the status enum, and the tasklistId default. The description adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (update) and resource (a task) and enumerates the mutable fields (title, notes, due date, status). It is clear what the tool does, though it does not distinguish itself from the sibling google_tasks_complete, which also sets status to completed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given. An agent must infer from the '(partial)' hint that unspecified fields are left unchanged, and nothing routes it between this tool and google_tasks_complete, google_tasks_create, or google_tasks_update_list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_update_listRename task listC
Rename a Google Tasks list.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | New task list title. | |
| account | No | Account nickname to use. | |
| tasklistId | Yes | Task list ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it discloses nothing about permissions, idempotency, whether existing tasks are preserved, or the return behavior. For a mutation tool with zero annotation coverage this is a clear gap, though the operation is low-risk and self-evident.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste. It is appropriately terse for a simple rename, though it is arguably spare even for its scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a minimal rename with full schema coverage the description is minimally viable, but with no annotations and no output schema it leaves the mutation's behavior and result entirely undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so tasklistId, title, and account are already documented by the schema. The description adds no extra syntax, format, or constraint detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Rename') and resource ('Google Tasks list'), and productively clarifies that the generic 'update_list' name really means a rename, distinguishing it from google_tasks_update on tasks. It does not, however, explicitly name sibling tools to confirm the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus alternatives, no prerequisites (e.g., needing an existing list ID), and no exclusions. The agent must infer usage entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_youtube_add_to_playlistAdd video to playlistC
Add a video to a playlist.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| videoId | Yes | Video ID to add. | |
| playlistId | Yes | Playlist ID. |
TDQS
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 discloses the core mutation (adding a video) but does not mention side effects, such as whether the video is appended to the end of the playlist, whether duplicates are allowed, or whether authentication/account selection is required. The 'account' parameter hints at multi-account support but the description does not explain its role.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is appropriately sized for a simple operation, though it could add a brief usage note without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is too thin. It does not explain the account parameter, the expected result, or any constraints (e.g., playlist ownership). An agent would need to infer too much to invoke it correctly in a multi-account context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds no extra meaning beyond the schema, but the baseline of 3 applies because the schema handles the heavy lifting. The 'account' parameter's purpose is still unclear from both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ('Add a video to a playlist'), which is unambiguous. However, it does not differentiate from sibling tools like google_youtube_create_playlist or google_youtube_list_playlists, though the action is distinct enough that an agent can infer the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 prerequisites like needing an existing playlist, or that the video must exist, nor does it reference any sibling tools. The context is minimal and leaves usage entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_youtube_create_playlistCreate YouTube playlistC
Create a private playlist for the user.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Playlist title. | |
| account | No | Account nickname to use. | |
| description | No | Playlist description. | |
| privacyStatus | No | Privacy (default private). |
TDQS
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 only says 'Create a private playlist' without mentioning side effects, authentication needs, that the privacy is configurable, or that this is a write operation. It also implies a fixed privacy level that contradicts the schema's configurable privacyStatus.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded with the action and resource. No redundant or filler content exists, and 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with no annotations and no output schema, the description is insufficiently complete. It fails to mention that the playlist is created in the user's YouTube account, that privacy is configurable via the privacyStatus parameter, and does not indicate any return value or side effects. The misleading 'private' claim adds to the incompleteness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% description coverage for all parameters, so the baseline is 3. The description adds no additional meaning beyond what the schema already states; it merely repeats the default privacy setting without explaining parameter usage or relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'playlist', and specifies it is for the user. However, it incorrectly claims the playlist is always private, while the schema allows public and unlisted options via the privacyStatus parameter. This is a minor inaccuracy but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sibling tools like google_youtube_delete_playlist, google_youtube_add_to_playlist, or google_youtube_list_playlists. There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_youtube_delete_playlistDelete YouTube playlistB
Delete a playlist by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| playlistId | Yes | Playlist ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden of behavioral disclosure. 'Delete' signals a destructive operation, but there is no statement of irreversibility, required permissions, or side effects on the playlist's contents, which is important for a deletion tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. Every word contributes to the core meaning and it is as concise as the operation allows.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive action this is minimally viable: it states the operation and the key parameter, and the schema documents the parameters. However, it omits behavioral context such as irreversibility and how to discover the playlist ID, and there is no output schema to clarify the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters adequately. The description adds no new parameter meaning beyond reinforcing that deletion is by playlist ID, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action (Delete), a specific resource (a playlist), and the required key (by ID). It is unambiguous and clearly distinct from sibling playlist tools like google_youtube_create_playlist and google_youtube_list_playlists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives or what prerequisites are needed. It does not mention that a valid playlist ID is needed, how to obtain it (e.g., via list_playlists), or any account considerations, so the agent is left to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_youtube_get_videoGet YouTube video detailsA
Get details, statistics and content details for a video.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| videoId | Yes | YouTube video ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. The verb 'Get' signals a read-only operation and the phrase 'details, statistics and content details' gives a basic sense of the response. It does not mention authorization requirements, account usage, rate limits, error behavior, or response format, but for a simple video lookup this is minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that front-loads the action and the resource. Every word earns its place, and there is no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a low-complexity tool with one required parameter, so the description is close to sufficient. However, there is no output schema and the description does not clarify what shape the details/statistics take or whether the optional account parameter affects which video data is accessible, leaving some ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains videoId and account. The description adds no additional meaning beyond what the parameters already convey, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a clear resource ('a video'), and even hints at the data categories returned: details, statistics, and content details. It does not explicitly differentiate from sibling YouTube tools such as search or my_videos, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and the required videoId: this is for retrieving details of a specific video. However, there is no explicit guidance about when to prefer this over get_video alternatives like google_youtube_search or google_youtube_my_videos, and no stated exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_youtube_insert_commentPost a YouTube commentC
Post a top-level comment on a video.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Comment text. | |
| account | No | Account nickname to use. | |
| videoId | Yes | YouTube video ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it discloses almost nothing: no auth/permission requirements, no mention of moderation state, rate limits, or whether the comment is immediately visible to others. For a write/mutation tool with zero annotation coverage this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste. It is efficient, though arguably terse enough that it leaves useful context unstated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with no annotations, no output schema, and three parameters needs more than one sentence: nothing covers permissions, the meaning of the optional account nickname, moderation behavior, or the result of the call. The definition is not complete enough for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents videoId, text, and account; the baseline is 3. The description adds no format hints or account-selection semantics beyond what the schema provides, so it earns no bonus.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (post) and resource (comment) with the scope qualifier 'top-level', which distinguishes it from reply-style tools and from siblings like google_youtube_list_comments, set_comment_moderation, and mark_comment_spam. It is clear but does not explicitly name any sibling it differs from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives, no prerequisites, and no conditions or exclusions. The only guidance is the implicit 'if you want to comment, use this', which is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_youtube_list_commentsList YouTube video commentsC
List comment threads for a video, most recent first.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| videoId | Yes | YouTube video ID. | |
| pageToken | No | Page token from a previous result's nextPageToken. | |
| maxResults | No | Max results (default 20). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and only discloses the sort order ('most recent first'). It says nothing about whether replies are nested in threads, how pagination terminates, quota/rate-limit costs of the YouTube Data API, or what happens when comments are disabled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though its brevity leaves the behavioral gaps noted elsewhere rather than being padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with full schema coverage, the description covers the core intent, but with no output schema and no annotations it should at least hint at the response shape (threads containing replies, nextPageToken) and quota implications.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so account, videoId, pageToken, and maxResults are all already documented in the schema. The description adds nothing parameter-specific beyond implying the ordering of results; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (comment threads for a video), which clearly separates it from google_youtube_insert_comment and google_youtube_set_comment_moderation. It does not explicitly name those siblings, but the read-vs-write distinction is obvious from the verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives, no prerequisites (e.g., comments must be enabled on the video, required OAuth scope), and no mention of how to continue pagination. The agent must infer all usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_youtube_list_playlistsList my playlistsC
List the user's YouTube playlists.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| pageToken | No | Token from a previous page's nextPageToken. | |
| maxResults | No | Max playlists (default 25). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, yet it says nothing about whether results are owned playlists or subscriptions, what order they come back in, or how pagination terminates. Only the safe-read nature is implicitly conveyed by "List".
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short, front-loaded sentence with zero waste. It is efficient, though it verges on under-specification rather than being richly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations; the description never indicates what a playlist record contains (ID, title) or how to use nextPageToken to continue, which matters for chaining into add_to_playlist or delete_playlist. For a 3-param list tool this leaves real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters (account, pageToken, maxResults) are documented in the schema, so the baseline is 3. The description adds no additional meaning about parameter behavior or defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("List the user's YouTube playlists"), which is distinguishable from siblings like google_youtube_create_playlist or google_youtube_add_to_playlist. It does not clarify scope versus google_youtube_my_videos or what "the user's" means (owned vs subscribed).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no mention of alternatives, and no hint about paging through results or choosing an account. The agent must infer that pageToken/maxResults exist for pagination purely from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_youtube_mark_comment_spamMark YouTube comment as spamC
Mark a comment as spam.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| commentId | Yes | Comment ID to mark as spam. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden but only says 'Mark a comment as spam.' It doesn't disclose whether this is reversible, requires specific permissions, or what happens after marking. This is a mutation tool with no behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no waste. It's front-loaded and to the point, though extremely brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a mutation tool with no annotations and no output schema, the description is inadequate. It lacks information about side effects, reversibility, permissions, and return behavior, leaving significant gaps for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds no parameter details beyond the schema, which is acceptable but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: marking a comment as spam. It aligns with the tool name and title, but doesn't distinguish itself from its sibling google_youtube_set_comment_moderation, which may also handle comment moderation status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 google_youtube_set_comment_moderation. There's no mention of prerequisites, side effects, or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_youtube_my_videosList my YouTube videosC
List the user's uploaded videos.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| pageToken | No | Token from a previous page's nextPageToken. | |
| maxResults | No | Max videos (default 25). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, yet it says nothing about pagination behavior, result ordering, quota/rate limits, or what a response contains. For a read-only list this is lower risk, but the description adds essentially no behavioral context beyond the verb 'List'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is efficiently sized, though its brevity reflects under-specification rather than disciplined compression.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should explain at least the shape of returned items (video IDs, titles) and that results are paginated via pageToken. None of that is present, leaving the agent unable to predict the response or paging loop.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with account, pageToken, and maxResults all documented in the schema, so the schema does the heavy lifting and a baseline 3 applies. The description adds nothing about how account selection or paging interacts with results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the user's uploaded videos'), and the possessive 'user's' usefully distinguishes it from the general google_youtube_search tool. However, it does not explicitly name or differentiate against google_youtube_get_video or google_youtube_list_playlists, so the agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus google_youtube_search or google_youtube_get_video, and no mention of prerequisites such as needing an authenticated account or the account parameter selecting among multiple accounts. The agent is left to infer everything from the one-line purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_youtube_remove_from_playlistRemove video from playlistC
Remove a video from a playlist by playlist item ID.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| playlistItemId | Yes | Playlist item ID to remove. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It reveals only that the operation targets a playlist item ID, but says nothing about irreversibility, whether the video itself is deleted or merely unlinked, permission/auth requirements, or what happens on an invalid ID.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the resource and identifier front-loaded; nothing is wasted. It is on the terse side, but terse is not verbose, and the core action reads clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with no output schema, the description is minimally adequate. However, with zero annotation coverage it should disclose more about the mutating effect (reversibility, side effects) to fully support correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters (account, playlistItemId) are already documented in the schema. The phrase 'by playlist item ID' reinforces which ID is expected but adds no syntax or format detail beyond the structured data. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (remove) plus resource (video from playlist) and the key identifier mechanism (by playlist item ID). It is inherently distinguishable from siblings like add_to_playlist and delete_playlist, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of related tools such as add_to_playlist or delete_playlist. The agent must infer all usage context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_youtube_searchSearch YouTube videosB
Search YouTube for videos and return titles, IDs and channels.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query. | |
| account | No | Account nickname to use. | |
| pageToken | No | Token from a previous page's nextPageToken. | |
| maxResults | No | Max results (default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden; it does disclose the shape of results (titles, IDs, channels), which substitutes usefully for the missing output schema. However, it says nothing about pagination behavior despite the pageToken parameter, nor about quota/rate limits that are typical for YouTube search, nor about how the account parameter affects execution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the purpose and the return payload appear immediately and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search with a four-parameter schema and no output schema, the description covers purpose and return fields but omits pagination semantics and multi-account behavior. It is minimally adequate but leaves meaningful gaps an agent would hit on the second page or in a multi-account setup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (query, account, pageToken, maxResults) are already documented in the schema. The description adds no parameter-level meaning beyond that, such as how paging should be driven or what the account nickname controls, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Search YouTube for videos') and even enumerates the returned fields (titles, IDs, channels). It is clearly distinct from mutation siblings like google_youtube_upload or single-item retrieval like google_youtube_get_video, though it does not explicitly contrast with list-style siblings such as google_youtube_my_videos or google_youtube_subscriptions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given, and no alternatives are named. With ambiguous siblings (my_videos, subscriptions, get_video) present, the agent must infer from the name alone that this is the keyword-search path rather than a listing of owned content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_youtube_set_comment_moderationSet YouTube comment moderation statusC
Hold, reject, or flag a comment as likely spam.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| commentId | Yes | Comment ID to moderate. | |
| moderationStatus | Yes | Moderation status to apply. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses almost nothing: it does not state that this mutates state, whether the change is reversible, what permissions are required, or how it differs from spam-marking. The one behavioral claim it makes ('flag as likely spam') is misleading relative to the documented enum values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence and front-loaded, so it wastes no words. However, its brevity stems from under-specification rather than discipline, so it is only adequately sized given the tool's needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is too thin: it should at least cover state effects, reversibility, and permission requirements. The omission of the 'published' action makes it incomplete even against its own enum.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so commentId and moderationStatus are already well documented by the schema, including the enum values. The description adds no parameter detail beyond a loose and inconsistent mapping ('hold'→heldForReview, 'reject'→rejected), leaving the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the moderation actions (hold, reject, flag as spam) but conflates them with a sibling tool: 'flag a comment as likely spam' overlaps with google_youtube_mark_comment_spam, and it omits the schema's 'published' state entirely. It broadly signals what the tool does but does not cleanly distinguish it from neighboring YouTube comment tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites (channel ownership, permissions), and no routing to alternatives such as mark_comment_spam vs. this status-setting tool. The reader is left to infer intent from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_youtube_subscriptionsList channel subscriptionsC
List the channels the user subscribes to.
| Name | Required | Description | Default |
|---|---|---|---|
| account | No | Account nickname to use. | |
| pageToken | No | Token from a previous page's nextPageToken. | |
| maxResults | No | Max results (default 50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states 'List the channels the user subscribes to,' implying a read operation but omitting any details about authentication requirements, pagination behavior, return format, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is as concise as possible for stating the core action, though it could add minimal value with one more sentence of context without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations. While the tool is a simple read-only list operation, the description does not explain what the list returns (e.g., channel objects) or how pagination works, leaving the agent to infer these from the schema parameters alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (account, pageToken, maxResults) are already well documented in the schema. The description adds no meaning beyond the schema, which is acceptable given the high coverage, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and the resource 'channels the user subscribes to,' which clearly identifies the operation. It implicitly distinguishes itself from siblings like google_youtube_my_videos and google_youtube_list_playlists by focusing on subscriptions, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The agent must infer usage from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_youtube_update_videoUpdate YouTube video metadataC
Update a video's title, description, tags or privacy status.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | New video tags. | |
| title | No | New video title. | |
| account | No | Account nickname to use. | |
| videoId | Yes | YouTube video ID. | |
| description | No | New video description. | |
| privacyStatus | No | New privacy status. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, but it discloses only which fields are mutable. It omits whether this is a partial or full update (whether unspecified fields are cleared), auth/scope requirements, quota implications, and whether changes are reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the verb and target up front and no wasted words. Appropriately sized, though its brevity is partly under-specification rather than pure conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is too thin. It lacks update semantics (partial vs full overwrite), permission requirements, and any note about the return or confirmation behavior an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each of the six parameters is already documented in the schema. The description merely enumerates four of those fields and adds no format, constraint, or default detail beyond them, matching the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Update') and resource ('video's title, description, tags or privacy status'), making it clear this edits an existing video's metadata. It is distinguishable from google_youtube_upload (new content) and google_youtube_get_video (read), though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no contrast with sibling tools such as google_youtube_upload. An agent must infer that this only modifies already-uploaded videos rather than creating new ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_youtube_uploadUpload YouTube videoB
Upload a video to YouTube. Provide a local file path (preferred) or base64 content. Defaults to private.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Local file path of the video (preferred). | |
| tags | No | Video tags. | |
| title | Yes | Video title. | |
| account | No | Account nickname to use. | |
| content | No | Base64-encoded video bytes (small files only). Mutually exclusive with path. | |
| categoryId | No | YouTube category ID. | |
| description | No | Video description. | |
| privacyStatus | No | Privacy (default private). | |
| notifySubscribers | No | Notify subscribers (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Defaults to private' is the only behavioral disclosure, and that merely restates the privacyStatus schema default. Nothing is said about the quota-heavy nature of YouTube uploads, permission requirements, file-size limits, or the result of the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and free of filler. The final sentence duplicates a schema default, which is a slight redundancy but not wasteful enough to drop below a 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter mutation tool with no annotations and no output schema, the description is thin. The schema covers inputs well, but the agent gets no insight into auth/account requirements, quota cost, or failure behavior for a potentially expensive upload operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 9 parameters. The description reiterates the path-vs-content preference and the private default, adding only marginal emphasis over what the schema states. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Upload a video to YouTube'), which is clearly distinct from siblings like google_youtube_update_video, google_youtube_get_video, or google_youtube_add_to_playlist. It just doesn't explicitly name those alternatives to help disambiguate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives parameter-choice guidance ('local file path (preferred) or base64 content'), which steers the agent toward the better input. However, it offers no guidance on when to use this tool versus alternatives, nor any prerequisites such as auth or account selection.
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.
25 tool updates
v0.1.95- Changed
google_calendar_list_calendars1 field changed- added
Input schema / properties / pageTokenAdded value: +{ + "description": "Page token from a previous result's nextPageToken.", + "type": "string" +}
- Changed
google_calendar_list_events1 field changed- added
Input schema / properties / pageTokenAdded value: +{ + "description": "Page token from a previous result's nextPageToken.", + "type": "string" +}
- Changed
google_calendar_update_event2 fields changed- changed
Input schema / properties / end / descriptionPrevious value: -"New end RFC3339 datetime."New value: +"New end RFC3339 datetime (or YYYY-MM-DD for all-day). Given alone, the start keeps the current duration." - changed
Input schema / properties / start / descriptionPrevious value: -"New start RFC3339 datetime."New value: +"New start RFC3339 datetime (or YYYY-MM-DD for all-day). Given alone, the end keeps the current duration."
- Changed
google_contacts_list1 field changed- added
Input schema / properties / pageTokenAdded value: +{ + "description": "Page token from a previous result's nextPageToken.", + "type": "string" +}
- Changed
google_docs_delete_range4 fields changed- changed
Input schema / properties / endIndex / descriptionPrevious value: -"0-based end index (exclusive)."New value: +"1-based end index (exclusive)." - changed
Input schema / properties / endIndex / minimumPrevious value: --9007199254740991New value: +2 - changed
Input schema / properties / startIndex / descriptionPrevious value: -"0-based start index (inclusive)."New value: +"1-based start index (inclusive)." - changed
Input schema / properties / startIndex / minimumPrevious value: --9007199254740991New value: +1
- Changed
google_docs_insert_inline_image2 fields changed- changed
Input schema / properties / index / descriptionPrevious value: -"0-based index inside an existing paragraph."New value: +"1-based index inside an existing paragraph." - changed
Input schema / properties / index / minimumPrevious value: --9007199254740991New value: +1
- Changed
google_docs_insert_table2 fields changed- changed
Input schema / properties / index / descriptionPrevious value: -"0-based index where the table is inserted."New value: +"1-based index where the table is inserted." - changed
Input schema / properties / index / minimumPrevious value: --9007199254740991New value: +1
- Changed
google_docs_insert_text2 fields changed- changed
Input schema / properties / index / descriptionPrevious value: -"Character index to insert at (default end of document)."New value: +"1-based character index to insert at (default end of document)." - changed
Input schema / properties / index / minimumPrevious value: -0New value: +1
- Changed
google_drive_download1 field changed- changed
Input schema / properties / saveToPath / descriptionPrevious value: -"Local path to write the raw bytes to (returns { savedTo } instead of data)."New value: +"Local path to write the raw bytes to (returns { savedTo }). Must be inside the save root: GOOGLE_MCP_SAVE_ROOT, default ~/Downloads."
- Changed
google_drive_export1 field changed- added
Input schema / properties / saveToPathAdded value: +{ + "description": "Local path to write the exported bytes to (returns { savedTo }). Must be inside the save root: GOOGLE_MCP_SAVE_ROOT, default ~/Downloads.", + "type": "string" +}
- Changed
google_drive_list1 field changed- added
Input schema / properties / pageTokenAdded value: +{ + "description": "Page token from a previous result's nextPageToken.", + "type": "string" +}
- Changed
google_forms_responses1 field changed- added
Input schema / properties / pageTokenAdded value: +{ + "description": "Token from a previous page's nextPageToken.", + "type": "string" +}
- Changed
google_gmail_drafts_list1 field changed- added
Input schema / properties / pageTokenAdded value: +{ + "description": "Token from a previous page's nextPageToken.", + "type": "string" +}
- Changed
google_gmail_get_attachment2 fields changed- added
Input schema / properties / maxBytesAdded value: +{ + "description": "Inline size limit in bytes (default 6 MB), measured on the JSON-RPC frame the client receives. Escaping can inflate a payload (base64 ~1.33x, NUL-heavy text ~7x). Ignored when saving to disk.", + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" +} - added
Input schema / properties / saveToPathAdded value: +{ + "description": "Local path to write the raw bytes to (returns savedTo and kind \"saved\" instead of an inline payload). Must be inside the save root: GOOGLE_MCP_SAVE_ROOT, default ~/Downloads.", + "type": "string" +}
- Changed
google_gmail_list1 field changed- added
Input schema / properties / pageTokenAdded value: +{ + "description": "Page token from a previous result's nextPageToken.", + "type": "string" +}
- Changed
google_gmail_threads_list1 field changed- added
Input schema / properties / pageTokenAdded value: +{ + "description": "Page token from a previous result's nextPageToken.", + "type": "string" +}
- Changed
google_sheets_delete_rows1 field changed- changed
Input schema / properties / startIndex / minimumPrevious value: --9007199254740991New value: +0
- Changed
google_sheets_insert_rows1 field changed- changed
Input schema / properties / startIndex / minimumPrevious value: --9007199254740991New value: +0
- Changed
google_tasks_list1 field changed- added
Input schema / properties / pageTokenAdded value: +{ + "description": "Page token from a previous result's nextPageToken.", + "type": "string" +}
- Changed
google_tasks_list_lists1 field changed- added
Input schema / properties / pageTokenAdded value: +{ + "description": "Page token from a previous result's nextPageToken.", + "type": "string" +}
- Changed
google_youtube_list_comments1 field changed- added
Input schema / properties / pageTokenAdded value: +{ + "description": "Page token from a previous result's nextPageToken.", + "type": "string" +}
- Changed
google_youtube_list_playlists1 field changed- added
Input schema / properties / pageTokenAdded value: +{ + "description": "Token from a previous page's nextPageToken.", + "type": "string" +}
- Changed
google_youtube_my_videos1 field changed- added
Input schema / properties / pageTokenAdded value: +{ + "description": "Token from a previous page's nextPageToken.", + "type": "string" +}
- Changed
google_youtube_search1 field changed- added
Input schema / properties / pageTokenAdded value: +{ + "description": "Token from a previous page's nextPageToken.", + "type": "string" +}
- Changed
google_youtube_subscriptions1 field changed- added
Input schema / properties / pageTokenAdded value: +{ + "description": "Token from a previous page's nextPageToken.", + "type": "string" +}
67 tool updates
v0.1.60- Added
google_calendar_create - Changed
google_calendar_create_event8 fields changed- added
Input schema / properties / colorIdAdded value: +{ + "description": "Event color ID (1-11).", + "type": "string" +} - added
Input schema / properties / recurrenceAdded value: +{ + "description": "RRULE strings, e.g. [\"RRULE:FREQ=WEEKLY;BYDAY=TH\"].", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / reminderMethodAdded value: +{ + "description": "Reminder delivery method.", + "enum": [ + "email", + "popup" + ], + "type": "string" +} - added
Input schema / properties / reminderMinutesAdded value: +{ + "description": "Minutes before event.", + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" +} - added
Input schema / properties / remindersUseDefaultAdded value: +{ + "description": "Use calendar default reminders instead of overrides.", + "type": "boolean" +} - added
Input schema / properties / sendUpdatesAdded value: +{ + "description": "Control attendee notification emails.", + "enum": [ + "all", + "externalOnly", + "none" + ], + "type": "string" +} - added
Input schema / properties / timeZoneAdded value: +{ + "description": "IANA time zone, e.g. America/Denver. Required for recurring timed events.", + "type": "string" +} - added
Input schema / properties / transparencyAdded value: +{ + "description": "Show as busy (opaque) or free (transparent).", + "enum": [ + "opaque", + "transparent" + ], + "type": "string" +}
- Added
google_calendar_delete - Added
google_calendar_free_busy - Added
google_calendar_respond - Added
google_calendar_update - Changed
google_calendar_update_event8 fields changed- added
Input schema / properties / colorIdAdded value: +{ + "description": "Event color ID (1-11).", + "type": "string" +} - added
Input schema / properties / recurrenceAdded value: +{ + "description": "RRULE strings, e.g. [\"RRULE:FREQ=WEEKLY;BYDAY=TH\"].", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / reminderMethodAdded value: +{ + "description": "Reminder delivery method.", + "enum": [ + "email", + "popup" + ], + "type": "string" +} - added
Input schema / properties / reminderMinutesAdded value: +{ + "description": "Minutes before event.", + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" +} - added
Input schema / properties / remindersUseDefaultAdded value: +{ + "description": "Use calendar default reminders instead of overrides.", + "type": "boolean" +} - added
Input schema / properties / sendUpdatesAdded value: +{ + "description": "Control attendee notification emails.", + "enum": [ + "all", + "externalOnly", + "none" + ], + "type": "string" +} - added
Input schema / properties / timeZoneAdded value: +{ + "description": "IANA time zone, e.g. America/Denver. Required when updating to recurring timed events.", + "type": "string" +} - added
Input schema / properties / transparencyAdded value: +{ + "description": "Show as busy (opaque) or free (transparent).", + "enum": [ + "opaque", + "transparent" + ], + "type": "string" +}
- Changed
google_contacts_create3 fields changed- added
Input schema / properties / addressAdded value: +{ + "description": "Freeform postal address.", + "type": "string" +} - added
Input schema / properties / organizationAdded value: +{ + "type": "string" +} - added
Input schema / properties / photoBytesAdded value: +{ + "description": "Base64-encoded photo bytes (JPEG/PNG).", + "type": "string" +}
- Added
google_contacts_delete - Added
google_contacts_get - Added
google_contacts_update - Added
google_docs_delete_range - Added
google_docs_insert_inline_image - Added
google_docs_insert_table - Added
google_drive_delete_permission - Changed
google_drive_download1 field changed- added
Input schema / properties / saveToPathAdded value: +{ + "description": "Local path to write the raw bytes to (returns { savedTo } instead of data).", + "type": "string" +}
- Added
google_drive_list_permissions - Added
google_drive_move - Added
google_drive_restore - Changed
google_drive_share6 fields changed- added
Input schema / properties / domainAdded value: +{ + "description": "Domain for type=domain, e.g. example.com.", + "type": "string" +} - changed
Input schema / properties / email / descriptionPrevious value: -"Recipient email."New value: +"Recipient email (required for type user/group)." - changed
Input schema / properties / role / enumPrevious value: -[ - "reader", - "writer", - "commenter" -]New value: +[ + "reader", + "writer", + "commenter", + "owner" +] - added
Input schema / properties / transferOwnershipAdded value: +{ + "description": "Transfer ownership to the recipient (requires role=owner).", + "type": "boolean" +} - added
Input schema / properties / typeAdded value: +{ + "description": "Permission type (default user).", + "enum": [ + "user", + "group", + "anyone", + "domain" + ], + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "fileId", - "email", - "role" -]New value: +[ + "fileId", + "role" +]
- Added
google_drive_trash - Changed
google_drive_update1 field changed- added
Input schema / properties / pathAdded value: +{ + "description": "Local file path to upload as new content (reads raw bytes; use instead of content).", + "type": "string" +}
- Changed
google_drive_upload2 fields changed- changed
Input schema / properties / mimeType / descriptionPrevious value: -"MIME type (e.g. text/plain, application/vnd.google-apps.document)."New value: +"MIME type (e.g. text/plain, image/png, application/vnd.google-apps.document)." - added
Input schema / properties / pathAdded value: +{ + "description": "Local file path to upload (reads raw bytes from disk; use instead of content).", + "type": "string" +}
- Added
google_forms_delete - Added
google_forms_delete_question - Added
google_forms_export_responses - Added
google_forms_move_question - Added
google_forms_rename - Added
google_forms_update_question - Changed
google_gmail_drafts_create5 fields changed- added
Input schema / properties / attachments / items / properties / cidAdded value: +{ + "description": "Content-ID for inline parts so HTML can reference them as cid:<cid>.", + "type": "string" +} - added
Input schema / properties / attachments / items / properties / dispositionAdded value: +{ + "description": "How the part is presented (default attachment; inline embeds it in the body).", + "enum": [ + "attachment", + "inline" + ], + "type": "string" +} - added
Input schema / properties / driveFileIdsAdded value: +{ + "description": "Drive file IDs to attach by reference (downloaded under the Gmail size limit).", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / fromAdded value: +{ + "description": "Send-as alias or address to set as the From header.", + "type": "string" +} - added
Input schema / properties / replyToAdded value: +{ + "description": "Address to set as the Reply-To header.", + "type": "string" +}
- Added
google_gmail_drafts_update - Added
google_gmail_filters_create - Added
google_gmail_filters_delete - Added
google_gmail_filters_list - Added
google_gmail_labels_update - Changed
google_gmail_reply5 fields changed- added
Input schema / properties / attachments / items / properties / cidAdded value: +{ + "description": "Content-ID for inline parts so HTML can reference them as cid:<cid>.", + "type": "string" +} - added
Input schema / properties / attachments / items / properties / dispositionAdded value: +{ + "description": "How the part is presented (default attachment; inline embeds it in the body).", + "enum": [ + "attachment", + "inline" + ], + "type": "string" +} - added
Input schema / properties / driveFileIdsAdded value: +{ + "description": "Drive file IDs to attach by reference (downloaded under the Gmail size limit).", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / fromAdded value: +{ + "description": "Send-as alias or address to set as the From header.", + "type": "string" +} - added
Input schema / properties / replyToAdded value: +{ + "description": "Address to set as the Reply-To header.", + "type": "string" +}
- Changed
google_gmail_send5 fields changed- added
Input schema / properties / attachments / items / properties / cidAdded value: +{ + "description": "Content-ID for inline parts so HTML can reference them as cid:<cid>.", + "type": "string" +} - added
Input schema / properties / attachments / items / properties / dispositionAdded value: +{ + "description": "How the part is presented (default attachment; inline embeds it in the body).", + "enum": [ + "attachment", + "inline" + ], + "type": "string" +} - added
Input schema / properties / driveFileIdsAdded value: +{ + "description": "Drive file IDs to attach by reference (downloaded under the Gmail size limit).", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / fromAdded value: +{ + "description": "Send-as alias or address to set as the From header.", + "type": "string" +} - added
Input schema / properties / replyToAdded value: +{ + "description": "Address to set as the Reply-To header.", + "type": "string" +}
- Added
google_gmail_sendas_create - Added
google_gmail_sendas_list - Added
google_gmail_threads_get - Added
google_gmail_threads_list - Added
google_gmail_vacation_get - Added
google_gmail_vacation_update - Added
google_sheets_add_sheet - Added
google_sheets_delete_rows - Added
google_sheets_delete_sheet - Added
google_sheets_get_named_ranges - Added
google_sheets_insert_rows - Added
google_sheets_rename_sheet - Added
google_sheets_set_named_range - Added
google_slides_create_image - Added
google_slides_create_textbox - Added
google_slides_duplicate_slide - Added
google_slides_move_slide - Changed
google_tasks_create1 field changed- added
Input schema / properties / parentTaskIdAdded value: +{ + "description": "Parent task ID to create a subtask.", + "type": "string" +}
- Added
google_tasks_create_list - Added
google_tasks_delete_list - Changed
google_tasks_list2 fields changed- added
Input schema / properties / dueAfterAdded value: +{ + "description": "Only tasks due at or after this RFC3339 datetime.", + "type": "string" +} - added
Input schema / properties / dueBeforeAdded value: +{ + "description": "Only tasks due at or before this RFC3339 datetime.", + "type": "string" +}
- Added
google_tasks_update - Added
google_tasks_update_list - Added
google_youtube_insert_comment - Added
google_youtube_list_comments - Added
google_youtube_mark_comment_spam - Added
google_youtube_remove_from_playlist - Added
google_youtube_set_comment_moderation - Added
google_youtube_update_video - Added
google_youtube_upload
77 tool updates
v0.1.30- Changed
google_account_add1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_account_remove1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_account_set_default1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_calendar_create_event2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / attendees / items / patternAdded value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
- Changed
google_calendar_create_meet2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / attendees / items / patternAdded value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
- Changed
google_calendar_delete_event1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_calendar_get_event1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_calendar_list_calendars1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_calendar_list_events1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_calendar_update_event2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / attendees / items / patternAdded value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
- Changed
google_contacts_create2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / email / patternAdded value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
- Changed
google_contacts_list1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_contacts_search1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_docs_batch_update2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / requests / items / propertyNamesAdded value: +{ + "type": "string" +}
- Changed
google_docs_create1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_docs_get1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_docs_insert_text2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / index / maximumAdded value: +9007199254740991
- Changed
google_docs_read1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_docs_replace_text1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Added
google_drive_copy - Added
google_drive_create_folder - Changed
google_drive_delete1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Added
google_drive_download - Added
google_drive_export - Changed
google_drive_get1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_drive_list1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_drive_share2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / email / patternAdded value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
- Changed
google_drive_update1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_drive_upload1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_forms_add_question1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_forms_create1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_forms_get1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_forms_responses1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Added
google_gmail_delete - Added
google_gmail_drafts_create - Added
google_gmail_drafts_delete - Added
google_gmail_drafts_get - Added
google_gmail_drafts_list - Added
google_gmail_drafts_send - Changed
google_gmail_get1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Added
google_gmail_get_attachment - Added
google_gmail_labels_create - Added
google_gmail_labels_delete - Added
google_gmail_labels_list - Changed
google_gmail_list1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Added
google_gmail_list_attachments - Changed
google_gmail_modify1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_gmail_reply2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / attachmentsAdded value: +{ + "description": "Local files to attach to the reply.", + "items": { + "properties": { + "filename": { + "description": "Attachment filename shown to recipients (defaults to the basename of path).", + "type": "string" + }, + "mimeType": { + "description": "MIME type override (defaults to a guess from the filename).", + "type": "string" + }, + "path": { + "description": "Local filesystem path of the file to attach.", + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "type": "array" +}
- Changed
google_gmail_send2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / attachmentsAdded value: +{ + "description": "Local files to attach to the email.", + "items": { + "properties": { + "filename": { + "description": "Attachment filename shown to recipients (defaults to the basename of path).", + "type": "string" + }, + "mimeType": { + "description": "MIME type override (defaults to a guess from the filename).", + "type": "string" + }, + "path": { + "description": "Local filesystem path of the file to attach.", + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "type": "array" +}
- Added
google_gmail_trash - Added
google_gmail_untrash - Changed
google_sheets_append1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_sheets_batch_update2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - added
Input schema / properties / requests / items / propertyNamesAdded value: +{ + "type": "string" +}
- Changed
google_sheets_create1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_sheets_get1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_sheets_read1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_sheets_write1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_slides_add_slide1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Added
google_slides_batch_update - Changed
google_slides_create1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_slides_delete_slide1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_slides_get1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Added
google_slides_get_page - Changed
google_slides_replace_text1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_tasks_complete1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_tasks_create1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_tasks_delete1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_tasks_list1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_tasks_list_lists1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_youtube_add_to_playlist1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_youtube_create_playlist1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_youtube_delete_playlist1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_youtube_get_video1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_youtube_list_playlists1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_youtube_my_videos1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_youtube_search1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
google_youtube_subscriptions1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
60 tool updates
v0.1.0- First observed
google_account_add - First observed
google_account_list - First observed
google_account_remove - First observed
google_account_set_default - First observed
google_account_status - First observed
google_calendar_create_event - First observed
google_calendar_create_meet - First observed
google_calendar_delete_event - First observed
google_calendar_get_event - First observed
google_calendar_list_calendars - First observed
google_calendar_list_events - First observed
google_calendar_update_event - First observed
google_contacts_create - First observed
google_contacts_list - First observed
google_contacts_search - First observed
google_docs_batch_update - First observed
google_docs_create - First observed
google_docs_get - First observed
google_docs_insert_text - First observed
google_docs_read - First observed
google_docs_replace_text - First observed
google_drive_delete - First observed
google_drive_get - First observed
google_drive_list - First observed
google_drive_share - First observed
google_drive_update - First observed
google_drive_upload - First observed
google_forms_add_question - First observed
google_forms_create - First observed
google_forms_get - First observed
google_forms_responses - First observed
google_gmail_get - First observed
google_gmail_list - First observed
google_gmail_modify - First observed
google_gmail_reply - First observed
google_gmail_send - First observed
google_sheets_append - First observed
google_sheets_batch_update - First observed
google_sheets_create - First observed
google_sheets_get - First observed
google_sheets_read - First observed
google_sheets_write - First observed
google_slides_add_slide - First observed
google_slides_create - First observed
google_slides_delete_slide - First observed
google_slides_get - First observed
google_slides_replace_text - First observed
google_tasks_complete - First observed
google_tasks_create - First observed
google_tasks_delete - First observed
google_tasks_list - First observed
google_tasks_list_lists - First observed
google_youtube_add_to_playlist - First observed
google_youtube_create_playlist - First observed
google_youtube_delete_playlist - First observed
google_youtube_get_video - First observed
google_youtube_list_playlists - First observed
google_youtube_my_videos - First observed
google_youtube_search - First observed
google_youtube_subscriptions
TDQS
Scored across 134 tools
Most tools are scoped to a service plus action, but several pairs overlap: google_sheets_get vs google_sheets_read, google_docs_get vs google_docs_read, and google_calendar_create vs google_calendar_create_event. Descriptions differentiate most cases, but with 134 tools the agent still faces meaningful selection ambiguity.
The set consistently uses snake_case with a google_<service>_<action> prefix, making most names predictable. Minor deviations such as google_gmail_threads_list, google_gmail_drafts_create, google_youtube_subscriptions, and google_youtube_my_videos keep it from perfect consistency.
At 134 tools, this is far beyond any well-scoped range; even a multi-service aggregator would typically be split into per-service servers. The enormous surface creates high cognitive load and makes tool selection expensive.
Coverage is broad across Gmail, Calendar, Drive, Contacts, Tasks, Sheets, Docs, Slides, YouTube, and Forms, with CRUD/lifecycle operations for most resources. Minor gaps remain, such as YouTube playlist item listing, comment deletion/update, and some Gmail send-as/filter update operations.
Maintenance
Related MCP Connectors
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
Email infrastructure for AI agents — send, receive, search, and reply to email over MCP.
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
Related MCP Servers
- AlicenseBqualityAmaintenanceMCP server integrating multiple Google Workspace services including Gmail, Calendar, Drive, Sheets, Docs, Tasks, People, Forms, and Slides, enabling users to manage emails, events, files, documents, and more through natural language.15MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that exposes 17 Google Workspace APIs (e.g., Gmail, Drive, Calendar) as auto-generated tools for AI assistants, enabling natural language control of Google services.-
- AlicenseNot gradedqualityBmaintenanceLocal MCP server for reading/sending email via Gmail and managing Google Calendar events, enabling an AI agent to handle email and calendar operations through natural language.MIT
- FlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI assistants to manage Google Workspace (Gmail and Calendar) through natural language, including reading/sending emails, managing events, and checking availability.-