MCP Google Multi-Account Server
This server lets Claude (or any MCP client) connect to one or more Google accounts via OAuth and work with Gmail, Google Drive, and Google Calendar using natural language.
Multi-account management: add, list, reauth, label, alias, describe, and remove multiple Google accounts while preserving identity and settings on reauth.
Gmail reading: search messages with Gmail query syntax, fetch messages/threads, list and download attachments.
Gmail composing: create, preview, update, delete, and send drafts (with confirmation), including attachments and threaded replies.
Gmail inbox management: manage labels, mark read/unread, archive, trash, restore, and batch-modify messages.
Gmail settings: create/list/delete filters and configure the vacation auto-responder.
Google Drive: search and list files, preview or download full content, upload files, create folders, move/copy/rename/trash files, and share or update permissions, including Shared Drives.
Google Calendar: list calendars, list/search/get events, check free/busy, create/update/delete events, RSVP, and move events between calendars.
Safety controls: confirmations required before sending email, sharing Drive files, deleting items, creating filters, and sending calendar invitations.
Capability-based scoping: accounts can be granted read-only, compose, full mail, settings, drive, or calendar tiers independently.
Provides tools for reading, searching, composing, sending, and managing emails across multiple Gmail accounts, including labels, archive, trash, filters, and vacation responders.
Provides tools for viewing, creating, updating, and managing calendar events.
Provides tools for browsing, searching, previewing, downloading to disk, uploading from disk, and sharing files.
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., "@MCP Google Multi-Account ServerCheck my unread Gmail"
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.
MCP Google Multi-Account Server
Beta Notice: This package uses OAuth credentials that are pending Google's verification review. During this period, access is by-invite only — you must be added as a test user in the Google Cloud Console to complete OAuth. Alternatively, you can bring your own OAuth credentials. Once Google approval is granted, this notice will be removed.
An MCP (Model Context Protocol) server for accessing multiple Google accounts from Claude Code, Claude Desktop, or any MCP-compatible client. Supports Gmail, Google Drive, and Google Calendar.
Just talk to Claude naturally:
"Check my email"
"Find messages from my boss this week"
"Write a reply thanking them for the update"
"Send it"No special commands to memorize - Claude understands what you want.
Quick Start
No Google Cloud setup needed -- just install and connect your Google account:
Claude Code CLI:
claude mcp add proGoogleMCP -- npx -y @procedure-tech/mcp-googleClaude Desktop -- add to your claude_desktop_config.json:
{
"mcpServers": {
"proGoogleMCP": {
"command": "npx",
"args": ["-y", "@procedure-tech/mcp-google"]
}
}
}Then use the google_add_account tool to connect your Google account. That's it!
Related MCP server: Google Workspace MCP
Features
Zero config: Works out of the box -- no Google Cloud project setup required
Natural language: Just describe what you want - "find my unread emails", "draft a reply"
Multi-account support: Connect work, personal, and other accounts - search across all of them
Full Gmail access: Search, read, compose, send, and organize emails
Google Drive: Search, preview, download to disk, upload from disk, and share files
Google Calendar: View, create, update, and manage events
Attachments: Download and send file attachments
Inbox management: Labels, archive, trash, read/unread status
Filters & vacation: Create email filters and configure vacation responders
AI productivity: Thread summaries, smart reply suggestions, action item extraction
Safety first: All sends require confirmation - Claude shows you the draft before sending
Privacy focused: All credentials stored locally on your machine
Installation
From npm
npx -y @procedure-tech/mcp-googleLocal Development
git clone https://github.com/bkbaheti/google-multi-account-mcp.git
cd google-multi-account-mcp
pnpm install
pnpm buildPrerequisites
Node.js 20+ - Required runtime
Claude Code or Claude Desktop - MCP client to connect to this server
That's it! OAuth credentials are built in. See Advanced: Bring Your Own OAuth Credentials if you want to use your own GCP project.
Configuration
Configure Claude Code (CLI)
# Add to current project only (default)
claude mcp add proGoogleMCP -- npx -y @procedure-tech/mcp-google
# Add globally (available in all projects)
claude mcp add -s user proGoogleMCP -- npx -y @procedure-tech/mcp-google
# With passphrase for token encryption
claude mcp add -s user proGoogleMCP -e MCP_GOOGLE_PASSPHRASE=optional-passphrase -- npx -y @procedure-tech/mcp-googleTo verify or remove:
claude mcp list # List configured servers
claude mcp remove proGoogleMCP # Remove this serverConfigure Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"proGoogleMCP": {
"command": "npx",
"args": ["-y", "@procedure-tech/mcp-google"]
}
}
}Advanced: Bring Your Own OAuth Credentials
If you prefer to use your own GCP project, you can override the built-in defaults:
Environment variables: Set
GOOGLE_CLIENT_IDandGOOGLE_CLIENT_SECRETConfig file: Add
oauth.clientIdandoauth.clientSecretto~/.config/mcp-google/config.json
Priority: environment variables > config file > built-in defaults.
Step 1: Create a Google Cloud Project
Go to Google Cloud Console
Create a new project (or select an existing one)
Step 2: Enable APIs
Go to APIs & Services > Library
Enable the APIs you need: Gmail API, Google Drive API, Google Calendar API
Step 3: Configure OAuth Consent Screen
Go to APIs & Services > OAuth consent screen
Select External user type (unless you have Google Workspace)
Fill in the required fields (app name, support email, developer contact)
Add the scopes you need (e.g., Gmail, Drive, Calendar)
Add your Google email as a test user
Step 4: Create OAuth 2.0 Client ID
Go to APIs & Services > Credentials
Click Create Credentials > OAuth client ID
Select Desktop app as the application type
Copy the Client ID and Client Secret
Step 5: Redirect URI — nothing to configure
Desktop app clients have no "Authorized redirect URIs" field, and none is
needed. The server binds an OS-assigned port on 127.0.0.1 for each OAuth
flow and Google accepts any loopback port for this client type.
If you created a Web application client instead, the loopback flow will not work — Web clients require every redirect URI to be registered exactly, and the port is not fixed. Create a Desktop app client.
Step 6: Configure
Set via environment variables:
export GOOGLE_CLIENT_ID="your-client-id.apps.googleusercontent.com"
export GOOGLE_CLIENT_SECRET="your-client-secret"Or add to ~/.config/mcp-google/config.json:
{
"version": 1,
"oauth": {
"clientId": "your-client-id.apps.googleusercontent.com",
"clientSecret": "your-client-secret"
}
}Usage
Getting Started
Start Claude Code (or restart if already running to pick up config changes)
Verify the server is connected and check the version:
"What version of the Google MCP server is running?"Claude will show the version, git commit, and build date.
Add a Google account:
"Add my Gmail account"Claude will:
Ask which capabilities you need — pick a preset (
read-only,inbox-assistant,scheduler) or choose individual capabilities likemail:readordrive:appfilesShow you an authorization URL to open in your browser
After you complete OAuth in the browser, Claude will confirm the account was added
Start using your email:
"Find my unread emails" "Search for emails from john@example.com" "Draft a reply to the last email"
Note: These examples are natural language - Claude understands your intent and uses the appropriate MCP tools automatically. You don't need to know the tool names.
Example Conversations
Here are some real-world examples of how to interact with Claude using this MCP server:
Reading and Searching Email
You: "Check my email for anything from Amazon in the last week"
Claude: [Searches and returns matching emails with subjects, dates, and snippets]
You: "Show me the full email about my order"
Claude: [Fetches the complete message with body content]
You: "What attachments are in that email?"
Claude: [Lists any attachments with filenames and sizes]Composing and Sending
You: "Write an email to sarah@example.com thanking her for the meeting"
Claude: I'll draft that email for you.
[Creates draft]
Here's the draft:
To: sarah@example.com
Subject: Thank you for the meeting
...
Would you like me to send it, or make any changes?
You: "Looks good, send it"
Claude: [Sends the email with confirmation]Managing Your Inbox
You: "Archive all emails from newsletters@example.com"
Claude: [Archives matching messages]
You: "Create a label called 'Urgent' with a red color"
Claude: [Creates the label]
You: "Mark the last 5 unread emails as read"
Claude: [Updates the messages]Multi-Account Workflows
You: "Add my work Gmail account"
Claude: Which capabilities would you like?
- read-only: Read mail, Drive, and calendar (preset)
- inbox-assistant: Read, send, and organize mail (preset)
- Or pick individual capabilities: mail:read, mail:compose, mail:modify, ...
You: "inbox-assistant, please"
Claude: [Opens OAuth flow for work account]
You: "Label my work account as 'work' and my personal as 'personal'"
Claude: [Sets labels on both accounts]
You: "Search for 'project update' across all my accounts"
Claude: [Searches both accounts and shows combined results]AI-Powered Productivity
You: "Summarize this email thread"
Claude: [Analyzes the thread and provides]:
- Main topic: Q3 budget review
- Participants: Finance team (5 people)
- Key decisions: Budget approved with 10% increase
- Action items: Submit receipts by Friday
You: "What action items do I have from my unread emails?"
Claude: [Scans unread messages and extracts tasks with deadlines]
You: "Suggest a reply to the last email"
Claude: Based on the context, here are 3 options:
1. Brief: "Thanks, I'll review and get back to you."
2. Detailed: [longer response addressing all points]
...
Which would you like me to draft?Setting Up Automation
You: "Create a filter to auto-archive emails from noreply@example.com"
Claude: I'll create that filter. This will automatically archive
all future emails from that sender. Confirm?
You: "Yes"
Claude: [Creates the filter]
You: "Set up my vacation responder - I'm out Dec 20-27"
Claude: What message would you like to send?
You: "Just say I'm on holiday and will respond when I return"
Claude: [Configures vacation responder with dates]Capabilities
When adding an account, Claude will ask which capabilities you need. Each capability is an independent, per-service grant — pick only what you actually need:
Capability | Can do | Cannot do | Reach | Scopes |
| Read and search your email, and list your labels. | Cannot send, reply, label, archive or delete anything. | Every message and label in the mailbox. |
|
| Write drafts and send email. Despite the name, this capability sends — it does not only compose. | Cannot read any message already in your mailbox, not even replies to what it sends. | Drafts and messages this capability creates. |
|
| Read, send, and organise mail: labels, archive, trash. Includes everything mail:read and mail:compose do — you do not need to grant those as well. | Cannot manage filters or the vacation auto-reply. | Every message and label in the mailbox. |
|
| Manage filters and the vacation auto-reply. | Cannot read or send mail. | Mailbox-wide filter and vacation-responder settings. |
|
| See and download every file in this Drive, read-only. Includes files other people shared with you, and every Shared Drive you belong to. | Cannot create, edit, move or share anything. | Every file and Shared Drive the account can see. |
|
| Create files and folders, and read, edit, share and delete the ones within its reach. | Cannot see anything else in your Drive — searches return an empty list rather than an error. | Files this server created, plus files you explicitly opened with it. |
|
| See your calendars, your events, and when you are free or busy. Required to list which calendars exist. | Cannot create or change events. | Every calendar the account can see. |
|
| Create, edit, move, delete events, and RSVP. | Cannot list your calendars or check free/busy — grant calendar:read as well, or the agent can only reach the "primary" calendar. | Events on calendars the account can write to. |
|
How it works:
Capabilities are independent per service — grant any combination you like.
The one exception:
mail:modifyalready includes everythingmail:readandmail:composedo, so you never need to grant those alongside it.drive:readanddrive:appfilesare deliberately independent, not tiers of each other —drive:readsees everything in the Drive read-only,drive:appfilescan create/edit/delete but only within files this app touched. Grant both if you want broad read plus app-created writes.For the common cases, start from a preset instead of picking capabilities one by one:
read-only→mail:read,drive:read,calendar:readinbox-assistant→mail:modify(read, send, and organize mail)scheduler→calendar:read+calendar:write
Presets are just a shortcut — they expand to the same capabilities above before anything is stored, and you can still add more on top.
Examples:
You: "Add my Gmail account"
Claude: Which capabilities would you like? Pick a preset (read-only,
inbox-assistant, scheduler) or choose individually.
[Shows options]
You: "I just want to read emails"
Claude: [Adds with mail:read]
You: "Actually, I need to send emails too"
Claude: I'll reauth this account to add mail:compose — your account ID,
alias, and labels all stay the same. Want me to do that?Available Tools
You don't need to memorize tool names - just describe what you want. Here's what's available:
Account Management
Just Say... | What Happens |
"Show my Google accounts" | Lists all connected accounts |
"Add my Gmail account" | Starts OAuth flow to add account |
"Reconnect my work account" | Re-runs OAuth, keeps alias/labels/ID |
"Give my account Drive read access" | Reauths with |
"Remove my work account" | Disconnects account and revokes tokens |
"Label this account as 'personal'" | Tags account for easy reference |
Reading Email (mail:read)
Just Say... | What Happens |
"Find emails from john@example.com" | Searches with Gmail query syntax |
"Show me unread emails from this week" | Returns matching messages |
"Get the full email about the project" | Fetches complete message content |
"Show me that entire conversation" | Gets thread with all messages |
"What attachments are in this email?" | Lists files with names and sizes |
"Download the PDF attachment" | Retrieves the file data |
Gmail search tips: Use Gmail's search syntax for powerful queries:
from:someone@example.com- From specific sendersubject:meeting- Subject contains wordis:unread- Unread messages onlyhas:attachment- Messages with attachmentsnewer_than:7d- Last 7 dayslabel:important- Has specific label
Composing Email (mail:compose)
Just Say... | What Happens |
"Write an email to sarah@example.com" | Creates a draft for review |
"Draft a reply to the last email" | Creates reply with proper threading |
"Attach report.pdf to this draft" | Adds attachment to draft |
"Update the draft - change the subject" | Modifies existing draft |
"Show me my draft before sending" | Previews the draft |
"Delete that draft" | Removes the draft |
"Send the email" | Sends after confirmation |
Safety feature: All emails go through a draft-first workflow. Claude will always show you the draft and ask for confirmation before sending.
Inbox Management (mail:modify)
Just Say... | What Happens |
"Show my labels" | Lists all Gmail labels |
"Create a 'Projects' label in blue" | Creates label with color |
"Rename 'Old' label to 'Archive'" | Updates label properties |
"Delete the 'Temp' label" | Removes label (keeps messages) |
"Add the 'Important' label to this email" | Applies label to message |
"Label these 50 emails as 'Done'" | Bulk label operation |
"Mark this as read" | Changes read status |
"Archive this email" | Removes from inbox |
"Delete this email" | Moves to trash |
"Restore from trash" | Recovers deleted message |
Filters & Vacation (mail:settings)
Just Say... | What Happens |
"Show my email filters" | Lists automatic rules |
"Create a filter for newsletters" | Sets up auto-processing |
"Delete the filter for old@example.com" | Removes automation rule |
"Check my vacation settings" | Shows auto-reply config |
"Turn on vacation responder" | Enables auto-reply |
"I'm back - disable vacation reply" | Turns off auto-reply |
AI Productivity Prompts
These prompts guide Claude through complex workflows:
Just Say... | What Happens |
"Help me compose an email" | Guided drafting with preview and confirmation |
"Help me reply to this thread" | Proper threading, tone matching |
"Review my pending drafts" | Shows drafts, offers send/edit/delete |
"Summarize this email thread" | Extracts key points, decisions, action items |
"Suggest replies for this email" | Offers brief/standard/detailed options |
"What action items do I have?" | Scans emails for tasks and deadlines |
"Help me organize my inbox" | Suggests labels for uncategorized emails |
Technical Reference
Account Management:
google_version,google_list_accounts,google_add_account,google_check_pending_auth,google_reauth_account,google_remove_account,google_set_account_labels,google_set_account_alias,google_set_account_description
Gmail Reading:
gmail_search_messages,gmail_get_message,gmail_get_messages_batch,gmail_get_thread,gmail_list_attachments,gmail_get_attachment
Gmail Composing:
gmail_create_draft,gmail_create_draft_with_attachment,gmail_update_draft,gmail_get_draft,gmail_delete_draft,gmail_send_draft,gmail_reply_in_thread
Inbox Management:
gmail_list_labels,gmail_create_label,gmail_update_label,gmail_delete_label,gmail_modify_labels,gmail_batch_modify_labels,gmail_mark_read_unread,gmail_archive,gmail_trash,gmail_untrash
Settings:
gmail_list_filters,gmail_create_filter,gmail_delete_filter,gmail_get_vacation,gmail_set_vacation
Google Drive:
drive_list_shared_drives,drive_search_files,drive_list_files,drive_get_file,drive_get_file_content,drive_get_full_file_content,drive_download_file,drive_upload_file,drive_create_folder,drive_move_file,drive_copy_file,drive_rename_file,drive_trash_file,drive_share_file,drive_update_permissions— all tools work with Shared Drives (Team Drives)
Google Calendar:
calendar_list_calendars,calendar_list_events,calendar_get_event,calendar_search_events,calendar_freebusy,calendar_create_event,calendar_update_event,calendar_delete_event,calendar_rsvp,calendar_move_eventcalendar_list_calendarsreportsaccessRoleand a derivedcanEditper calendar, so a shared calendar you can only read is distinguishable from one you can write to.calendar_create_eventandcalendar_update_eventtakeaddMeet: trueto generate a Google Meet link.meetingCodeattaches an existing conference instead (a code or ahttps://meet.google.com/...URL) and needsconfirm: true, because a reused conference keeps its access bound to the original event's guest list.calendar_update_eventalso takesremoveConferencing: true.
MCP Prompts:
compose-email,reply-to-email,review-drafts,summarize-thread,smart-reply,extract-action-items,categorize-emails
MCP Resources:
accounts://list- List connected accountscache://stats- Cache statistics
Environment Variables
Variable | Description |
| Override default config file location |
| Passphrase for encrypted token storage (fallback when keychain unavailable) |
| Log level: |
Troubleshooting
"No refresh token received"
This can happen if you've previously authorized the app. To fix:
Find and remove your MCP app
Say "Add my Gmail account" again
OAuth URL not showing up
When adding an account, the OAuth authorization URL should appear in:
Claude Code: Look for a warning-level log message with the URL
Claude Desktop: Check the MCP server logs
Terminal stderr: The URL is also written to stderr with a visible banner
If you don't see the URL:
Check your MCP client's log output or notification area
The URL is also logged to stderr - check terminal output if running manually
The OAuth flow times out after 5 minutes if not completed
OAuth callback port
The callback server binds an OS-assigned port on 127.0.0.1 for each flow, so
there is no fixed port to free up and concurrent flows do not collide. Earlier
versions used a fixed port 8089; if you have a firewall rule pinned to that
port, it is no longer used.
Keychain access issues (Linux/headless)
If the OS keychain is unavailable, set MCP_GOOGLE_PASSPHRASE:
{
"env": {
"MCP_GOOGLE_PASSPHRASE": "your-secure-passphrase"
}
}Tokens will be encrypted with AES-256-GCM using this passphrase.
"Capability insufficient" errors
You're trying to do something that requires a capability the account doesn't have.
You: "Archive this email"
Claude: This account only has mail:read. Archiving needs mail:modify.
Want me to reauth this account to add it? Your account ID,
alias, and labels all stay the same.Fix: Say "Reauth this account and add mail:modify" — no need to remove and re-add; google_reauth_account preserves the account ID, alias, description, and labels while updating its capabilities.
MCP server not connecting
Verify the path in your settings is correct and absolute
Ensure you've run
pnpm buildto compile TypeScriptCheck that
dist/cli.jsexistsTry running manually:
node /path/to/dist/cli.js
Common Questions
Q: Can I use multiple Google accounts? Yes! Just say "Add another Gmail account" and repeat the OAuth flow. You can label them ("Label my work account as 'work'") and search across all of them.
Q: Will Claude send emails without asking? No. All sends require explicit confirmation. Claude will always show you the draft first and ask "Would you like me to send this?"
Q: What happens if I accidentally delete an email? Emails go to Trash first and stay there for 30 days. Say "Show my trash" or "Restore that email from trash" to recover it.
Q: Can Claude read my emails when I'm not using it? No. The MCP server only runs when Claude Code/Desktop is active, and only accesses emails when you ask it to.
Development
# Install dependencies
pnpm install
# Build TypeScript
pnpm build
# Watch mode for development
pnpm dev
# Run tests
pnpm test
# Lint and format
pnpm lint:fix
pnpm formatSecurity Notes
Zero-config OAuth: Ships with built-in OAuth credentials (Desktop app type, same pattern as gcloud CLI). You can override with your own credentials if preferred.
Local storage: All tokens are stored locally on your machine
Keychain preferred: Uses OS keychain when available, falls back to encrypted file
Draft-first: All sends require creating a draft first, then explicit confirmation
Account isolation: Each account's tokens, cache, and rate limits are isolated
License
MIT
Available Tools
63 toolscalendar_create_eventA
Create a new Google Calendar event. If attendees are included, requires confirm: true as a safety gate since it will send calendar invitations.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End time (RFC3339 for timed event) or date (YYYY-MM-DD for all-day event) | |
| start | Yes | Start time (RFC3339 for timed event, e.g., "2024-01-15T09:00:00-05:00") or date (YYYY-MM-DD for all-day event) | |
| confirm | No | Set to true to confirm creating event with attendees (sends invitations) | |
| summary | Yes | Event title/summary | |
| location | No | Event location | |
| timeZone | No | Time zone (e.g., "America/New_York"). Required for timed events without offset. | |
| accountId | Yes | The Google account ID, alias, or email | |
| attendees | No | Email addresses of attendees | |
| calendarId | No | Calendar ID (default: "primary") | |
| recurrence | No | Recurrence rules (e.g., ["RRULE:FREQ=WEEKLY;COUNT=10"]) | |
| description | No | Event description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It reveals that including attendees sends calendar invitations and requires confirm: true as a safety gate, which is a key side effect beyond the tool's name. While it doesn't cover every possible behavior, the most critical risk 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?
The description is two concise sentences, with the main purpose in the first and the critical safety condition in the second. It is front-loaded, has no unnecessary words, and every sentence adds value.
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 11 parameters and no output schema, the description covers the most important behavioral context (the confirm/attendees safety gate) while relying on the schema for parameter details. It is complete enough for an agent to avoid the main pitfall, though it could optionally mention auth or return values.
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 documents all 11 parameters with 100% coverage, providing a baseline of 3. The description adds meaningful semantic value by explaining the cross-parameter constraint that attendees require confirm: true, which isn't evident from individual parameter descriptions. This elevates the 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 states 'Create a new Google Calendar event' with a specific verb and resource, clearly distinguishing it from sibling tools like calendar_update_event, calendar_list_events, and calendar_delete_event. The added detail about confirm for attendees further clarifies the action's scope.
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 clear context for when to use the tool (creating new events) and explicitly states the condition under which confirm must be true (when attendees are included). However, it does not explicitly mention alternatives or when not to use this tool, so the guidance is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar_delete_eventA
Delete a Google Calendar event. Requires confirm: true if the event has attendees, since they will be notified of the cancellation.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set to true to confirm deleting event with attendees | |
| eventId | Yes | The event ID to delete | |
| accountId | Yes | The Google account ID, alias, or email | |
| calendarId | No | Calendar ID (default: "primary") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries a heavier burden. It discloses a key behavioral consequence (attendees will be notified of cancellation) and the confirm requirement, but it does not mention whether deletion is permanent, how it affects recurring events, or what happens if confirm is false. Partial disclosure only.
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 two sentences: the first states the purpose, the second explains the confirm requirement. It is front-loaded, concise, and every sentence earns its place with no 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?
Given the absence of annotations and output schema, the description is arguably minimal for a delete operation. It covers the essential confirm behavior but omits important operational details such as permanence, error conditions, and what the response contains. Still, it's better than nothing, earning a middle score.
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% for all four parameters, so the baseline is 3. The description adds meaning beyond the schema by explaining why confirm is needed ('since they will be notified of the cancellation'), providing additional context for the confirm parameter that the schema only hints at.
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 'Delete a Google Calendar event,' which clearly identifies the verb (delete) and resource (Google Calendar event). It distinguishes from sibling tools like calendar_update_event and calendar_create_event, and adds a critical condition about the confirm flag for events with attendees.
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 clearly implies when to use this tool (when deleting an event) and provides specific guidance about the confirm parameter for events with attendees. It doesn't explicitly mention alternatives or exclusions, but the context is sufficient for an agent to select this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar_freebusyA
Check free/busy status for one or more Google Calendars within a time range.
| Name | Required | Description | Default |
|---|---|---|---|
| timeMax | Yes | End of time range (RFC3339) | |
| timeMin | Yes | Start of time range (RFC3339) | |
| accountId | Yes | The Google account ID, alias, or email | |
| calendarIds | No | Calendar IDs to check (default: ["primary"]) |
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 clearly indicates this is a read-only status check and adds context about supporting multiple calendars and a time range. While it doesn't discuss edge cases or auth requirements, the behavior is straightforward and well disclosed for a safe 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, concise sentence that immediately conveys the tool's purpose. No redundant words or filler; it is front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the lack of an output schema, the description covers the core behavior sufficiently. It mentions the time range and multiple calendars, but does not describe the return format or handle edge cases. However, for a free/busy check, this is acceptable and complete enough for an agent to select and invoke the 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?
The input schema covers all parameters with 100% description coverage, so the schema already provides meaning. The description adds slight context about multiple calendars but does not elaborate on the parameters beyond what the schema states. Thus, it meets the baseline 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 clearly states the tool's function: checking free/busy status for one or more Google Calendars within a time range. It uses a specific verb (check) and resource (free/busy status), and the scope is explicit. This distinguishes it from sibling calendar tools like calendar_list_events or calendar_get_event, which handle event details.
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 checking availability but does not explicitly state when to use this tool versus alternatives. It lacks direct comparisons or exclusion criteria, making the usage context inferable rather than clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar_get_eventA
Get full details for a specific Google Calendar event.
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | The event ID | |
| accountId | Yes | The Google account ID, alias, or email | |
| calendarId | No | Calendar ID (default: "primary") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description alone must convey the operation's nature. The verb 'Get' clearly indicates a read-only, non-destructive action, but the description does not disclose expected return format, authentication needs, or error behavior. It adds minimal context beyond the operation's safety.
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 resource without unnecessary words. It is maximally concise and well-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?
Given the tool's simplicity and full schema coverage, the description adequately conveys the tool's core function. However, it omits a note about the default calendarId ('primary') and the nature of 'full details', but these are minor gaps for a straightforward retrieval 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%, with each parameter (eventId, accountId, calendarId) already has a clear description. The tool description adds no additional parameter-level semantics beyond what the schema provides, 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?
Description uses a specific verb 'Get' and clarifies the resource as 'full details for a specific Google Calendar event', clearly distinguishing it from sibling tools like calendar_list_events or calendar_search_events which handle multiple events.
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 for retrieving a specific event by ID but does not explicitly state when to prefer it over alternatives such as list/search, or note that it is read-only versus update/create/delete tools. Usage context is evident from the name but not articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar_list_calendarsA
List all calendars for a Google account (primary, shared, subscribed).
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The Google account ID, alias, or email |
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 discloses that the tool lists primary, shared, and subscribed calendars, which gives a sense of scope and non-destructiveness. However, it does not mention authentication requirements, response format, or edge cases like empty results or hidden calendars, leaving some 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?
The description is a single, concise sentence that front-loads the action and resource. Every word earns its place, with no redundancy or 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?
Given the tool's simplicity (one parameter, no output schema), the description is complete enough for an agent to select and invoke it correctly. It clearly states what is listed and the scope, making it 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?
The schema covers 100% of the single parameter (accountId) with a clear description. The tool description does not add additional detail about the parameter, so the baseline of 3 applies since the schema already handles the 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 uses a specific verb 'List' with a clear resource 'calendars' and scope ('for a Google account'), and enumerates the calendar types (primary, shared, subscribed). This distinguishes it from sibling tools like calendar_list_events, so it fully clarifies the tool's 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 implies the use case: when you need all calendars associated with an account. There is no explicit alternative comparison, but the scope is well-defined and no exclusions are stated, providing clear context for when 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.
calendar_list_eventsA
List events from a Google Calendar within a time range. Defaults to primary calendar.
| Name | Required | Description | Default |
|---|---|---|---|
| timeMax | No | End of time range (RFC3339, e.g., "2024-12-31T23:59:59Z") | |
| timeMin | No | Start of time range (RFC3339, e.g., "2024-01-01T00:00:00Z") | |
| accountId | Yes | The Google account ID, alias, or email | |
| pageToken | No | Token for pagination | |
| calendarId | No | Calendar ID (default: "primary") | |
| maxResults | No | Maximum number of events to return (default: 20) |
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 action (list) and the default calendar, but omits details about pagination, ordering, recurrence handling, or return format. For a read-only list operation, 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?
Two sentences, front-loaded with the action and resource, zero filler. The description is perfectly concise and to the point.
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 absence of annotations and output schema, the description is somewhat sparse. It does not explain pagination behavior or return structure, which are important for a list tool. However, for a simple list operation, the essential information is present.
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 new parameter semantics; the default calendar mention duplicates the schema's own default description. No added value beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list', resource 'events from a Google Calendar', and scope 'within a time range' with a default to primary calendar. This distinguishes it from sibling tools like calendar_get_event (single event) and calendar_search_events (search).
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?
Provides clear context: listing events within a time range and default calendar. It does not explicitly mention alternatives or when not to use, but the context is sufficient for an agent to select it for straightforward range-based listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar_move_eventB
Move a Google Calendar event to a different calendar.
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | The event ID to move | |
| accountId | Yes | The Google account ID, alias, or email | |
| sourceCalendarId | No | Source calendar ID (default: "primary") | |
| destinationCalendarId | Yes | The destination calendar 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 states the core action but omits important details such as whether the event is removed from the source calendar, permission requirements, or effects on attendees. 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 clear sentence, front-loaded with the action and subject. Every word earns its place with no redundancy or verbose 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?
Given the four parameters, no annotations, and no output schema, the description is too minimal. It does not mention the default source calendar behavior (though the schema covers it), potential side effects, or what the response will look like. An agent would need to infer critical operational details.
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 full descriptions for all four parameters (100% coverage). The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate. It does not clarify relationships or default behaviors beyond what the schema 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?
The description clearly states the action (move), the resource (Google Calendar event), and the destination (different calendar). It is specific and distinguishes itself from sibling tools like calendar_update_event or calendar_create_event.
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 does not provide any explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. The use case is only implied by the action word 'move', but no direct comparison to related tools is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar_rsvpB
Respond to a Google Calendar invitation (accept, decline, or tentatively accept).
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | The event ID to respond to | |
| response | Yes | RSVP response | |
| accountId | Yes | The Google account ID, alias, or email | |
| calendarId | No | Calendar ID (default: "primary") |
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 (changing RSVP status) but does not mention side effects (e.g., whether the organizer is notified), permissions required, idempotency, or potential errors. This is a significant gap for a mutation tool with zero annotation support.
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, front-loaded with the core verb and resource, and contains zero filler. Every word earns its place, making it highly scannable for an agent.
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 RSVP tool, the description is minimally viable, but it lacks critical contextual information such as prerequisites (user must be invited) and behavioral side effects. Given no output schema and no annotations, a bit more context about expected results or preconditions would improve completeness. It is adequate but not comprehensive.
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 clearly. The description adds no extra meaning beyond what the schema provides; it merely repeats the enum values in natural language. Per the rubric, baseline 3 is appropriate when 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 action ('Respond to a Google Calendar invitation') and the three response options (accept, decline, tentatively accept). This distinguishes it from sibling tools like calendar_update_event (which modifies event details) and calendar_get_event (which reads). However, it does not explicitly contrast with these siblings, so it misses the highest level of 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 guidance on when to use this tool versus alternatives. The description merely states what it does without explaining prerequisites (e.g., must be an invitation recipient) or when to prefer it over calendar_update_event. 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.
calendar_search_eventsA
Search for Google Calendar events by text query. Searches summary, description, location, and attendees.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search text to find in events | |
| timeMax | No | End of time range (RFC3339) | |
| timeMin | No | Start of time range (RFC3339) | |
| accountId | Yes | The Google account ID, alias, or email | |
| calendarId | No | Calendar ID (default: "primary") | |
| maxResults | No | Maximum number of events to return (default: 20) |
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 adds useful behavioral detail by listing the fields searched (summary, description, location, attendees), but does not disclose response format, pagination, auth requirements, or default behaviors beyond what the schema already indicates. For a read-only search tool, this is moderate but not comprehensive.
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 two concise sentences with no filler. It front-loads the purpose and then adds search-scope detail in the second sentence. 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?
Given the tool's moderate complexity (6 params, 2 required) and no output schema, the description sufficiently defines the tool's core function. It could mention return value or default time range behavior, but the schema already documents most parameters, so the description is adequately complete for a search 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%, so the baseline is 3. The description adds no parameter-specific nuance beyond what the schema already provides (e.g., timeMin/timeMax, maxResults). It does not harm or further clarify the parameter meanings.
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 with a specific verb ('Search') and resource ('Google Calendar events'), and specifies the search scope (summary, description, location, attendees). This distinguishes it from sibling tools like calendar_list_events, which lists events without text filtering.
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 to use the tool: when you need to find events by text query across specific fields. It does not explicitly name alternatives or exclusion criteria, but the context is clear enough for an agent to differentiate it from the list/create/update event siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar_update_eventA
Update an existing Google Calendar event. Requires confirm: true if the event has attendees or attendees are being added, since it will send update notifications.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | New end time (RFC3339) or date (YYYY-MM-DD for all-day) | |
| start | No | New start time (RFC3339) or date (YYYY-MM-DD for all-day) | |
| confirm | No | Set to true to confirm updating event with attendees (sends notifications) | |
| eventId | Yes | The event ID to update | |
| summary | No | New event title/summary | |
| location | No | New event location | |
| timeZone | No | Time zone (e.g., "America/New_York") | |
| accountId | Yes | The Google account ID, alias, or email | |
| attendees | No | New attendee email addresses (replaces existing attendees) | |
| calendarId | No | Calendar ID (default: "primary") | |
| description | No | New event description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It discloses a major side effect—sending notifications to attendees—and the confirmation gate required to proceed. It could mention more about partial-update behavior or auth requirements, but the disclosed behavior is material and not inferable from the schema alone.
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 immediately states the purpose and then highlights the critical confirmation requirement. There is no filler, repetition, or unnecessary 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?
For an 11-parameter mutation tool with no output schema and no annotations, the description conveys the core purpose and one important side effect, but omits return-value expectations, partial-update semantics, and permission requirements. The schema covers parameter details, so the description is adequate but not comprehensive.
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 all 11 parameters at 100% coverage, so the baseline is 3. The description adds meaningful conditional semantics for the confirm parameter—requiring true when attendees exist or are added—which goes beyond the schema's generic wording. Other parameters remain schema-defined, but that is acceptable 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 clearly states the tool updates an existing Google Calendar event, using a specific verb and resource. It is easily distinguishable from sibling tools like calendar_create_event, calendar_delete_event, calendar_move_event, and calendar_rsvp.
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 specifies a key usage requirement: confirm must be true when attendees exist or are being added, because update notifications will be sent. It does not explicitly name alternatives or exclusions, but the context and sibling tool names make the appropriate use fairly clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_copy_fileB
Create a copy of a file in Google Drive. Optionally specify a new name for the copy.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the copy (default: "Copy of [original name]") | |
| fileId | Yes | The file ID to copy | |
| accountId | Yes | The Google account ID, alias, or email |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description is the sole source for behavioral disclosure. It only states the basic copy action and optional rename, but does not explain side effects (e.g., whether the copy lands in the same folder), required permissions, or the return value. This leaves significant ambiguity for a tool that creates a new resource.
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 concise and front-loaded, with two short sentences that state the primary action and the key optional parameter. Every word adds value, and there is no redundant or extraneous content.
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 copy operation, the description covers the core action, but it lacks mention of return output, destination behavior, or any prerequisites. Given no output schema and no annotations, the description is not fully complete, though it is minimally sufficient for an experienced user.
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 adds only that the new name is optional, which is already implied by the schema. It does not provide extra meaning or examples beyond the structured parameter descriptions, so 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 uses the specific verb 'Create a copy' and names the resource ('a file in Google Drive'), which precisely conveys the action. It clearly distinguishes from sibling tools like drive_rename_file and drive_move_file by focusing on duplication.
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 guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or cases where another tool (e.g., drive_rename_file) would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_create_folderB
Create a new folder in Google Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Folder name | |
| accountId | Yes | The Google account ID, alias, or email | |
| parentFolderId | No | Parent folder ID (default: root) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the action and gives no details about permissions, default parent folder behavior, error handling, or return value.
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 superfluous information, making it well-structured 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?
The tool is simple and the schema fully covers parameters, but with no output schema and no behavioral details, the description is only minimally complete. It does not mention what happens on success or the returned folder ID.
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 provides complete descriptions for all three parameters (name, accountId, parentFolderId), so the description adds no additional parameter semantics. The baseline of 3 applies due to 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 clearly states the action ('Create') and the resource ('a new folder in Google Drive'), which is specific and distinguishes it from sibling tools like drive_rename_file or drive_upload_file.
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's use case clearly but provides no explicit guidance on when to choose this over alternatives or any exclusions. Since no sibling tool creates folders, the context is straightforward but still not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_download_fileA
Download a file from Google Drive and save it to a local directory. Google Workspace files (Docs, Sheets, Slides) are exported to standard formats (txt, csv, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | The file ID to download | |
| fileName | No | Override the file name (default: original name from Drive). For Workspace files, include the export extension. | |
| accountId | Yes | The Google account ID, alias, or email | |
| outputDir | Yes | Absolute path to the local directory where the file will be saved |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It adds meaningful context about Google Workspace file export (Docs/Sheets/Slides to standard formats), which is a key behavior. However, it does not disclose other relevant behaviors such as overwrite semantics, authentication requirements, potential side effects, or return value, leaving notable 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?
The description is two sentences, tightly written with the primary action in the first sentence and a key nuance in the second. Every clause earns its place, and the most important information is front-loaded. No redundant language or 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 straightforward download tool, the description covers the core functionality and an important edge case (Workspace export). It does not describe the return value or side effects, but the absence of an output schema and the simplicity of the operation make this acceptable. It is sufficiently complete to differentiate from related drive 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 input schema already documents all four parameters including their descriptions. The main description adds minimal semantic value beyond the schema; it only reinforces the outputDir purpose ('save it to a local directory'). This meets the baseline but does not elevate it since the schema is complete.
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 (download) and resource (a file from Google Drive), and specifies the outcome (save to a local directory). It also distinguishes itself from sibling tools like drive_get_file_content or drive_get_file by focusing on downloading to disk. The additional note about Workspace file export further clarifies scope.
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 to use this tool (when a local copy is needed) but does not explicitly contrast with alternatives like drive_get_file_content or drive_get_file. It lacks clear when-not-to-use guidance or mention of specific scenarios, so the usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_get_fileA
Get metadata for a Google Drive file (name, size, type, owners, sharing status, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | The file ID | |
| accountId | Yes | The Google account ID, alias, or email |
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 lists return fields and does not mention permissions, error cases, access scope, or API behaviors. While 'Get metadata' implies a read operation, it offers no detail about what happens for inaccessible files or auth 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?
The description is a single front-loaded sentence that begins with the action verb and packs relevant details without fluff. 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 metadata retrieval tool with only two fully documented parameters and no output schema, the description conveys the essential return scope. It is sufficient for an agent to select it, though it omits exact return structure and error behavior.
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 fileId and accountId have descriptions. The tool description adds no extra meaning beyond the schema, 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 uses a specific verb ('Get') and resource ('metadata for a Google Drive file') and enumerates expected fields (name, size, type, owners, sharing status). This clearly distinguishes it from sibling tools like drive_get_file_content or drive_download_file, which fetch content.
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 metadata framing implies use when you need file properties rather than content, but there is no explicit when-to-use guidance or mention of alternatives. The description does not state exclusions, such as 'to download contents, use drive_download_file'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_get_file_contentA
Get a preview of file content from Google Drive (default: first 10,000 characters). Returns truncated text with metadata (fileName, totalSize, truncated flag). For full content use drive_get_full_file_content. For large/binary files prefer drive_download_file to save to disk instead.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | The file ID | |
| maxChars | No | Maximum characters to return (default: 10000). Set higher only if you need more context. | |
| accountId | Yes | The Google account ID, alias, or email |
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 truncation default (10,000 chars), the metadata returned (fileName, totalSize, truncated flag), and redirects users away for binary/large files. Missing are error conditions or auth specifics, but for a preview tool this is solid transparency.
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 sentences, front-loaded with the main purpose, followed by output summary and alternative guidance. No filler or repetition; every sentence adds value.
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 preview tool with no output schema, the description provides a complete picture: what it returns (truncated text + metadata), default behavior, and when to use other tools. The parameter schema handles input details, so nothing essential 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 coverage is 100% with each parameter already described (e.g., maxChars 'Maximum characters to return (default: 10000)'). The description reiterates the default but does not add meaning beyond the schema. Meets the baseline for fully covered schemas.
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 and resource ('Get a preview of file content from Google Drive'), establishes a default truncation length, and immediately distinguishes itself from sibling tools by naming drive_get_full_file_content and drive_download_file. This makes the tool's scope and intent 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?
Explicit guidance is provided: 'For full content use drive_get_full_file_content. For large/binary files prefer drive_download_file to save to disk instead.' This clearly states when to use this tool vs alternatives, exceeding the baseline requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_get_full_file_contentA
WARNING: Returns the ENTIRE file content — can be very large and may overload your context window. Only use this when you genuinely need the complete file (e.g., for analysis or transformation). Prefer drive_get_file_content (preview) for browsing, or drive_download_file to save large files to disk.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | The file ID | |
| accountId | Yes | The Google account ID, alias, or email |
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 warns that the response 'can be very large and may overload your context window', which is a critical behavioral trait that annotations would not capture. This is a significant, honest disclosure of a potential risk.
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 immediately warns about the size issue, then gives a usage condition and alternatives. Every clause earns its place; there is no redundancy or 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 but potentially hazardous read operation, the description covers the key context: the full-content nature, the risk of large responses, and the existence of safer alternatives. Since there is no output schema, the description adequately explains the return value as the entire file content. This is complete for an agent to make an informed decision.
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 description adds no additional meaning to the parameters beyond the schema, which already provides 100% coverage with descriptions for both accountId and fileId. The baseline of 3 applies because the schema does the heavy lifting, and the description doesn't need 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 explicitly states 'Returns the ENTIRE file content' with a specific verb and resource, and it distinguishes itself from the sibling tools drive_get_file_content (preview) and drive_download_file. This clearly conveys what the tool does and how it differs from 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 explicit usage guidance: 'Only use this when you genuinely need the complete file (e.g., for analysis or transformation)' and names the alternatives to prefer for browsing or saving large files. This tells the agent exactly when to select this tool and when not to.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_list_filesA
List files in a Google Drive folder. If no folderId is provided, lists files in the user's My Drive root. To list a Shared Drive's top level, pass the Shared Drive ID as folderId (discover IDs with drive_list_shared_drives).
| Name | Required | Description | Default |
|---|---|---|---|
| folderId | No | Folder ID, or a Shared Drive ID for its top level (default: My Drive root) | |
| accountId | Yes | The Google account ID, alias, or email | |
| pageToken | No | Token for pagination | |
| maxResults | No | Maximum number of results (default: 20) |
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 explains the default folderId behavior, the ability to use a Shared Drive ID, and points to a sibling tool for discovery. This adds meaningful context beyond what schema provides, though it does not mention pagination or result structure.
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 two sentences, front-loaded with the core action, and every sentence earns its place. It is concise, well-structured, and free of irrelevant detail, 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?
Given the tool's moderate complexity (4 parameters, no output schema), the description covers key usage contexts: default root, shared drive top-level, and sibling tool reference. It does not explain pagination or result contents, but the schema already documents pageToken and maxResults, so the description is reasonably complete for selection and 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?
Although the schema already describes all parameters (100% coverage), the description adds valuable semantics for folderId: it explains the default My Drive root behavior and that a Shared Drive ID can be used for its top level. This goes beyond the schema's basic type/description and helps the agent use the parameter correctly.
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 files in a Google Drive folder.' It specifies the resource (files) and the action (list), and distinguishes itself from siblings like drive_search_files by focusing on folder-based listing. It also clarifies default behavior and shared drive usage, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to use the tool: listing files in a folder, with default to My Drive root, and provides explicit instructions for Shared Drive top-level listing. It also references a sibling tool (drive_list_shared_drives) for discovering IDs. However, it does not explicitly contrast with search_files or other alternatives, so it misses some comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_move_fileA
Move a file to a different folder in Google Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | The file ID to move | |
| accountId | Yes | The Google account ID, alias, or email | |
| newParentId | Yes | The destination folder 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 states the basic action without mentioning side effects (e.g., whether the file is removed from the old folder), permission requirements, return values, or error behavior. This is minimal 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 sentence that is direct and to the point, containing no unnecessary information. It fully serves its purpose without 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 move operation with fully documented parameters, the description is adequate for an agent to understand the core action. However, given the lack of annotations and output schema, it would benefit from mentioning the return value or any permission requirements, but this is not critical for successful 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 has 100% coverage with clear descriptions for all three parameters ('The file ID to move', 'The Google account ID, alias, or email', 'The destination folder ID'). The description adds no additional parameter semantics beyond what the schema already provides, 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 clearly states the verb 'move' and the resource 'file to a different folder in Google Drive'. It distinguishes from sibling tools like drive_copy_file (copy) and drive_rename_file (rename) by specifying the destination folder.
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 use case is implied by the verb 'move', but the description does not provide explicit guidance on when to use this tool versus alternatives (e.g., drive_copy_file) or any prerequisites. No exclusions or alternative tool mentions are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_rename_fileB
Rename a file in Google Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | New file name | |
| fileId | Yes | The file ID to rename | |
| accountId | Yes | The Google account ID, alias, or email |
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. However, it only restates the basic action without explaining any side effects, permission requirements, impact on shared links, or what happens to the file after renaming. 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, front-loaded sentence with no filler words. Every word contributes to conveying the core purpose. This is appropriately 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?
The description is minimally adequate for a simple rename operation, but it omits any context about prerequisites, how accountId is used, or the outcome of the rename. Given the absence of annotations and output schema, it would benefit from at least a note on permissions or the effect on the file. This is not complete enough for a 4, but not as poor as a 2.
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%, meaning all parameters (name, fileId, accountId) already have descriptions. The tool description adds no additional meaning beyond the schema, but it does implicitly align with the 'name' parameter. 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 clearly states the specific verb 'Rename' and the resource 'a file in Google Drive', which distinguishes it from sibling operations like move, copy, trash, and share. There is no ambiguity about what this tool does.
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, permissions, or scenarios where renaming is appropriate. It simply states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_search_filesA
Search for files in Google Drive. Searches across My Drive and all Shared Drives the user is a member of by default; pass driveId to scope the search to a single Shared Drive (discover IDs with drive_list_shared_drives). Supports shorthand syntax: type:document, type:spreadsheet, type:pdf, type:folder, type:image, type:video, type:audio (converted to mimeType queries), and content:keyword (searches inside file contents via fullText). Also accepts raw Drive API query syntax (e.g., "name contains 'report'").
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Drive search query (e.g., "name contains 'report'") | |
| driveId | No | Restrict search to a single Shared Drive (omit to search My Drive + all Shared Drives) | |
| accountId | Yes | The Google account ID, alias, or email | |
| pageToken | No | Token for pagination | |
| maxResults | No | Maximum number of 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 burden. It explicitly discloses the default search scope (My Drive + all Shared Drives), the conversion of shorthand type: queries to mimeType queries, and content: using fullText. It also mentions raw API query syntax. This goes beyond basic behavior, though it omits details like result fields or pagination limits beyond 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?
The description is concise, front-loaded with the main purpose, and every sentence provides useful detail without fluff. It packs substantial information about scope, shorthand, and raw syntax into a compact paragraph.
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 output schema and moderate complexity, the description is quite complete. It covers the main query semantics and scoping, but doesn't explicitly mention pagination behavior or the fields returned. Since there is no output schema, these are minor gaps, making 4 appropriate.
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 baseline is 3. The description adds significant value for the 'query' parameter by explaining shorthand syntax and fullText behavior, and for 'driveId' by clarifying the default scope. This raises the score above 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 clearly states the tool's purpose: 'Search for files in Google Drive.' It specifies both the action (search) and the resource (files), and distinguishes it from sibling tools like drive_list_files by emphasizing query-based search across multiple scopes. The detailed syntax options reinforce the distinct 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 clear context on when to use the tool: searching across My Drive and all Shared Drives by default, and how to restrict via driveId. It also points to drive_list_shared_drives for ID discovery. However, it doesn't explicitly contrast with drive_list_files or explain when to use one over the other, which would make it a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_trash_fileA
Move a file to trash in Google Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | The file ID to trash | |
| accountId | Yes | The Google account ID, alias, or email |
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 merely states the action without disclosing side effects like reversibility, permission requirements, or whether trashing is permanent. This is a mutation tool, and the lack of behavioral context is a clear 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 with zero wasted words. It is perfectly sized for the simple action it describes.
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 complete schema and no output schema, the description is minimally adequate. However, it could be more complete by noting the file is moved to the Drive trash (not permanently deleted) and possibly mentioning that the action is reversible.
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 both parameters with clear descriptions (fileId, accountId), so schema coverage is 100%. The description adds no extra parameter info, but the baseline for high schema coverage is 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 clearly states the action ('Move') and the resource ('a file to trash in Google Drive'), making it distinct from siblings like drive_move_file or gmail_trash. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied from the description; it's obvious you use this tool to trash a file. However, there is no explicit guidance on when to prefer this over alternatives or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_update_permissionsA
Update an existing permission on a Google Drive file. Requires confirm: true as a safety gate since permission changes affect access control.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | New role | |
| fileId | Yes | The file ID | |
| confirm | No | Set to true to confirm permission update | |
| accountId | Yes | The Google account ID, alias, or email | |
| permissionId | Yes | The permission ID to update |
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 disclose the critical safety gate: 'Requires confirm: true as a safety gate since permission changes affect access control.' However, it does not explain consequences such as ownership transfer risks, reversibility, or auth requirements, leaving 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?
The description is two sentences, front-loaded with the primary purpose, and includes a critical usage note without fluff. 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?
Without annotations or output schema, the description provides the core purpose and the confirm gate, but it lacks details on side effects (e.g., what changing to 'owner' implies, whether access is revoked). It is adequate for a simple permission update but leaves some behavioral context uncovered.
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 all parameters are described structurally. The description adds value by explaining why `confirm` is required (safety gate), which reinforces its semantic importance, but it does not add detail for other parameters 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 a specific action: 'Update an existing permission on a Google Drive file.' This verb-resource pairing is unambiguous and distinguishes it from sibling tools like drive_share_file (which creates permissions) or drive_trash_file (which modifies file 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 description implies this tool is used for updating permissions that already exist, but it does not explicitly contrast with drive_share_file (which creates new permissions) or mention when not to use it. The confirmation requirement is a usage gate, but alternatives or exclusions are not named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drive_upload_fileA
Upload a file to Google Drive. Provide content as UTF-8 text, base64-encoded binary (set isBase64: true), or a local file path (the server reads the file from disk).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | File name including extension | |
| content | No | File content (UTF-8 text or base64-encoded binary). Provide this OR filePath. | |
| filePath | No | Absolute path to file on disk (provide this OR content). Server reads the file directly. | |
| isBase64 | No | Set to true if content is base64-encoded (only used with content, not filePath) | |
| mimeType | Yes | MIME type of the file (e.g., "text/plain", "application/pdf") | |
| accountId | Yes | The Google account ID, alias, or email | |
| parentFolderId | No | Parent folder ID (default: root) |
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 discloses behavioral details such as the server reading the file from disk and isBase64 applying only to content. However, it omits potential mutation consequences (e.g., overwrite behavior), authentication needs, and error handling, leaving gaps 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 description is two sentences, front-loaded with the core action, and contains no redundant information. Every phrase contributes essential usage instructions, making it highly concise and well-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?
Given the tool has 7 parameters and no output schema, the description adequately covers input modes but does not explain what the tool returns (e.g., file ID) or error/conflict outcomes. This leaves the context somewhat incomplete for a tool of this 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% with individual parameter descriptions. The description adds meaningful value by clarifying the relationship between content, filePath, and isBase64, and noting that the server reads the file directly. This supplements the schema beyond what the property descriptions provide.
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 explicitly states 'Upload a file to Google Drive' with a clear verb and resource. It also distinguishes from sibling tools by detailing content delivery methods (UTF-8 text, base64, file path), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by explaining how to provide content (text, base64, or file path) and when to use isBase64. It implies use for uploading files to Drive but does not explicitly mention when not to use it or reference alternatives, which is acceptable for a direct upload tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_archiveA
Archive a Gmail message by removing it from INBOX. The message remains in All Mail and can still be found via search. Requires full scope.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The Google account ID, alias, or email | |
| messageId | Yes | The message ID to archive |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the burden and does well: it discloses the core behavior (removal from INBOX), the persistence (All Mail), searchability, and a permission requirement ('full scope'). It could add details like idempotency or error handling, but the key behavioral facts are covered.
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 only three sentences, front-loaded with the primary action, and every sentence adds value (effect, retention, requirement). 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 two-parameter tool with no output schema, the description covers the essential behavior, side effects, and requirements. It could mention what happens if the message is already archived or whether the operation is idempotent, but overall it is sufficiently complete for correct selection and 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 schema covers 100% of parameters with clear descriptions for accountId and messageId. The description adds no additional parameter-specific detail, 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 uses a specific verb 'Archive' with a clear resource ('Gmail message') and explicitly states the action ('removing it from INBOX'). It distinguishes archive from trash or delete by noting the message remains in All Mail and searchable.
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 makes the semantic clear, implying it should be used for archiving rather than deleting. However, it does not explicitly mention when to use this tool versus alternatives like gmail_trash or gmail_modify_labels, nor does it provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_batch_modify_labelsA
Apply label changes to multiple messages in one operation. More efficient than individual modifications. Limited to 1000 messages. Requires full scope.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set to true to confirm bulk operation (required for >100 messages) | |
| accountId | Yes | The Google account ID, alias, or email | |
| messageIds | Yes | Array of message IDs to modify (max 1000) | |
| addLabelIds | No | Label IDs to add to all messages | |
| removeLabelIds | No | Label IDs to remove from all messages |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavioral traits. It does add valuable context: 'Limited to 1000 messages' and 'Requires full scope' inform about constraints and permissions. However, it does not disclose potential side effects, partial failure behavior, or the distinction between add and remove label operations beyond the schema. This is decent but not comprehensive.
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 three concise sentences, each earning its place: purpose, efficiency argument, and key constraints (limit and scope). It is front-loaded with the primary action and contains 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?
Given the tool has 5 parameters, no output schema, and no annotations, the description provides moderate context. It covers purpose, efficiency, limits, and scope, but lacks explicit guidance on batch confirmation, error handling, or alternatives. For a bulk mutation tool, more detail would enhance completeness, but the description is not grossly inadequate.
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 already has clear descriptions. The description itself does not add additional semantic detail beyond the schema, except for reinforcing the 1000-message limit, which is also present in the messageIds parameter description. 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 tool's function: 'Apply label changes to multiple messages in one operation.' This is a specific verb+resource combination that distinguishes it from sibling tools like gmail_modify_labels, which handles single messages. The scope is also clarified with 'multiple messages' and the 1000-message limit.
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 context for when to use this tool: 'More efficient than individual modifications' implies a bulk operation use case. It also notes the 1000-message limit and full scope requirement, which are important prerequisites. However, it does not explicitly name alternative tools or state when not to use it, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_bulk_save_attachmentsA
Download all attachments from one or more Gmail messages to a local directory. Returns a manifest of saved files. Requires readonly scope.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The Google account ID, alias, or email | |
| outputDir | Yes | Local directory path to save attachments to (will be created if needed) | |
| messageIds | Yes | Array of message IDs to download attachments from | |
| filenamePrefix | No | Optional prefix for filenames. If not set, files use their original names with message ID prefix to avoid collisions. |
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 explicitly states the readonly scope requirement (auth need) and that it returns a manifest of saved files (output). This adds meaningful context beyond the tool name and schema, though it does not detail potential side effects like overwriting or long-running operations. The disclosure is solid for a straightforward download 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 three sentences long, with the primary action front-loaded. Every sentence adds value: the action, the return value, and the required scope. No redundant or extraneous information is 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?
The description covers the core purpose, the return manifest, and the auth requirement. Given the tool's moderate complexity and full schema coverage, it is mostly complete. It does not describe the manifest contents or error handling, but these are not critical for the agent to invoke the tool correctly. The lack of an output schema makes the return-value mention particularly useful.
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 100% of the four parameters with clear descriptions. The tool description does not add any parameter-specific semantics 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 uses a specific verb ('Download') and clearly identifies the resource ('all attachments from one or more Gmail messages') and destination ('local directory'). This distinguishes it from sibling tools like gmail_get_attachment (single attachment) and gmail_list_attachments (listing only), making the tool's unique purpose immediately 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?
The description provides clear context for when to use this tool: for downloading all attachments from one or more messages in bulk. It implicitly contrasts with single-attachment retrieval tools but does not explicitly name alternatives or state when not to use it. This is clear context without exclusions, aligning with a score of 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_create_draftA
Create a draft email. The draft can be reviewed, updated, and sent later. Requires compose or full scope.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | CC email address(es), comma-separated for multiple | |
| to | Yes | Recipient email address(es), comma-separated for multiple | |
| bcc | No | BCC email address(es), comma-separated for multiple | |
| body | Yes | Email body (plain text, or HTML when bodyFormat="html") | |
| subject | Yes | Email subject | |
| threadId | No | Thread ID to reply in (for continuing a conversation) | |
| accountId | Yes | The Google account ID, alias, or email | |
| inReplyTo | No | Message-ID of the message being replied to | |
| bodyFormat | No | Body content type. "text" (default) sends as text/plain with RFC 3676 format=flowed so clients reflow paragraphs instead of rendering hard wraps. "html" sends as text/html for HTML-formatted bodies. | |
| references | No | References header for threading |
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 discloses that the tool does not send the email immediately and requires specific permissions, making its non-destructive nature clear. It could add more detail on error handling or return value, but the key behavioral facts are present.
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 three short sentences, front-loaded with the primary action. Each sentence adds distinct value: purpose, lifecycle context, and permission requirement. There is no redundant or filler content.
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's complexity (10 parameters, no output schema), the description covers the essential context: what it does, the draft lifecycle, and required scopes. The schema covers parameter specifics. It doesn't explicitly state what the tool returns (e.g., draft ID), but this is inferable from sibling tools and the draft lifecycle mention. Reasonably complete for a create 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?
The schema description coverage is 100%, with all parameters already explained in the JSON schema. The description itself adds no additional parameter-level meaning; it only mentions authorization scope, not parameter semantics. Since the schema handles parameter details, 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?
States 'Create a draft email' – a specific verb and resource. The second sentence clarifies the draft lifecycle (reviewed/updated/sent later), distinguishing it from immediately sending or from attachment-specific draft creation. This differentiates it well from siblings like gmail_send_draft and gmail_create_draft_with_attachment.
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?
Implies use when a draft is needed for later review or sending, and explicitly mentions the required OAuth scope ('compose or full scope') as a prerequisite. It gives clear context for when to use it, though it doesn't explicitly name alternative tools or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_create_draft_with_attachmentA
Create a draft email with file attachments. Each attachment can provide base64-encoded data directly OR a local file path (the server reads the file from disk). The draft can be reviewed and sent later. Requires compose or full scope. Max 25MB total attachment size.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | CC email address(es) | |
| to | Yes | Recipient email address(es), comma-separated for multiple | |
| bcc | No | BCC email address(es) | |
| body | Yes | Email body (plain text, or HTML when bodyFormat="html") | |
| subject | Yes | Email subject | |
| threadId | No | Thread ID to reply in | |
| accountId | Yes | The Google account ID, alias, or email | |
| inReplyTo | No | Message-ID being replied to | |
| bodyFormat | No | Body content type. "text" (default) sends as text/plain with RFC 3676 format=flowed so clients reflow paragraphs instead of rendering hard wraps. "html" sends as text/html for HTML-formatted bodies. | |
| references | No | References header for threading | |
| attachments | Yes | Array of attachments. Each must have either "data" (base64) or "filePath" (local path), not both. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses key behaviors: attachment data can be base64 or file path (server reads from disk), draft is not sent immediately, requires compose/full scope, and max 25MB size. These go beyond schema details, but it doesn't mention return values or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the main purpose, and every sentence adds distinct information: purpose, attachment methods, lifecycle, auth, and size limit. No redundancy or 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?
The description covers the core purpose, attachment mechanics, authorization, and size constraints, which is strong for a create operation. However, since there is no output schema, it omits what the API returns (e.g., draft ID), leaving a minor completeness 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 100%, so baseline is 3. The description adds value by explaining the 'data OR filePath' distinction (explicitly stating OR and that the server reads the file) and introducing the 25MB total limit, which is not in 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 tool's purpose: 'Create a draft email with file attachments.' It differentiates from sibling gmail_create_draft by explicitly mentioning attachments, and clarifies the draft can be reviewed and sent later, distinguishing it from send 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 description implies usage context by specifying it creates drafts (not sending) and supports attachments, which hints at when to use this over plain gmail_create_draft. However, it does not explicitly name alternatives or state when-not to use this tool, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_create_filterA
Create a Gmail filter to automatically process incoming messages. Criteria define which messages match; actions define what happens to them. Requires settings scope and confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Actions to perform on matched messages | |
| confirm | Yes | Must be true to create the filter. This is a safety gate. | |
| criteria | Yes | Criteria for matching messages | |
| accountId | Yes | The Google account ID, alias, or email |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden. It discloses two key behavioral aspects: it 'Requires settings scope and confirmation,' covering authentication and a safety gate. However, it does not detail side effects, idempotency, or post-creation behavior (e.g., immediate activation, return value), leaving some gaps in 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 two concise sentences, front-loaded with the main action, and every sentence earns its place. It avoids redundancy and effectively summarizes the tool's purpose and key requirements without unnecessary 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 has moderate complexity (nested objects, 4 required params) with no output schema or annotations. The description covers the essential operational context: what the tool does, the roles of criteria and actions, and the need for settings scope and confirmation. Given full schema coverage and clear sibling differentiation, this is sufficiently complete for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds meaning by explaining that 'Criteria define which messages match; actions define what happens to them,' providing conceptual grouping for the nested objects. It also highlights the 'confirm' parameter as a safety gate. Yet it doesn't elaborate on each field beyond what the schema already provides, so it stays at 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 clearly states the tool's purpose with a specific verb and resource: 'Create a Gmail filter to automatically process incoming messages.' It distinguishes this from sibling tools like gmail_list_filters and gmail_delete_filter by focusing on creation and explaining that criteria and actions define the filter's behavior.
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 clear context on when to use the tool (to automatically process incoming messages) and explains the roles of criteria and actions. However, it does not explicitly mention alternatives or when not to use it, such as pointing to gmail_list_filters for existing filters or gmail_delete_filter for removal. Still, the context is sufficient for correct selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_create_labelA
Create a new Gmail label with optional color and visibility settings. Requires full scope.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Label name (use "/" for nesting, e.g., "Work/Projects") | |
| accountId | Yes | The Google account ID, alias, or email | |
| textColor | No | Text color hex (e.g., "#ffffff") | |
| backgroundColor | No | Background color hex (e.g., "#16a765") | |
| labelListVisibility | No | Whether to show label in label list | |
| messageListVisibility | No | Whether to show label in message list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It adds value by noting 'Requires full scope', an auth requirement not present in the schema. However, it does not disclose return behavior, potential errors, or uniqueness constraints, which is a notable 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, front-loaded sentence that states the action first, then optional settings, then a requirement. Every word earns its place with no 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?
The description is adequate for a simple create tool, but with no output schema and no annotations, it should ideally mention what is returned (e.g., the created label) or any duplicate-label behavior. It covers the essential details but leaves these 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%, so the schema fully documents all six parameters. The description groups some parameters as 'color and visibility settings', adding minimal semantic grouping but no unfamiliar detail 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 a specific action ('Create a new Gmail label') and the resource (Gmail label), with optional color and visibility settings. This differentiates it from sibling tools like gmail_update_label and gmail_delete_label.
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 clear context for creating a new label, and the 'Requires full scope' gives a prerequisite. It does not explicitly mention alternatives or when not to use, but the create/update/delete sibling structure makes the use case obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_delete_draftB
Delete a draft email
| Name | Required | Description | Default |
|---|---|---|---|
| draftId | Yes | The draft ID to delete | |
| accountId | Yes | The Google account ID, alias, or email |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It simply states 'Delete a draft email' without noting whether deletion is permanent, reversible, or requires specific permissions. This is a significant gap for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clean sentence with no redundant wording. It is front-loaded and easy to read, though it falls short on informational content rather than 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 destructive tool with no output schema and no annotations, the description is incomplete. It fails to address whether the deletion is permanent, confirms any side effects, or explains the result. Essential context for safe use 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?
The input schema already provides descriptions for both parameters (draftId and accountId) with 100% coverage. The tool description adds no additional meaning or context beyond what the schema already states, 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 clearly states the action (delete) and the resource (draft email), which is specific and distinguishes this from sibling tools like gmail_create_draft, gmail_get_draft, and gmail_update_draft. It could not be confused with other 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?
No guidance is provided on when to use this tool vs alternatives such as gmail_trash or gmail_delete_label. There are no prerequisites or contextual cues, leaving the agent to infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_delete_filterA
Delete a Gmail filter by ID. Use gmail_list_filters to see existing filters. Requires settings scope and confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Must be true to delete the filter. This is a safety gate. | |
| filterId | Yes | The filter ID to delete | |
| accountId | Yes | The Google account ID, alias, or email |
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. It discloses the destructive nature ('Delete'), the required settings scope, and the confirmation safety gate. However, it does not state whether deletion is permanent or if any consequences apply beyond the filter itself, but the mention of scope and confirmation is substantial for a 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?
Two sentences with no wasted words. The core action and prerequisite are front-loaded, and the safety and auth notes are 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?
Given the tool's simplicity and lack of output schema, the description covers the necessary context: what it does, how to find the ID, the required scope, and the mandatory confirmation. It is complete for safe 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 descriptions cover all three parameters at 100%, so the baseline is 3. The description adds some value by advising to use gmail_list_filters to obtain filterId, and it reinforces the safety gate for confirm, but it does not add significant new meaning 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 ('Delete'), the resource ('Gmail filter'), and the identifier ('by ID'). It distinguishes from siblings like gmail_create_filter and gmail_list_filters by specifying deletion.
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 explicitly tells the user to use gmail_list_filters to see existing filters, which is a helpful prerequisite and alternative. It also mentions the confirmation requirement, but does not explicitly state when not to use it, though the context implies the need for an existing filter ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_delete_labelA
Delete a Gmail label. Messages with this label will not be deleted, they will just lose the label. System labels cannot be deleted. Requires full scope.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set to true to confirm deletion | |
| labelId | Yes | The label ID to delete | |
| accountId | Yes | The Google account ID, alias, or email |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses key behavioral traits: messages keep existing and only lose the label, system labels are forbidden, and full scope is required. This is strong for a delete operation, though it doesn't mention return values or error scenarios.
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 three short sentences, front-loaded with the main action ('Delete a Gmail label'), and every sentence adds value without 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 delete tool with no output schema and no annotations, the description is complete enough: it states what it does, what it doesn't do to messages, restrictions on system labels, and permission requirements. Sibling tools show related operations, but the uniqueness is clear.
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 extra meaning about parameters beyond the schema; for example, it doesn't explain the 'confirm' parameter, but the schema already does.
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 resource ('a Gmail label'), clearly stating the action. It also adds distinguishing nuances: messages are not deleted, only the label is removed, and system labels cannot be deleted, which differentiates it from tools like gmail_trash or gmail_modify_labels.
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?
Provides clear context, including that system labels cannot be deleted and that the operation requires full scope. It implicitly guides against using this tool when message deletion is intended by stating messages are not deleted. However, it doesn't explicitly name alternative tools like gmail_create_label or gmail_modify_labels.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_get_attachmentA
Download an attachment from a Gmail message and save it to local disk. Use gmail_list_attachments first to get filenames. Returns file path and metadata (no binary data in response). Requires readonly scope.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | The attachment filename (from gmail_list_attachments) | |
| accountId | Yes | The Google account ID, alias, or email | |
| messageId | Yes | The message ID containing the attachment | |
| outputDir | Yes | Local directory path to save the attachment to (will be created if needed) |
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 does well: it discloses the return format ('Returns file path and metadata (no binary data in response)'), the side effect of saving to disk, and the permission requirement ('Requires readonly scope'). It could add error-handling details, but the essential behaviors are covered.
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 three sentences long, front-loaded with the primary action, and every sentence adds value. There is no fluff or 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 tool with 4 required parameters, no annotations, and no output schema, the description provides the key context: the prerequisite workflow, return format, and read-only scope. It is sufficiently complete for an agent to understand the tool's behavior and usage.
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 does not add substantial parameter-level detail beyond the schema; the mention of using gmail_list_attachments is already captured in the filename parameter schema 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 clearly states the specific action: 'Download an attachment from a Gmail message and save it to local disk.' It uses a specific verb and resource, and distinguishes from siblings like gmail_list_attachments by referencing the prerequisite and return format.
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 provides clear context by instructing 'Use gmail_list_attachments first to get filenames,' establishing a prerequisite workflow. However, it does not mention alternatives like gmail_bulk_save_attachments or explicitly state 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.
gmail_get_draftA
Get a draft email with full content for preview before sending
| Name | Required | Description | Default |
|---|---|---|---|
| draftId | Yes | The draft ID to retrieve | |
| accountId | Yes | The Google account ID, alias, or email |
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 discloses that the tool returns 'full content' and indicates a read-only intent via 'preview', but it does not explicitly state that the draft is not modified, nor does it mention any auth requirements or error behavior. This is adequate for a simple get operation 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 is front-loaded with the action ('Get a draft email') and adds relevant context ('full content for preview before sending'). There is zero wasted 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?
The description is clear but minimal. There is no output schema, so the description should explain return values; 'full content' is vague and does not specify whether attachments, headers, or metadata are included. It also omits potential error cases or prerequisites, making it only minimally complete for a simple 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% for the two parameters (draftId and accountId), so the baseline is 3. The description adds no additional parameter-specific information, providing no extra value 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 'Get' and clearly identifies the resource as 'a draft email' with the purpose 'for preview before sending'. This distinguishes it from sibling tools like gmail_get_message and gmail_get_thread, which operate on non-draft 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 phrase 'for preview before sending' provides clear usage context, implying the tool is for retrieving drafts before they are sent. However, it does not explicitly mention alternatives or exclusions, such as 'use gmail_get_message instead for sent messages', so it falls short of fully explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_get_messageA
Get a single Gmail message by ID with headers and body content
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Response format (default: full) | |
| accountId | Yes | The Google account ID, alias, or email | |
| messageId | Yes | The message 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 accurately indicates a read operation ('Get') and states that headers and body content are included, but does not disclose potential side effects, auth requirements, or the impact of the 'format' parameter. It is minimally transparent 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 a single, front-loaded sentence that immediately conveys the tool's purpose without filler words. Every word contributes meaning, making it highly concise and well-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?
Given the simplicity of the tool and full schema coverage, the description adequately covers the core functionality. However, the absence of an output schema and lack of guidance about the 'format' enum's effect on return value leaves some gaps. It is sufficient but not rich.
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 all three parameters (accountId, messageId, format) with 100% coverage. The description adds no additional parameter-specific meaning beyond noting 'by ID', which is already covered by the schema. Baseline 3 is appropriate 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 clearly states the verb 'Get' and the resource 'a single Gmail message by ID', making its purpose specific and unambiguous. It also differentiates from siblings like gmail_get_messages_batch and gmail_get_thread by emphasizing 'single' and including 'headers and body content'.
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 use for retrieving one message at a time but does not explicitly contrast with alternatives like batch retrieval or thread retrieval. There is no mention of when to choose this tool over gmail_get_messages_batch or gmail_get_thread, leaving the guidance mostly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_get_messages_batchA
Fetch multiple Gmail messages in a single call. More efficient than fetching individually. Limited to 50 messages per call.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Response format (default: full) | |
| accountId | Yes | The Google account ID, alias, or email | |
| messageIds | Yes | Array of message IDs to fetch (max 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It mentions the 50-message limit, but this duplicates the schema's 'max 50' constraint. It does not disclose read-only status, error behavior, response format details, or any other side effects, leaving the agent with insufficient information for safe invocation.
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 two sentences, front-loaded with the core action, and every word earns its place. It is concise and structured effectively, though the limit mention is redundant with the schema, it does not hurt 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?
There is no output schema, yet the description does not explain the return value shape or the meaning of the format enum values. It conveys the core purpose and limit, but lacks completeness for a batch operation where the response structure and format semantics are important.
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 each parameter having a clear description. The tool 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 clearly states the tool fetches multiple Gmail messages in a single call, with a specific verb ('Fetch') and resource ('Gmail messages'). It distinguishes from single-message fetch tools like gmail_get_message by emphasizing batch efficiency and the 50-message limit.
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 'More efficient than fetching individually' implies use when multiple messages are needed, providing clear context for preferring this over gmail_get_message. However, it does not explicitly name alternatives or state when not to use it, so it falls short of explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_get_threadA
Get a Gmail thread with all its messages
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Response format (default: full) | |
| threadId | Yes | The thread ID | |
| accountId | Yes | The Google account ID, alias, or email |
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 communicates the core behavior (returning a thread and all its messages) but does not disclose additional traits such as response format, potential size, or authentication requirements. However, as a read-only get operation, the risk is lower, making a score of 3 appropriate.
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 both concise and informative. It front-loads the key action and resource without any extraneous words or 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 read tool with a clear name and schema, the description sufficiently explains the tool's purpose. It does not detail return values, but the phrase 'with all its messages' gives enough context. The absence of an output schema and the presence of a format parameter make the description slightly incomplete, but it remains solid.
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 provides complete descriptions for all three parameters, including the format enum. The description adds no extra semantic information beyond what the schema already states, 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 clearly states the tool 'Get a Gmail thread with all its messages', specifying both the action (get) and the resource (Gmail thread). This distinguishes it from sibling tools like gmail_get_message (which retrieves a single message) and gmail_search_messages (which finds threads).
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 (when you need a complete thread) but does not explicitly state when to use it versus alternatives. It lacks exclusions or references to sibling tools, so the guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_get_vacationA
Get the vacation auto-reply settings for an account. Shows whether vacation responder is enabled and its configuration. Requires settings scope.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The Google account ID, alias, or email |
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 a key behavioral requirement: 'Requires settings scope' (an authorization detail). It also clarifies what the tool shows (whether enabled and configuration), giving the agent an understanding of the response. It does not describe side effects, but as a 'get' operation, none are expected. The auth scope disclosure adds significant value beyond 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?
The description consists of two concise sentences. The first sentence states the core function, and the second adds output detail and an auth requirement. There is no filler or redundancy; every sentence earns its place. Information is front-loaded with the action 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?
The tool is simple (one parameter, no output schema), and the description adequately covers the key aspects: what it does, what it returns conceptually, and an auth requirement. It does not describe the exact structure of the configuration, but for a getter with no output schema, this is acceptable. The description is complete enough for an agent to use correctly without further clarification.
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 accountId, describing it as 'The Google account ID, alias, or email.' The description adds no extra detail about the parameter, but given the full schema coverage, the baseline is 3. The description's mention of 'for an account' aligns with the parameter but does not enhance meaning 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 specific action ('Get the vacation auto-reply settings') and the resource ('for an account'). It also elaborates on the output ('Shows whether vacation responder is enabled and its configuration'), which distinguishes it from sibling tools like gmail_set_vacation. The verb 'Get' and explicit mention of vacation settings make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates this tool is for retrieving vacation auto-reply settings, which implies when it should be used. It does not explicitly mention alternatives or exclusions, but the read-only nature and specific resource are enough to guide selection. The omission of a direct reference to gmail_set_vacation is a minor gap, but the context alone is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_list_attachmentsA
List all attachments in a Gmail message. Returns attachment IDs, filenames, MIME types, and sizes. Requires readonly scope.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The Google account ID, alias, or email | |
| messageId | Yes | The message ID to list attachments from |
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 discloses that the operation is read-only (requires readonly scope) and specifies exact output fields, which is transparent for a listing tool. It does not cover edge cases, but the core behavior is clear.
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 deliver purpose, output, and requirement with no redundant words. The description is front-loaded and efficient.
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 operation with 2 fully-described parameters and no output schema, the description covers purpose, return values, and permission requirements. It is slightly incomplete in not explicitly stating that it does not return binary content, but this is implied by the listed return 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%, with both parameters fully described in the input schema. The description adds no additional parameter semantics, 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 verb 'List', resource 'attachments in a Gmail message', and enumerates the returned metadata (IDs, filenames, MIME types, sizes). This distinguishes it from sibling tools like gmail_get_attachment or gmail_bulk_save_attachments.
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 (listing attachment metadata) and notes the readonly scope requirement, but it does not explicitly mention alternatives or when-not-to-use conditions, such as when needing to download attachment content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_list_filtersA
List all Gmail filters for an account. Filters automatically process incoming messages based on criteria. Requires settings scope.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The Google account ID, alias, or email |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It discloses the permission requirement 'Requires settings scope' and implies a read-only operation via 'List all'. However, it does not describe response format, pagination, or error behavior, leaving some 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?
The description is three short sentences, front-loaded with the purpose. The second sentence explaining filters is optional but adds domain context without waste. It is appropriately 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?
Given the simple one-parameter tool and no output schema, the description covers the core action and a key prerequisite. However, it doesn't mention what the response contains (e.g., filter IDs, criteria) or whether results are paginated, so some completeness gap remains.
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 describes the accountId parameter, including accepted formats ('Google account ID, alias, or email'). The description adds no additional parameter-level detail, so the high schema coverage carries the 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 states 'List all Gmail filters for an account' with a specific verb and resource. It distinguishes from sibling create/delete filter tools by being the list operation, and adds domain context about filters.
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 does not explicitly state when to use this tool vs alternatives like gmail_list_labels or gmail_create_filter. It mentions the required 'settings scope' which is a precondition, but uses are implied by the tool name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_list_labelsA
List all Gmail labels (system labels like INBOX, SENT, etc. and custom user labels). Requires full scope.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The Google account ID, alias, or email |
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 adds useful context: requires full scope and includes system labels. However, it does not explicitly state that the operation is read-only or describe return format/pagination, leaving some uncertainty for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the core purpose, the label types included, and the auth requirement. No wasted words, excellent structure.
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 operation with one parameter and no output schema, the description plus schema covers the essentials: what it does, the auth requirement, and the parameter. It could mention the return shape, but that is not critical for such a straightforward 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?
The schema description covers the single parameter (accountId) fully, so the baseline is 3. The description adds no additional parameter semantics 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 clearly states the tool's purpose: 'List all Gmail labels' with a specific verb and resource. It explicitly distinguishes system labels from custom user labels, making it unambiguous and distinct from sibling label management 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 description provides clear context that this is for listing all labels and notes the 'full scope' prerequisite. It does not explicitly mention alternatives, but no alternative list-labels tool exists, so the guidance is adequate. Still, it could be more explicit about using this tool to retrieve label IDs for subsequent operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_mark_read_unreadA
Mark a Gmail message as read or unread. This is a shortcut for modifying the UNREAD label. Requires full scope.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The Google account ID, alias, or email | |
| messageId | Yes | The message ID to modify | |
| markAsRead | Yes | true to mark as read, false to mark as unread |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosure. It states 'Requires full scope' (auth requirement) and clarifies that the operation modifies the UNREAD label, which explains the underlying mechanism. It does not detail return values or edge cases, but for a simple mutation this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, with the primary action in the first sentence and the key differentiator in the second. No redundant information, perfectly 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 tool with three simple parameters, no output schema, and no nested objects, the description covers the essential context: the action, the underlying mechanism, and the required scope. It could mention that other labels are unaffected, but the 'shortcut for modifying the UNREAD label' already implies this.
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 documents all three parameters with 100% coverage, so the description need not add much. It does not provide additional parameter-level detail beyond restating the markAsRead boolean semantics, earning the baseline score 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?
Description uses specific verb 'Mark' with resource 'Gmail message' and states the two possible states (read/unread). The phrase 'shortcut for modifying the UNREAD label' distinguishes it from the more general gmail_modify_labels sibling tool, making the purpose crystal 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?
The 'shortcut' phrasing implies when to use this tool: when you specifically want to toggle read/unread without dealing with full label operations. It provides clear context but does not explicitly name alternatives or state when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_modify_labelsA
Add or remove labels from a Gmail message. Use label IDs (e.g., "INBOX", "STARRED", "IMPORTANT", or custom label IDs). Requires full scope.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The Google account ID, alias, or email | |
| messageId | Yes | The message ID to modify | |
| addLabelIds | No | Label IDs to add (e.g., ["STARRED", "IMPORTANT"]) | |
| removeLabelIds | No | Label IDs 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 behavioral transparency burden. It discloses that full scope is required, which is useful. However, it does not disclose potential side effects, what happens when both add and remove are specified, or whether the operation is idempotent. The description is not misleading, but it 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 two concise sentences, front-loaded with the core action, and provides an efficient example. No fluff. It fully 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 relatively simple with 4 parameters and no output schema. The description covers the main action and scope, but it omits context such as the relationship to batch operations, behavior when no label IDs are provided, or typical use cases. It is adequate but not fully complete for guiding 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 coverage is 100% with each parameter described. The description adds examples (e.g., 'INBOX', 'STARRED') and clarifies the use of label IDs, which reinforces the schema but does not add substantial new meaning. It meets the baseline 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 clearly states the tool's function: adding or removing labels from a Gmail message. It uses a specific verb ('Add or remove') and resource ('labels from a Gmail message'). While it doesn't explicitly distinguish itself from sibling gmail_batch_modify_labels, the singular 'a Gmail message' implies single-message scope, which differentiates it from the batch variant.
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 modifying labels on a single message and tells the agent to use label IDs, but it does not explicitly state when to use this tool instead of alternatives like gmail_batch_modify_labels or gmail_archive. The scope requirement is mentioned, but no clear exclusion criteria 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.
gmail_reply_in_threadA
Reply to an existing email thread. Creates a draft reply and optionally sends it. Requires compose or full scope.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | CC email address(es) | |
| to | Yes | Recipient email address(es) | |
| bcc | No | BCC email address(es) | |
| body | Yes | Reply body (plain text, or HTML when bodyFormat="html") | |
| confirm | No | Required if sendImmediately is true. Safety gate for sending. | |
| subject | Yes | Email subject (typically Re: original subject) | |
| threadId | Yes | The thread ID to reply in | |
| accountId | Yes | The Google account ID, alias, or email | |
| inReplyTo | Yes | Message-ID of the message being replied to | |
| bodyFormat | No | Body content type. "text" (default) sends as text/plain with RFC 3676 format=flowed so clients reflow paragraphs instead of rendering hard wraps. "html" sends as text/html for HTML-formatted bodies. | |
| references | Yes | References header (Message-ID chain for threading) | |
| sendImmediately | No | If true AND confirm is true, send immediately instead of creating a draft |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It discloses the two main behaviors (creating a draft and optionally sending) and the required OAuth scope. It does not mention the confirm gate for sending, but that is covered in 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?
The description is two sentences with no redundancy. It front-loads the primary purpose, then adds the draft/send behavior and auth requirement. 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?
Given 12 parameters, no output schema, and no annotations, the description effectively communicates the core action, auth prerequisites, and draft-vs-send options. The schema handles parameter details, so the description is sufficient for an agent to select and invoke the 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 the baseline is 3. The description adds no parameter-specific meaning beyond the schema's fields; it only states the overall function and scope requirement.
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: 'Reply to an existing email thread' clearly states the action. It further clarifies that it creates a draft and optionally sends, distinguishing it from generic draft creation or send-only 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 phrase 'Reply to an existing email thread' clearly indicates the intended use case versus creating new drafts. However, it does not explicitly name alternative sibling tools or provide exclusion criteria, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_search_messagesB
Search for messages in Gmail using Gmail search syntax (e.g., "from:user@example.com", "subject:hello", "is:unread")
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Gmail search query | |
| accountId | Yes | The Google account ID, alias, or email | |
| pageToken | No | Token for pagination | |
| maxResults | No | Maximum number of results (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full burden of disclosing behavior. It does not state whether the tool is read-only, what the response contains (list of message IDs vs. full messages), whether authentication is required, or any pagination/rate-limit behavior. The examples of Gmail syntax provide some operational context, but significant behavioral traits remain 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 that immediately states the action and resource. It uses parentheses for examples, keeping the main clause clean. Every word earns its place, and there is no redundancy or 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?
There is no output schema, so the description should clarify what the tool returns. It does not mention whether results are full message objects, summaries, or just IDs. It also omits any prerequisites (e.g., account must be authenticated) and does not reference pagination behavior despite the pageToken parameter. This leaves the agent under-informed for a search 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%: all four parameters (query, accountId, pageToken, maxResults) have descriptions. The description adds value by giving example query values, which helps understand the 'query' parameter. However, it does not elaborate on other parameters beyond what the schema already states, 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 clearly states the tool's function: 'Search for messages in Gmail using Gmail search syntax'. It provides concrete examples ('from:user@example.com', 'subject:hello', 'is:unread') that illustrate the query format. This differentiates it from sibling tools like gmail_get_message (fetch a specific message) and gmail_list_labels (list labels).
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 by giving search syntax examples but does not explicitly state when to choose this tool over alternatives like gmail_get_message or gmail_get_messages_batch. It lacks exclusions or explicit situational guidance, so it falls into the 'implied usage' category rather than clear context with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_send_draftA
Send a draft email. IMPORTANT: This will actually send the email. You MUST pass confirm: true to proceed. Requires compose or full scope.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | REQUIRED: Must be true to actually send. This is a safety gate to prevent accidental sends. | |
| draftId | Yes | The draft ID to send | |
| accountId | Yes | The Google account ID, alias, or email |
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 explicitly warns 'This will actually send the email' and emphasizes the confirm safety gate, which is crucial for an irreversible action. It also mentions the required OAuth scope. It does not describe post-send behavior, but the key risks are covered.
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 two sentences long, front-loaded with the core purpose, and includes a critical safety warning. Every sentence provides value, and there is 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 send action, the description covers the essential context: the irreversible nature, the confirmation requirement, and the required scope. It does not explain return values, but no output schema is present and the action's outcome is obvious. Sibling tools provide enough surrounding context to distinguish this 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 coverage is 100% and each parameter has a clear description in the schema. The tool description repeats the confirm requirement but does not add additional meaning beyond what the schema already provides. Baseline 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 'Send a draft email' with a specific verb and resource, clearly distinguishing it from sibling tools like gmail_create_draft, gmail_update_draft, and gmail_delete_draft. The action is unambiguous and leaves no doubt about what the tool does.
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 makes clear that this tool is for sending an already-created draft, which is implied by the context. It does not explicitly name alternatives or exclusions, but the contrast with other draft-related tools is evident. The safety warning about confirm being required is an operational guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_set_vacationA
Configure the vacation auto-reply settings. Can enable or disable the vacation responder. Enabling requires confirmation. Requires settings scope.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Required when enabling vacation responder. Safety gate. | |
| endTime | No | End time for vacation responder (epoch milliseconds) | |
| accountId | Yes | The Google account ID, alias, or email | |
| startTime | No | Start time for vacation responder (epoch milliseconds) | |
| enableAutoReply | Yes | Whether to enable the vacation auto-reply | |
| responseSubject | No | Subject line for the auto-reply | |
| responseBodyHtml | No | HTML body of the auto-reply (optional) | |
| restrictToDomain | No | Only send auto-reply to people in the same domain | |
| restrictToContacts | No | Only send auto-reply to people in contacts | |
| 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 provided, the description carries the behavioral disclosure burden. It discloses that enabling requires confirmation and that a settings scope is needed, which are important behavioral traits. However, it does not mention other behaviors such as idempotency, interaction with existing settings, or what happens on disable.
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 only two sentences, front-loaded with the main purpose ('Configure the vacation auto-reply settings') followed by crucial prerequisites. Every sentence earns its place with no redundant wording.
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 10 parameters and no output schema, the description is brief but the schema covers parameter details. It provides key requirements (confirmation, scope) but lacks broader context such as the effect of disabling, whether partial updates are allowed, or how the settings integrate with Gmail. The absence of an output schema is not an issue, but the description could be more 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 input schema has 100% description coverage, so the baseline is 3. The description adds minimal parameter context beyond mentioning confirmation, which aligns with the confirm parameter, but it does not explain any parameters in detail. The schema already provides thorough 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 'Configure the vacation auto-reply settings' and 'Can enable or disable the vacation responder', which specifies the verb and resource. This distinguishes it from the sibling tool gmail_get_vacation, which is for reading the current settings.
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 as the setter counterpart to gmail_get_vacation but does not explicitly mention alternatives or when-not-to-use. It does provide some usage context by stating that enabling requires confirmation and requires a settings scope, but lacks clear guidance on when to use this tool versus other Gmail tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_trashA
Move a Gmail message to Trash. The message will be permanently deleted after 30 days. Requires full scope.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The Google account ID, alias, or email | |
| messageId | Yes | The message ID to trash |
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 states that the message is moved to Trash, that it will be permanently deleted after 30 days, and that it requires full scope. This covers the most important side effects and permission requirements, though it does not mention reversibility or exact behavior if the message is already trashed.
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 two short sentences, front-loaded with the action, and includes only essential details (destination, deletion policy, scope requirement). 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?
This is a simple two-parameter tool with a clear action and side effects. The description covers what it does, the key consequence (permanent deletion), and an authentication requirement. Given the low complexity and full schema coverage, the description is complete enough for an agent to 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?
Schema description coverage is 100% for both parameters (accountId, messageId), and the schema descriptions are clear. The tool description does not add extra meaning beyond what the schema already provides, 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?
The description uses a specific verb and resource: 'Move a Gmail message to Trash.' This clearly distinguishes the tool from siblings like gmail_archive, gmail_untrash, and gmail_mark_read_unread, and adds the key consequence of permanent deletion after 30 days.
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 appropriate context: use when you want to move a message to Trash. It does not explicitly compare against alternatives (e.g., archive vs. trash, or untrash), but it clearly communicates the operation and the 30-day deletion window, giving the agent enough context to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_untrashA
Restore a Gmail message from Trash back to the mailbox. Requires full scope.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The Google account ID, alias, or email | |
| messageId | Yes | The message ID to restore from trash |
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 mentions a permission requirement ('full scope'), which is useful, but does not explain side effects, reversibility, idempotency, or behavior when the message is not in Trash. It is adequate for a simple restore 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 two short sentences: the first states the purpose and the second adds a key requirement. There is no redundancy or filler, and information 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?
Given the tool's simplicity, the description covers the essential action and a critical prerequisite (full scope). It does not describe return values or edge cases, but the absence of an output schema and the simple nature of the operation make this acceptable.
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 provides 100% coverage for both parameters with clear descriptions (account ID and message ID). The description adds no extra parameter-specific semantics, so the baseline of 3 (schema does the heavy lifting) 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 ('Restore') and explicitly states the resource ('a Gmail message') and the action (moving from Trash back to the mailbox). This clearly distinguishes it from siblings like gmail_trash, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through its purpose but provides no explicit when-to-use or alternative guidance. The phrase 'Requires full scope' gives a prerequisite, but there is no mention of when to prefer this over other label-modification tools or any contextual conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_update_draftA
Update an existing draft email. Replaces the entire draft content. Requires compose or full scope.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | CC email address(es), comma-separated for multiple | |
| to | Yes | Recipient email address(es), comma-separated for multiple | |
| bcc | No | BCC email address(es), comma-separated for multiple | |
| body | Yes | Email body (plain text, or HTML when bodyFormat="html") | |
| draftId | Yes | The draft ID to update | |
| subject | Yes | Email subject | |
| threadId | No | Thread ID (for continuing a conversation) | |
| accountId | Yes | The Google account ID, alias, or email | |
| inReplyTo | No | Message-ID of the message being replied to | |
| bodyFormat | No | Body content type. "text" (default) sends as text/plain with RFC 3676 format=flowed so clients reflow paragraphs instead of rendering hard wraps. "html" sends as text/html for HTML-formatted bodies. | |
| references | No | References header for threading |
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 usefully warns that the operation 'Replaces the entire draft content' (a destructive overwrite) and states the required auth scope ('compose or full scope'). However, it omits details such as whether attachments are preserved or what the return value is, leaving some 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?
Three short sentences, no filler, and the most important behavioral fact ('Replaces the entire draft content') appears early. Every sentence 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?
Given 11 parameters, a fully covered schema, and no output schema, the description is lean but sufficient for basic invocation. It lacks mention of return value or attachment handling, but the key warning about full replacement mitigates the risk of misuse.
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 covers 100% of parameters with descriptions, so the baseline is 3. The description adds crucial meaning by stating that the entire draft content is replaced, implying omitted parameters will be cleared—valuable context beyond the per-field schema descriptions.
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 ('Update') and the resource ('existing draft email'). The phrase 'Replaces the entire draft content' further specifies the scope, distinguishing it from partial edits or create/send operations among sibling 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 description implies use when a draft already exists and needs modification, but it does not explicitly contrast with gmail_create_draft or explain when not to use it. No exclusions or alternative tools are mentioned, so the guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail_update_labelA
Update a Gmail label (rename, change color, visibility). System labels cannot be modified. Requires full scope.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New label name | |
| labelId | Yes | The label ID to update | |
| accountId | Yes | The Google account ID, alias, or email | |
| textColor | No | New text color hex | |
| backgroundColor | No | New background color hex | |
| labelListVisibility | No | Whether to show label in label list | |
| messageListVisibility | No | Whether to show label in message list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It adds valuable context: the system-label restriction and the full-scope auth requirement. However, it doesn't disclose mutation semantics such as whether omitted fields remain unchanged, error behavior when attempting to update a system label, or whether changes are reversible — significant gaps for a write tool with no annotations.
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 two sentences with front-loaded purpose, followed by a constraint and an auth requirement. No wasted words; every clause adds 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?
The tool has 7 parameters and no output schema or annotations, making it a moderately complex operation. The description covers purpose, a key constraint, and auth scope, but leaves open questions about update semantics (partial updates?), failure modes (system label attempt), and what the caller receives in the response. Adequate for selection and basic invocation, but not for fully understanding the operation's behavior.
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's 'rename, change color, visibility' loosely maps to name, textColor/backgroundColor, and labelListVisibility/messageListVisibility, but it doesn't add meaning beyond the schema's per-parameter descriptions (e.g., hex format, enum choices, or partial-update behavior). The schema already documents each parameter thoroughly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Update') and resource ('Gmail label') with explicit operation scope (rename, change color, visibility). It clearly distinguishes from sibling tools like gmail_create_label (create), gmail_delete_label (delete), and gmail_modify_labels (which modifies labels on messages rather than the label definition itself). The system-label exclusion further clarifies scope.
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 clear context: it can only modify user-created labels ('System labels cannot be modified') and requires full OAuth scope ('Requires full scope'). This gives the agent actionable constraints for deciding when to call it, though it stops short of explicitly naming alternatives like gmail_create_label or gmail_delete_label for related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_add_accountA
Add a new Google account via OAuth. Returns an authorization URL that you must show to the user. The user opens this URL in their browser to authorize. After authorization, use google_check_pending_auth to complete the process. Tiers: mail_readonly (default), mail_compose, mail_full, mail_settings, drive_readonly, drive_full, calendar_readonly, calendar_full, or all.
| Name | Required | Description | Default |
|---|---|---|---|
| scopeTier | No | Single permission tier (use scopeTiers for multiple) | |
| scopeTiers | No | Combine multiple tiers (e.g., ["mail_full", "drive_readonly"]) |
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 key behavior: returns a URL, requires user interaction in a browser, and needs a follow-up call to complete authentication. It also lists the permission tiers. It doesn't mention potential failures or whether the tool is non-destructive, but for an OAuth initiation, the core flow is well covered.
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 sentences cover purpose, the two-step flow, and the available tiers. No redundant content; it's front-loaded and every sentence 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?
Given the tool's complexity (OAuth flow) and lack of output schema, the description explains the return value (authorization URL) and the required next step. It also lists all permission tiers. It doesn't cover edge cases like account existence or revocation, but it is sufficiently complete for an agent to invoke 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 coverage is 100% (both parameters have descriptions and enums). The description adds the default value 'mail_readonly (default)', which is not in the schema, and clarifies the difference between scopeTier and scopeTiers. This goes beyond schema alone, warranting a 4.
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+resource: 'Add a new Google account via OAuth.' It distinguishes this from siblings by explaining it initiates OAuth and returns an authorization URL, which is unique among the Google account tools. The tier list further clarifies scope.
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 explicitly tells the agent to show the returned URL to the user and to use google_check_pending_auth after authorization, providing a clear workflow. However, it doesn't explicitly mention when not to use this tool or alternatives like reauth for existing accounts, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_check_pending_authA
Check the status of a pending Google account authorization. Call this after the user has completed the OAuth flow in their browser. Returns the connected account info if successful.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | The session ID returned by google_add_account |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given that no annotations are provided, the description carries the full burden of behavioral disclosure. It states the return behavior on success: 'Returns the connected account info if successful.' However, it does not disclose what happens if the auth is still pending, fails, or how errors/timeouts are handled. This is a moderate gap for a state-checking 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 two sentences, front-loaded with the main action, and every sentence adds value. The first sentence states the purpose, the second gives usage timing and return behavior. 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?
For a simple single-parameter tool with no annotations and no output schema, the description covers the core purpose and success case but omits behavior for pending or failed states, and does not describe the response format beyond 'connected account info.' This is adequate but leaves room for the agent to handle unexpected outcomes, so it is 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?
The input schema already provides full coverage (100%) for the single parameter sessionId, including its origin: 'The session ID returned by google_add_account.' The description does not add further detail about the parameter beyond the schema, so it earns the baseline score 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 uses a specific verb+resource: 'Check the status of a pending Google account authorization.' It clearly distinguishes this from sibling tools like google_add_account (which initiates the flow) and google_remove_account (which removes an account) by focusing on the pending-auth check 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 description explicitly states when to use it: 'Call this after the user has completed the OAuth flow in their browser.' This provides clear temporal context and implies it should be used after google_add_account initiates the flow. However, it does not explicitly name alternatives or exclusions, but the 'after' instruction is sufficient for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_list_accountsA
List all connected Google accounts
| 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 full responsibility for behavioral disclosure. It only states 'List all connected Google accounts' without mentioning what information is returned, whether it's a safe read-only operation, or any side effects like refreshing tokens. This is thin given the lack of annotation support.
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 states exactly what the tool does without waste. It is appropriately sized for such a simple 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?
Given the tool's simplicity (no parameters, no output schema), the description is minimally viable. However, it lacks any detail about the return format or account identifiers, and there is no output schema to compensate. A bit more context, like 'returns account email and ID', would round it out.
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 an empty input schema, so there is nothing to explain. The baseline for 0 params is 4, and the description doesn't need to add parameter details because none exist.
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 ('List') and resource ('all connected Google accounts'), clearly distinguishing it from sibling tools like google_add_account or google_remove_account. There's no ambiguity about what the tool does.
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 context on when to use this tool versus alternatives, such as checking pending auth or reauthenticating. It does not mention any prerequisites or typical scenarios, so 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_reauth_accountA
Re-authenticate an existing Google account. Use this when a refresh token is invalidated (e.g., password change, revoked access, expired grant) or when you need to add/change scope tiers without losing the account ID, alias, description, or labels. Returns an authorization URL. After the user authorizes, call google_check_pending_auth with the sessionId. If no scope tier is given, the account's current scopes are reused. The authorized Google account must match the existing email; otherwise the reauth fails.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The account ID, alias, or email of the account to re-authenticate | |
| scopeTier | No | Optional: change scope tier on reauth (use scopeTiers for multiple) | |
| scopeTiers | No | Optional: combine multiple tiers on reauth |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full responsibility for behavioral disclosure. It discloses that the tool returns an authorization URL, requires user authorization, reuses current scopes if none are given, and fails if the authorized email does not match the existing account. These details give the agent a solid understanding of the side effects and prerequisites beyond the raw 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?
Every sentence in the description serves a purpose: purpose, usage triggers, return value, follow-up step, default behavior, and a constraint. At roughly five sentences, it is dense but not verbose, and it front-loads the core action. There is no filler or 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?
The tool has three parameters and no output schema, yet the description explains the return value (authorization URL), the necessary next step (google_check_pending_auth), the default scope behavior, and a critical success condition (email must match). This fully covers the agent's need to invoke and complete the flow, leaving no significant gaps in 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 input schema already provides 100% coverage for all three parameters, including enum lists and individual descriptions. The description adds meaningful semantics by clarifying that 'If no scope tier is given, the account's current scopes are reused', which explains the default behavior and the relationship between scopeTier and scopeTiers. This goes slightly beyond the schema's 'Optional' flags, hence a 4.
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 the specific verb+resource 'Re-authenticate an existing Google account', which clearly states the tool's action. It further distinguishes from siblings like google_add_account and google_remove_account by describing reauth as a way to refresh tokens or change scope tiers without losing account metadata. This makes the purpose unambiguous and differentiable.
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 explicitly states when to use the tool: 'Use this when a refresh token is invalidated... or when you need to add/change scope tiers'. It also provides a clear alternative path by instructing to 'call google_check_pending_auth with the sessionId' after authorization, effectively outlining the follow-up workflow. This gives strong guidance on usage within the tool's ecosystem.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_remove_accountB
Remove a Google account and revoke its tokens
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The account ID, alias, or email to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions token revocation as a side effect, but for a destructive removal operation it does not warn about irreversibility, required permissions, or consequences to data. This is insufficient 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, front-loaded sentence with no wasted words. It effectively communicates the core action in minimal length, deserving a high score for 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?
Given the destructive nature of the operation and the lack of annotations, the description is too thin. It omits crucial context such as irreversibility, scope of effects, and any required authorization. A simple one-line description is not enough for a tool that removes an account and revokes tokens.
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 100% of the parameter, describing it as 'account ID, alias, or email to remove'. The description adds no further parameter detail beyond what the schema already provides, so a baseline score 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 'Remove' and identifies the resource as 'a Google account', with an added consequence of revoking tokens. This clearly states the tool's purpose and differentiates it from account management siblings like add or reauth.
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 information about when to use this tool versus alternatives, nor any prerequisites or exclusions. It simply states what it does without guiding tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_set_account_aliasA
Set a friendly alias on a Google account (e.g., "work", "personal"). Once set, you can use the alias instead of the account ID in all tool calls. Set to empty string to remove.
| Name | Required | Description | Default |
|---|---|---|---|
| alias | Yes | The alias to assign (e.g., "work", "personal"). Empty string to remove. | |
| accountId | Yes | The account ID, existing alias, or email to update |
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 key behavior that the alias can replace account IDs universally and that an empty string removes the alias. It does not mention edge cases like case sensitivity or persistence, but these are minor for a simple setter.
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, efficient and front-loaded. The first sentence states the purpose, the second explains the broader utility and removal semantics. 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?
For a simple two-parameter tool with no output schema, the description is complete enough: it covers the action, the alias usage in all tool calls, and removal. The schema handles parameter details, so the description does not need to over-explain.
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 documents both parameters with clear descriptions, achieving 100% coverage. The description adds value by giving a concrete example and restating the removal behavior, but it does not add substantial meaning 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 ('Set a friendly alias') and the resource ('on a Google account'), with concrete examples. It distinguishes itself from sibling tools like google_set_account_labels and google_set_account_description by focusing specifically on aliases.
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 explains when to use this tool: to create a reusable alias that can substitute for the account ID in all tool calls. It does not explicitly mention alternatives or exclusions, but the context is clear enough for the agent to select it appropriately among similar account-setting tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_set_account_descriptionA
Set a human-readable description on a Google account (e.g., "Work - engineering team", "Personal Gmail"). This description appears in google_list_accounts output to help identify accounts. Set to empty string to remove.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The account ID, alias, or email to update | |
| description | Yes | Human-readable description (e.g., "Work - engineering team"). Empty string 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. It discloses meaningful behaviors: the description appears in google_list_accounts, and setting to an empty string removes it. This goes beyond the schema and helps an agent understand side effects, though it does not mention overwrite behavior or auth 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?
Two sentences with no fluff. The first sentence states the action with examples; the second gives context and removal semantics. Every word is useful and 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 2-parameter setter with no output schema and no annotations, the description is complete: it states what it does, where the effect appears, and how to unset. Enough for an agent to select and invoke correctly without further 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% for both parameters. The description adds only redundant examples and the empty-string removal note, which is already in the schema. It adds no new parameter-specific 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 uses a specific verb ('Set') and resource ('human-readable description on a Google account'), with examples and a clear distinction from sibling tools like google_set_account_labels or google_set_account_alias. It states exactly what the tool does and where the effect is visible (google_list_accounts output).
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 context on when to use this tool (to help identify accounts in google_list_accounts) and how to remove a description, but it does not explicitly compare or exclude alternatives like labels or alias. Clear context, though no direct 'when not to use'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_set_account_labelsB
Set labels on a Google account (e.g., personal, work, school)
| Name | Required | Description | Default |
|---|---|---|---|
| labels | Yes | Labels to set on the account | |
| accountId | Yes | The account ID, alias, or email to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description only restates the action without disclosing whether labels are replaced or merged, whether authentication is required, or what side effects occur. For a mutation tool, this is insufficient 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 a single, focused sentence with useful examples and no wasted words. It is appropriately concise and 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 tool, the description and schema cover the basic invocation, but important behavioral context is missing, such as whether setting labels replaces existing labels or adds to them. It is adequate 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?
Schema coverage is 100% for both parameters, so the description adds little beyond the schema. The example label values (personal, work, school) are a minor enhancement over the schema's 'Labels to set on the 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 uses a specific verb ('Set') and resource ('Google account') with concrete examples (personal, work, school). It clearly distinguishes this account-label tool from sibling Gmail label tools by emphasizing 'Google account' rather than message labels.
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 gmail_modify_labels or google_set_account_description. No prerequisites, exclusions, or context for choosing this tool over siblings are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_versionA
Get the MCP Google server version, git commit, and build date. Use this to verify which version is running.
| 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 carries the full burden. It discloses exactly what will be returned (version, git commit, build date) and implies a read-only, side-effect-free operation, which is sufficient for this simple 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 two short sentences with no filler. The key action and purpose are 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 zero-parameter tool with no output schema, the description fully covers purpose, behavior, and expected return values. There are no 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?
There are zero parameters, and schema coverage is 100% trivially. Baseline for 0 params is 4, and the description adds semantic value by indicating the output fields, which the schema cannot convey.
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 clearly identifies the resource: 'MCP Google server version, git commit, and build date.' This is unique among siblings; no other tool provides version info.
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 explicitly states 'Use this to verify which version is running,' giving clear context for when to invoke it. No exclusions are necessary since it's a standalone diagnostic tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
63 tool updates
v0.4.3- First observed
calendar_create_event - First observed
calendar_delete_event - First observed
calendar_freebusy - First observed
calendar_get_event - First observed
calendar_list_calendars - First observed
calendar_list_events - First observed
calendar_move_event - First observed
calendar_rsvp - First observed
calendar_search_events - First observed
calendar_update_event - First observed
drive_copy_file - First observed
drive_create_folder - First observed
drive_download_file - First observed
drive_get_file - First observed
drive_get_file_content - First observed
drive_get_full_file_content - First observed
drive_list_files - First observed
drive_list_shared_drives - First observed
drive_move_file - First observed
drive_rename_file - First observed
drive_search_files - First observed
drive_share_file - First observed
drive_trash_file - First observed
drive_update_permissions - First observed
drive_upload_file - First observed
gmail_archive - First observed
gmail_batch_modify_labels - First observed
gmail_bulk_save_attachments - First observed
gmail_create_draft - First observed
gmail_create_draft_with_attachment - First observed
gmail_create_filter - First observed
gmail_create_label - First observed
gmail_delete_draft - First observed
gmail_delete_filter - First observed
gmail_delete_label - First observed
gmail_get_attachment - First observed
gmail_get_draft - First observed
gmail_get_message - First observed
gmail_get_messages_batch - First observed
gmail_get_thread - First observed
gmail_get_vacation - First observed
gmail_list_attachments - First observed
gmail_list_filters - First observed
gmail_list_labels - First observed
gmail_mark_read_unread - First observed
gmail_modify_labels - First observed
gmail_reply_in_thread - First observed
gmail_search_messages - First observed
gmail_send_draft - First observed
gmail_set_vacation - First observed
gmail_trash - First observed
gmail_untrash - First observed
gmail_update_draft - First observed
gmail_update_label - First observed
google_add_account - First observed
google_check_pending_auth - First observed
google_list_accounts - First observed
google_reauth_account - First observed
google_remove_account - First observed
google_set_account_alias - First observed
google_set_account_description - First observed
google_set_account_labels - First observed
google_version
TDQS
Scored across 63 tools
Tools are cleanly separated by service prefixes (google_, gmail_, drive_, calendar_) and action verbs (list, get, create, update, delete). Even similar tools like drive_get_file vs drive_get_file_content are clearly differentiated by descriptions.
All tools follow a consistent snake_case verb_noun pattern with service-specific prefixes. Verbs like list, get, create, update, delete, search are used uniformly across services, making the API predictable.
With 63 tools, this server far exceeds the typical 'too many' threshold of 25+. While the broad scope of Gmail, Drive, Calendar, and account management justifies a larger surface, the sheer number could overwhelm an agent and make tool selection harder.
The server covers the full lifecycle for accounts, Gmail (search, drafts, labels, filters, vacation, attachments), Drive (search, upload, download, share, permissions), and Calendar (CRUD, freebusy, RSVP). Only minor operations like permanent deletion are missing, but trash/archive handles those cases.
Maintenance
Related MCP Connectors
Multiple Google accounts (Gmail, Calendar, Drive, Contacts, Tasks) in one Claude connector.
Permissioned access to Gmail, Drive and Calendar via the user's own Google account
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Gmail and Google Calendar using the MCP protocol, supporting multiple Google accounts, email management, and calendar operations through natural language.24 npm32MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Google Workspace services (Gmail, Calendar, Drive, Docs, Sheets, Chat, Slides, People) through natural language using Claude Desktop, Claude Code CLI, and other MCP clients.410 npm3MIT
- AlicenseBqualityDmaintenanceMCP server for interacting with Google Gmail and Calendar via natural language, supporting multiple accounts.359MIT
- AlicenseBqualityDmaintenanceProvides natural language control over Google Workspace services (Calendar, Drive, Gmail, Docs, Sheets, Slides, Forms, Tasks, Chat) via MCP, with OAuth 2.1 multi-user authentication.100MIT