Hardened Google Workspace MCP
This server provides a security-hardened Google Workspace integration for Claude Code, enabling read/write operations across Gmail, Drive, Docs, Sheets, Calendar, Forms, and Slides — with dangerous exfiltration vectors intentionally removed.
Gmail
Search, read, and batch-retrieve messages, threads, and attachments
Create draft emails (plain text or HTML, including reply drafts)
List, create, update, and delete labels; add/remove labels from messages
List existing filters
Google Drive
Search, list, and read files/folders (including shared drives)
Create new files; update file metadata (rename, describe, star, move)
Get download URLs, shareable links, file permissions, and sharing status
Export Google Docs to PDF
Google Docs
Search, list, create, read, and edit documents
Modify text and formatting (bold, italic, color, font); find and replace text
Insert tables, lists, page breaks, and images; update headers/footers
Batch update documents atomically; inspect document structure
Read, create, reply to, and resolve comments
Google Sheets
List, create, and get metadata for spreadsheets and sheets
Read and modify cell values; format ranges (colors, number/date formats)
Add, update, and delete conditional formatting rules
Read, create, reply to, and resolve comments
Google Calendar
List calendars; view, create, modify, and delete events
Search events by keyword; create events with Meet links and reminders
Google Forms
Create new forms; retrieve form details and questions
Update publish settings; list and retrieve form responses
Google Slides
Create presentations; get presentation and slide details
Apply batch updates; generate slide thumbnails
Read, create, reply to, and resolve comments
Authentication
OAuth flow with secure credential storage via native platform managers (macOS Keychain, Windows Credential Manager, Linux SecretService)
Hardened Restrictions (what it cannot do):
❌ Send emails (drafts only — manual sending required)
❌ Share files externally from Google Drive
❌ Create Gmail filters or auto-forwarding rules
❌ Add attendees to Calendar events
❌ Trash Google Drive files or apply spam labels to emails
Allows reading emails and creating drafts within Gmail while preventing data exfiltration by disabling email sending.
Provides a security-hardened suite of integrations for Google Workspace services including Gmail, Drive, Docs, Sheets, Calendar, Forms, and Slides.
Provides capabilities to view existing calendar events and create new ones.
Uses Google Cloud OAuth credentials to securely authenticate and access Google Workspace data with tokens stored in macOS Keychain.
Provides tools to read and edit content within Google Docs documents.
Enables reading and creating files in Google Drive while restricting external sharing capabilities for enhanced security.
Allows for reading and creating Google Forms.
Enables reading from and writing data to Google Sheets spreadsheets.
Enables reading and editing Google Slides presentations.
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., "@Hardened Google Workspace MCPsummarize the 'Q4 Planning' doc and list the action items"
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.
Hardened Google Workspace MCP
A security-hardened Google Workspace integration for Claude Code.
This is a fork of taylorwilsdon/google_workspace_mcp with dangerous operations removed to prevent data exfiltration via prompt injection attacks. See SECURITY.md for details.
What This Does
Enables Claude Code to interact with your Google Workspace:
Gmail: Read emails, create drafts (cannot send)
Google Drive: Read/create files (cannot share externally)
Google Docs: Read and edit documents
Google Sheets: Read and write spreadsheets
Google Calendar: View and create events (cannot add attendees)
Google Forms: Read and create forms
Google Slides: Read and edit presentations
Related MCP server: Mariana Google MCP
Why "Hardened"?
LLMs are vulnerable to prompt injection attacks—malicious instructions hidden in content the model processes. An attacker could embed instructions in an email or document that trick the AI into exfiltrating sensitive data.
This fork removes dangerous operations — both exfiltration vectors and destructive actions:
No email sending - Claude can draft emails, but you must manually send them from Gmail
No file sharing - Claude cannot share files with external users
No filter creation - Claude cannot create auto-forwarding rules
No event attendees - Claude cannot add attendees to calendar events (invitations could exfiltrate data)
No file trashing - Claude cannot move Drive files to trash
No email trashing - Claude cannot trash or spam-label emails
Secure credential storage - OAuth tokens stored in your platform's native credential manager (macOS Keychain, Windows Credential Manager, or Linux SecretService/KWallet), not plaintext files
⚠️ This Reduces Risk, It Does NOT Eliminate It
Important: This hardening only affects the Google Workspace tools. Claude Code has access to many other tools that could be used for data exfiltration (web requests, file writes, code execution, other MCP servers).
You must stay vigilant:
Always review tool calls before approving them
Never disable permission prompts
Be suspicious of unexpected web requests or file operations
Monitor Claude's behavior when processing external content
See SECURITY.md for the complete security model and additional risks.
Prerequisites
Claude Code installed on your machine
A Google Workspace or personal Google account
Python 3.11+ installed
Quick Start
Step 1: Create OAuth Credentials
Follow OAUTH_SETUP.md to create Google Cloud OAuth credentials.
Step 2: Clone and Install
git clone https://github.com/c0webster/hardened-google-workspace-mcp.git ~/hardened-google-workspace-mcp
cd ~/hardened-google-workspace-mcp
uv syncNote: If you don't have
uvinstalled, run:curl -LsSf https://astral.sh/uv/install.sh | sh
Step 3: Configure Claude Code
Add the MCP server using claude mcp add:
claude mcp add hardened-workspace \
--scope user \
-e GOOGLE_OAUTH_CLIENT_ID="YOUR_CLIENT_ID" \
-e GOOGLE_OAUTH_CLIENT_SECRET="YOUR_CLIENT_SECRET" \
-- uv run --directory ~/hardened-google-workspace-mcp python -m main --single-userReplace YOUR_CLIENT_ID and YOUR_CLIENT_SECRET with your OAuth credentials.
Or manually add to ~/.claude/mcp_config.json:
{
"mcpServers": {
"hardened-workspace": {
"command": "uv",
"args": ["run", "--directory", "/Users/YOUR_USERNAME/hardened-google-workspace-mcp", "python", "-m", "main", "--single-user"],
"env": {
"GOOGLE_OAUTH_CLIENT_ID": "YOUR_CLIENT_ID",
"GOOGLE_OAUTH_CLIENT_SECRET": "YOUR_CLIENT_SECRET"
}
}
}
}Step 4: Authorize with Google
Start (or restart) Claude Code
The first time you use a Google Workspace tool, a browser window will open
Sign in with your Google account
Click "Allow" to grant permissions
For detailed instructions, see SETUP.md.
Example Prompts
Once set up, try these prompts in Claude Code:
List my recent emails from the past week
Read the document "Q4 Planning" from my Google Drive
Create a draft email to john@example.com about the meeting tomorrow
Show me what's on my calendar for next Monday
Update cell A1 in my "Budget 2025" spreadsheet to "Updated"Troubleshooting
"OAuth credentials not found"
Make sure you've set the GOOGLE_OAUTH_CLIENT_ID and GOOGLE_OAUTH_CLIENT_SECRET environment variables in your MCP config.
"Permission denied" errors
Delete the credentials folder:
rm -rf ~/.credentials/workspace-mcp/Restart Claude Code
Re-authorize with your Google account
"Tool not found" errors
Make sure the MCP server is running. Check Claude Code's MCP status panel.
Browser doesn't open for authorization
If the browser doesn't open automatically, check the Claude Code output for a URL to copy/paste manually.
Security Notes
Never disable permission prompts - Always review what Claude is asking to do
Drafts require manual sending - Claude can create email drafts, but you must open Gmail to send them
No external sharing - Claude cannot share files outside your organization
Report issues - If Claude behaves unexpectedly, file an issue
⚠️ Remaining Risks
While this fork removes obvious exfiltration vectors, data leakage is still possible:
Shared folder creation - Creating documents in folders already shared with external parties
Attacker-owned documents - Editing documents that an attacker has shared with you
Jailbreak with API access - A jailbroken Claude could potentially write code to directly call Google APIs
Best practices:
Review document creation/editing operations carefully
Be suspicious of recently shared external documents
Monitor your Google Drive activity after Claude sessions
Consider using a dedicated Google account for sensitive work
See SECURITY.md for comprehensive security documentation and mitigation strategies.
Support
For issues with this project, please file an issue on GitHub.
Based on google_workspace_mcp by Taylor Wilsdon, licensed under MIT.
Available Tools
73 toolsadd_conditional_formattingA
Adds a conditional formatting rule to a range.
Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. range_name (str): A1-style range (optionally with sheet name). Required. condition_type (str): Sheets condition type (e.g., NUMBER_GREATER, TEXT_CONTAINS, DATE_BEFORE, CUSTOM_FORMULA). condition_values (Optional[Union[str, List[Union[str, int, float]]]]): Values for the condition; accepts a list or a JSON string representing a list. Depends on condition_type. background_color (Optional[str]): Hex background color to apply when condition matches. text_color (Optional[str]): Hex text color to apply when condition matches. rule_index (Optional[int]): Optional position to insert the rule (0-based) within the sheet's rules. gradient_points (Optional[Union[str, List[dict]]]): List (or JSON list) of gradient points for a color scale. If provided, a gradient rule is created and boolean parameters are ignored.
Returns: str: Confirmation of the added rule.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| spreadsheet_id | Yes | ||
| range_name | Yes | ||
| condition_type | Yes | ||
| condition_values | No | ||
| background_color | No | ||
| text_color | No | ||
| rule_index | No | ||
| gradient_points | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 effect (adds a rule), key behavioral details (e.g., gradient points create a gradient rule and ignore boolean parameters), and return type. It lacks permission or auth context, but the required user_google_email parameter hints at authentication.
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 well-structured with a concise one-sentence purpose followed by an Args section and a Returns section. It is longer due to the parameter explanations, but every sentence serves a purpose given the lack of schema descriptions.
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 (9 parameters, no annotations, no schema descriptions), the description is nearly complete. It covers all parameters, behavior, and return value. It does not address error conditions or prerequisites beyond user_google_email, but this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides detailed explanations for all 9 parameters, including types, required status, and dependencies (e.g., 'Values for the condition... Depends on condition_type'). Since schema coverage is 0%, this fully compensates and adds significant 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 'Adds a conditional formatting rule to a range' with a specific verb and resource. It distinguishes from sibling tools like update_conditional_formatting and delete_conditional_formatting by focusing on the 'add' action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. Sibling tools (update_conditional_formatting, delete_conditional_formatting) exist, but the description does not mention them or provide context on choosing this tool. Usage is only implied by the word 'Adds'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_modify_gmail_message_labelsA
Adds or removes labels from multiple Gmail messages in a single batch request.
Args: user_google_email (str): The user's Google email address. Required. message_ids (List[str]): A list of message IDs to modify. add_label_ids (Optional[List[str]]): List of label IDs to add to the messages. remove_label_ids (Optional[List[str]]): List of label IDs to remove from the messages.
Returns: str: Confirmation message of the label changes applied to the messages.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| message_ids | Yes | ||
| add_label_ids | No | Label IDs to add to messages. | |
| remove_label_ids | No | Label IDs to remove from messages. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. It states the core action and return type but does not discuss permissions, error handling, partial failures, or the destructive nature of removing labels. It also does not mention authentication requirements, which are likely necessary.
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 well-structured as a docstring with Args and Returns sections. It is concise, with each line serving a purpose, and no extraneous 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?
Given the tool's moderate complexity and the absence of annotations, the description provides adequate but not exhaustive context. It covers all parameters and the return value, but lacks prerequisites, error handling, or batch-specific behaviors. The output schema is noted as present, so return description is redundant, but the overall context is slightly thin.
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 50% of parameters, leaving user_google_email and message_ids undocumented in the schema. The description compensates by clearly explaining these two parameters, noting 'Required' and providing a concise purpose. It also confirms the optional nature of add/remove lists.
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: 'Adds or removes labels from multiple Gmail messages in a single batch request.' It uses a specific verb and resource, and the scope 'multiple' and 'batch' differentiates it from the sibling modify_gmail_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?
The description implies batch usage but does not explicitly state when to use this tool over the singular modify_gmail_message_labels or other alternatives. It mentions 'single batch request' but no explicit exclusions or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_update_docA
Executes multiple document operations in a single atomic batch update.
Args: user_google_email: User's Google email address document_id: ID of the document to update operations: List of operation dictionaries. Each operation should contain: - type: Operation type ('insert_text', 'delete_text', 'replace_text', 'format_text', 'insert_table', 'insert_page_break') - Additional parameters specific to each operation type
Example operations: [ {"type": "insert_text", "index": 1, "text": "Hello World"}, {"type": "format_text", "start_index": 1, "end_index": 12, "bold": true}, {"type": "insert_table", "index": 20, "rows": 2, "columns": 3} ]
Returns: str: Confirmation message with batch operation results
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| document_id | Yes | ||
| operations | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses key behavioral traits: operations are executed in a single atomic batch, and it also lists supported operation types and the return format. It does not cover error handling or permission requirements, but the provided details are substantial.
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 well-organized with clear sections (Args, Example operations, Returns), front-loads the core purpose, and contains no superfluous information. Every sentence adds value, making it appropriately sized for the tool's complexity.
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 batch update tool, the description provides the essential elements: purpose, parameter examples, and return type. It does not cover edge cases like validation failures or whether all operation types are equally supported, but given no annotations or output schema details, it is reasonably complete for an agent to select and invoke the 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 0%, so the description must fully explain parameters. It does this well: each parameter is described concisely, and the complex 'operations' parameter is given structure with allowed types and a concrete example. This goes beyond the basic baseline required.
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: 'Executes multiple document operations in a single atomic batch update.' This specifies a verb (executes), a resource (document operations), and the batch/atomic nature, which distinguishes it from single-operation siblings like modify_doc_text or insert_doc_elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for performing multiple document operations atomically, which gives clear contextual usage. However, it does not explicitly name alternative tools or state when not to use it, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_update_presentationC
Apply batch updates to a Google Slides presentation.
Args: user_google_email (str): The user's Google email address. Required. presentation_id (str): The ID of the presentation to update. requests (List[Dict[str, Any]]): List of update requests to apply.
Returns: str: Details about the batch update operation results.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| presentation_id | Yes | ||
| requests | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 does not mention that updates modify the presentation destructively, whether requests are atomic, or any authentication requirements. The return type is described, but side effects and rate limits are omitted.
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 well-structured with an Args/Returns format, making key information easy to parse. The parameter descriptions are somewhat redundant with the schema but do not add excessive verbosity.
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 required parameters, including a complex list of request objects, and no annotations or detailed schema coverage, the description is insufficient. It omits how to construct requests, error handling behavior, and the exact return content, leaving critical operational details undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds basic parameter explanations (e.g., user_google_email is required) but does not explain the structure of `requests` objects, which are arbitrary dictionaries. Given 0% schema description coverage, this is a significant gap that leaves users guessing about valid request formats.
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 operation as 'Apply batch updates to a Google Slides presentation', which is a specific verb+resource combination that distinguishes it from read-only presentation tools like get_presentation. However, it lacks detail on what 'batch updates' entails, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives like batch_update_doc or individual update tools. It implies use for multiple updates but does not state exclusions, prerequisites, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_drive_file_public_accessA
Searches for a file by name and checks if it has public link sharing enabled.
Args: user_google_email (str): The user's Google email address. Required. file_name (str): The name of the file to check.
Returns: str: Information about the file's sharing status and whether it can be used in Google Docs.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| file_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 search-and-check behavior and describes the return value as a string with sharing status and Google Docs usability. However, it omits edge-case behaviors such as multiple files with the same name, exact-match requirements, or what happens if no file is found. It also doesn't mention whether it is a pure read operation or if any side effects occur, though it appears safe.
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 well-structured with a clear opening sentence, an Args section, and a Returns section. Every sentence earns its place: the purpose is stated first, then parameters are defined, and the return type is clarified. There is no redundant or filler content, and the format is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool that returns a string, the description is largely sufficient. The presence of an output schema (not shown) means return values don't need to be explained, yet the description still provides return info. The main gaps are lack of guidance on file lookup uniqueness and potential error cases, but given the tool's simplicity, the description covers the essentials.
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 only provides parameter names and types with no descriptions (0% coverage). The description compensates by explaining both parameters: 'user_google_email (str): The user's Google email address. Required.' and 'file_name (str): The name of the file to check.' This adds meaningful semantic value beyond the schema, though it could further specify constraints like case sensitivity or exact match 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 clearly states a specific action: 'Searches for a file by name and checks if it has public link sharing enabled.' This combines a specific verb ('searches', 'checks') with a resource (file) and a specific scope (public link sharing), distinguishing it from sibling tools like search_drive_files or get_drive_file_permissions.
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: use when you need to find a file by name and determine if it has public link sharing. While it doesn't explicitly name alternatives or exclusions, the purpose is clear enough that an agent can infer when to select this tool over others like get_drive_shareable_link or get_drive_file_permissions. No misleading guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_docA
Creates a new Google Doc and optionally inserts initial content.
Returns: str: Confirmation message with document ID and link.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| title | Yes | ||
| content | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 creates a doc, optionally inserts content, and returns a confirmation message with document ID and link. However, it does not mention authorization requirements, behavior on invalid input, or potential side effects beyond creation, 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 highly concise, with a clear action sentence followed by a structured return type statement. Every word adds value, and the 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?
For a simple create tool with no nested objects and a clear return schema, the description covers the main function and return value. However, the unexplained required parameter 'user_google_email' and lack of any usage prerequisites or content format details leave gaps that reduce completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, and the description adds minimal parameter meaning. It notes that 'content' is optional initial content, and the title is implied as the doc title, but the required 'user_google_email' parameter is unexplained. Without schema descriptions, the description should compensate more for parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's primary action: 'Creates a new Google Doc and optionally inserts initial content.' This is specific and uses a distinct resource (Google Doc), differentiating it from sibling tools like create_drive_file or create_spreadsheet.
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 creating a new Google Doc with optional initial content, but it does not explicitly state when to prefer this over alternatives or mention any exclusions. Since the tool name is clear, usage is somewhat implied, but explicit guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_document_commentC
Create a new comment on a Google Document.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| document_id | Yes | ||
| comment_content | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the basic action without disclosing behavioral details such as authentication requirements, whether the comment is anchored to a specific location, or the response format. This is a mutation tool, so more context is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence, front-loaded and easy to parse. It avoids verbosity, but under-specification limits its value. Still, the brevity is appropriate for the simple action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three required parameters, no annotation coverage, and no description-level parameter context, the one-sentence description is incomplete. It doesn't mention prerequisites (e.g., Google auth), what inputs are needed, or any post-conditions. Although an output schema exists, the description still leaves significant gaps in user guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must compensate by explaining parameters. It does not mention user_google_email, document_id, or comment_content at all. The parameter names are somewhat self-explanatory, but without clarification of user_google_email's role (e.g., the authenticated user vs. an attributor) the semantics remain ambiguous.
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 'Create a new comment on a Google Document' clearly specifies the verb (create), the resource (comment), and the target (Google Document). It distinguishes from sibling comment tools like read_document_comments, reply_to_document_comment, and resolve_document_comment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as reply_to_document_comment or read_document_comments. It does not mention any prerequisities, exclusions, or alternative scenarios, leaving the user to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_drive_fileA
Creates a new file in Google Drive, supporting creation within shared drives. Accepts either direct content or a fileUrl to fetch the content from.
Args: user_google_email (str): The user's Google email address. Required. file_name (str): The name for the new file. content (Optional[str]): If provided, the content to write to the file. folder_id (str): The ID of the parent folder. Defaults to 'root'. For shared drives, this must be a folder ID within the shared drive. mime_type (str): The MIME type of the file. Defaults to 'text/plain'. fileUrl (Optional[str]): If provided, fetches the file content from this URL. Supports file://, http://, and https:// protocols.
Returns: str: Confirmation message of the successful file creation with file link.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| file_name | Yes | ||
| content | No | ||
| folder_id | No | root | |
| mime_type | No | text/plain | |
| fileUrl | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 explains two content sources (direct content or fileUrl), the fileUrl protocols supported, folder_id behavior for shared drives, and return value. However, it does not specify what happens if both content and fileUrl are provided, leaving a slight ambiguity.
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 moderately sized but well-structured, with a clear one-sentence summary followed by an enumerated Args list and Returns line. Each param has a concise explanation, and there is no redundant filler. It earns its length.
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 key operational aspects: creation, shared drive support, content sources, defaults, and return value. However, it lacks explicit handling for edge cases like conflicting content/fileUrl inputs or auth prerequisites, which would make it fully complete given the absence of annotations.
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 0%, so the description must fully compensate. It does so by documenting every parameter: user_google_email is required, content is optional, folder_id defaults to 'root' and must be within shared drives, mime_type defaults to text/plain, and fileUrl supports specific protocols. This adds significant meaning beyond the raw 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 function with a specific verb and resource: 'Creates a new file in Google Drive.' It also distinguishes itself from siblings like update_drive_file and get_drive_file_content by focusing on creation and mentions shared drive support, which is a notable differentiator.
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 should be used when creating a new Drive file, but it does not explicitly state when not to use it or mention alternatives. Sibling tools like update_drive_file are clearly for existing files, but no direct contrast is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_eventA
Creates a new event.
Args: user_google_email (str): The user's Google email address. Required. summary (str): Event title. start_time (str): Start time (RFC3339, e.g., "2023-10-27T10:00:00-07:00" or "2023-10-27" for all-day). end_time (str): End time (RFC3339, e.g., "2023-10-27T11:00:00-07:00" or "2023-10-28" for all-day). calendar_id (str): Calendar ID (default: 'primary'). description (Optional[str]): Event description. location (Optional[str]): Event location. timezone (Optional[str]): Timezone (e.g., "America/New_York"). attachments (Optional[List[str]]): List of Google Drive file URLs or IDs to attach to the event. add_google_meet (bool): Whether to add a Google Meet video conference to the event. Defaults to False. reminders (Optional[Union[str, List[Dict[str, Any]]]]): JSON string or list of reminder objects. Each should have 'method' ("popup" or "email") and 'minutes' (0-40320). Max 5 reminders. Example: '[{"method": "popup", "minutes": 15}]' or [{"method": "popup", "minutes": 15}] use_default_reminders (bool): Whether to use calendar's default reminders. If False, uses custom reminders. Defaults to True. transparency (Optional[str]): Event transparency for busy/free status. "opaque" shows as Busy (default), "transparent" shows as Available/Free. Defaults to None (uses Google Calendar default). visibility (Optional[str]): Event visibility. "default" uses calendar default, "public" is visible to all, "private" is visible only to attendees, "confidential" is same as private (legacy). Defaults to None (uses Google Calendar default).
Returns: str: Confirmation message of the successful event creation with event link.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| summary | Yes | ||
| start_time | Yes | ||
| end_time | Yes | ||
| calendar_id | No | primary | |
| description | No | ||
| location | No | ||
| timezone | No | ||
| attachments | No | ||
| add_google_meet | No | ||
| reminders | No | ||
| use_default_reminders | No | ||
| transparency | No | ||
| visibility | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 describes the creation action and return format, but doesn't mention authentication requirements, rate limits, error conditions, or what happens with duplicate events. It provides basic operational context but lacks comprehensive behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Args, Returns) and efficiently documents 14 parameters. While comprehensive, it maintains focus without unnecessary elaboration, though some parameter explanations could be slightly more 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 complexity (14 parameters, 0% schema coverage, no annotations), the description provides substantial context through detailed parameter documentation and return format explanation. The output schema exists, so the description appropriately focuses on input parameters and operational context rather than 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?
With 0% schema description coverage, the description fully compensates by providing detailed parameter documentation including data types, formats (RFC3339), examples, constraints (max 5 reminders), defaults, and clear explanations of what each parameter controls. This adds substantial value beyond the bare 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 ('Creates a new event') and resource ('event'), distinguishing it from sibling tools like 'modify_event' or 'delete_event'. It provides a complete functional overview of 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?
No guidance is provided on when to use this tool versus alternatives like 'modify_event' or 'get_events'. The description lacks context about prerequisites, permissions needed, or typical use cases for event creation versus modification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_formB
Create a new form using the title given in the provided form message in the request.
Args: user_google_email (str): The user's Google email address. Required. title (str): The title of the form. description (Optional[str]): The description of the form. document_title (Optional[str]): The document title (shown in browser tab).
Returns: str: Confirmation message with form ID and edit URL.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| title | Yes | ||
| description | No | ||
| document_title | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the return behavior (confirmation message with form ID and edit URL) and includes an Args section with types and required markers. However, it does not mention potential side effects beyond creation, required authentication/permissions, or error conditions. The reference to a 'provided form message' is unexplained, which is a significant transparency gap, especially with no annotations to cover the burden.
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 well-structured with a purpose statement followed by Args and Returns sections. It is concise and front-loaded. The opening sentence is somewhat awkward due to the 'provided form message' phrase, but overall it earns its place without fluff.
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 incomplete for a create operation. It fails to explain what a 'form message' is, which appears to be a prerequisite for invoking the tool correctly. While the return value is stated, there is no mention of required permissions, the environment (Google Workspace), or any post-creation implications. This ambiguity significantly reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining each parameter's purpose: user_google_email, title, description, and document_title. It also flags required parameters. However, it does not clarify the relationship between the 'title given in the provided form message' and the 'title' parameter, leaving a semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new form, establishing a specific verb and resource. It is distinct from sibling tools like get_form or set_publish_settings. However, the phrase 'using the title given in the provided form message in the request' introduces ambiguity about whether the title comes from a message or the 'title' parameter, slightly clouding the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as get_form or other creation tools. There is no mention of prerequisites, exclusions, or intended scenarios. The description only states what the tool does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_presentationA
Create a new Google Slides presentation.
Args: user_google_email (str): The user's Google email address. Required. title (str): The title for the new presentation. Defaults to "Untitled Presentation".
Returns: str: Details about the created presentation including ID and URL.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| title | No | Untitled Presentation |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 states the basic create action and return value, but does not disclose authorization requirements, potential side effects, or error behavior. For a write operation with no annotation safety flags, this lacks critical 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?
The description is concise and well-structured with Args and Returns sections. Every sentence provides useful information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple create tool with two parameters and an output schema, the description is largely complete: it covers all parameters and return semantics. However, it omits usage context like authentication needs or relationship to sibling tools, which would make it fully robust.
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 0%, so the description must compensate. It fully explains both parameters: user_google_email is the required Google email, and title defaults to 'Untitled Presentation'. This adds clear meaning beyond the raw 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 the specific verb 'Create' with the resource 'Google Slides presentation', making the action explicit. It is clearly distinct from sibling tools like create_presentation_comment or get_presentation.
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 to create a new presentation) but does not provide explicit guidance on when to choose this over alternatives or any exclusions. It does not mention prerequisites like authentication or when another creation tool might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_presentation_commentC
Create a new comment on a Google Presentation.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| presentation_id | Yes | ||
| comment_content | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 implies a write operation ('Create') but does not mention authentication requirements, potential side effects, or what happens on failure. 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 concise sentence with no wasted words. It is appropriately sized for the simple action it describes, earning a high score for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's simplicity and the presence of an output schema, the description is too sparse. It lacks usage context, parameter explanations, and behavioral details (like whether authentication is needed). The tool has 3 required parameters at 0% schema coverage, so more context is needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It implies that 'comment_content' is the text of the comment and 'presentation_id' identifies the presentation, but it does not explain 'user_google_email' or any parameter syntax/format. It adds minimal value beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new comment') and the target resource ('Google Presentation'). It distinguishes from sibling tools like 'reply_to_presentation_comment' by specifying 'new' and from doc/spreadsheet comment tools by naming the resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives, no prerequisites are mentioned, and there are no exclusions. The description merely states the tool's function without any contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sheetA
Creates a new sheet within an existing spreadsheet.
Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. sheet_name (str): The name of the new sheet. Required.
Returns: str: Confirmation message of the successful sheet creation.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| spreadsheet_id | Yes | ||
| sheet_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 operation and return value, but does not mention side effects, required permissions, reversibility, or error conditions. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a clear first line, a list of arguments, and a return value. Every sentence contributes necessary information 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 creation tool, the description covers the essential information: what it does, required parameters, and return value. It could mention prerequisites (e.g., spreadsheet must exist) or error behavior, but the simplicity of the tool makes this description reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It provides one-line explanations for each parameter (e.g., 'The ID of the spreadsheet'), adding basic meaning beyond the schema. However, it lacks format details, examples, or constraints, so it only minimally compensates.
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 'Creates a new sheet within an existing spreadsheet,' which is a specific verb+resource. It distinguishes itself from siblings like create_spreadsheet (new spreadsheet) and modify_sheet_values (modifies values).
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 'within an existing spreadsheet' clearly implies the tool requires an existing spreadsheet, providing context for when to use it. It doesn't explicitly mention alternatives or exclusions, but the context is clear enough for correct tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_spreadsheetA
Creates a new Google Spreadsheet.
Args: user_google_email (str): The user's Google email address. Required. title (str): The title of the new spreadsheet. Required. sheet_names (Optional[List[str]]): List of sheet names to create. If not provided, creates one sheet with default name.
Returns: str: Information about the newly created spreadsheet including ID, URL, and locale.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| title | Yes | ||
| sheet_names | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It explains what is created, how optional sheet_names behave (default single sheet), and what the return value contains. It does not mention authentication prerequisites or that the operation is a permanent write, but it is reasonably transparent for a creation 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 structured as a docstring with a one-line summary followed by concise, relevant parameter and return explanations. Every sentence adds value and there is no padding 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 description covers the tool's purpose, all parameters, default behavior, and return type. It does not address how it relates to sibling tools like create_sheet or mention authentication steps, but it is otherwise complete for invoking the tool successfully.
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 0%, but the description compensates fully. It explains each parameter, marks required fields, specifies the type and role of sheet_names, and clarifies the default behavior. This goes well beyond what the bare 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 starts with 'Creates a new Google Spreadsheet', a specific verb+resource that clearly distinguishes it from siblings like create_sheet (which adds a sheet to an existing spreadsheet) and create_drive_file. The name itself is also descriptive.
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 its use case by detailing parameters and return behavior, but it does not explicitly say when to prefer this over create_sheet or other alternatives. There is no exclusion guidance or mention of prerequisites, leaving some ambiguity for an agent deciding between similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_spreadsheet_commentC
Create a new comment on a Google Spreadsheet.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| spreadsheet_id | Yes | ||
| comment_content | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It only states the action without disclosing side effects, permission requirements, or how the comment is associated with the user_google_email parameter. It lacks the detail expected 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, non-verbose sentence that is easy to read, but it is under-specified. While it earns its place, the lack of additional context makes it minimally adequate rather than 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?
The presence of an output schema covers return values, but the description fails to provide essential context such as auth requirements, comment placement, or parameter semantics. For a tool with 0% parameter coverage and no annotations, this is insufficient.
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 0%, and the description does not explain any of the three required parameters (user_google_email, spreadsheet_id, comment_content). It provides no additional meaning beyond the parameter names themselves.
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 ('Create') and resource ('a new comment on a Google Spreadsheet'), clearly distinguishing it from comment-related actions on documents or presentations. It directly indicates the tool's function and target platform.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus siblings like reply_to_spreadsheet_comment or read_spreadsheet_comments. It does not mention prerequisites such as Google authentication or whether this creates top-level comments only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_table_with_dataA
Creates a table and populates it with data in one reliable operation.
CRITICAL: YOU MUST CALL inspect_doc_structure FIRST TO GET THE INDEX!
MANDATORY WORKFLOW - DO THESE STEPS IN ORDER:
Step 1: ALWAYS call inspect_doc_structure first Step 2: Use the 'total_length' value from inspect_doc_structure as your index Step 3: Format data as 2D list: [["col1", "col2"], ["row1col1", "row1col2"]] Step 4: Call this function with the correct index and data
EXAMPLE DATA FORMAT: table_data = [ ["Header1", "Header2", "Header3"], # Row 0 - headers ["Data1", "Data2", "Data3"], # Row 1 - first data row ["Data4", "Data5", "Data6"] # Row 2 - second data row ]
CRITICAL INDEX REQUIREMENTS:
NEVER use index values like 1, 2, 10 without calling inspect_doc_structure first
ALWAYS get index from inspect_doc_structure 'total_length' field
Index must be a valid insertion point in the document
DATA FORMAT REQUIREMENTS:
Must be 2D list of strings only
Each inner list = one table row
All rows MUST have same number of columns
Use empty strings "" for empty cells, never None
Use debug_table_structure after creation to verify results
Args: user_google_email: User's Google email address document_id: ID of the document to update table_data: 2D list of strings - EXACT format: [["col1", "col2"], ["row1col1", "row1col2"]] index: Document position (MANDATORY: get from inspect_doc_structure 'total_length') bold_headers: Whether to make first row bold (default: true)
Returns: str: Confirmation with table details and link
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| document_id | Yes | ||
| table_data | Yes | ||
| index | Yes | ||
| bold_headers | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and succeeds. It discloses the critical dependency on inspect_doc_structure, the exact source and validity requirements for the index, data format constraints, and post-creation verification via debug_table_structure. It also states the return value and default for bold_headers.
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 well-structured and front-loaded with critical information. However, the same index-related warning is repeated multiple times in slightly different forms, adding unnecessary length. Still, the level of detail is justified by the tool's cross-tool dependency.
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 all five parameters, the required sibling-tool call, validation rules, a data format example, the return type, and a verification step. With the output schema also present, an agent has everything needed to use this tool correctly. No major gaps are evident.
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 0%, but the description compensates fully. Every parameter is explained in the Args section, including the exact 2D-list format for table_data, the mandatory source for index, and the default for bold_headers. A worked example further clarifies usage.
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: 'Creates a table and populates it with data in one reliable operation.' This is a specific verb+resource combination and distinguishes it from generic document-insertion tools like insert_doc_elements.
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 an explicit mandatory workflow: must call inspect_doc_structure first, use total_length as the index, and verify with debug_table_structure. It does not explicitly name alternative tools 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.
debug_table_structureA
ESSENTIAL DEBUGGING TOOL - Use this whenever tables don't work as expected.
USE THIS IMMEDIATELY WHEN:
Table population put data in wrong cells
You get "table not found" errors
Data appears concatenated in first cell
Need to understand existing table structure
Planning to use populate_existing_table
WHAT THIS SHOWS YOU:
Exact table dimensions (rows × columns)
Each cell's position coordinates (row,col)
Current content in each cell
Insertion indices for each cell
Table boundaries and ranges
HOW TO READ THE OUTPUT:
"dimensions": "2x3" = 2 rows, 3 columns
"position": "(0,0)" = first row, first column
"current_content": What's actually in each cell right now
"insertion_index": Where new text would be inserted in that cell
WORKFLOW INTEGRATION:
After creating table → Use this to verify structure
Before populating → Use this to plan your data format
After population fails → Use this to see what went wrong
When debugging → Compare your data array to actual table structure
Args: user_google_email: User's Google email address document_id: ID of the document to inspect table_index: Which table to debug (0 = first table, 1 = second table, etc.)
Returns: str: Detailed JSON structure showing table layout, cell positions, and current content
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| document_id | Yes | ||
| table_index | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 thoroughly explains the output format (JSON with dimensions, positions, content, insertion indices) and how to interpret it. However, it does not explicitly state non-destructive behavior or error handling, which is a minor gap for an inspection 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 lengthy but well-structured with sections and bullet points. It is front-loaded with a clear 'ESSENTIAL' headline, and each section adds practical value. Some repetition occurs but overall it is organized and readable.
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 purpose, usage triggers, output decoding, and workflow integration, making it highly complete for a debugging tool. Even with an output schema present, it clearly explains the return format and interpretation, leaving little ambiguity.
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 0%, but the description includes an Args section that explains all three parameters in user-meaningful terms (e.g., 'table_index: Which table to debug'). This fully compensates for the schema's minimal type-only information.
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: to debug table structure by showing dimensions, cell positions, content, and insertion indices. It uses specific verbs like 'debug' and 'shows', and clearly distinguishes itself from sibling tools by focusing on table-specific inspection.
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 explicit when-to-use scenarios (e.g., wrong cell placement, 'table not found' errors, planning to use populate_existing_table) and workflow integration steps. This gives clear guidance on when to choose this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_conditional_formattingA
Deletes an existing conditional formatting rule by index on a sheet.
Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. rule_index (int): Index of the rule to delete (0-based). sheet_name (Optional[str]): Name of the sheet that contains the rule. Defaults to the first sheet if not provided.
Returns: str: Confirmation of the deletion and the current rule state.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| spreadsheet_id | Yes | ||
| rule_index | Yes | ||
| sheet_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description relies on its own wording to convey destructive behavior, which it does by stating 'Deletes' and noting it returns confirmation and current rule state. It doesn't disclose side effects like index shifting or irreversibility, but the primary destructive action is clear and the return behavior adds useful 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 well-structured with a one-sentence summary followed by a tidy Args list and Returns note. Every line adds value, and the length is appropriate for four parameters. It is front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All four parameters are described, including the optional sheet_name and its default behavior. The return type is also specified, and the output schema exists to cover return structure. The description provides sufficient information for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description fully compensates with a detailed Args section: it provides types, required status, defaults (sheet_name defaults to null), and the important 0-based index note for rule_index. This is more informative than the bare 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 opens with 'Deletes an existing conditional formatting rule by index on a sheet', which is a specific verb ('deletes') and resource ('conditional formatting rule') with the deletion mechanism ('by index'). This clearly differentiates it from sibling tools like add_conditional_formatting and update_conditional_formatting.
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 states the operation and its parameters, making it evident this is the deletion tool among conditional formatting siblings. However, it does not explicitly mention when to use this instead of add/update, nor does it note that indices may shift after deletion, which would be helpful context for sequencing operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_eventA
Deletes an existing event.
Args: user_google_email (str): The user's Google email address. Required. event_id (str): The ID of the event to delete. calendar_id (str): Calendar ID (default: 'primary').
Returns: str: Confirmation message of the successful event deletion.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| event_id | Yes | ||
| calendar_id | No | primary |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It does not disclose that deletion is permanent/irreversible or mention required permissions (auth). It only states the action and return message, which is insufficient for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and structured into Args and Returns sections, with no redundant text. It clearly conveys the needed information in a straightforward, scannable format.
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 deletion tool, the description covers the basics (action, parameters, return), but it lacks behavioral warnings like irreversibility or prerequisites. It also doesn't mention error handling, making it functional but not comprehensive for a destructive action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists all parameters with brief explanations: user_google_email as the user's email, event_id as the event ID, and calendar_id with a default. Since the schema provides no parameter descriptions, this adds necessary meaning, even though the explanations are minimal.
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 'Deletes an existing event,' which clearly states the action and resource. This distinguishes it from sibling tools like create_event and modify_event by explicitly targeting 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?
The description does not explicitly compare with alternatives or specify when to use it; usage is implied from the verb 'Deletes' and the context of sibling tools. It lacks guidance on when not to use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draft_gmail_messageA
Creates a draft email in the user's Gmail account. Supports both new drafts and reply drafts.
Args: user_google_email (str): The user's Google email address. Required. subject (str): Email subject. body (str): Email body (plain text). body_format (Literal['plain', 'html']): Email body format. Defaults to 'plain'. to (Optional[str]): Optional recipient email address. Can be left empty for drafts. cc (Optional[str]): Optional CC email address. bcc (Optional[str]): Optional BCC email address. thread_id (Optional[str]): Optional Gmail thread ID to reply within. When provided, creates a reply draft. in_reply_to (Optional[str]): Optional Message-ID of the message being replied to. Used for proper threading. references (Optional[str]): Optional chain of Message-IDs for proper threading. Should include all previous Message-IDs.
Returns: str: Confirmation message with the created draft's ID.
Examples: # Create a new draft draft_gmail_message(subject="Hello", body="Hi there!", to="user@example.com")
# Create a plaintext draft with CC and BCC
draft_gmail_message(
subject="Project Update",
body="Here's the latest update...",
to="user@example.com",
cc="manager@example.com",
bcc="archive@example.com"
)
# Create a HTML draft with CC and BCC
draft_gmail_message(
subject="Project Update",
body="<strong>Hi there!</strong>",
body_format="html",
to="user@example.com",
cc="manager@example.com",
bcc="archive@example.com"
)
# Create a reply draft in plaintext
draft_gmail_message(
subject="Re: Meeting tomorrow",
body="Thanks for the update!",
to="user@example.com",
thread_id="thread_123",
in_reply_to="<message123@gmail.com>",
references="<original@gmail.com> <message123@gmail.com>"
)
# Create a reply draft in HTML
draft_gmail_message(
subject="Re: Meeting tomorrow",
body="<strong>Thanks for the update!</strong>",
body_format="html,
to="user@example.com",
thread_id="thread_123",
in_reply_to="<message123@gmail.com>",
references="<original@gmail.com> <message123@gmail.com>"
)| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| subject | Yes | Email subject. | |
| body | Yes | Email body (plain text). | |
| body_format | No | Email body format. Use 'plain' for plaintext or 'html' for HTML content. | plain |
| to | No | Optional recipient email address. | |
| cc | No | Optional CC email address. | |
| bcc | No | Optional BCC email address. | |
| thread_id | No | Optional Gmail thread ID to reply within. | |
| in_reply_to | No | Optional Message-ID of the message being replied to. | |
| references | No | Optional chain of Message-IDs for proper threading. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 key behaviors: creates rather than sends, supports reply drafts via thread_id/in_reply_to/references, and returns the draft ID. It also explains the effect of optional parameters like 'to' being left empty. However, it does not mention authentication requirements or potential side effects, which would be useful.
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 front-loaded with the purpose and includes useful examples, but the Args section largely repeats the schema descriptions (90% coverage) and adds length. There is also a typo in the last example (missing quote). Overall it is well-organized but not maximally 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 has 10 parameters and no annotations, the description covers all parameters and provides examples for new drafts, reply drafts, HTML/plain text, and optional CC/BCC. It also states the return value. This is quite complete, though it omits error cases and authentication context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 90%, so baseline is 3. The description adds meaningful nuance beyond the schema: thread_id 'creates a reply draft', references 'should include all previous Message-IDs', and body_format default. The Args section partly duplicates schema descriptions but the extra context justifies 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 clearly states 'Creates a draft email in the user's Gmail account' with a specific verb and resource. It also distinguishes from send_gmail_message by explicitly supporting both new and reply drafts, 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 context on when to use the tool (creating drafts, including reply drafts with threading parameters). It does not explicitly name alternatives or exclusions, but the sibling tool send_gmail_message is implicitly contrasted by the draft nature. This is clear but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_doc_to_pdfA
Exports a Google Doc to PDF format and saves it to Google Drive.
Args: user_google_email: User's Google email address document_id: ID of the Google Doc to export pdf_filename: Name for the PDF file (optional - if not provided, uses original name + "_PDF") folder_id: Drive folder ID to save PDF in (optional - if not provided, saves in root)
Returns: str: Confirmation message with PDF file details and links
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| document_id | Yes | ||
| pdf_filename | No | ||
| folder_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It discloses the key side effect (saving to Google Drive) and explains default behavior for optional parameters (filename and folder). However, it does not mention potential overwrite behavior, required permissions, or error conditions. While the description is honest, it lacks depth 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 well-structured with an opening sentence, an Args section, and a Returns section. It is concise and every line adds value. The docstring style is conventional and easy to parse. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's purpose (export and save) and the presence of an output schema, the description covers the essential aspects: what the tool does, how to call it (parameters and defaults), and what it returns. It slightly lacks information about edge cases or permissions, but for a moderately simple operation, it is complete enough for an AI agent to use effectively.
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 0%, so the description must compensate, and it does. Each parameter is explained: user_google_email and document_id are required; pdf_filename and folder_id are optional with clear defaults. This adds meaning beyond the bare schema, although it could be more detailed (e.g., format of IDs, folder ID lookup).
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: 'Exports a Google Doc to PDF format and saves it to Google Drive.' It uses a specific verb (exports), resource (Google Doc), result (PDF saved to Drive), and distinguishes this tool from siblings like get_doc_content or create_doc. This is a precise and unambiguous purpose statement.
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 a Google Doc needs to be converted to PDF) and provides detailed context about optional parameters and their defaults. It does not explicitly name alternatives or exclusions, but for this straightforward conversion task, the context is sufficient to guide usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_and_replace_docA
Finds and replaces text throughout a Google Doc.
Args: user_google_email: User's Google email address document_id: ID of the document to update find_text: Text to search for replace_text: Text to replace with match_case: Whether to match case exactly
Returns: str: Confirmation message with replacement count
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| document_id | Yes | ||
| find_text | Yes | ||
| replace_text | Yes | ||
| match_case | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 mentions the operation and return value but fails to disclose that this is a mutating operation with likely irreversible changes, or any authorization requirements beyond an email address. The phrase 'throughout' implies all occurrences, but no warnings or side effects are noted.
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 well-structured with a one-line summary followed by a clean Args list and Returns line. Every word serves a purpose, and it is directly readable without extraneous 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?
Given the tool's moderate complexity (5 parameters), no annotations, and presence of an output schema, the description covers core functionality and parameter semantics but lacks contextual completeness. It omits usage guidance, behavioral warnings, and any discussion of document access or editability prerequisites, making it minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides concise explanations for all five parameters, compensating for the 0% schema description coverage. Each parameter (user_google_email, document_id, find_text, replace_text, match_case) is meaningfully described, though descriptions are brief and could include more detail on formats or constraints.
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 'Finds and replaces text throughout a Google Doc' with a specific verb (finds and replaces), resource (Google Doc), and scope (throughout). This distinguishes it from sibling tools like modify_doc_text by emphasizing a global find-and-replace operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as modify_doc_text or batch_update_doc. The description only states the action, leaving the agent to infer appropriate usage without explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
format_sheet_rangeA
Applies formatting to a range: background/text color and number/date formats.
Colors accept hex strings (#RRGGBB). Number formats follow Sheets types (e.g., NUMBER, NUMBER_WITH_GROUPING, CURRENCY, DATE, TIME, DATE_TIME, PERCENT, TEXT, SCIENTIFIC). If no sheet name is provided, the first sheet is used.
Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. range_name (str): A1-style range (optionally with sheet name). Required. background_color (Optional[str]): Hex background color (e.g., "#FFEECC"). text_color (Optional[str]): Hex text color (e.g., "#000000"). number_format_type (Optional[str]): Sheets number format type (e.g., "DATE"). number_format_pattern (Optional[str]): Optional custom pattern for the number format.
Returns: str: Confirmation of the applied formatting.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| spreadsheet_id | Yes | ||
| range_name | Yes | ||
| background_color | No | ||
| text_color | No | ||
| number_format_type | No | ||
| number_format_pattern | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It usefully discloses value constraints (hex colors, Sheets format types) and default sheet behavior, but does not explicitly state that this is a mutating operation that may overwrite existing formatting, nor does it mention permissions or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a concise summary followed by an Args/Returns breakdown. Every sentence adds useful information, and there is no filler or unnecessary 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?
The description covers all parameters, return value, accepted value examples, and default sheet behavior. It is missing a few details such as whether unspecified format properties are preserved or cleared and possible error conditions, but it is largely complete for a formatting 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 0%, but the Args section fully documents all seven parameters, including required status, types, examples, and defaults. This fully compensates for the schema gap and adds significant semantic meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Applies formatting') and resource ('a range'), and lists the exact formatting dimensions (background/text color and number/date formats). This differentiates it from sibling tools like modify_sheet_values and conditional formatting 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 gives context such as default first-sheet behavior and accepted number format values, but it does not explicitly say when to use this tool over alternatives like add_conditional_formatting or modify_sheet_values. Usage is implied rather than explicitly contrasted with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_doc_contentA
Retrieves content of a Google Doc or a Drive file (like .docx) identified by document_id.
Native Google Docs: Fetches content via Docs API.
Office files (.docx, etc.) stored in Drive: Downloads via Drive API and extracts text.
Returns: str: The document content with metadata header.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| document_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that native Google Docs are fetched via Docs API and Office files are downloaded and text-extracted, and mentions the metadata header in the return. However, it omits details on authentication, error handling, and limitations, so transparency is incomplete.
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 well-structured: a clear opening statement, bullet points for distinct behaviors, and a return type line. Every sentence adds value with no redundancy, making it easy 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?
The tool has moderate complexity with two modes and two required parameters. The description covers core functionality and return type, but lacks details on user_google_email, prerequisites like authentication, and edge cases. It is adequate but not comprehensive for an agent to confidently invoke.
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 0%, so the description must compensate. It explains document_id as the identifier for the doc/file, but user_google_email is not explained at all. No formats, usage, or additional context are provided, leaving a significant gap for one of the two required parameters.
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 retrieves content of a Google Doc or Drive file (like .docx) using document_id, with specific verbs and resource scope. It explicitly distinguishes between handling native Google Docs via Docs API and Office files via Drive API, differentiating it from sibling tools like get_drive_file_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 usage for retrieving content from Google Docs or Office files in Drive, but it does not explicitly state when to use this tool over alternatives or provide exclusions. It offers context about the two file types but leaves the agent to infer the appropriate scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_drive_file_contentA
Retrieves the content of a specific Google Drive file by ID, supporting files in shared drives.
• Native Google Docs, Sheets, Slides → exported as text / CSV. • Office files (.docx, .xlsx, .pptx) → unzipped & parsed with std-lib to extract readable text. • Any other file → downloaded; tries UTF-8 decode, else notes binary.
Args: user_google_email: The user’s Google email address. file_id: Drive file ID.
Returns: str: The file content as plain text with metadata header.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| file_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses the tool's behavior: exporting native Google Docs/Sheets/Slides as text/CSV, unzipping and parsing Office files, and attempting UTF-8 decode for other files with binary notification. It also mentions a metadata header in the return value, which is valuable context 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 well-structured and efficient: a clear purpose statement, a bulleted breakdown of file-type handling, and a concise Args/Returns section. Every sentence adds value, and the formatting enhances readability and quick comprehension.
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 and the presence of an output schema, the description covers all essential aspects: the action, the supported file types, the processing approach, and the return type. The metadata header mention hints at the output format without needing to duplicate schema details. No significant gaps are apparent.
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 no descriptions (0% coverage), so the description must compensate. It provides brief definitions for user_google_email and file_id, which are helpful but not deeply detailed—e.g., it doesn't clarify the relationship between the email and the file access or the expected format of file_id. This is adequate but leaves room for more semantic richness.
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 retrieves content of a specific Google Drive file by ID, with a specific verb and resource. It also distinguishes itself from siblings by mentioning support for shared drives and outlining the behavior for different file types, which sets it apart from tools like get_drive_file_download_url or list_drive_items.
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 on when to use the tool (retrieve file content, including from shared drives) and what outcomes to expect for various file formats. It does not explicitly name alternative tools or exclusion criteria, but the behavior overview effectively guides selection for content retrieval needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_drive_file_download_urlA
Gets a download URL for a Google Drive file. The file is prepared and made available via HTTP URL.
For Google native files (Docs, Sheets, Slides), exports to a useful format: • Google Docs → PDF (default) or DOCX if export_format='docx' • Google Sheets → XLSX (default) or CSV if export_format='csv' • Google Slides → PDF (default) or PPTX if export_format='pptx'
For other files, downloads the original file format.
Args: user_google_email: The user's Google email address. Required. file_id: The Google Drive file ID to get a download URL for. export_format: Optional export format for Google native files. Options: 'pdf', 'docx', 'xlsx', 'csv', 'pptx'. If not specified, uses sensible defaults (PDF for Docs/Slides, XLSX for Sheets).
Returns: str: Download URL and file metadata. The file is available at the URL for 1 hour.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| file_id | Yes | ||
| export_format | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behaviors: files are prepared and available for 1 hour, and native files are exported to specific formats. It doesn't mention auth requirements or rate limits, but with no annotations, it carries some burden. The 1-hour expiry is a useful behavioral trait, but missing details like whether the tool triggers a copy or affects permissions.
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 well-structured with bullet points for export formats and clear Args/Returns sections. Every sentence adds information; 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 moderate complexity (3 params, output schema present), the description fully explains purpose, parameters, return value, and the 1-hour validity. It doesn't explicitly state the return format but that's covered by the output schema. Minor gap: no note on error cases or permission requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and parameters have no enums, so the description must compensate. It explains each parameter: user_google_email (required, user's email), file_id (Drive file ID), and export_format (optional with explicit options and defaults). It adds meaning beyond the bare schema types.
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 'Gets a download URL for a Google Drive file' and explains the behavior for Google native files vs. other files, distinguishing it from sibling tools like get_drive_file_content or get_drive_shareable_link. It also details export format mappings, 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 implies when to use this tool (when a URL is needed, including export conversions) but does not explicitly say when not to use it or mention alternatives. However, the detailed export format behavior provides clear context for when to choose this over sibling tools like get_drive_file_content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_drive_file_permissionsB
Gets detailed metadata about a Google Drive file including sharing permissions.
Args: user_google_email (str): The user's Google email address. Required. file_id (str): The ID of the file to check permissions for.
Returns: str: Detailed file metadata including sharing status and URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| file_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It states the output ('Returns: str: Detailed file metadata including sharing status and URLs') but does not mention authentication requirements, side effects, error conditions, or whether it is read-only. The term 'Gets' implies a read, but no explicit guarantees or limitations are provided.
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 well-structured: a one-sentence purpose, followed by Args and Returns sections. Every sentence earns its place, with no extraneous detail. The front-loaded summary makes the tool's purpose immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with an output schema, the description is minimally viable: it explains the resource, parameters, and return type. However, given the large number of sibling permission-related tools (share_drive_file, update_drive_permission, check_drive_file_public_access), it does not provide enough context to choose this tool over alternatives, and it omits authentication/error details. This makes it incomplete for safe autonomous use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does describe both parameters: 'user_google_email (str): The user's Google email address. Required.' and 'file_id (str): The ID of the file to check permissions for.' However, the meaning of user_google_email is ambiguous (whose email? the account owner or the user to impersonate?), and file_id could benefit from format hints. This adds value but leaves gaps.
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: 'Gets detailed metadata about a Google Drive file including sharing permissions.' This distinguishes it from sibling tools like get_drive_file_content (content) and get_drive_shareable_link (link). The verb 'Gets' plus the specific resource (Drive file metadata/permissions) makes 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 no guidance on when to use this tool versus alternatives. It does not mention any exclusions or comparisons to closely related siblings such as check_drive_file_public_access, share_drive_file, or update_drive_permission. Usage is only implied by the stated purpose, not explicitly directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eventsA
Retrieves events from a specified Google Calendar. Can retrieve a single event by ID or multiple events within a time range. You can also search for events by keyword by supplying the optional "query" param.
Args:
user_google_email (str): The user's Google email address. Required.
calendar_id (str): The ID of the calendar to query. Use 'primary' for the user's primary calendar. Defaults to 'primary'. Calendar IDs can be obtained using list_calendars.
event_id (Optional[str]): The ID of a specific event to retrieve. If provided, retrieves only this event and ignores time filtering parameters.
time_min (Optional[str]): The start of the time range (inclusive) in RFC3339 format (e.g., '2024-05-12T10:00:00Z' or '2024-05-12'). If omitted, defaults to the current time. Ignored if event_id is provided.
time_max (Optional[str]): The end of the time range (exclusive) in RFC3339 format. If omitted, events starting from time_min onwards are considered (up to max_results). Ignored if event_id is provided.
max_results (int): The maximum number of events to return. Defaults to 25. Ignored if event_id is provided.
query (Optional[str]): A keyword to search for within event fields (summary, description, location). Ignored if event_id is provided.
detailed (bool): Whether to return detailed event information including description, location, attendees, and attendee details (response status, organizer, optional flags). Defaults to False.
include_attachments (bool): Whether to include attachment information in detailed event output. When True, shows attachment details (fileId, fileUrl, mimeType, title) for events that have attachments. Only applies when detailed=True. Set this to True when you need to view or access files that have been attached to calendar events, such as meeting documents, presentations, or other shared files. Defaults to False.
Returns: str: A formatted list of events (summary, start and end times, link) within the specified range, or detailed information for a single event if event_id is provided.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| calendar_id | No | primary | |
| event_id | No | ||
| time_min | No | ||
| time_max | No | ||
| max_results | No | ||
| query | No | ||
| detailed | No | ||
| include_attachments | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 defaults, ignore rules, and return format, but the Returns section states 'detailed information for a single event if event_id is provided,' which is ambiguous with the detailed flag's default of False. It also does not mention authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but appropriately structured with a clear overview and an Args list. Every parameter explanation earns its place without excessive words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (9 params, no annotations), the description covers all parameters, defaults, relationships, and return types. However, the Returns ambiguity and lack of error/edge-case handling prevent it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description fully documents all 9 parameters with types, defaults, formats, and interactions. Examples of RFC3339 formats and conditions like 'Ignored if event_id is provided' add significant 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 clearly states the tool retrieves events from a specified Google Calendar, with modes for single event by ID, time range, and keyword search. This distinguishes it from sibling tools like create_event, modify_event, delete_event, and list_calendars.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: calendar IDs can be obtained via list_calendars, and the include_attachments parameter includes a clear use case ('Set this to True when you need to view or access files...'). It also clarifies when event_id overrides time/query parameters, giving conditional usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_formA
Get a form.
Args: user_google_email (str): The user's Google email address. Required. form_id (str): The ID of the form to retrieve.
Returns: str: Form details including title, description, questions, and URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| form_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 indicates a read operation ('Get a form') but does not explicitly state it has no side effects. The user_google_email parameter suggests an auth requirement, but its necessity is not explained, and there is no mention of potential errors or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, starting with a clear one-line purpose, followed by structured Args and Returns sections. Every sentence contributes value, with no unnecessary 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?
The description is fairly complete for a simple retrieval tool, covering the purpose, parameters, and return value. However, it does not explain why user_google_email is required or address potential errors, which would be useful 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?
The schema has no descriptions for its parameters, but the description thoroughly explains both user_google_email and form_id with types and meanings, adding critical semantic value. This fully compensates for the schema's lack of detail.
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 'Get a form' and elaborates on the return value as 'Form details including title, description, questions, and URLs.' This clearly distinguishes it from siblings like get_form_response or list_form_responses, which deal with responses, 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 for retrieving form metadata through its return value, but it does not explicitly state when to use this tool versus alternatives like get_form_response or list_form_responses. No when-not-to-use or alternative guidance is provided, leaving the context implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_form_responseA
Get one response from the form.
Args: user_google_email (str): The user's Google email address. Required. form_id (str): The ID of the form. response_id (str): The ID of the response to retrieve.
Returns: str: Response details including answers and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| form_id | Yes | ||
| response_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the operation retrieves a response and returns details, implying a read-only operation, but does not explicitly state there are no side effects, error behavior, or auth requirements. The 'Returns' line adds some context but is limited.
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 well-structured with a clear one-line summary followed by Args and Returns sections. Every sentence is purposeful, and it avoids redundancy with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 required parameters) and the presence of an output schema, the description is reasonably complete. It conveys the core operation and return type, though it omits potential error cases or format specifics, which are likely covered by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description lists all three parameters with meaningful explanations: user_google_email, form_id, and response_id. It clarifies the role of each parameter and marks user_google_email as Required, adding value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get one response from the form' with a specific verb and resource, clearly distinguishing it from sibling tools like list_form_responses and get_form. The phrase 'one response' clarifies it retrieves a single response by ID.
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 requiring response_id, but does not explicitly mention when to use this over list_form_responses or other alternatives. No exclusionary guidance is provided, leaving the agent to infer the distinction from the word 'one'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gmail_attachment_contentA
Downloads the content of a specific email attachment.
Args: message_id (str): The ID of the Gmail message containing the attachment. attachment_id (str): The ID of the attachment to download. user_google_email (str): The user's Google email address. Required.
Returns: str: Attachment metadata and base64-encoded content that can be decoded and saved.
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | ||
| attachment_id | Yes | ||
| user_google_email | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 discloses that the return value is base64-encoded content that can be decoded and saved, but it does not mention any side effects, access requirements beyond user_google_email, or error conditions. It provides basic behavior but lacks deeper 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 concise and well-structured, with a short purpose statement followed by clearly formatted Args and Returns sections. Every sentence provides necessary information without redundant 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 3-parameter read operation, the description covers the essential aspects: what it does, all parameters, and the return format. While it lacks usage guidelines, those are addressed in dimension 2, and the existing output schema reduces the need to detail return values further. Overall, it is nearly complete for its 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?
Since schema description coverage is 0%, the description is the only source of parameter meaning. It provides brief explanations for all three parameters, such as message_id being 'The ID of the Gmail message containing the attachment'. However, these explanations are largely restatements of the parameter names and do not explain how to obtain the IDs or the expected format, offering only minimal added value over 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 'Downloads the content of a specific email attachment', which is a specific verb+resource combination. It distinguishes from sibling tools like get_gmail_message_content by explicitly focusing on attachment content rather than message 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?
No guidance is provided on when to use this tool versus alternatives such as get_gmail_messages_content_batch or get_gmail_thread_content. The description implies you need both a message_id and attachment_id, but it does not explain why this tool should be chosen over others for a given scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gmail_message_contentA
Retrieves the full content (subject, sender, recipients, plain text body) of a specific Gmail message.
Args: message_id (str): The unique ID of the Gmail message to retrieve. user_google_email (str): The user's Google email address. Required.
Returns: str: The message details including subject, sender, date, Message-ID, recipients (To, Cc), and body content.
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | Yes | ||
| user_google_email | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 states this is a read operation and describes what is returned, but it does not mention authentication/permission prerequisites, error cases, or potential limitations. This is acceptable for a simple getter but not thorough.
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 compact and well-organized into purpose, args, and returns sections. The only minor redundancy is listing 'Required' for user_google_email, which duplicates the schema's required field.
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 single-message getter with an output schema, the description covers the action, both parameters, and the return fields. It could be improved by mentioning auth prerequisites and alternative tools, but it is sufficient 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?
The input schema provides bare string fields with zero descriptions, so the Args section is essential. It explains message_id as the unique Gmail message ID and user_google_email as the user's Google email address, adding meaningful semantics. It could clarify where message_id comes from, but the basics are covered.
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 ('Retrieves') and names a clear resource: the full content of a specific Gmail message, including subject, sender, recipients, and body. The phrase 'specific message' implicitly distinguishes it from batch and thread siblings, though no alternative is explicitly named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no reference to sibling tools like search_gmail_messages or get_gmail_messages_content_batch. However, the phrase 'specific Gmail message' implies the intended use case, providing some contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gmail_messages_content_batchA
Retrieves the content of multiple Gmail messages in a single batch request. Supports up to 25 messages per batch to prevent SSL connection exhaustion.
Args: message_ids (List[str]): List of Gmail message IDs to retrieve (max 25 per batch). user_google_email (str): The user's Google email address. Required. format (Literal["full", "metadata"]): Message format. "full" includes body, "metadata" only headers.
Returns: str: A formatted list of message contents including subject, sender, date, Message-ID, recipients (To, Cc), and body (if full format).
| Name | Required | Description | Default |
|---|---|---|---|
| message_ids | Yes | ||
| user_google_email | Yes | ||
| format | No | full |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the transparency burden. It discloses the batch behavior, the message limit, and the effect of the 'format' parameter on output. However, it does not explicitly state that the operation is read-only or describe authentication requirements, which would be useful but are not critical given the tool's obvious read nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear summary, Args section, and Returns section. Every sentence is informative and there is no redundant text. It is appropriately sized for the tool's functionality.
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 complete for the tool's complexity: it covers parameters, limits, and the return format. It explains what the returned string contains, which is especially important given that no output schema is shown. Sibling tools are not necessary for this description to be self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description thoroughly explains each parameter beyond the schema: message_ids is a list of Gmail message IDs with a maximum of 25, user_google_email is required and specifies whose email, and format describes the difference between 'full' and 'metadata'. This adds significant semantic value, compensating for the 0% 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 purpose: 'Retrieves the content of multiple Gmail messages in a single batch request.' It specifies the resource (Gmail messages) and distinguishes from sibling tools like get_gmail_message_content by explicitly indicating 'multiple' and 'batch'.
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: for retrieving multiple messages in a batch, with a cap of 25 to prevent SSL connection exhaustion. It does not explicitly name alternatives or exclude use cases, but the context is clear enough for an agent to choose this instead of the singular variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gmail_thread_contentA
Retrieves the complete content of a Gmail conversation thread, including all messages.
Args: thread_id (str): The unique ID of the Gmail thread to retrieve. user_google_email (str): The user's Google email address. Required.
Returns: str: The complete thread content with all messages formatted for reading.
| Name | Required | Description | Default |
|---|---|---|---|
| thread_id | Yes | ||
| user_google_email | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 does state that the return is a string 'with all messages formatted for reading,' giving some insight into output format. However, it does not explicitly mention that this is a read-only operation, potential rate limits, authentication requirements (beyond the required email parameter), or any error conditions. It is minimally transparent but lacks richer 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 concise and well-structured with a one-sentence purpose, Args section, and Returns section. Every line adds value, and the main verb is front-loaded. 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?
The tool is simple (two string parameters, no nested objects), and the description covers the core functionality and return type. However, it does not position the tool relative to its many siblings, such as get_gmail_threads_content_batch, nor does it mention any limitations (e.g., thread size, pagination). For a straightforward retrieval tool, it's mostly complete but could benefit from a 'use this for single-thread retrieval' note.
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 no parameter descriptions (0% coverage), so the description must compensate. It does so by explaining thread_id as 'The unique ID of the Gmail thread to retrieve' and user_google_email as 'The user's Google email address. Required.' This adds meaningful context beyond the bare parameter names and required flags, though it could provide more detail about where to find the thread ID or the format of the email.
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 'Retrieves the complete content of a Gmail conversation thread, including all messages.' This uses a specific verb ('retrieves') and resource ('Gmail conversation thread'), and the mention of 'complete content' and 'all messages' distinguishes it from sibling tools like get_gmail_message_content (single message) and get_gmail_threads_content_batch (batch retrieval).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that this is for a single thread as opposed to get_gmail_threads_content_batch, nor does it suggest any context or prerequisites. Without explicit usage guidance, an agent must infer the appropriate situation 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.
get_gmail_threads_content_batchA
Retrieves the content of multiple Gmail threads in a single batch request. Supports up to 25 threads per batch to prevent SSL connection exhaustion.
Args: thread_ids (List[str]): A list of Gmail thread IDs to retrieve. The function will automatically batch requests in chunks of 25. user_google_email (str): The user's Google email address. Required.
Returns: str: A formatted list of thread contents with separators.
| Name | Required | Description | Default |
|---|---|---|---|
| thread_ids | Yes | ||
| user_google_email | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since annotations are not provided, the description carries the full burden. It discloses key behaviors: automatic batching in chunks of 25, the 25-thread limit rationale, and the return format as a formatted string with separators. It does not mention authentication, error handling, or side effects, but for a read-only batch retrieval, this is reasonable coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: opening one-sentence purpose, then a short behavioral note, then Args and Returns sections. Every sentence contributes new information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential aspects: purpose, batch limit, parameter semantics, and return type. It also includes behavioral nuance about SSL exhaustion. It does not cover error scenarios or require prerequisites, but given the output schema exists and the tool is part of a larger Gmail suite, this is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It provides clear explanations for both parameters: thread_ids is a list of Gmail thread IDs with automatic batching, and user_google_email is the required user email. This adds meaning beyond the raw schema, though it could give more detail on ID formats or potential validation, but it is sufficient.
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 it 'Retrieves the content of multiple Gmail threads in a single batch request', with a specific verb (retrieves), resource (Gmail threads content), and scope (multiple, batch). This distinguishes it from the singular sibling tool get_gmail_thread_content by emphasizing batch processing.
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 implies use for fetching multiple threads and mentions the 25-thread batch limit to prevent SSL connection exhaustion, giving context for when it's appropriate. However, it does not explicitly state when to prefer alternative tools like get_gmail_thread_content for single threads, though the batch emphasis makes this clear by contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pageA
Get details about a specific page (slide) in a presentation.
Args: user_google_email (str): The user's Google email address. Required. presentation_id (str): The ID of the presentation. page_object_id (str): The object ID of the page/slide to retrieve.
Returns: str: Details about the specific page including elements and layout.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| presentation_id | Yes | ||
| page_object_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it returns a string with page elements and layout, and lists all required parameters, including user_google_email for authentication. However, it does not explicitly state that this is a read-only operation, nor does it describe error conditions or rate limits. With no annotations, the description carries the full burden but only partially covers 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 well-structured with a purpose sentence, Args list, and Returns section, and it is front-loaded with the primary purpose. It is slightly verbose with repetitive 'page/slide' phrasing and contains a typo ('thepresentation'), but it remains efficient and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with three required parameters and a string return value, the description adequately covers purpose, parameter meaning, and return type. However, it lacks guidance on how it relates to sibling tools such as get_page_thumbnail and does not mention edge cases, though these are not critical for this straightforward get 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 description includes a full 'Args' section explaining user_google_email, presentation_id, and page_object_id. This adds meaning beyond the input schema, which has no parameter descriptions (schema coverage 0%). Each parameter is clearly defined, compensating fully for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get details about a specific page (slide) in a presentation,' providing a specific verb and resource. It also mentions 'elements and layout,' which differentiates it from sibling tools like get_presentation (whole deck) and get_page_thumbnail (thumbnail image).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives like get_presentation or get_page_thumbnail. The description only states what it does, without any 'use this when...' or 'use alternative when...' instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_thumbnailA
Generate a thumbnail URL for a specific page (slide) in a presentation.
Args: user_google_email (str): The user's Google email address. Required. presentation_id (str): The ID of the presentation. page_object_id (str): The object ID of the page/slide. thumbnail_size (str): Size of thumbnail ("LARGE", "MEDIUM", "SMALL"). Defaults to "MEDIUM".
Returns: str: URL to the generated thumbnail image.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| presentation_id | Yes | ||
| page_object_id | Yes | ||
| thumbnail_size | No | MEDIUM |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 the return type (URL) and parameter defaults, but does not state side effects, auth requirements, or that it is read-only. Given the 'get_' prefix, it's likely safe, but this is not explicitly confirmed.
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 well-structured: a one-line purpose, a clear args list, and a returns section. It is concise without missing critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only four simple string parameters and an output schema expected, the description is complete. It includes all necessary details such as the allowed thumbnail_size values and the return type, making the tool self-contained.
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 0%, but the description fully documents all four parameters, including types, required status, and the default for thumbnail_size. This fully compensates for the lack of 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 tool's function: 'Generate a thumbnail URL for a specific page (slide) in a presentation.' This distinguishes it from siblings like get_page or get_presentation by focusing on the thumbnail URL 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 implies use when a thumbnail URL is needed but does not explicitly mention alternatives or when not to use it. There is no comparison to get_page or other related tools, leaving room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_presentationA
Get details about a Google Slides presentation.
Args: user_google_email (str): The user's Google email address. Required. presentation_id (str): The ID of the presentation to retrieve.
Returns: str: Details about the presentation including title, slides count, and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| presentation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of revealing behavioral traits. It discloses that the tool returns a string with title, slides count, and metadata, but does not mention auth requirements, error handling, or side effects. This is adequate for a simple getter 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 front-loaded with the core purpose, followed by a clean Args/Returns structure. Every sentence is informative, and the format is easy to parse. 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 description covers the basic operation but lacks contextual depth. It does not mention prerequisites like authentication, how errors surface, or the full scope of metadata returned. The presence of an output schema offsets some return-detail needs, but usage guidance and behavioral context are thin.
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 0%, so the description must compensate. It does by explaining both parameters: 'user_google_email' as the user's Google email address and 'presentation_id' as the ID of the presentation. This adds meaning beyond bare parameter names, though it does not specify formats or sources.
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 'Get details about a Google Slides presentation' with a specific verb and resource. It differentiates from sibling tools like get_page and read_presentation_comments by focusing on overall presentation details, not pages or comments.
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 a read-only use case but provides no explicit guidance on when to prefer this over alternatives. No exclusions or alternative tools are mentioned, leaving the agent to infer usage from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_spreadsheet_infoA
Gets information about a specific spreadsheet including its sheets.
Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet to get info for. Required.
Returns: str: Formatted spreadsheet information including title, locale, and sheets list.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| spreadsheet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool returns a formatted string with title, locale, and sheets list, which is useful. However, it does not explicitly state that this is a read-only operation, mention potential errors (e.g., inaccessible spreadsheet), or describe any side effects, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and well-structured with separate Args and Returns sections. Every sentence adds value—no fluff or redundancy. It is appropriately sized for a two-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-oriented tool with two parameters, the description is largely complete. It specifies the parameters, return format, and content. The lack of explicit error handling or alternative tool references is a minor gap, but the presence of an output schema and the straightforward nature of the operation make it sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It clearly explains both parameters: user_google_email is the user's Google email and spreadsheet_id is the ID of the spreadsheet, marking both as required. This adds meaningful context beyond the bare schema and satisfies the need for parameter clarity.
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 it 'Gets information about a specific spreadsheet including its sheets,' which specifies a concrete action and resource. It implicitly distinguishes from sibling tools like list_spreadsheets by focusing on a single spreadsheet, but does not explicitly name alternatives, preventing a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like list_spreadsheets or read_sheet_values. The description only states what the tool does, without any contextual hints or exclusions. This makes it hard for an agent to decide between this and similar spreadsheet tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insert_doc_elementsA
Inserts structural elements like tables, lists, or page breaks into a Google Doc.
Args: user_google_email: User's Google email address document_id: ID of the document to update element_type: Type of element to insert ("table", "list", "page_break") index: Position to insert element (0-based) rows: Number of rows for table (required for table) columns: Number of columns for table (required for table) list_type: Type of list ("UNORDERED", "ORDERED") (required for list) text: Initial text content for list items
Returns: str: Confirmation message with insertion details
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| document_id | Yes | ||
| element_type | Yes | ||
| index | Yes | ||
| rows | No | ||
| columns | No | ||
| list_type | No | ||
| text | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses conditional parameter requirements (rows/columns for tables, list_type/text for lists) and the return type (confirmation string). However, it does not mention side effects like content shifting, required permissions, or failure modes, leaving some behavioral ambiguity.
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 well-structured: purpose statement followed by a clear Args list and Returns section. Every sentence is informative, with no redundancy or fluff. The front-loaded purpose immediately conveys the tool's function.
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 complexity (8 parameters, conditional logic), the description thoroughly covers purpose, parameters, and return value. It lacks error-handling details or edge-case behavior, but the provided information is sufficient for basic invocation. The presence of an output schema reduces the need to describe return format in depth.
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 0%, but the description rigorously documents all 8 parameters, including enums ('UNORDERED', 'ORDERED'), conditional requirements, and the meaning of 'text' for list items. This fully compensates for missing schema descriptions and adds significant semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Inserts structural elements like tables, lists, or page breaks into a Google Doc.' This is a specific verb (inserts), a clear resource (Google Doc), and explicit element types. It distinguishes itself from sibling tools like insert_doc_image (images) and modify_doc_text (text).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use for inserting structural elements, but it does not explicitly state when to use this tool versus alternatives such as create_table_with_data or modify_doc_text. No exclusions or alternative tool names are provided, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insert_doc_imageA
Inserts an image into a Google Doc from Drive or a URL.
Args: user_google_email: User's Google email address document_id: ID of the document to update image_source: Drive file ID or public image URL index: Position to insert image (0-based) width: Image width in points (optional) height: Image height in points (optional)
Returns: str: Confirmation message with insertion details
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| document_id | Yes | ||
| image_source | Yes | ||
| index | Yes | ||
| width | No | ||
| height | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral transparency. While it states the action, it does not disclose that this is a write operation requiring edit permissions, nor does it mention any side effects, error conditions, or reversibility. This is a significant gap for a mutation tool without 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 concise and well-structured with an 'Args' section listing parameters and a 'Returns' section. Every line adds value, and there is no redundant or excessive text. The format makes it easy to scan and understand.
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?
All six parameters are clearly explained, and the return type is specified. The tool's complexity is moderate, and the description covers the essential aspects. However, it lacks details on prerequisites (e.g., user authentication, edit access) and error handling, which would be expected for a write operation without annotations.
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 has 0% description coverage, so the description is the sole source of parameter meaning. It explains each parameter in plain language: user email, document ID, image source (Drive file ID or public URL), zero-based index, and optional width/height in points. This fully compensates for the schema's lack of descriptions and adds meaningful context.
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 starts with a specific verb and resource: 'Inserts an image into a Google Doc from Drive or a URL.' This clearly distinguishes it from sibling tools like insert_doc_elements by focusing specifically on image insertion and the source locations. Even without mentioning siblings, the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the use case clear (inserting an image into a Google Doc) and explains the image source options. However, it does not explicitly differentiate this tool from the broader insert_doc_elements tool or state when not to use it. The usage context is implied, not directly contrasted with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_doc_structureA
Essential tool for finding safe insertion points and understanding document structure.
USE THIS FOR:
Finding the correct index for table insertion
Understanding document layout before making changes
Locating existing tables and their positions
Getting document statistics and complexity info
CRITICAL FOR TABLE OPERATIONS: ALWAYS call this BEFORE creating tables to get a safe insertion index.
WHAT THE OUTPUT SHOWS:
total_elements: Number of document elements
total_length: Maximum safe index for insertion
tables: Number of existing tables
table_details: Position and dimensions of each table
WORKFLOW: Step 1: Call this function Step 2: Note the "total_length" value Step 3: Use an index < total_length for table insertion Step 4: Create your table
Args: user_google_email: User's Google email address document_id: ID of the document to inspect detailed: Whether to return detailed structure information
Returns: str: JSON string containing document structure and safe insertion indices
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| document_id | Yes | ||
| detailed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 explains what the output contains (total_elements, total_length, tables, table_details) and positions it as a safe inspection step, implying no side effects. It doesn't explicitly state read-only or potential errors, but the behavior is well disclosed for the tool's purpose.
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 well-structured with clear sections (USE THIS FOR, CRITICAL, OUTPUT, WORKFLOW, Args, Returns). It is slightly verbose with repetition between the 'CRITICAL' section and the workflow, but the organization earns its place. No unnecessary fluff.
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 provides a complete workflow, output explanation, and parameter list, making it self-sufficient for the agent to use correctly. It doesn't cover edge cases or detailed interpretation of 'detailed', but it adequately explains the critical aspects of safe insertion indices.
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 0%, so the description compensates by listing all three parameters and their purposes. The 'detailed' parameter is only vaguely described as 'Whether to return detailed structure information', but the output section helps infer its impact. Overall, it adds enough meaning beyond the raw 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: 'inspect_doc_structure' is for finding safe insertion points and understanding document structure. It distinguishes from siblings by explicitly linking to table operations (e.g., 'CRITICAL FOR TABLE OPERATIONS'), making it clear this is not just a generic document reader.
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 explicit use cases under 'USE THIS FOR' and a numbered workflow, emphasizing to call it before creating tables. It lacks explicit mention of alternatives or when not to use it, but the context is strong enough to guide an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_calendarsA
Retrieves a list of calendars accessible to the authenticated user.
Args: user_google_email (str): The user's Google email address. Required.
Returns: str: A formatted list of the user's calendars (summary, ID, primary status).
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description partially carries the transparency burden. It discloses the read-only nature and scope ('accessible to the authenticated user') and the return format, but omits details like error handling, authentication steps, or pagination. This adds some value beyond the schema but is 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 well-structured with an Args/Returns format, front-loads the primary action, and contains no unnecessary words. It conveys all essential information efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool, the description covers purpose, parameter semantics, and return value characteristics. It lacks minor details like error behavior, but given the tool's simplicity and the presence of an output schema, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero description coverage, so the description must compensate. It provides semantic meaning for 'user_google_email' as 'the user's Google email address' and marks it required, which is helpful. However, it could add more context on where to obtain this email or format expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('retrieves') and resource ('a list of calendars'), clearly distinguishing it from sibling tools. No other sibling tool lists calendars, so it stands out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are any exclusions or prerequisites mentioned. The description only states what it does, leaving usage context implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_docs_in_folderC
Lists Google Docs within a specific Drive folder.
Returns: str: A formatted list of Google Docs in the specified folder.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| folder_id | No | root | |
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 disclosing behavioral traits. It only states that a formatted list is returned, but omits any information about permissions needed, behavior with empty folders, page_size handling, or whether the tool filters exclusively to native Google Docs vs. other file types. This lack of context leaves significant room for misestimation.
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-loads the primary action, and includes a return-type note. Every word earns its place, with 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?
For a tool with three parameters (one required) and no comprehensive output schema visible, this description is insufficient. It lacks parameter semantics, behavioral caveats, and usage alternatives. The agent cannot confidently invoke this tool without guessing at the meaning of user_google_email and page_size, and the absence of any exclusion criteria makes it hard to distinguish from sibling listing 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?
The schema description coverage is 0%, so the description must compensate by explaining the parameters. It fails to do so: it never mentions user_google_email, folder_id, or page_size, and only obliquely references a 'specific Drive folder.' Required parameters are left undefined, making successful invocation dependent on external knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Lists' and the resource 'Google Docs within a specific Drive folder,' which distinguishes it from siblings like list_drive_items (all files) and search_drive_files (search). The scope is explicit, making the tool's 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?
The description provides no guidance on when to use this tool versus alternatives such as list_drive_items or search_drive_files. It does not mention exclusions, prerequisites, or typical use cases beyond the basic action, leaving the agent to infer usage from the name and sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_drive_itemsA
Lists files and folders, supporting shared drives.
If drive_id is specified, lists items within that shared drive. folder_id is then relative to that drive (or use drive_id as folder_id for root).
If drive_id is not specified, lists items from user's "My Drive" and accessible shared drives (if include_items_from_all_drives is True).
Args:
user_google_email (str): The user's Google email address. Required.
folder_id (str): The ID of the Google Drive folder. Defaults to 'root'. For a shared drive, this can be the shared drive's ID to list its root, or a folder ID within that shared drive.
page_size (int): The maximum number of items to return. Defaults to 100.
drive_id (Optional[str]): ID of the shared drive. If provided, the listing is scoped to this drive.
include_items_from_all_drives (bool): Whether items from all accessible shared drives should be included if drive_id is not set. Defaults to True.
corpora (Optional[str]): Corpus to query ('user', 'drive', 'allDrives'). If drive_id is set and corpora is None, 'drive' is used. If None and no drive_id, API defaults apply.
Returns: str: A formatted list of files/folders in the specified folder.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| folder_id | No | root | |
| page_size | No | ||
| drive_id | No | ||
| include_items_from_all_drives | No | ||
| corpora | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 scoping behavior, how folder_id is interpreted relative to drives, and the return type as a formatted list. It does not mention rate limits or explicit read-only status, but the read-only nature is implicit and the auth context (user_google_email) is included.
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 detailed but well-structured, starting with the main purpose and conditional rules, followed by an Args block. It is slightly longer than necessary, but every sentence adds useful information, and is appropriately front-loaded with the core listing behavior.
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 (shared drives, conditional folder scoping, multiple parameters), the description covers all essential aspects: parameters, return format, and behavioral nuances. The output schema exists and the return is described, making it 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?
The input schema has 0% description coverage, but the description's Args section fully documents each parameter, including default values, relationships (e.g., folder_id relative to drive_id), and conditional logic for corpora. It adds significant meaning beyond the bare schema property names and types.
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 starts with 'Lists files and folders, supporting shared drives', which is a specific verb-resource pair that clearly differentiates from sibling search tools like 'search_drive_files'. It also explains drive_id and folder_id semantics, fully conveying 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 provides explicit conditional behavior for when drive_id is specified vs not, and explains include_items_from_all_drives. However, it does not explicitly compare to sibling tools such as search_drive_files, so it stops short of naming alternatives. Clear context is present, but exclusions are not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_form_responsesA
List a form's responses.
Args: user_google_email (str): The user's Google email address. Required. form_id (str): The ID of the form. page_size (int): Maximum number of responses to return. Defaults to 10. page_token (Optional[str]): Token for retrieving next page of results.
Returns: str: List of responses with basic details and pagination info.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| form_id | Yes | ||
| page_size | No | ||
| page_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden. It discloses pagination behavior and that results include basic details and pagination info, but it does not explicitly state that the operation is read-only or mention any authentication requirements or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured, with a clear one-sentence purpose followed by an organized Args/Returns format. Every sentence adds value and there is no unnecessary verbosity.
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 list operation with pagination and no annotations, the description is largely complete: it covers all parameters, return type, and pagination details. It does not specify what 'basic details' include, but this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description fully documents all four parameters with types and explanations (e.g., user_google_email is required, page_size defaults to 10, page_token is optional). This adds significant meaning beyond the bare schema, which lacks property 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 opens with 'List a form's responses', using a specific verb and resource. It clearly distinguishes from the sibling get_form_response, which retrieves a single response.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like get_form_response. The description simply states what the tool does without any context on use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gmail_filtersA
Lists all Gmail filters configured in the user's mailbox.
Args: user_google_email (str): The user's Google email address. Required.
Returns: str: A formatted list of filters with their criteria and actions.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 transparently states that the operation lists filters (a read-only action) and describes the return format as 'a formatted list of filters with their criteria and actions.' While it doesn't explicitly mention auth requirements or side effects, the behavior is simple and adequately 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 concise and well-structured. The main purpose is stated in the first sentence, followed by clearly formatted Args and Returns sections. There is no redundant or extraneous content; every sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no nested objects), the description is complete. It provides a clear purpose, parameter explanation, and return format. It does not cover potential errors or authentication prerequisites, but for a straightforward list operation this is 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 has no description for user_google_email (0% coverage), but the description's Args section compensates: 'The user's Google email address. Required.' This clarifies the parameter's meaning beyond the raw schema, even though the parameter name is self-explanatory. The description adds value by tying the parameter to the mailbox being queried.
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: "Lists all Gmail filters configured in the user's mailbox." It uses a specific verb (Lists), defines the resource (Gmail filters), and specifies the scope (all filters in the user's mailbox), distinguishing it from sibling tools like create_gmail_filter and delete_gmail_filter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is clear: use this tool to list all Gmail filters. It does not explicitly compare against alternatives, but the action is unambiguous and the sibling tools for creating/deleting filters are clearly different operations. Since there are no exclusions or caveats, a 4 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gmail_labelsA
Lists all labels in the user's Gmail account.
Args: user_google_email (str): The user's Google email address. Required.
Returns: str: A formatted list of all labels with their IDs, names, and types.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 the return format (formatted list with IDs, names, and types) and the required argument, but it does not explicitly state auth requirements or confirm read-only behavior, though 'Lists' implies it.
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 compact and well-structured: one purpose sentence followed by Args and Returns sections. Every sentence adds value 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?
The tool is a simple read-only listing operation, and the description gives the core purpose, required input, and return contents. It is sufficient for correct invocation, though it could briefly mention auth prerequisites or clarify that it returns all labels without filtering.
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 single parameter user_google_email is explained as 'The user's Google email address' and marked Required, adding meaning beyond the bare schema type. Since there is only one parameter, this fully covers the parameter surface, though it offers no advanced format details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Lists' and names the resource 'all labels in the user's Gmail account,' clearly distinguishing it from sibling tools like list_gmail_filters and manage_gmail_label. The purpose is immediately 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 gives no explicit when-to-use guidance or alternatives, but the verb and resource make the intended use apparent. It does not mention cases where a different Gmail label-related tool 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.
list_spreadsheetsA
Lists spreadsheets from Google Drive that the user has access to.
Args: user_google_email (str): The user's Google email address. Required. max_results (int): Maximum number of spreadsheets to return. Defaults to 25.
Returns: str: A formatted list of spreadsheet files (name, ID, modified time).
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the output is a formatted list with name, ID, and modified time, and that access is scoped by the user's email. It also notes the max_results default, which adds behavioral context beyond the schema, though it omits any limitations such as pagination.
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 well-structured with a one-line purpose followed by concise Args and Returns sections. Every sentence adds value, and there is no redundant 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 adequately covers a simple listing tool with two parameters, including the return format. It is slightly incomplete because it doesn't address pagination or error conditions, but given the simplicity and presence of an output schema, it is 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 description explains both parameters explicitly: user_google_email is required and max_results defaults to 25. Since the schema has 0% description coverage, this fully compensates and provides clear meaning beyond the type information.
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 it lists spreadsheets from Google Drive with the specific scope of what the user has access to, distinguishing it from sibling tools like list_drive_items and search_drive_files.
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 that it lists only spreadsheets accessible to the user, but does not explicitly mention alternatives or when not to use this tool. No exclusions or comparisons with sibling tools are provided, so usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_gmail_labelA
Manages Gmail labels: create, update, or delete labels.
Args: user_google_email (str): The user's Google email address. Required. action (Literal["create", "update", "delete"]): Action to perform on the label. name (Optional[str]): Label name. Required for create, optional for update. label_id (Optional[str]): Label ID. Required for update and delete operations. label_list_visibility (Literal["labelShow", "labelHide"]): Whether the label is shown in the label list. message_list_visibility (Literal["show", "hide"]): Whether the label is shown in the message list.
Returns: str: Confirmation message of the label operation.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| action | Yes | ||
| name | No | ||
| label_id | No | ||
| label_list_visibility | No | labelShow | |
| message_list_visibility | No | show |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the burden of behavioral disclosure. It explains parameter requirements per action and the return type, which is helpful. However, it does not disclose potential side effects, such as what happens to messages when a label is deleted, whether updates are reversible, or if any specific permissions are needed beyond providing the user email. This leaves room for ambiguity in edge cases.
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 well-structured and front-loaded: a one-sentence summary, followed by a clean Args block with each parameter on its own line, and a Returns line. There is no fluff or repetition; every sentence earns its place. The format is easy to scan and directly supports parameter understanding.
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 (6 parameters, 3 enums, three distinct actions) and the lack of annotations or schema descriptions, the description covers all essential aspects: action semantics, parameter requirements per action, and the return type. It does not include examples or error scenarios, but for a straightforward CRUD tool this is a minor gap. Overall, it provides sufficient context for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for parameters, so the description's Args section is essential. It provides a clear explanation for each parameter, including the role of user_google_email, the action-dependent requirements for name and label_id, and the meaning of the visibility flags. This goes well beyond the bare type/enum info in the schema, making it highly informative for correct invocation.
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 'Manages Gmail labels: create, update, or delete labels,' which clearly identifies the resource (Gmail labels) and the specific actions (create, update, delete). This distinguishes it from sibling tools like list_gmail_labels, which only lists labels, and modify_gmail_message_labels, which acts on message labels rather than the label definitions themselves.
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 (when needing to create, update, or delete labels) and clarifies which parameters are required for each action. However, it does not explicitly mention alternatives or state when not to use this tool, such as pointing out that list_gmail_labels is for read-only listing. This is a minor gap, but the context is strong enough to guide an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modify_doc_textA
Modifies text in a Google Doc - can insert/replace text and/or apply formatting in a single operation.
Args: user_google_email: User's Google email address document_id: ID of the document to update start_index: Start position for operation (0-based) end_index: End position for text replacement/formatting (if not provided with text, text is inserted) text: New text to insert or replace with (optional - can format existing text without changing it) bold: Whether to make text bold (True/False/None to leave unchanged) italic: Whether to make text italic (True/False/None to leave unchanged) underline: Whether to underline text (True/False/None to leave unchanged) font_size: Font size in points font_family: Font family name (e.g., "Arial", "Times New Roman") text_color: Foreground text color (#RRGGBB) background_color: Background/highlight color (#RRGGBB)
Returns: str: Confirmation message with operation details
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| document_id | Yes | ||
| start_index | Yes | ||
| end_index | No | ||
| text | No | ||
| bold | No | ||
| italic | No | ||
| underline | No | ||
| font_size | No | ||
| font_family | No | ||
| text_color | No | ||
| background_color | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It explains parameter-level behaviors such as 'None to leave unchanged,' 'text is optional - can format existing text without changing it,' and 'if not provided with text, text is inserted.' It also specifies the return value. It does not explicitly discuss permissions or irreversibility, but 'insert/replace' makes the mutation clear and the added parameter nuances are valuable.
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 opens with a concise summary sentence, followed by a clearly labeled Args list and Returns line. It is a bit lengthy but each parameter explanation earns its place, and the structure is easy to scan. The front-loaded summary helps an agent quickly understand the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high parameter count and no annotations, the description covers all parameters, the return type, and the main operation. It even clarifies edge-case behavior like text insertion without end_index. Missing are usage comparisons with siblings and constraints like index bounds or auth prerequisites, but the core functionality is adequately documented.
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 0%, and the description fully compensates by explaining all 12 parameters in the Args section. It defines the meaning of each parameter, including optionality, the role of None for formatting fields, and the conditional behavior of end_index and text. This goes well beyond the raw 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 it 'Modifies text in a Google Doc' and specifies the capability: 'insert/replace text and/or apply formatting in a single operation.' This distinguishes it from siblings like find_and_replace_doc and batch_update_doc by emphasizing combined text editing and formatting in one call.
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 through 'single operation' but does not explicitly mention when to use this tool versus alternatives like batch_update_doc or insert_doc_elements. There are no when-not-to-use instructions or named sibling alternatives, so guidance is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modify_eventB
Modifies an existing event.
Args: user_google_email (str): The user's Google email address. Required. event_id (str): The ID of the event to modify. calendar_id (str): Calendar ID (default: 'primary'). summary (Optional[str]): New event title. start_time (Optional[str]): New start time (RFC3339, e.g., "2023-10-27T10:00:00-07:00" or "2023-10-27" for all-day). end_time (Optional[str]): New end time (RFC3339, e.g., "2023-10-27T11:00:00-07:00" or "2023-10-28" for all-day). description (Optional[str]): New event description. location (Optional[str]): New event location. timezone (Optional[str]): New timezone (e.g., "America/New_York"). add_google_meet (Optional[bool]): Whether to add or remove Google Meet video conference. If True, adds Google Meet; if False, removes it; if None, leaves unchanged. reminders (Optional[Union[str, List[Dict[str, Any]]]]): JSON string or list of reminder objects to replace existing reminders. Each should have 'method' ("popup" or "email") and 'minutes' (0-40320). Max 5 reminders. Example: '[{"method": "popup", "minutes": 15}]' or [{"method": "popup", "minutes": 15}] use_default_reminders (Optional[bool]): Whether to use calendar's default reminders. If specified, overrides current reminder settings. transparency (Optional[str]): Event transparency for busy/free status. "opaque" shows as Busy, "transparent" shows as Available/Free. If None, preserves existing transparency setting. visibility (Optional[str]): Event visibility. "default" uses calendar default, "public" is visible to all, "private" is visible only to attendees, "confidential" is same as private (legacy). If None, preserves existing visibility setting. color_id (Optional[str]): Event color ID (1-11). If None, preserves existing color.
Returns: str: Confirmation message of the successful event modification with event link.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| event_id | Yes | ||
| calendar_id | No | primary | |
| summary | No | ||
| start_time | No | ||
| end_time | No | ||
| description | No | ||
| location | No | ||
| timezone | No | ||
| add_google_meet | No | ||
| reminders | No | ||
| use_default_reminders | No | ||
| transparency | No | ||
| visibility | No | ||
| color_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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. While it mentions the tool modifies an existing event (implying mutation) and describes the return value, it lacks critical behavioral details: required permissions (e.g., calendar write access), whether modifications are reversible, error handling (e.g., invalid event_id), rate limits, or side effects. The description adds some context (e.g., format examples for parameters) but is insufficient for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately front-loaded with the core purpose, but it's lengthy due to detailed parameter documentation. While this detail is necessary given the schema coverage gap, some sentences could be more concise (e.g., repetitive 'If None, preserves existing...' patterns). The structure (purpose, args, returns) is clear, but the bulkiness slightly reduces efficiency.
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 (15 parameters, mutation operation, no annotations) and the presence of an output schema (returns a confirmation string), the description is largely complete. It thoroughly documents all parameters and the return value. However, it lacks behavioral context (e.g., permissions, errors) that would be crucial for safe invocation, preventing a perfect 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?
With 0% schema description coverage, the description fully compensates by providing detailed semantic information for all 15 parameters. It explains each parameter's purpose (e.g., 'user_google_email: The user's Google email address. Required.'), format requirements (e.g., RFC3339 for time fields), default values (e.g., calendar_id default: 'primary'), constraints (e.g., max 5 reminders), and behavioral effects (e.g., 'If None, preserves existing color.'). This goes far beyond what the bare 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 clearly states the tool's purpose: 'Modifies an existing event.' This is a specific verb+resource combination that distinguishes it from sibling tools like 'create_event' and 'delete_event'. However, it doesn't explicitly differentiate itself from other modification tools in the sibling list, such as 'modify_doc_text' or 'modify_sheet_values', beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing event), compare it to 'create_event' for new events, or specify scenarios where it's appropriate. The only implied usage is modifying events, but no explicit context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modify_gmail_message_labelsA
Adds or removes labels from a Gmail message. To archive an email, remove the INBOX label. To delete an email, add the TRASH label.
Args: user_google_email (str): The user's Google email address. Required. message_id (str): The ID of the message to modify. add_label_ids (Optional[List[str]]): List of label IDs to add to the message. remove_label_ids (Optional[List[str]]): List of label IDs to remove from the message.
Returns: str: Confirmation message of the label changes applied to the message.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| message_id | Yes | ||
| add_label_ids | No | Label IDs to add to the message. | |
| remove_label_ids | No | Label IDs to remove from the message. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 special label behaviors (INBOX/TRASH) and states the return type, but it omits details about permissions, idempotence, or error conditions. It adds helpful context but is not exhaustive.
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 well-structured with a direct summary, practical examples, and an Args section. While the Args section overlaps with the schema, it is reasonably compact and the examples justify the extra length. No 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 moderately simple mutation tool, the description covers the core operation, special cases, and return value. It lacks discussion of permissions or contrast with the batch sibling, but given the tool's simplicity and the presence of an output schema, it is sufficiently complete for most agent use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 50% of the parameters (add_label_ids and remove_label_ids), and the description's Args section adds brief context for the other two (user_google_email, message_id). However, the descriptions are minimal and don't explain where to obtain label IDs or how the parameters interact, so the added meaning is only slightly above the schema 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 opens with 'Adds or removes labels from a Gmail message,' which is a specific verb and resource, clearly distinguishing the tool from label management or batch operations. The examples further clarify the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete usage examples ('To archive an email, remove the INBOX label'), which imply when to use these parameter combinations. However, it does not explicitly contrast with sibling tools like batch_modify_gmail_message_labels or manage_gmail_label, so the guidance on when to choose this tool vs alternatives is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modify_sheet_valuesA
Modifies values in a specific range of a Google Sheet - can write, update, or clear values.
Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. range_name (str): The range to modify (e.g., "Sheet1!A1:D10", "A1:D10"). Required. values (Optional[Union[str, List[List[str]]]]): 2D array of values to write/update. Can be a JSON string or Python list. Required unless clear_values=True. value_input_option (str): How to interpret input values ("RAW" or "USER_ENTERED"). Defaults to "USER_ENTERED". clear_values (bool): If True, clears the range instead of writing values. Defaults to False.
Returns: str: Confirmation message of the successful modification operation.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| spreadsheet_id | Yes | ||
| range_name | Yes | ||
| values | No | ||
| value_input_option | No | USER_ENTERED | |
| clear_values | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 mutation operation ('can write, update, or clear values'), explains the clear_values behavior, and specifies the return type (confirmation message). However, it does not mention permissions, irreversibility, or potential errors, which are relevant for a write 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 well-structured with a one-sentence summary followed by Args and Returns sections. It is appropriately detailed without unnecessary fluff. The Args section is relatively long but necessary given the schema lacks descriptions. Could be slightly more concise, but it remains clear and organized.
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 main functionality, all parameter semantics, and return value. For a 6-param mutation tool with no annotations, it provides sufficient context for an agent to invoke it correctly. It lacks a few edge-case details (e.g., handling of value-size mismatches) but is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description fully compensates with a detailed Args section. It explains each parameter's type, requirement, examples (e.g., range_name format), the special behavior of values (JSON string or 2D list, required unless clear_values=True), and defaults for value_input_option and clear_values. This adds significant 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 opens with 'Modifies values in a specific range of a Google Sheet' which clearly identifies the verb, resource, and scope. It further specifies that the tool can 'write, update, or clear values,' distinguishing it from sibling tools like read_sheet_values or format_sheet_range.
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 of what the tool does ('Modifies values... can write, update, or clear') but does not explicitly state when to use it versus alternatives or mention any exclusions. Usage is implied rather than explicitly contrasted with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_document_commentsC
Read all comments from a Google Document.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| document_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states only that it reads comments, but does not explain whether replies are included, whether resolved comments are returned, authentication requirements, or any side effects. This lacks sufficient transparency for a 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 concise sentence with no wasted words, making it efficiently structured and front-loaded. However, it is arguably too sparse, missing useful information, though conciseness itself is well handled.
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 minimally described with only one sentence, no annotations, and no parameter details. Although an output schema exists, important context such as prerequisites, behavior regarding comment threads/replies, and user authorization is absent. This makes the description insufficient for reliable tool 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?
Schema description coverage is 0%, and the description adds no information about the parameters. While 'document_id' is fairly self-explanatory, 'user_google_email' is ambiguous—does it identify whose comments to read or the authenticated user? The description does not clarify this, failing to compensate for the missing 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 uses a specific verb and resource: 'Read all comments from a Google Document.' This clearly states the tool's function and distinguishes it from sibling tools like 'read_presentation_comments' or 'create_document_comment' by specifying the document type and action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as read_presentation_comments or reply_to_document_comment. The intended use is only implied by the tool name and description, but no explicit context or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_presentation_commentsC
Read all comments from a Google Presentation.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| presentation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behaviors, but it only states the basic operation. It does not mention whether replies are included, auth requirements, pagination, or the non-destructive nature of the read action.
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 unnecessary words. It is maximally concise while still conveying the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two required parameters, zero schema descriptions, no annotations, and no parameter guidance, the description is inadequate for an agent to confidently invoke the tool. It only identifies the operation and resource, but omits essential contextual 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?
Schema description coverage is 0%, so the description must compensate for the two required parameters (user_google_email, presentation_id). It does not mention or explain either parameter, forcing the agent to rely solely on parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb 'Read' and the resource 'comments from a Google Presentation,' which is specific and distinguishes it from sibling comment tools for documents and spreadsheets. It is unambiguous 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 provides no guidance on when to use this tool versus alternatives such as create_presentation_comment or reply_to_presentation_comment. It lacks any contextual cues about scenario fit or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_sheet_valuesA
Reads values from a specific range in a Google Sheet.
Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. range_name (str): The range to read (e.g., "Sheet1!A1:D10", "A1:D10"). Defaults to "A1:Z1000". value_render_option (str): How values should be rendered in the output. "FORMATTED_VALUE" (default) - display values (e.g., "1,450", "$2.50"). "UNFORMATTED_VALUE" - raw numbers without formatting (e.g., 1450, 2.5). "FORMULA" - the underlying formulas (e.g., "=C7C9 - C8C9").
Returns: str: The formatted values from the specified range.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| spreadsheet_id | Yes | ||
| range_name | No | A1:Z1000 | |
| value_render_option | No | FORMATTED_VALUE |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 clearly indicates this is a read operation ('Reads values'), which is helpful, but doesn't mention authentication requirements, rate limits, error conditions, or what happens with invalid ranges. It adds some context but leaves significant behavioral aspects unspecified.
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 well-structured with clear sections (Args, Returns) and front-loaded purpose statement. While efficient, the parameter explanations could be slightly more concise, and the Returns section repeats 'formatted values' without fully explaining the output format beyond the string type.
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, read operation) and the presence of an output schema (though not shown in context), the description provides good coverage. It explains all parameters thoroughly and states the return type, though additional context about authentication or error handling would make it more complete for a tool with no annotations.
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?
With 0% schema description coverage, the description fully compensates by providing detailed parameter documentation in the Args section. Each parameter is clearly explained with examples (e.g., 'Sheet1!A1:D10'), default values, and enum descriptions. This adds substantial meaning beyond what the bare 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 clearly states the specific action ('Reads values') and resource ('from a specific range in a Google Sheet'), distinguishing it from sibling tools like 'get_spreadsheet_info' or 'modify_sheet_values'. It precisely defines the tool's scope as reading values rather than metadata or performing modifications.
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 specifying what the tool does, but doesn't explicitly state when to use it versus alternatives like 'get_spreadsheet_info' for metadata or 'modify_sheet_values' for writing. It provides context about reading ranges but lacks explicit guidance on tool selection scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_spreadsheet_commentsB
Read all comments from a Google Spreadsheet.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| spreadsheet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It states the operation is a read ('Read all comments'), but it does not mention that the user email must have access, whether comments are returned in any particular order, or any other behavioral traits beyond the action itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states exactly what the tool does. Every word earns its place, and there is no unnecessary 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?
Although an output schema exists, the absence of annotations and a bare-bones description leave out critical context such as authentication needs, access restrictions, or how the comments are scoped to a user. For a tool with two required parameters and no safety annotations, the description is too thin to be fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining the parameters. It does not address 'spreadsheet_id' or 'user_google_email' at all. The parameter names are somewhat self-explanatory, but the description adds no semantic detail beyond the schema fields themselves.
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 'Read' and clearly identifies the resource as 'all comments from a Google Spreadsheet.' It distinguishes itself from sibling tools like read_document_comments and read_presentation_comments by naming the spreadsheet, though it does not explicitly call out those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The implied usage is to fetch comments from a spreadsheet, but the description provides no explicit guidance on when to choose this over create/reply/resolve comment tools, nor does it state any exclusions or prerequisites like authentication or access requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_to_document_commentB
Reply to a specific comment in a Google Document.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| document_id | Yes | ||
| comment_id | Yes | ||
| reply_content | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action but omits critical traits: whether it requires write permissions, whether it has side effects (e.g., email notifications), reversibility, rate limits, or how authentication is handled. This is a bare statement with none of these operational details.
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, front-loaded with the verb and object, and contains no filler. Every word earns its place, making it highly 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?
The tool is simple but still needs context: how to obtain the comment_id, whether prior authentication is required, and what the output schema contains (present but not shown). With no annotations and sparse parameter documentation, the description is not complete enough for an agent to confidently invoke the tool without additional assumptions.
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 0%, so the description must compensate. It only mentions 'specific comment', which maps vaguely to comment_id, but it does not explain the purpose of user_google_email, document_id, or reply_content, nor their expected format (e.g., plain text). The property names give some clue, but the description adds no additional semantic value beyond what the schema already exposes.
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: 'Reply to a specific comment in a Google Document.' It uses a specific verb ('reply') and resource ('comment in a Google Document'), which distinguishes it from sibling tools like create_document_comment or resolve_document_comment. The wording is unambiguous and self-contained.
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 the user wants to reply to an existing comment. However, it does not provide explicit guidance on prerequisites (e.g., must first retrieve comments via read_document_comments to obtain a comment_id) or mention any alternatives. There are no exclusions, but also no practical context for invocation, so it stops at implied usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_to_presentation_commentC
Reply to a specific comment in a Google Presentation.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| presentation_id | Yes | ||
| comment_id | Yes | ||
| reply_content | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must disclose side effects and requirements. It only states 'Reply to a specific comment' without mentioning auth, irreversibility, or any effects on the presentation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, with no filler words, making it 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 has 4 required parameters and no annotations, yet the description provides no operational context, return value expectations, or error conditions. The existence of an output schema is not leveraged by the description.
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 0%, and the description adds no parameter information. Although parameter names are self-explanatory, the description does not clarify formats, constraints, or relationships between parameters (e.g., how comment_id relates to presentation_id).
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 (reply) and the target (a specific comment in a Google Presentation), distinguishing it from sibling comment tools for documents and spreadsheets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like reply_to_document_comment or reply_to_spreadsheet_comment, nor are any preconditions or contexts mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_to_spreadsheet_commentC
Reply to a specific comment in a Google Spreadsheet.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| spreadsheet_id | Yes | ||
| comment_id | Yes | ||
| reply_content | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 transparency. It discloses nothing about side effects, authentication requirements, or how the reply affects the existing comment thread. The description is silent on all behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff, but it is under-specified. It earns its place by stating purpose, yet omits necessary details, balancing conciseness against completeness.
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 4 required parameters and no annotations, the description provides minimal context. It does not mention how to obtain a comment_id, any permissions needed, or what the operation does beyond replying. The output schema may cover return values, but other contextual gaps remain.
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 0% and the description adds no parameter-specific meaning. It does not explain formats or details for user_google_email, spreadsheet_id, comment_id, or reply_content, leaving the parameter names to carry all semantic weight.
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 'Reply to a specific comment in a Google Spreadsheet', with a specific verb ('Reply to') and resource ('specific comment in Google Spreadsheet'). It distinguishes itself from sibling tools like reply_to_document_comment and reply_to_presentation_comment by explicitly naming the spreadsheet context.
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 such as create_spreadsheet_comment or resolve_spreadsheet_comment, nor does it mention prerequisites like obtaining a comment_id. 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.
resolve_document_commentC
Resolve a comment in a Google Document.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| document_id | Yes | ||
| comment_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the action 'resolve' without disclosing side effects, reversibility, permission requirements, or behavior when the comment is already resolved. This is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, making it concise and front-loaded. It is not verbose, but the extreme brevity limits its usefulness; still, for this dimension, it is 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?
The tool is relatively simple, but without annotations or output schema details, the description is insufficient. It does not explain the expected outcome or the meaning of resolving a comment, making it incomplete for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the three parameters. For instance, it does not clarify whether user_google_email is the authenticated user or the comment author, and it gives no context for comment_id or document_id.
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 'resolve' and identifies the resource as 'a comment in a Google Document,' clearly distinguishing it from sibling tools like create_document_comment or reply_to_document_comment. However, it does not define what 'resolve' means in the context of Google Docs (e.g., marking the comment as resolved), which would enhance clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as reply_to_document_comment or read_document_comments. It also does not mention prerequisites like authentication or that the comment must be unresolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_presentation_commentC
Resolve a comment in a Google Presentation.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| presentation_id | Yes | ||
| comment_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the action 'Resolve' with no details on what resolving entails (e.g., changes status, idempotency, permissions, or side effects). This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, but under-specified. It is a single sentence that could easily have included more behavioral or param context without losing 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 simple mutation tool with 3 required params and an output schema, the description is incomplete. It does not mention any behavioral context, prerequisites, or edge cases, relying entirely on the schema and output schema which are not described either.
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 0%, and the description does not explain any parameters. The parameter names are self-explanatory but the description does not add meaning or compensate for the missing schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Resolve' with a clear resource 'a comment in a Google Presentation'. It distinguishes from sibling tools like read, create, and reply for presentation comments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like resolving document or spreadsheet comments, or when not to use it. The implied usage is only that it resolves a comment, but no context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_spreadsheet_commentB
Resolve a comment in a Google Spreadsheet.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| spreadsheet_id | Yes | ||
| comment_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 does not explain what 'resolve' entails (e.g., marking a comment as resolved, closing a thread), whether the action is reversible, or any permission requirements. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that wastes no words. It directly communicates the tool's purpose, which is ideal for conciseness, even though additional context is missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 parameters and no annotations, yet the description is minimal. While an output schema exists, the description still fails to provide necessary behavioral context, such as what resolving a comment does or when to use it, making it incomplete 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 description coverage is 0%, and the description adds no parameter-level detail. While parameter names (user_google_email, spreadsheet_id, comment_id) are somewhat self-explanatory, the description does not clarify their exact roles or any constraints, such as ownership or authentication implications for user_google_email.
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 'Resolve' and the resource 'a comment in a Google Spreadsheet', distinguishing it from sibling tools like resolve_document_comment or resolve_presentation_comment by explicitly naming the spreadsheet context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use, or any alternative tools, leaving the agent to infer usage solely from the name and resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsC
Searches for Google Docs by name using Drive API (mimeType filter).
Returns: str: A formatted list of Google Docs matching the search query.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| query | Yes | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only states the operation and return type. It does not mention pagination, sorting, authentication requirements, limitations, or side effects, leaving the agent without important behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, with no filler or redundancy. The 'Returns' line is useful. However, its brevity comes at the cost of necessary detail, which is a completeness issue rather than a conciseness problem.
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 three parameters, no annotations, an output schema that is not described, and numerous sibling search/list tools, this description is too sparse. It omits key context about query syntax, authentication needs, and result formatting, making it difficult 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 schema description coverage is 0%, and the description does not compensate. It only alludes to searching by name but does not explain how `query` maps to that behavior, what `user_google_email` is for, or how `page_size` is used. It adds no meaning beyond the raw 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 ('Searches for Google Docs by name') and the resource (Google Docs), while mentioning the use of Drive API and mimeType filter to scope results. This distinguishes it from sibling tools like search_drive_files, which searches all file types, and list_docs_in_folder, which lists rather than searches.
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 such as search_drive_files or list_docs_in_folder, and does not mention prerequisites like authentication. It lacks any explicit or implicit usage context beyond the tool's name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_drive_filesA
Searches for files and folders within a user's Google Drive, including shared drives.
Args:
user_google_email (str): The user's Google email address. Required.
query (str): The search query string. Supports Google Drive search operators.
page_size (int): The maximum number of files to return. Defaults to 10.
drive_id (Optional[str]): ID of the shared drive to search. If None, behavior depends on corpora and include_items_from_all_drives.
include_items_from_all_drives (bool): Whether shared drive items should be included in results. Defaults to True. This is effective when not specifying a drive_id.
corpora (Optional[str]): Bodies of items to query (e.g., 'user', 'domain', 'drive', 'allDrives').
If 'drive_id' is specified and 'corpora' is None, it defaults to 'drive'.
Otherwise, Drive API default behavior applies. Prefer 'user' or 'drive' over 'allDrives' for efficiency.
Returns: str: A formatted list of found files/folders with their details (ID, name, type, size, modified time, link).
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| query | Yes | ||
| page_size | No | ||
| drive_id | No | ||
| include_items_from_all_drives | No | ||
| corpora | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses meaningful behavior: shared drive inclusion, default page_size, drive_id/corpora interactions, and an efficiency tip ('Prefer 'user' or 'drive' over 'allDrives' for efficiency'). This goes well beyond a bare 'Searches for files' statement.
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 well-structured with a clear purpose sentence, an Args block, and a Returns section. While it is somewhat lengthy, every line serves a purpose, especially given the 0% schema coverage. It does not waste words, but the parameter details could be slightly more compressed.
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 (6 params, no annotations, multiple drive-related options), the description covers all necessary aspects: what it does, scope, parameter semantics, defaults, and return format. It is complete enough for an agent to select and invoke the tool correctly without additional 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 has zero descriptions, so the description fully compensates by documenting all six parameters: required user email, query string, page_size default, optional drive_id with behavior, include_items_from_all_drives default and scope, and corpora default logic. This is comprehensive and adds significant clarity.
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 opens with a specific verb and resource: 'Searches for files and folders within a user's Google Drive, including shared drives.' This clearly distinguishes it from sibling tools like list_drive_items, which lists items rather than searching by query.
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 searching as the core use case and gives details about parameters (e.g., search operators, corpora) but does not explicitly state when to choose this over alternatives like list_drive_items. No exclusions or alternative tool mentions are provided, so 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.
search_gmail_messagesA
Searches messages in a user's Gmail account based on a query. Returns both Message IDs and Thread IDs for each found message, along with Gmail web interface links for manual verification. Supports pagination via page_token parameter.
Args: query (str): The search query. Supports standard Gmail search operators. user_google_email (str): The user's Google email address. Required. page_size (int): The maximum number of messages to return. Defaults to 10. page_token (Optional[str]): Token for retrieving the next page of results. Use the next_page_token from a previous response.
Returns: str: LLM-friendly structured results with Message IDs, Thread IDs, and clickable Gmail web interface URLs for each found message. Includes pagination token if more results are available.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| user_google_email | Yes | ||
| page_size | No | ||
| page_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 does this well by explaining pagination via page_token, the return structure (Message IDs, Thread IDs, web links), and that 'user_google_email is Required.' It also notes support for standard Gmail search operators. Missing details like rate limits or authentication are not disclosed, but for a read-only search tool the provided information is substantial.
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 well-structured with a one-sentence summary, a return overview, then a clear Args list, and a Returns section. Each sentence serves a purpose and contains no filler. The format is easy to scan and front-loads the core functionality.
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 (4 parameters, output schema exists, no annotations), the description is remarkably complete. It covers the search purpose, all parameters with defaults and required status, the return format, pagination behavior, and links for manual verification. There is no significant missing context that would prevent an agent from using 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?
Despite 0% schema description coverage, the description's Args section fully documents all four parameters. It explains that query supports standard Gmail search operators, user_google_email is required, page_size defaults to 10, and page_token should use next_page_token from a previous response. This adds meaningful detail beyond the bare schema, fully compensating for the lack of 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 tool 'Searches messages in a user's Gmail account based on a query,' which is a specific verb+resource combination. It distinguishes itself from sibling tools like get_gmail_message_content by focusing on search and returning Message IDs, Thread IDs, and web links, not content. This unambiguous purpose differentiates it well.
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: to find messages by query and get IDs/links for manual verification. It implies that content retrieval is not its purpose, but it does not explicitly name alternatives or exclusions, such as suggesting get_gmail_message_content for reading full messages. The guidance is therefore clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_publish_settingsA
Updates the publish settings of a form.
Args: user_google_email (str): The user's Google email address. Required. form_id (str): The ID of the form to update publish settings for. publish_as_template (bool): Whether to publish as a template. Defaults to False. require_authentication (bool): Whether to require authentication to view/submit. Defaults to False.
Returns: str: Confirmation message of the successful publish settings update.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| form_id | Yes | ||
| publish_as_template | No | ||
| require_authentication | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 not mention side effects, permissions, whether existing settings are overwritten, or any limitations. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with Args and Returns sections, every sentence earns its place, and there is no fluff. It is concise 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 relatively simple with 4 parameters and a string return. The description covers purpose, parameters, and return, but lacks behavioral details and usage guidance. It is adequate but not comprehensive, especially given the absence of annotations.
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 0%, so the description must compensate. It lists all four parameters with brief meanings, but most are tautological (e.g., 'The ID of the form to update publish settings for'). It adds slight value (e.g., 'to view/submit') but does not fully clarify ambiguous terms like 'publish as template'.
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 'Updates the publish settings of a form' with a specific verb and resource. This distinguishes it from siblings like create_form and get_form, which handle form creation and retrieval.
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 (updating publish settings) but does not explicitly mention alternatives or exclusions. It lacks 'use X instead' guidance, but the purpose is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_google_authA
Manually initiate Google OAuth authentication flow.
NOTE: This tool should typically NOT be called directly. The authentication system automatically handles credential checks and prompts for authentication when needed. Only use this tool if:
You need to re-authenticate with different credentials
You want to proactively authenticate before using other tools
The automatic authentication flow failed and you need to retry
In most cases, simply try calling the Google Workspace tool you need - it will automatically handle authentication if required.
| Name | Required | Description | Default |
|---|---|---|---|
| service_name | Yes | ||
| user_google_email | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 the behavior of initiating OAuth, mentions the automatic authentication flow, and explains when manual initiation is appropriate. It does not detail side effects like user prompts or credential storage, but it provides solid behavioral context beyond a minimal statement.
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 well-structured with a lead sentence and a bullet-style NOTE section. It is slightly repetitive in the final 'In most cases' sentence, which restates the earlier automatic-handling point, but overall it is efficient and scannable.
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 authentication tool, the description covers purpose, typical usage, and alternatives well. It lacks parameter-level detail and specifics about authentication state outcomes, but given the presence of an output schema and the low operational complexity, it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain either 'service_name' or 'user_google_email'. The names are somewhat self-explanatory, but the description adds no meaning beyond the schema, leaving the required parameter and the optional email parameter underspecified.
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 ('Manually initiate Google OAuth authentication flow') and explicitly distinguishes this tool from normal usage by noting it should typically not be called directly. It clarifies the resource (Google OAuth) and the trigger conditions, 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 explicit when-to-use guidance with numbered scenarios, explicitly states when NOT to use it, and names the alternative approach ('simply try calling the Google Workspace tool you need'). This is exemplary usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_conditional_formattingA
Updates an existing conditional formatting rule by index on a sheet.
Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. range_name (Optional[str]): A1-style range to apply the updated rule (optionally with sheet name). If omitted, existing ranges are preserved. rule_index (int): Index of the rule to update (0-based). condition_type (Optional[str]): Sheets condition type. If omitted, the existing rule's type is preserved. condition_values (Optional[Union[str, List[Union[str, int, float]]]]): Values for the condition. background_color (Optional[str]): Hex background color when condition matches. text_color (Optional[str]): Hex text color when condition matches. sheet_name (Optional[str]): Sheet name to locate the rule when range_name is omitted. Defaults to first sheet. gradient_points (Optional[Union[str, List[dict]]]): If provided, updates the rule to a gradient color scale using these points.
Returns: str: Confirmation of the updated rule and the current rule state.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| spreadsheet_id | Yes | ||
| rule_index | Yes | ||
| range_name | No | ||
| condition_type | No | ||
| condition_values | No | ||
| background_color | No | ||
| text_color | No | ||
| sheet_name | No | ||
| gradient_points | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 details: omitted range_name preserves existing ranges, omitted condition_type preserves the existing type, and gradient_points switches the rule to a gradient scale. It also states the return value includes the current rule state. It does not discuss permissions or error scenarios, but the provided behavior is rich enough 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 well-structured with Args and Returns sections. Each parameter explanation is concise yet informative, and the overall length is appropriate for a 10-parameter tool. Every sentence earns its place 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 tool with 10 parameters and no annotations, the description covers all parameter semantics and return values. While it lacks explicit edge-case handling (e.g., invalid rule_index), the tool is sufficiently specified for an agent to invoke it correctly. The output schema exists, so return details are already structured, and the description adds the confirmation/current-state context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides detailed Args with explanations for every parameter, including optionality and default behavior. This fully compensates for the schema's lack of descriptions and adds semantic meaning beyond parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('updates') and resource ('existing conditional formatting rule by index on a sheet'), clearly distinguishing it from sibling tools like add_conditional_formatting and delete_conditional_formatting. It is unambiguous 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 provides clear context: the tool is for modifying an existing rule using its index. It implies the user must already have a rule and know its index, but it does not explicitly mention alternatives or when not to use it. This is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_drive_fileA
Updates metadata and properties of a Google Drive file.
Args: user_google_email (str): The user's Google email address. Required. file_id (str): The ID of the file to update. Required. name (Optional[str]): New name for the file. description (Optional[str]): New description for the file. mime_type (Optional[str]): New MIME type (note: changing type may require content upload). add_parents (Optional[str]): Comma-separated folder IDs to add as parents. remove_parents (Optional[str]): Comma-separated folder IDs to remove from parents. starred (Optional[bool]): Whether to star/unstar the file. trashed (Optional[bool]): Whether to move file to/from trash. writers_can_share (Optional[bool]): Whether editors can share the file. copy_requires_writer_permission (Optional[bool]): Whether copying requires writer permission. properties (Optional[dict]): Custom key-value properties for the file.
Returns: str: Confirmation message with details of the updates applied.
| Name | Required | Description | Default |
|---|---|---|---|
| user_google_email | Yes | ||
| file_id | Yes | ||
| name | No | ||
| description | No | ||
| mime_type | No | ||
| add_parents | No | ||
| remove_parents | No | ||
| starred | No | ||
| trashed | No | ||
| writers_can_share | No | ||
| copy_requires_writer_permission | No | ||
| properties | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 the important caveat that changing MIME type may require content upload, and it describes the return value. It doesn't detail all side effects (e.g., moving to trash or parent changes), but it provides meaningful 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?
Despite its length, the description is a well-organized docstring with a clear purpose line, a structured argument list, and a return value note. Every line serves a purpose for a tool with 12 parameters; there is no fluff.
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 (12 parameters) and lack of annotations, this description is comprehensive. It covers all parameters with semantic explanations, includes a return value description, and a caveat about MIME type changes. It 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?
The schema has 0% description coverage, but the description thoroughly documents every parameter, including formats like 'Comma-separated folder IDs' for add_parents/remove_parents and the note that changing MIME type may require content upload. This adds substantial semantics beyond the bare schema types.
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 'Updates metadata and properties of a Google Drive file,' using a specific verb and resource. It distinguishes itself from sibling tools like update_drive_permission, which handles permissions separately.
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?
While no explicit when-to-use or exclusions are provided, the description's focus on 'metadata and properties' implies it is for file metadata updates rather than permissions or sharing, which are covered by sibling tools. The parameter list further clarifies its scope.
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.
73 tool updates
v1.7.1- First observed
add_conditional_formatting - First observed
batch_modify_gmail_message_labels - First observed
batch_update_doc - First observed
batch_update_presentation - First observed
check_drive_file_public_access - First observed
create_doc - First observed
create_document_comment - First observed
create_drive_file - First observed
create_event - First observed
create_form - First observed
create_presentation - First observed
create_presentation_comment - First observed
create_sheet - First observed
create_spreadsheet - First observed
create_spreadsheet_comment - First observed
create_table_with_data - First observed
debug_table_structure - First observed
delete_conditional_formatting - First observed
delete_event - First observed
draft_gmail_message - First observed
export_doc_to_pdf - First observed
find_and_replace_doc - First observed
format_sheet_range - First observed
get_doc_content - First observed
get_drive_file_content - First observed
get_drive_file_download_url - First observed
get_drive_file_permissions - First observed
get_drive_shareable_link - First observed
get_events - First observed
get_form - First observed
get_form_response - First observed
get_gmail_attachment_content - First observed
get_gmail_message_content - First observed
get_gmail_messages_content_batch - First observed
get_gmail_thread_content - First observed
get_gmail_threads_content_batch - First observed
get_page - First observed
get_page_thumbnail - First observed
get_presentation - First observed
get_spreadsheet_info - First observed
insert_doc_elements - First observed
insert_doc_image - First observed
inspect_doc_structure - First observed
list_calendars - First observed
list_docs_in_folder - First observed
list_drive_items - First observed
list_form_responses - First observed
list_gmail_filters - First observed
list_gmail_labels - First observed
list_spreadsheets - First observed
manage_gmail_label - First observed
modify_doc_text - First observed
modify_event - First observed
modify_gmail_message_labels - First observed
modify_sheet_values - First observed
read_document_comments - First observed
read_presentation_comments - First observed
read_sheet_values - First observed
read_spreadsheet_comments - First observed
reply_to_document_comment - First observed
reply_to_presentation_comment - First observed
reply_to_spreadsheet_comment - First observed
resolve_document_comment - First observed
resolve_presentation_comment - First observed
resolve_spreadsheet_comment - First observed
search_docs - First observed
search_drive_files - First observed
search_gmail_messages - First observed
set_publish_settings - First observed
start_google_auth - First observed
update_conditional_formatting - First observed
update_doc_headers_footers - First observed
update_drive_file
TDQS
Scored across 73 tools
Most tools have distinct purposes targeting specific Google Workspace services (Docs, Sheets, Gmail, Drive, Calendar, Forms, Slides), with clear resource-action pairs like create_doc vs. modify_doc_text. However, some overlap exists between get_doc_content and get_drive_file_content for document retrieval, and between various comment tools across services, which could cause minor confusion.
Tool names follow a highly consistent verb_noun pattern throughout, using snake_case uniformly. Examples include create_doc, modify_event, list_calendars, and get_spreadsheet_info. The naming convention is predictable and readable across all 73 tools.
With 73 tools, the set is excessively large for a single server, making it overwhelming and difficult for agents to navigate. While Google Workspace is broad, this count feels heavy and could lead to tool selection paralysis, as many tools are highly specific (e.g., separate comment tools for Docs, Sheets, and Presentations).
The tool surface provides comprehensive coverage across Google Workspace services, including full CRUD operations for Docs, Sheets, Slides, Calendar events, Drive files, Gmail, and Forms. It also includes advanced features like conditional formatting, batch operations, and debugging tools, leaving no obvious gaps for the domain.
Maintenance
Related MCP Connectors
Give Claude only the Google Drive files you choose. Every action logged.
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
Multiple Gmail accounts, editable Google Sheets & Docs for AI agents. Deny-by-default access rules.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceEnables Claude to interact with Google Workspace services including Gmail, Drive, Sheets, Docs, and Calendar. Provides comprehensive tools for reading, creating, and managing emails, files, spreadsheets, documents, and calendar events with built-in safety controls and audit logging.-
- AlicenseAqualityBmaintenanceEnables Claude to manage Gmail, Google Calendar, and Google Contacts through a safety-first interface with soft-delete protections and draft-only email capabilities. Supports multiple Google accounts with comprehensive mutation logging and mandatory manual confirmation for destructive actions.16MIT
- AlicenseNot gradedqualityDmaintenanceEnables natural language control over Google Workspace (Gmail, Drive, Calendar, Sheets, Slides, Tasks) through secure OAuth 2.1 authentication, with vault-level security and multi-user isolation.2057-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to read Gmail and create drafts securely with read-only access and query whitelisting.MIT