Skip to main content
Glama

Worksuite MCP

Connect Claude (or any MCP client) to your Google Workspace. Worksuite MCP is a polished, batteries-included Model Context Protocol server that gives your AI assistant full access to Gmail, Google Drive, Docs, Sheets, Slides, Calendar, Forms, Tasks, Chat and Contacts, all through your own Google account and your own OAuth app. Your data stays yours.

It wraps the excellent open-source workspace-mcp engine and adds a clean launcher, a self-healing startup, and the setup guide below so you can be talking to your inbox and Drive in a few minutes.


What you can do once it is connected

  • Gmail - search, read, draft, send, and label email.

  • Drive - search files, read content, upload, share, and manage folders.

  • Docs / Sheets / Slides - create and edit documents, read and write cells, build decks.

  • Calendar - read your schedule, create and move events, check free/busy.

  • Tasks, Forms, Chat, Contacts - full read/write across the rest of Workspace.

Around 120 tools in total. You talk to your AI in plain language ("find the invoice from Acme and forward it to finance") and it uses these tools to do it.


Related MCP server: google-connections-mcp

Requirements

  • macOS or Linux

  • uv (provides uvx). Install it with:

    curl -LsSf https://astral.sh/uv/install.sh | sh
  • A Google account

  • An MCP client. These instructions use Claude Code, but any MCP client works.


Step 1 - Get the code

git clone https://github.com/chadvdwww-hash/worksuite-mcp.git
cd worksuite-mcp
chmod +x bin/worksuite-mcp.sh

Step 2 - Create your Google OAuth app

Worksuite MCP signs in as you, using your own Google Cloud OAuth client. You create it once. It takes about five minutes.

  1. Open the Google Cloud Console and create (or pick) a project.

  2. Enable the APIs you want under APIs & Services → Library. At minimum enable: Gmail API, Google Drive API, Google Docs API, Google Sheets API, Google Slides API, Google Calendar API. (Enable Tasks, Forms, Chat and People APIs too if you want those tools.)

  3. Go to APIs & Services → OAuth consent screen:

    • User type: External.

    • Fill in the app name (e.g. "Worksuite MCP") and your email.

    • Under Test users, add the Google account you will sign in with. This is required while the app is in Testing mode, or Google blocks the login with 403 access_denied.

  4. Go to APIs & Services → Credentials → Create credentials → OAuth client ID:

    • Application type: Desktop app (or Web application).

    • If you pick Web application, add this authorized redirect URI: http://localhost:8000/oauth2callback

    • Download the client secret JSON.

Heads up on token lifetime: while your OAuth app is in Testing mode, Google expires the refresh token after 7 days, so you re-authenticate roughly weekly. Publish the app (OAuth consent screen → Publish app) to make it permanent.

Step 3 - Point Worksuite MCP at your credentials

Tell the server where your downloaded client secret lives:

export GOOGLE_CLIENT_SECRET_PATH="/absolute/path/to/your/client_secret.json"

(You can also set GOOGLE_OAUTH_CLIENT_ID and GOOGLE_OAUTH_CLIENT_SECRET directly instead of a file. Either way, keep these secret. They are gitignored.)

Step 4 - Register it with Claude Code

claude mcp add worksuite-mcp -- /absolute/path/to/worksuite-mcp/bin/worksuite-mcp.sh

Then check it:

claude mcp list
# worksuite-mcp: .../bin/worksuite-mcp.sh - ✔ Connected

Step 5 - Sign in to Google (first run)

The first time your AI calls a Workspace tool, Worksuite MCP opens a Google sign-in page in your browser. Approve the scopes (you may see an "unverified app" warning because it is your personal app; click through to continue). After that your credentials are cached and reused automatically.

That's it. Ask your assistant to "list my recent Drive files" or "summarise my unread email" to confirm it works.


Good to know (saves you an hour)

  • Port 8000 must be free. The OAuth sign-in flow listens on localhost:8000 (it can roam up to 8004). The launcher auto-reaps stale Worksuite/Workspace instances holding those ports before each start, so a crashed session won't block the next one. If sign-in still fails with "port in use", something else is on 8000: lsof -nP -iTCP:8000 -sTCP:LISTEN.

  • File uploads are sandboxed. Tools that import a local file only read from ~/.workspace-mcp/attachments/ by default. Either copy the file there first, or set ALLOWED_FILE_DIRS=/your/dir and restart the server.

  • Avoid dots in new document titles. When creating a Doc from a file, a name like Cal.com Setup gets truncated to Cal. Use Cal-com Setup and rename afterward if needed.

  • Where credentials live. Once you sign in, tokens are stored under ~/.google_workspace_mcp/credentials/. Delete that file to force a fresh login.


How it works

Worksuite MCP is a thin wrapper. It pins the upstream workspace-mcp package, applies its own branding and startup banner, runs a port-reaper so a crashed run never blocks the next, then hands off to the upstream server which does the Google API heavy lifting. Upgrading the engine is a one-line version bump in pyproject.toml.

your AI client  <-- MCP -->  Worksuite MCP launcher  -->  Google Workspace APIs

Credits

Built on workspace-mcp by Taylor Wilsdon and contributors. Licensed under the MIT License (see LICENSE).

Available Tools

122 tools
append_table_rowsAppend Table RowsA

Appends rows to a structured table in a Google Sheet. The rows are added to the end of the table body, automatically extending the table range.

Use list_sheet_tables first to find the table ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
spreadsheet_idYesThe ID of the spreadsheet. Required.
table_idYesThe ID of the table to append to (get from list_sheet_tables). Required.
valuesYes2D array of values to append. Each inner list is one row. Can be a JSON string or Python list. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses that rows are added to the end of the table body and automatically extend the range, which complements the annotations (readOnlyHint false, destructiveHint false). It provides context beyond annotations by specifying the append location and range behavior. However, it does not discuss potential error conditions or side effects when values mismatch column structure.

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

Conciseness5/5

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

The description is three sentences long, each providing essential information: purpose, behavioral detail, and usage guidance. It is front-loaded and contains no superfluous words.

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

Completeness4/5

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

Given the presence of an output schema and annotations, the description adequately covers how to use the tool (including prerequisite) and what to expect (append to end, extend range). It does not fully explain value format requirements or error handling, but these are partly addressed by the input schema. Overall, it is complete for the tool's simplicity.

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

Parameters3/5

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

Schema coverage is 100% with each parameter already described. The description repeats the table_id prerequisite found in the schema, adding no new parameter-specific information. Thus it meets the baseline but does not exceed it.

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

Purpose5/5

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

The description clearly states the verb 'Appends', the resource 'rows to a structured table', and the context 'Google Sheet', distinguishing it from siblings like modify_sheet_values (modifies existing values) and create_table_with_data (creates new tables). The phrase 'automatically extending the table range' further clarifies the operation.

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

Usage Guidelines4/5

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

The description explicitly instructs to 'Use list_sheet_tables first to find the table ID', providing a clear prerequisite. It implies when to use this tool (append rows) but does not explicitly mention when not to use it or compare with alternatives like modify_sheet_values for inserting rows in other positions.

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_labelsBatch Modify Gmail Message LabelsA
Destructive

Adds or removes labels from multiple Gmail messages in a single batch request.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
message_idsYesA list of message IDs to modify.
add_label_idsNoList of label IDs to add to the messages.
remove_label_idsNoList of label IDs to remove from the messages.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate destructive behavior (destructiveHint=true). The description adds no additional safety context beyond the obvious label mutation, such as atomicity guarantees, error handling for missing labels, or rate limits. It provides minimal extra transparency.

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

Conciseness4/5

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

The description is a single, front-loaded sentence that efficiently conveys the core action. It has no wasted words, though it could be slightly expanded for clarity on batch size limits.

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

Completeness4/5

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

Given the presence of an output schema and clear annotations, the description covers the essential functionality. It could mention API prerequisites or batch size limits, but for a straightforward mutation tool, it is sufficiently complete.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions for all four parameters. The description does not add any new meaning beyond what the schema provides, so it meets the baseline for high-coverage scenarios.

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

Purpose5/5

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

The description clearly states the verb 'adds or removes labels' and the resource 'multiple Gmail messages', explicitly noting it is a batch operation. This distinguishes it from siblings like 'modify_gmail_message_labels' (single message) and 'manage_gmail_label' (label creation/management).

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

Usage Guidelines3/5

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

The description implies use for batch operations but does not explicitly state when to use it versus single-message alternatives (e.g., 'modify_gmail_message_labels') or label management tools. No when-not or alternative guidance is provided.

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

batch_update_docBatch Update DocA
Destructive

Executes multiple low-level document operations in a single atomic batch update.

For normal header/footer text, prefer update_doc_headers_footers. Only use create_header_footer here for advanced section-break layouts.

RECOMMENDED WORKFLOW FOR BUILDING DOCUMENTS:

To avoid index calculation errors, build documents in phases:

PHASE 1 - INSERT ALL CONTENT (use end_of_segment=true, no index math): Append text, section breaks, and page breaks sequentially. Each operation appends to the end of the body. No index needed. Example batch: [ {"type": "insert_text", "end_of_segment": true, "text": "Report Title\n"}, {"type": "insert_text", "end_of_segment": true, "text": "\nExecutive Summary\n"}, {"type": "insert_text", "end_of_segment": true, "text": "Revenue grew 15%.\n"}, {"type": "insert_section_break", "end_of_segment": true, "section_type": "NEXT_PAGE"}, {"type": "insert_text", "end_of_segment": true, "text": "Detailed Analysis\n"} ]

PHASE 2 - CREATE HEADERS/FOOTERS (if needed): For normal header/footer text, use update_doc_headers_footers (it auto-creates if missing and writes the content for you). Only include create_header_footer operations in a batch when you are intentionally managing advanced section-break-specific layouts.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's Google email address
document_idYesID of the document to update
operationsYesList of operation dicts. Each operation MUST have a 'type' field. All operations accept an optional 'tab_id' to target a specific tab.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already indicate destructive and non-read-only nature. Description adds atomicity and index-calibration guidance, but does not elaborate on specific destructive impacts or permissions beyond schema.

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

Conciseness5/5

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

Description is well-structured with clear phases, bullet points, and code examples. Front-loaded purpose, every sentence adds value, no fluff.

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

Completeness4/5

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

Given the tool's complexity (many operation types), the description covers main usage and workflow but lacks explicit error handling or performance notes. Output schema exists, reducing need for return value explanation.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. Description adds value with workflow examples and recommended usage patterns for operations, improving practical understanding beyond schema.

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

Purpose5/5

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

The description states 'Executes multiple low-level document operations in a single atomic batch update' and distinguishes from sibling `update_doc_headers_footers` for normal header/footer text, providing specific verb+resource clarity.

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

Usage Guidelines5/5

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

Explicitly recommends when to use this tool (low-level operations) and when to prefer alternatives like `update_doc_headers_footers` for headers/footers, and provides a detailed phased workflow with examples.

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

batch_update_formBatch Update FormA
Destructive

Apply batch updates to a Google Form.

Supports adding, updating, and deleting form items, as well as updating form metadata and settings. This is the primary method for modifying form content after creation.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
form_idYesThe ID of the form to update.
requestsYesList of update requests to apply. Supported request types: - createItem: Add a new question or content item - updateItem: Modify an existing item - deleteItem: Remove an item - moveItem: Reorder an item - updateFormInfo: Update form title/description - updateSettings: Modify form settings (e.g., quiz mode)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate destructive hint (true) and non-read-only, providing a baseline. The description expands on this by detailing exactly which operations are supported (adding, updating, deleting items; updating metadata/settings), aligning with the destructive nature. It adds context beyond annotations without contradiction.

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

Conciseness5/5

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

The description is concise: three sentences that front-load the purpose, list supported operations, and provide context. Every sentence is meaningful and contributes to understanding. No extraneous information.

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

Completeness4/5

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

Given the tool's complexity (batch updates with multiple request types) and the presence of a detailed input schema and annotations, the description covers the essential context: what the tool does, what operations it supports, and its role as the primary modification method. It does not mention potential failure modes or permissions, but the overall completeness is high for a tool with strong schema and annotation support.

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

Parameters3/5

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

The schema coverage is 100%, and each parameter is well-documented in the schema (e.g., the 'requests' parameter lists supported request types). The description does not add new semantic information beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Apply batch updates to a Google Form.' It identifies the specific verb and resource, and distinguishes it from sibling tools like get_form (read) and create_form (creation) by noting it is 'the primary method for modifying form content after creation.'

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

Usage Guidelines4/5

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

The description provides clear context: it is the primary method for modifying form content after creation. It implies when to use (for adding/updating/deleting items and updating metadata/settings) but does not explicitly mention when not to use or list alternatives. However, given that no other sibling tool offers batch form updates, the guidance is sufficient.

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

batch_update_presentationBatch Update PresentationB
Destructive

Apply batch updates to a Google Slides presentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
presentation_idYesThe ID of the presentation to update.
requestsYesList of update requests to apply.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already indicate destructiveHint=true, so the description adds no behavioral context beyond that. It does not disclose side effects, permissions, or limits, which are important for a destructive tool.

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

Conciseness4/5

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

The description is extremely concise—one sentence with no filler. However, it could be slightly more informative without becoming verbose, hence a 4.

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

Completeness2/5

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

Given the complexity of batch updates and the presence of an output schema, the description is too minimal. It offers no examples, patterns, or clarification on the request structure, making it less helpful for an agent.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents parameters. The description adds no extra meaning beyond the word 'batch updates', which is already implied by the schema's 'requests' array. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Apply batch updates') and the resource ('Google Slides presentation'). It is specific and distinguishes from siblings like batch_update_doc or update_drive_file.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor any preconditions or exclusions. It is a single sentence without usage context.

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_accessCheck Drive File Public AccessA
Read-onlyIdempotent

Searches for a file by name and checks if it has public link sharing enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
file_nameYesThe name of the file to check.
drive_idNoID of the shared drive to scope the search to. When set, the underlying files.list call uses corpora='drive' and the given driveId, which is required to reliably find files that live only in that shared drive. When None, behaviour is unchanged (default API corpora applies).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, covering the safety profile. The description adds that the tool searches by name and checks public sharing, which is straightforward. However, it does not disclose behaviors like handling of multiple files with the same name, or failure cases. The description is adequate but not rich.

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

Conciseness5/5

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

The description is a single concise sentence that directly states the purpose. It front-loads the core action with no wasted words, achieving high efficiency.

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

Completeness3/5

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

Given the simplicity of the tool and the existence of an output schema (not shown), the description is minimally sufficient. However, it lacks context about search scope (e.g., that drive_id is required to find files in shared drives) and potential edge cases. More detail would improve completeness.

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

Parameters3/5

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

The input schema covers all three parameters with full descriptions, so the baseline is 3. The description does not add new semantics beyond mentioning 'searches for a file by name'. It does not elaborate on the role of user_google_email or drive_id, so no extra value.

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

Purpose5/5

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

The description clearly states the specific action: searching for a file by name and checking if it has public link sharing enabled. It effectively distinguishes from sibling tools like get_drive_file_permissions (which checks all permissions) and get_drive_shareable_link (which returns the link).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention when not to use it, nor does it reference related tools such as get_drive_file_permissions or list_drive_items. This omission is notable given the large number of sibling tools.

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

copy_drive_fileCopy Drive FileA

Creates a copy of an existing Google Drive file.

This tool copies the template document to a new location with an optional new name. The copy maintains all formatting and content from the original file.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
file_idYesThe ID of the file to copy. Required.
new_nameNoNew name for the copied file. If not provided, uses "Copy of [original name]".
parent_folder_idNoThe ID of the folder where the copy should be created. Defaults to 'root' (My Drive).root

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Adds that the copy maintains formatting and content, which is useful. Annotations already indicate it is not read-only and not destructive, so the description provides minor additional behavioral context but no details on permissions, rate limits, or side effects.

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

Conciseness5/5

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

Two sentences, front-loaded with the core purpose, second sentence adds key detail. No extraneous words.

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

Completeness4/5

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

For a simple copy tool with 100% schema coverage and an output schema, the description covers the main behavior. Lacks mention of required permissions (e.g., user must have access to source and destination), but overall sufficient given annotations.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds little beyond the parameter descriptions. The mention of 'optional new name' is already in the schema. No additional parameter-level information beyond schema.

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

Purpose5/5

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

Clearly states it creates a copy of an existing Google Drive file, with specific verb 'copies' and resource 'existing Google Drive file'. Differentiates from sibling tools like create_drive_file (creates new) and update_drive_file (modifies existing) by focusing on duplication.

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

Usage Guidelines3/5

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

Implies usage for copying existing files but does not explicitly state when to use this tool versus alternatives like create_drive_file or update_drive_file. No guidance on prerequisites (e.g., user must have read access to original file and write access to destination).

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

create_calendarCreate CalendarA

Creates a new secondary Google Calendar.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
summaryYesThe title/name of the new calendar.
descriptionNoAn optional description for the calendar.
timezoneNoIANA timezone for the calendar (e.g. 'America/New_York').

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate write operation (readOnlyHint=false) and non-destructive nature. The description adds that it creates a 'secondary' calendar, clarifying it does not affect the primary calendar, but it does not disclose other behavioral aspects like required permissions or rate limits.

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

Conciseness5/5

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

The description is a single, efficient sentence. Every word is necessary and there is no redundancy. It is front-loaded with the key action and result.

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

Completeness3/5

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

Given the tool's moderate complexity (4 parameters, no enums, no nested objects) and the existence of an output schema, the description is minimally adequate. It does not explain the output or any constraints, but the schema and annotations provide partial coverage.

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

Parameters3/5

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

Schema coverage is 100% with all parameters described, so the description does not need to add parameter details. It provides no additional semantic value beyond what is already in the schema.

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

Purpose5/5

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

The description clearly states the tool creates a new secondary Google Calendar, using a specific verb and resource. It distinguishes itself from sibling creation tools like create_doc or create_drive_file by specifying 'secondary Google Calendar'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as list_calendars or other create tools. There is no mention of prerequisites or scenarios where this tool should be avoided.

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

create_docCreate DocA

Creates a new Google Doc and optionally inserts initial content.

After creation, the document body starts at index 1. A new empty doc has total length 2 (one section break at index 0, one newline at index 1).

To build a rich document after creation, use batch_update_doc with insert_text operations using end_of_segment=true to append content sequentially without calculating indices. Then call inspect_doc_structure to get exact positions before applying formatting in a separate batch call.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's Google email address
titleYesTitle of the new document
contentNoOptional initial plain text content to insert

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations indicate the tool is not read-only, destructive, or idempotent. The description adds behavioral context beyond annotations by detailing the initial state of the document (index positions, length) and implying it is a creation operation without side effects. No contradiction with annotations.

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

Conciseness4/5

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

The description is 7 sentences, front-loaded with the purpose. Each sentence adds useful information without redundancy. It could be slightly more concise, but the structure is logical and easy to parse.

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

Completeness4/5

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

For a creation tool with 3 parameters and an output schema, the description covers purpose, initial state, and post-creation workflow. It is sufficiently complete for an agent to understand how to use the tool and what to do next.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for all parameters. The description adds value by noting the content parameter is optional and explaining how it relates to the document's initial structure. This goes beyond the schema's field descriptions.

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

Purpose5/5

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

The description clearly states 'Creates a new Google Doc and optionally inserts initial content.' This is a specific verb+resource combination that distinguishes create_doc from sibling tools like create_drive_file, create_form, and create_presentation.

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

Usage Guidelines4/5

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

The description provides actionable workflow guidance, explaining the initial document structure (body starts at index 1, total length 2) and recommending subsequent steps: use batch_update_doc with end_of_segment=true, then inspect_doc_structure before formatting. This helps the agent understand the sequence of operations.

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

create_drive_fileCreate 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
file_nameYesThe name for the new file.
contentNoIf provided, the content to write to the file.
folder_idNoThe ID of the parent folder. Defaults to 'root'. For shared drives, this must be a folder ID within the shared drive.root
mime_typeNoThe MIME type of the file. Defaults to 'text/plain'.text/plain
fileUrlNoIf provided, fetches the file content from this URL. Supports file://, http://, and https:// protocols.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true. The description adds that it supports shared drives and accepts content/URL, but does not elaborate on side effects, authentication, or rate limits beyond what annotations convey.

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

Conciseness5/5

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

Two sentences, front-loaded with the primary action. No extraneous words, every sentence adds value.

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

Completeness4/5

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

With an output schema present and comprehensive parameter descriptions in the schema, the description is adequate. It covers creation and content sources, though it omits mention of the required user_google_email parameter.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description reiterates the 'content' and 'fileUrl' parameters but does not add meaning beyond the schema, such as explaining when to use each or their interaction.

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

Purpose5/5

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

The description clearly states the verb 'Creates' and the resource 'a new file in Google Drive', specifying support for shared drives and two content sources. This distinguishes it from siblings like copy_drive_file or create_drive_folder.

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

Usage Guidelines3/5

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

The description implies usage for creating new files, but does not explicitly mention when not to use it or suggest alternatives. No exclusions or comparative guidance is provided.

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

create_drive_folderCreate Drive FolderA

Creates a new folder in Google Drive, supporting creation within shared drives.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
folder_nameYesThe name for the new folder.
parent_folder_idNoThe ID of the parent folder. Defaults to 'root'. For shared drives, use a folder ID within that shared drive.root

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate this is a mutation (readOnlyHint=false). The description adds that it creates a folder and supports shared drives. However, it does not disclose potential side effects like permission inheritance, quota impact, or behavior if the folder name conflicts. Given the annotations, this is adequate but not exceptional.

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

Conciseness5/5

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

The description is extremely concise with two sentences that cover the core purpose and a key feature. No unnecessary words or repetition.

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

Completeness4/5

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

Given the tool's simplicity, 100% schema coverage, and presence of an output schema, the description is largely complete. It could briefly mention the required permissions or that the folder is created under the specified parent (including 'root'), but the output schema likely covers return values.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema; it only restates the action. The support for shared drives is mentioned but not explicitly linked to the 'parent_folder_id' parameter.

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

Purpose5/5

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

The description clearly states the action ('Creates'), the resource ('a new folder in Google Drive'), and specifies an important context ('supporting creation within shared drives'). This effectively distinguishes it from sibling tools like 'create_drive_file'.

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

Usage Guidelines3/5

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

The description implies usage for creating folders, including in shared drives, but does not explicitly state when to use this tool versus alternatives (e.g., 'create_drive_file' for files) or when not to use it. No exclusions or prerequisites are mentioned.

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

create_formCreate FormC

Create a new form using the title given in the provided form message in the request.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
titleYesThe title of the form.
descriptionNoThe description of the form.
document_titleNoThe document title (shown in browser tab).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

Annotations indicate it is not read-only, not destructive, not idempotent, and open world. The description adds no behavioral details such as authentication needs, side effects, or what happens if a form with the title already exists.

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

Conciseness3/5

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

The description is a single sentence but is awkwardly worded ('using the title given in the provided form message'). Could be more concise and direct without losing clarity.

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

Completeness3/5

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

Output schema exists, reducing the need to explain return values. However, the description does not address what happens on success or error, nor does it cover potential conflicts. Adequate but incomplete.

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

Parameters3/5

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

Input schema has 100% description coverage for all 4 parameters, so the description adds no additional meaning beyond what the schema provides. Baseline score of 3 applies.

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

Purpose3/5

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

The description states 'Create a new form' which is clear, but the phrasing 'using the title given in the provided form message' is vague and could be simplified. It distinguishes from siblings (e.g., create_doc, create_sheet) but lacks specificity.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like create_doc or create_sheet. No mention of prerequisites or context for using create_form over other creation tools.

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

create_presentationCreate PresentationA

Create a new Google Slides presentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
titleNoThe title for the new presentation. Defaults to "Untitled Presentation".Untitled Presentation

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already indicate it is not read-only, not destructive, not idempotent, and open-world. The description adds no further behavioral context (e.g., side effects, required permissions, or whether it creates a file in Drive).

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

Conciseness5/5

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

The description is a single sentence, direct and without extraneous words. It efficiently conveys the core purpose.

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

Completeness4/5

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

Given the tool's simplicity (2 params, 1 required) and the existence of an output schema, the description is adequate. It could mention side effects like creating a Drive file, but that is implied.

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

Parameters3/5

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

Schema coverage is 100%, so the description does not need to add much. It provides no extra meaning beyond the schema fields, such as explaining the purpose of user_google_email beyond 'required.'

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

Purpose5/5

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

The description clearly states the tool creates a 'new Google Slides presentation,' using a specific verb and resource. It easily distinguishes from sibling tools like create_doc or create_sheet.

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

Usage Guidelines3/5

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

The description implies usage for creating presentations but provides no explicit guidance on when to use this tool versus alternatives (e.g., when to use create_presentation vs import_to_google_slides). No exclusions or context are given.

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

create_reactionCreate ReactionB

Adds an emoji reaction to a Google Chat message.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes
message_idYesThe message resource name (e.g. spaces/X/messages/Y).
emoji_unicodeYesThe emoji character to react with (e.g. 👍).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate a write operation (readOnlyHint=false) with side effects (openWorldHint=true). The description confirms this but adds no additional behavioral context such as authorization needs or error handling.

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

Conciseness5/5

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

The description is a single sentence, front-loaded with the core action, and contains no unnecessary words.

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

Completeness3/5

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

For a simple mutation tool with an output schema, the description provides the essential purpose. However, it lacks details on duplicate behavior, side effects, or error conditions that could affect tool selection.

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

Parameters2/5

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

Schema description coverage is 67%, but the tool description does not add any meaning to parameters. The user_google_email parameter lacks a schema description and the tool text does not clarify it.

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

Purpose5/5

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

The description clearly states the action ('adds') and the specific resource ('emoji reaction to a Google Chat message'). This distinguishes it from sibling tools like send_message or get_messages.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, limitations, or comparison to similar tools.

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

create_script_projectCreate Script ProjectB

Creates a new Apps Script project.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's email address
titleYesProject title
parent_idNoOptional Drive folder ID or bound container ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate non-readOnly and non-destructive nature (creation tool). The description correctly implies creation but doesn't disclose side effects like Drive resource creation or owner resolution via user_google_email, adding minimal value beyond annotations.

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

Conciseness3/5

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

Description is a single sentence at 6 words, which is concise but relies entirely on the tool name for context. It could be more informative while remaining efficient.

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

Completeness2/5

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

Despite an output schema existing, the description doesn't indicate what the tool returns. It also doesn't explain the role of parent_id or user_google_email beyond schema descriptions. For a creation tool with multiple parameters, this is insufficient.

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

Parameters3/5

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

Schema covers 100% of parameters with descriptions (user_google_email, title, parent_id). The tool description adds no extra meaning to these parameters, so baseline of 3 is appropriate as schema already fully documents them.

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

Purpose5/5

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

The description clearly states 'Creates a new Apps Script project.' with a specific verb and resource. It distinguishes itself from siblings like create_doc or create_sheet by specifying the project type.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as create_script_project vs create_version or create_sheet. No prerequisites or exclusions mentioned, leaving the agent without decision-making context.

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

create_sheetCreate SheetB

Creates a new sheet or duplicates an existing sheet (user_google_email: str, spreadsheet_id: str, sheet_name: Optional[str] = None, source_sheet_name: Optional[str] = None, insert_sheet_index: Optional[int] = None).

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes
spreadsheet_idYes
sheet_nameNo
source_sheet_nameNo
insert_sheet_indexNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description adds limited behavioral context. It states the tool creates or duplicates, which is consistent with annotations, but lacks details on side effects (e.g., whether duplicate overwrites, naming conflicts, or index behavior). The openWorldHint=true is not explained.

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

Conciseness4/5

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

The description is one sentence with a parameter list, which is concise and front-loads the action. However, it uses Python-like type hints that may not be optimal for MCP descriptions. It is relatively short with no extraneous information.

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

Completeness2/5

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

Given the tool's complexity (5 parameters, duplication logic, optional index) and lack of parameter descriptions, the description is incomplete. It does not mention return values (though an output schema exists), error cases, or uniqueness constraints on sheet names. More detail is needed 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.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It lists parameter names and types but provides no explanation of their roles (e.g., source_sheet_name is for duplication, insert_sheet_index controls position, sheet_name is for new sheet). The parameter list is insufficient for an agent to use the tool correctly.

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

Purpose5/5

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

The description clearly states the tool creates a new sheet or duplicates an existing one, using a specific verb and resource. It distinguishes from sibling tools like create_spreadsheet (creates a new spreadsheet) or create_doc, as it operates on a sheet within an existing spreadsheet.

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

Usage Guidelines3/5

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

The description implies that a spreadsheet_id is required, suggesting it adds sheets to an existing spreadsheet, but it does not explicitly state when to use this tool versus alternatives like create_spreadsheet or how to choose between creating new or duplicating. No prerequisites or exclusions are mentioned.

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

create_spreadsheetCreate SpreadsheetB

Creates a new Google Spreadsheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
titleYesThe title of the new spreadsheet. Required.
sheet_namesNoList of sheet names to create. If not provided, creates one sheet with default name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false; description adds no further behavioral details (e.g., permissions, idempotency, output).

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

Conciseness5/5

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

Single sentence, extremely concise and no wasted words; efficiently states the tool's purpose.

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

Completeness2/5

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

Despite low complexity and output schema, the description lacks context about return values, error conditions, or role of user_google_email, making it incomplete for first-time users.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions; the tool description does not add additional meaning beyond the schema.

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

Purpose5/5

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

The description 'Creates a new Google Spreadsheet' uses a specific verb and resource, clearly distinguishing this tool from siblings like create_doc or create_sheet.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., create_sheet), no prerequisites or context for usage.

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

create_table_with_dataCreate 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

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's Google email address
document_idYesID of the document to update
table_dataYes2D list of strings - EXACT format: [["col1", "col2"], ["row1col1", "row1col2"]]
indexYesDocument position (MANDATORY: get from inspect_doc_structure 'total_length')
bold_headersNoWhether to make first row bold (default: true)
tab_idNoOptional tab ID to create the table in a specific tab

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

The description adds behavioral context beyond annotations: it emphasizes the need for a specific index from inspect_doc_structure, describes the exact data format constraints, and recommends verifying with debug_table_structure. Annotations already indicate it's a mutation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description deepens transparency on workflow and constraints.

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

Conciseness3/5

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

The description is structured with sections and step-by-step instructions, but it is verbose and contains redundant emphasis (e.g., 'CRITICAL' and 'MANDATORY' both used, and steps are repeated). Some repetition could be trimmed without losing clarity.

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

Completeness5/5

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

Given the tool's complexity (6 parameters, 4 required, dependency on inspect_doc_structure, and an output schema), the description is thorough. It covers the complete workflow, data format requirements, validation steps, and connection to sibling tools. The presence of an output schema reduces the need to explain return values.

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

Parameters4/5

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

The description adds meaning beyond the input schema for all six parameters. It explains the index must come from inspect_doc_structure, details the 2D list format for table_data (including using empty strings instead of None), and notes the bold_headers default. Schema coverage is 100%, so the description enriches already well-described parameters.

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

Purpose5/5

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

The description clearly states the tool's action: 'Creates a table and populates it with data in one reliable operation.' This specific verb+resource combination distinguishes it from siblings like append_table_rows (which only appends) and insert_doc_elements (which inserts generic elements).

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

Usage Guidelines4/5

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

The description provides explicit mandatory steps, including calling inspect_doc_structure first and using the 'total_length' value as the index. It also warns against using hard-coded index values. However, it does not explicitly mention when to use alternative tools like append_table_rows for adding rows to an existing table, leaving a minor gap.

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

create_versionCreate VersionA

Creates a new immutable version of a script project.

Versions capture a snapshot of the current script code. Once created, versions cannot be modified.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's email address
script_idYesThe script project ID
descriptionNoOptional description for this version

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

The description adds the key behavioral trait of immutability ('Once created, versions cannot be modified'), which is beyond the annotations. Annotations indicate non-read-only and non-destructive, and the description complements these.

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

Conciseness5/5

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

The description is three sentences with the core action in the first sentence. It is concise, front-loaded, and contains no superfluous information.

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

Completeness4/5

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

The tool has an output schema, so return values need not be described. The description covers immutability and snapshot nature. It lacks mention of prerequisites (e.g., script project existence), but given the schema details, it is nearly complete.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add parameter-specific details beyond the schema; it only gives general context about capturing a snapshot.

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

Purpose4/5

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

The description clearly states the tool creates a new immutable version of a script project, specifying the action and resource. It does not explicitly differentiate from sibling tools like get_version or list_versions, but the purpose is distinct and clear.

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

Usage Guidelines3/5

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

The description implies usage when a version is needed but does not provide explicit guidance on when to use versus alternatives, nor does it mention prerequisites like having a script project.

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

debug_docs_runtime_infoDebug Docs Runtime InfoA
Read-onlyIdempotent

Return runtime/source information for diagnosing stale MCP server instances.

This is a temporary diagnostic tool intended to verify which code checkout the running MCP server has loaded.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, destructive false, idempotent, and open world. The description adds that it is temporary and diagnostic, and returns runtime/source info, which is consistent and helpful. No contradiction.

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

Conciseness5/5

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

Two concise sentences with no fluff. The key information is front-loaded, and every sentence earns its place.

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

Completeness4/5

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

Given the tool is simple with one parameter and has an output schema, the description mostly covers its purpose. However, it is slightly vague about what exactly is returned, but acceptable for a diagnostic tool.

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

Parameters2/5

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

The schema has 0% description coverage for the required parameter 'user_google_email'. The tool description does not explain what the email parameter is for, leaving a semantic gap. The description should compensate but does not.

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

Purpose5/5

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

The description clearly states it returns runtime/source information for diagnosing stale MCP server instances, which is a specific verb-resource pair. It distinguishes from siblings as the only debug tool among many.

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

Usage Guidelines4/5

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

It explicitly mentions it is a temporary diagnostic tool for verifying which code checkout is loaded, providing clear context. However, it does not explicitly state when not to use it versus alternatives.

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

debug_table_structureDebug Table StructureA
Read-onlyIdempotent

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:

  1. After creating table → Use this to verify structure

  2. Before populating → Use this to plan your data format

  3. After population fails → Use this to see what went wrong

  4. When debugging → Compare your data array to actual table structure

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's Google email address
document_idYesID of the document to inspect
table_indexNoWhich table to debug (0 = first table, 1 = second table, etc.)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds valuable context about what the tool shows (cell contents, positions, insertion indices) and how to interpret output, enhancing transparency beyond annotations.

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

Conciseness4/5

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

The description is well-structured with bullet points and sections, front-loading key message. While detailed, it avoids redundancy for a debug tool. Could be slightly more concise but remains effective.

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

Completeness5/5

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

Given the tool complexity and presence of an output schema, the description fully covers what the agent needs: purpose, triggers, output interpretation, and integration steps. No gaps identified.

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

Parameters3/5

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

Input schema provides clear descriptions for all 3 parameters (user_google_email, document_id, table_index) with 100% coverage. The description does not add extra parameter semantics beyond reinforcing tool purpose, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it is an 'ESSENTIAL DEBUGGING TOOL' for tables, listing specific scenarios and what it reveals (dimensions, positions, content, insertion indices). It distinguishes itself from siblings by focusing on table structure debugging.

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

Usage Guidelines4/5

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

The description provides explicit when-to-use scenarios ('USE THIS IMMEDIATELY WHEN:') and workflow integration steps. However, it does not mention when not to use or suggest alternative tools, which would strengthen guidelines.

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

delete_script_projectDelete Script ProjectA
Destructive

Deletes an Apps Script project.

This permanently deletes the script project. The action cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's email address
script_idYesThe script project ID to delete

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior5/5

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

The description transparently states 'This permanently deletes the script project. The action cannot be undone.' which adds valuable context beyond the annotations (destructiveHint: true) by emphasizing irreversibility. No contradiction with annotations.

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

Conciseness5/5

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

The description is extremely concise: two sentences that are front-loaded with the primary action and then the critical consequence. Every sentence is necessary and adds value.

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

Completeness4/5

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

For a simple destructive operation with annotations and output schema present, the description is fairly complete. However, it could mention prerequisites like ownership permissions or that the project must exist, though the tool's simplicity mitigates this gap.

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

Parameters3/5

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

The input schema already fully describes both parameters (user_google_email and script_id) with 100% coverage. The description does not add any additional semantic information about the parameters beyond what is in the schema.

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

Purpose5/5

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

The description explicitly states 'Deletes an Apps Script project' with the name and title reinforcing this. It clearly identifies the verb and resource, and distinguishes from sibling tools like create_script_project or get_script_project.

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

Usage Guidelines3/5

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

The description explains the permanent nature but does not provide explicit guidance on when to use or when not to use this tool vs alternatives. There is no mention of alternatives like get_script_project for reading or update_script_content for modifying.

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

download_chat_attachmentDownload Chat AttachmentA

Downloads an attachment from a Google Chat message and saves it to local disk.

In stdio mode, returns the local file path for direct access. In HTTP mode, returns a temporary download URL (valid for 1 hour).

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes
message_idYesThe message resource name (e.g. spaces/X/messages/Y).
attachment_indexNoZero-based index of the attachment to download (default 0).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations (readOnlyHint=false) indicate potential side effects, and the description adds context: 'saves to local disk' (modifying local state) and mode-dependent return behavior (file path vs. temporary URL). This goes beyond annotation information.

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

Conciseness5/5

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

The description is exceptionally concise (two sentences) and well-structured: first sentence defines purpose, second explains mode differences. Every sentence adds value with no redundancy.

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

Completeness3/5

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

The description explains return behavior for both modes but omits essential context: how to obtain 'user_google_email', error handling, size limits, or prerequisites. Given the tool has an output schema, return format is covered, but other aspects are missing.

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

Parameters2/5

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

Schema description coverage is 67%, but the tool description does not add any parameter-level details. The 'user_google_email' parameter lacks schema or description explanation, leaving the agent to infer its purpose. No additional semantics are provided.

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

Purpose5/5

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

The description clearly states the verb ('Downloads'), resource ('attachment from a Google Chat message'), and outcome ('saves to local disk'). It effectively distinguishes this tool from siblings like 'get_gmail_attachment_content' or 'get_drive_file_content' by specifying Chat context.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'get_gmail_attachment_content' or 'get_drive_file_download_url'. It mentions mode-specific behavior but lacks explicit usage recommendations or exclusions.

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

draft_gmail_messageDraft Gmail MessageA

Creates a draft email in the user's Gmail account. Supports both new drafts and reply drafts with optional attachments. Supports Gmail's "Send As" feature to draft from configured alias addresses.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required for authentication.
subjectYesEmail subject.
bodyYesEmail body (plain text).
body_formatNoEmail body format. Use 'plain' for plaintext or 'html' for HTML content.plain
toNoOptional recipient email address.
ccNoOptional CC email address.
bccNoOptional BCC email address.
from_nameNoOptional sender display name (e.g., 'Peter Hartree'). If provided, the From header will be formatted as 'Name <email>'.
from_emailNoOptional 'Send As' alias email address. Must be configured in Gmail settings (Settings > Accounts > Send mail as). If not provided, uses the authenticated user's email.
thread_idNoOptional Gmail thread ID to reply within.
in_reply_toNoOptional RFC Message-ID of the message being replied to (e.g., '<message123@gmail.com>').
referencesNoOptional chain of Message-IDs for proper threading.
attachmentsNoOptional list of attachments. Each can have: 'url' (fetch from URL — works with MCP attachment URLs from get_drive_file_download_url / get_gmail_attachment_content), OR 'path' (file path, auto-encodes), OR 'content' (standard base64, not urlsafe) + 'filename'. Optional 'mime_type'. Optional 'content_id' (string) makes the attachment inline-rendered: it lands in a multipart/related part with `Content-ID: <content_id>` and `Content-Disposition: inline`, and the HTML body can reference it via `<img src="cid:<content_id>">` (RFC 2392). Without `content_id` the attachment is a regular multipart/mixed attachment.
include_signatureNoWhether to append the Gmail signature from Settings > Signature when available. Defaults to true.
quote_originalNoWhether to include the original message as a quoted reply. Requires thread_id. Defaults to false.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations indicate write operation and non-destructiveness; description reinforces by stating 'creates a draft' and adds context about reply drafts and attachments. No contradictions, but could mention idempotency or rate limits.

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

Conciseness5/5

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

Two sentences, concise, front-loaded with main purpose. No unnecessary words.

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

Completeness5/5

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

Given complexity (15 params, 3 required, output schema exists), description covers key capabilities adequately. Output schema handles return value details.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions, so the description adds minimal extra meaning beyond mentioning reply drafts and Send As. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool creates a draft email in Gmail, distinguishes from send_gmail_message, and specifies support for new/reply drafts and Send As feature. Verb and resource are explicit.

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

Usage Guidelines4/5

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

Description implies drafting vs sending, but does not explicitly state when to use this tool over siblings like send_gmail_message. It mentions capabilities but lacks when-not or alternatives guidance.

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

export_doc_to_pdfExport Doc to PDFA

Exports a Google Doc to PDF format and saves it to Google Drive.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's Google email address
document_idYesID of the Google Doc to export
pdf_filenameNoName for the PDF file (optional - if not provided, uses original name + "_PDF")
folder_idNoDrive folder ID to save PDF in (optional - if not provided, saves in root)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Annotations indicate it is not read-only, not destructive, not idempotent, and open world. The description adds context that it saves to Google Drive, implying a new file is created. This goes beyond the annotations but could mention that the original doc is unchanged.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the core purpose.

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

Completeness4/5

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

Given the simple export operation, the description is complete enough. The output schema likely covers return values. It could mention that the original doc is not modified, but not strictly necessary.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter described. The description does not add additional meaning beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Exports', the resource 'a Google Doc', the target format 'PDF format', and the destination 'saves it to Google Drive'. This distinguishes it from sibling tools like get_doc_as_markdown or create_doc.

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

Usage Guidelines3/5

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

The description implies use for converting a doc to PDF, but does not explicitly state when to use vs alternatives, nor does it provide any exclusions or prerequisites. Context is clear but lacks guidance on when not to use.

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

find_and_replace_docFind and Replace DocA
Destructive

Finds and replaces text throughout a Google Doc. No index calculation required.

This is the safest way to update specific text in a document because it does not require knowing any indices. Use this tool when you need to:

  • Replace placeholder text (e.g., {{TITLE}}) with real content

  • Update specific words or phrases throughout the document

  • Make targeted text changes without risk of index errors

For building documents from scratch, consider inserting text with unique placeholders via batch_update_doc, then using this tool to replace them.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's Google email address
document_idYesID of the document to update
find_textYesText to search for
replace_textYesText to replace with
match_caseNoWhether to match case exactly
tab_idNoOptional ID of the tab to target

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate destructiveHint: true, readOnlyHint: false. Description adds positive behavioral context by calling it 'safest way' and explaining no indices required, enhancing understanding without contradicting annotations.

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

Conciseness5/5

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

Two short paragraphs: first defines core function and key benefit, second gives usage scenarios and alternative. No filler, every sentence adds value.

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

Completeness5/5

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

Given the tool's simplicity, existing output schema, and annotations, the description fully covers purpose, usage, and safety considerations without missing critical aspects.

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

Parameters3/5

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

Schema covers all parameters with descriptions (100% coverage). The description adds no specific parameter-level details but provides conceptual benefit (no indices needed). Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool finds and replaces text in a Google Doc, emphasizing no index calculation needed. It distinguishes from siblings by highlighting safety and simplicity, making purpose unambiguous.

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

Usage Guidelines5/5

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

Explicitly lists when to use (replace placeholders, update phrases, targeted changes) and suggests alternative tool (batch_update_doc for placeholders). Provides clear context for correct usage.

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

format_sheet_rangeFormat Sheet RangeA

Applies formatting to a range: colors, number formats, text wrapping, alignment, and text styling.

Colors accept hex strings (#RRGGBB). Number formats follow Sheets types (e.g., NUMBER, CURRENCY, DATE, PERCENT). If no sheet name is provided, the first sheet is used.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
spreadsheet_idYesThe ID of the spreadsheet. Required.
range_nameYesA1-style range (optionally with sheet name). Required.
background_colorNoHex background color (e.g., "#FFEECC").
text_colorNoHex text color (e.g., "#000000").
number_format_typeNoSheets number format type (e.g., "DATE").
number_format_patternNoCustom pattern for the number format.
wrap_strategyNoText wrap strategy - WRAP (wrap text within cell), CLIP (clip text at cell boundary), or OVERFLOW_CELL (allow text to overflow into adjacent empty cells).
horizontal_alignmentNoHorizontal text alignment - LEFT, CENTER, or RIGHT.
vertical_alignmentNoVertical text alignment - TOP, MIDDLE, or BOTTOM.
boldNoWhether to apply bold formatting.
italicNoWhether to apply italic formatting.
font_sizeNoFont size in points.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

The description adds useful behavioral details beyond annotations: color format constraints, number format types, and default sheet behavior. Annotations already indicate safe modification (destructiveHint=false), so the description complements them well.

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

Conciseness5/5

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

The description is extremely concise: two sentences that front-load the main purpose and include key details. Every sentence earns its place, with no fluff.

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

Completeness4/5

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

Given the tool's complexity (13 parameters), full schema coverage, output schema presence, and annotations, the description is largely complete. It could mention that formatting applies only to specified properties, but overall adequate.

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

Parameters4/5

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

With 100% schema description coverage, baseline is 3. The description adds value by explaining color format (hex strings), number format types (Sheets types), and default sheet behavior, improving understanding beyond the schema.

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

Purpose4/5

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

The description clearly states the tool applies formatting to a range, listing specific formatting types (colors, number formats, etc.). It is specific with verb 'applies' and resource 'range', but does not explicitly differentiate from siblings like 'manage_conditional_formatting', so not a 5.

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

Usage Guidelines3/5

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

The description provides a tip about default sheet behavior but offers no guidance on when to use this tool versus alternatives (e.g., conditional formatting). Usage context is implied but not explicit.

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

generate_trigger_codeGenerate Trigger CodeA
Read-onlyIdempotent

Generates Apps Script code for creating triggers.

The Apps Script API cannot create triggers directly - they must be created from within Apps Script itself. This tool generates the code you need.

ParametersJSON Schema
NameRequiredDescriptionDefault
trigger_typeYesType of trigger. One of: - "time_minutes" (run every N minutes: 1, 5, 10, 15, 30) - "time_hours" (run every N hours: 1, 2, 4, 6, 8, 12) - "time_daily" (run daily at a specific hour: 0-23) - "time_weekly" (run weekly on a specific day) - "on_open" (simple trigger - runs when document opens) - "on_edit" (simple trigger - runs when user edits) - "on_form_submit" (runs when form is submitted) - "on_change" (runs when content changes)
function_nameYesThe function to run when trigger fires (e.g., "sendDailyReport")
scheduleNoSchedule details (depends on trigger_type): - For time_minutes: "1", "5", "10", "15", or "30" - For time_hours: "1", "2", "4", "6", "8", or "12" - For time_daily: hour as "0"-"23" (e.g., "9" for 9am) - For time_weekly: "MONDAY", "TUESDAY", etc. - For simple triggers (on_open, on_edit): not needed

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, confirming no side effects. The description adds context that the tool generates code (not modifies resources) and explains the underlying reason (API limitation). No contradiction with annotations.

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

Conciseness5/5

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

The description is two sentences that efficiently state the purpose and rationale. No unnecessary words or repetition. Front-loaded with the core action.

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

Completeness4/5

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

The description covers the why and what, but could briefly mention the expected output (generated code) and next steps (e.g., copy into Apps Script). However, since output schema exists, the missing guidance is minor.

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

Parameters3/5

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

Schema description coverage is 100% with detailed parameter descriptions (including enums and conditional requirements). The tool description does not add any extra information about parameters beyond what is already in the schema.

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

Purpose5/5

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

The description clearly states the tool generates Apps Script code for creating triggers, distinguishing it from related tools like run_script_function which execute code, or create_script_project which manages projects. It explains the specific context where the API cannot create triggers directly.

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

Usage Guidelines4/5

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

The description explains when to use the tool: when the Apps Script API limitation prevents direct trigger creation. However, it does not explicitly mention when not to use it or suggest alternatives (e.g., if you are already in Apps Script or need to execute code, use run_script_function).

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

get_contactGet ContactA
Read-onlyIdempotent

Get detailed information about a specific contact.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
contact_idYesThe contact ID (e.g., "c1234567890" or full resource name "people/c1234567890").

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, which align with the description's 'get' operation. The description does not add behavioral context beyond what annotations provide, but it does not contradict them.

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

Conciseness5/5

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

The description is a single sentence that directly states the purpose. It is concise with no unnecessary words.

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

Completeness4/5

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

The description is complete for a simple read operation given the presence of annotations and an output schema. However, the lack of usage guidelines slightly reduces completeness.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters have clear descriptions in the schema. The tool description does not add any additional meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Get detailed information about a specific contact.' The verb 'get' and resource 'contact' are specific and distinguish from siblings like list_contacts (listing all) and search_contacts (searching).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as list_contacts, search_contacts, or manage_contact. It does not mention prerequisites, context, or exclusions.

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

get_contact_groupGet Contact GroupA
Read-onlyIdempotent

Get details of a specific contact group including its members.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
group_idYesThe contact group ID.
max_membersNoMaximum number of members to return (default: 100, max: 1000).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds the context that it returns members, but does not elaborate on other behavioral aspects like pagination or authorization requirements.

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

Conciseness5/5

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

Single sentence, directly states the purpose with no filler. Efficiently front-loaded with the key action and resource.

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

Completeness5/5

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

For a simple read operation with an output schema and full parameter coverage, the description is complete enough. It covers the essential purpose and the presence of members, which aligns with the tool's functionality.

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

Parameters3/5

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

The schema already provides complete descriptions for all three parameters (100% coverage). The description 'including its members' hints at the return data but adds no additional semantic meaning beyond the schema.

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

Purpose5/5

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

Description clearly states the action ('Get'), the resource ('contact group'), and the scope ('details including its members'). It effectively distinguishes from sibling tools like 'list_contact_groups' (which lists all groups) and 'manage_contact_group' (which modifies).

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. The purpose is implied by the name and description, but there is no direct 'when to use' or 'when not to use' information.

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

get_doc_as_markdownGet Doc as MarkdownA
Read-onlyIdempotent

Reads a Google Doc and returns it as clean Markdown with optional comment context.

Unlike get_doc_content which returns plain text, this tool preserves document formatting as Markdown: headings, bold/italic/strikethrough, links, code spans, ordered/unordered lists with nesting, and tables.

When comments are included (the default), each comment's anchor text — the specific text the comment was attached to — is preserved, giving full context for the discussion.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's Google email address
document_idYesID of the Google Doc (or full URL)
include_commentsNoWhether to include comments (default: True)
comment_modeNoHow to display comments: - "inline": Footnote-style references placed at the anchor text location (default) - "appendix": All comments grouped at the bottom with blockquoted anchor text - "none": No comments includedinline
include_resolvedNoWhether to include resolved comments (default: False)
suggestions_view_modeNoHow to render suggestions in the returned content: - "DEFAULT_FOR_CURRENT_ACCESS": Default based on user's access level - "SUGGESTIONS_INLINE": Suggested changes appear inline in the document - "PREVIEW_SUGGESTIONS_ACCEPTED": Preview as if all suggestions were accepted - "PREVIEW_WITHOUT_SUGGESTIONS": Preview as if all suggestions were rejectedDEFAULT_FOR_CURRENT_ACCESS

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate safe read-only idempotent behavior. Description adds valuable context: preservation of formatting as Markdown, comment inclusion modes, anchor text preservation, and suggestions handling.

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

Conciseness5/5

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

Three efficient paragraphs: purpose first, then key differentiator, then comment behavior. Every sentence contributes value, no redundancy.

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

Completeness5/5

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

Given 6 parameters with full schema coverage and an output schema, the description explains the core behavior, comment modes, and anchoring. Complete for agent's decision-making.

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

Parameters3/5

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

Schema covers all 6 parameters with descriptions (100% coverage). The tool description adds overall behavioral nuance but does not substantially enhance per-parameter understanding beyond what schema provides.

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

Purpose5/5

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

Clearly states it reads a Google Doc and returns clean Markdown, and explicitly distinguishes from sibling get_doc_content which returns plain text.

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

Usage Guidelines4/5

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

Provides clear contrast with get_doc_content, indicating when to use this tool (for formatted Markdown) vs plain text. Lacks explicit 'when not to use' but the sibling differentiation is strong.

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

get_doc_contentGet Doc ContentA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's Google email address
document_idYesID of the Google Doc (or full URL)
suggestions_view_modeNoHow to render suggestions in the returned content: - "DEFAULT_FOR_CURRENT_ACCESS": Default based on user's access level - "SUGGESTIONS_INLINE": Suggested changes appear inline in the document - "PREVIEW_SUGGESTIONS_ACCEPTED": Preview as if all suggestions were accepted - "PREVIEW_WITHOUT_SUGGESTIONS": Preview as if all suggestions were rejectedDEFAULT_FOR_CURRENT_ACCESS

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, etc. The description adds that it uses Docs API for native Docs and Drive API for .docx with text extraction, providing useful behavioral context beyond annotations. No contradictions.

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

Conciseness5/5

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

The description is concise with two sentences and a bullet point, front-loading the core purpose. Every sentence is necessary, and there is no wasted text.

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

Completeness4/5

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

Given the presence of an output schema, the description does not need to explain return values. It covers main functionality well, though it lacks some edge-case details like handling of unsupported file types.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter described in the schema. The description adds context about file types but does not provide additional parameter semantics beyond what's already in the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it retrieves content of a Google Doc or Drive file (like .docx) by document_id, distinguishing between native Google Docs and Office files. This is specific and differentiates from siblings like get_doc_as_markdown or 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.

Usage Guidelines4/5

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

The description explains the tool handles both native Docs and Office files, providing clear context. However, it does not explicitly mention when not to use it or compare to alternatives like get_doc_as_markdown. Still, the usage context is clear.

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

get_drive_file_contentGet Drive File ContentA
Read-onlyIdempotent

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. • PDFs → text extracted with pypdf when possible; scanned/image-only PDFs fall back to a download hint. • Images → returned as base64 with MIME metadata for multimodal clients. • Any other file → downloaded; tries UTF-8 decode, else notes binary.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user’s Google email address.
file_idYesDrive file ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior5/5

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

Beyond annotations (readOnly, non-destructive, idempotent, openWorld), the description provides rich detail on file type handling: export for docs, unzip for office, pypdf for PDFs, base64 for images, and fallback for binaries. No contradictions with annotations.

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

Conciseness5/5

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

The description is concise: a single introductory sentence followed by a bulleted list covering each file type. No unnecessary words, and structure supports quick scanning.

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

Completeness4/5

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

Given the complexity of handling multiple file types, the description covers all major categories and extraction methods. Output schema exists for return format details. Minor gaps: no mention of error behavior or size limits, but overall complete for behavioral context.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions. The tool description adds no further meaning beyond 'file by ID' and 'email', so baseline score applies.

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

Purpose5/5

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

The description clearly states the tool retrieves the content of a Google Drive file by ID. It specifies verb+resource, and the bulleted list distinguishes handling for different file types, setting it apart from siblings like get_doc_content or get_drive_file_download_url.

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

Usage Guidelines3/5

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

The description implicitly guides usage by detailing how various file types are processed, but it does not explicitly state when to use this tool versus alternatives or when not to use it. No sibling comparison is provided.

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_urlGet Drive File Download URLA
Read-onlyIdempotent

Downloads a Google Drive file and saves it to local disk.

In stdio mode, returns the local file path for direct access. In HTTP mode, returns a temporary download URL (valid for 1 hour).

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), PDF if export_format='pdf', or CSV if export_format='csv'

  • Google Slides -> PDF (default) or PPTX if export_format='pptx'

For other files, downloads the original file format.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
file_idYesThe Google Drive file ID to download.
export_formatNoOptional 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). For Sheets: supports 'csv', 'pdf', or 'xlsx' (default).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

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

The description discloses key behavioral traits: downloading to local disk, return type dependency on mode, expiration of HTTP URLs, and export behavior for various file types. These align with annotations (readOnlyHint, idempotentHint) and add context beyond what annotations provide, such as the 1-hour URL validity.

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

Conciseness4/5

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

The description is front-loaded with the core action and uses bullet points for clarity. It could be slightly more concise, but the structure effectively separates mode behavior from export format details, making it easy to scan.

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

Completeness4/5

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

Given the presence of an output schema (not shown) and 100% schema coverage, the description covers the essential return behavior, export logic, and mode distinctions. It does not mention potential errors or authentication requirements, but those are likely handled elsewhere and the openWorldHint suggests external context is acceptable.

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

Parameters4/5

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

Schema coverage is 100%. The description adds value by explaining the default export formats for each Google native file type and the effect of the 'export_format' parameter, which goes beyond the schema's enum list. The other two parameters are straightforward and don't need further elaboration.

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

Purpose5/5

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

The description clearly states the tool downloads a file and saves it to local disk, with specific return modes (stdio vs HTTP) and export format handling for Google native files. It differentiates from siblings like 'get_drive_file_content' by focusing on download and URL generation.

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

Usage Guidelines4/5

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

The description provides clear context on when to use the tool (downloading files) and details export format options for different file types. However, it lacks explicit guidance on when not to use it or comparisons with alternative tools like 'get_drive_file_content' for retrieving 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_permissionsGet Drive File PermissionsA
Read-onlyIdempotent

Gets detailed metadata about a Google Drive file including sharing permissions, parent folder IDs, ownership, and lifecycle timestamps.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
file_idYesThe ID of the file to check permissions for.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare it as read-only, idempotent, non-destructive. The description adds detail beyond annotations by specifying the exact metadata returned (permissions, parent folders, ownership, timestamps). This additional context helps the agent understand the scope of data retrieved, complementing the safety profile from annotations.

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

Conciseness5/5

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

The description is a single sentence that front-loads the verb and resource, concisely listing the key data points without extraneous detail. Every word is necessary and adds value.

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

Completeness4/5

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

Given the low complexity (2 simple parameters, no nested objects, output schema exists), the description covers the essential metadata returned. It lacks mention of pagination or error conditions, but these are less critical for a straightforward read operation. An output schema is present, so return values need not be detailed.

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

Parameters3/5

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

Schema coverage is 100% and both parameters are clearly described in the schema. The description does not add extra meaning beyond what the schema provides. With full schema coverage, baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool 'gets detailed metadata about a Google Drive file' and enumerates specific items like permissions, parent folder IDs, ownership, and timestamps. It uses a specific verb and resource, distinguishing it from the sibling 'check_drive_file_public_access' which is more narrow.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. The description is straightforward but lacks context about when it is appropriate or when to prefer other tools like 'check_drive_file_public_access' or 'get_drive_file_content'. However, the simplicity of the tool makes usage somewhat implicit.

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

get_eventsGet EventsA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
calendar_idNoThe 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`.primary
event_idNoThe ID of a specific event to retrieve. If provided, retrieves only this event and ignores time filtering parameters.
time_minNoThe 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_maxNoThe 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_resultsNoThe maximum number of events to return. Defaults to 25. Ignored if event_id is provided.
queryNoA keyword to search for within event fields (summary, description, location). Ignored if event_id is provided.
detailedNoWhether to return detailed event information including description, location, attendees, and attendee details (response status, organizer, optional flags). Defaults to False.
include_attachmentsNoWhether 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.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Descriptions adds behavioral details beyond annotations (readOnlyHint, idempotentHint, openWorldHint): it explains that event_id overrides time filtering, and time_min defaults to now if omitted. It does not contradict annotations. Missing some info like rate limits, but annotations already assure safety.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary action, and every sentence adds value. No unnecessary words.

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

Completeness4/5

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

For a read-only tool with 9 parameters, 100% schema coverage, and output schema present, the description covers the main modes and constraints. It doesn't describe output format but output schema exists. Slightly lacking explanation of 'detailed' parameter specifics, but schema covers it.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description adds only slight repetition (e.g., 'query' searches across summary/description/location, which is already in schema). No new parameter meaning beyond schema.

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

Purpose5/5

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

The description starts with a clear verb+resource: 'Retrieves events from a specified Google Calendar.' It then explains two retrieval modes (single event by ID, multiple events by time range) and optional keyword search. This distinguishes it from siblings like manage_event (mutation) and list_calendars (listing calendars).

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

Usage Guidelines4/5

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

The description explicitly states the conditions for using each mode: 'Retrieves a single event by ID or multiple events within a time range' and 'search for events by keyword.' It does not explicitly mention when not to use this tool or name alternatives (e.g., manage_event for mutations), but the context is clear enough for an AI agent to infer.

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

get_formGet FormD
Read-onlyIdempotent

Get a form.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
form_idYesThe ID of the form to retrieve.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.8/5.0
Behavior1/5

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

Description adds no behavioral information beyond what annotations already declare. Annotations indicate read-only, idempotent, and non-destructive behavior, but the description fails to provide any additional context about side effects, limitations, or authorization needs.

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

Conciseness2/5

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

Extremely concise but at the expense of usefulness. The single sentence does not earn its place as it provides no substantive information. Better to expand with meaningful context.

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

Completeness2/5

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

Despite having an output schema and comprehensive annotations, the description fails to inform the agent about the scope of the form retrieval (e.g., includes questions, settings, responses). The lack of context makes it minimal but not necessarily adequate for complex use cases.

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

Parameters3/5

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

Input schema has 100% coverage with clear parameter descriptions for both user_google_email and form_id. The description adds no extra semantics, but the schema carries the burden adequately, so baseline 3 is appropriate.

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

Purpose2/5

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

Description 'Get a form.' is a tautology that merely restates the tool name. It does not specify what type of form or any distinguishing details, failing to differentiate from siblings like get_form_response or create_form.

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

Usage Guidelines1/5

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

No guidance on when to use this tool versus alternatives. The description lacks any context about prerequisites, common use cases, or exclusions.

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

get_form_responseGet Form ResponseA
Read-onlyIdempotent

Get one response from the form.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
form_idYesThe ID of the form.
response_idYesThe ID of the response to retrieve.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare safe read-only behavior. Description adds no extra context but does not contradict annotations.

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

Conciseness5/5

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

Single sentence, concise and front-loaded, no wasted words.

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

Completeness4/5

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

For a simple retrieval tool with rich annotations and schema, minimal description is adequate. Output schema likely covers return values.

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

Parameters3/5

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

Input schema covers all three parameters with descriptions (100% coverage), so description adds no additional meaning beyond schema.

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

Purpose5/5

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

Description clearly states verb 'get' and resource 'form response', distinguishing it from siblings like list_form_responses which retrieve multiple responses.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Sibling list_form_responses exists but no explicit differentiation.

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

get_gmail_attachment_contentGet Gmail Attachment ContentA

Downloads an email attachment and saves it to local disk.

In stdio mode, returns the local file path for direct access. In HTTP mode, returns a temporary download URL (valid for 1 hour). May re-fetch message metadata to resolve filename and MIME type.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYesThe ID of the Gmail message containing the attachment.
attachment_idYesThe ID of the attachment to download.
user_google_emailYesThe user's Google email address. Required.
return_base64NoWhen True, includes the full attachment as a standard base64 string in the response (in addition to any file path or download URL). Useful for sandboxed clients that cannot reach localhost download URLs or the MCP server's local file paths (e.g. containerized agents with network allowlists). The returned base64 uses the standard alphabet, so it can be passed directly to tools like ``draft_gmail_message`` that expect standard (not URL-safe) base64. Default False preserves the existing behavior and response size.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Description discloses mode-dependent behavior (stdio vs HTTP), temporary download URL validity (1 hour), and possible re-fetch of metadata. Annotations indicate readOnlyHint=false, which aligns with the local disk save side effect. Adds context beyond annotations.

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

Conciseness5/5

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

Extremely concise and well-structured. First sentence states primary action, followed by two short sentences covering mode specifics and behavior. Every sentence adds value with no redundancy.

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

Completeness4/5

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

Complete for a tool with output schema: explains return type variations and expiration. Could mention error handling (e.g., invalid attachment ID) but not essential given output schema.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions. The tool description does not add further parameter semantics beyond what the schema provides. Baseline score 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool downloads an email attachment and saves it to disk, with specific verb 'Downloads' and resource 'email attachment'. It distinguishes from siblings like get_gmail_message_content by focusing on attachment content.

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

Usage Guidelines3/5

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

Usage is implied by the tool's purpose, but there are no explicit guidelines on when to use this vs alternatives such as get_gmail_message_content or get_drive_file_content. No when-not-to-use or context clues.

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

get_gmail_message_contentGet Gmail Message ContentA
Read-onlyIdempotent

Retrieves the full content (subject, sender, recipients, body) of a specific Gmail message.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYesThe unique ID of the Gmail message to retrieve.
user_google_emailYesThe user's Google email address. Required.
body_formatNoBody output format. 'text' (default) returns plaintext (HTML converted to text as fallback). 'html' returns the raw HTML body as-is without conversion. 'raw' fetches the full raw MIME message and returns the base64url-decoded content.text

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate a safe read operation. Description adds that it retrieves specific message parts, but does not disclose any additional behavioral traits like rate limits or authorization needs. Adequate given annotation coverage.

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

Conciseness5/5

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

Single sentence, 14 words, front-loaded with the verb and resource. No extraneous information. Highly concise.

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

Completeness4/5

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

Tool has an output schema, so return values are covered. Description covers main content retrieved. Minor gap: does not clarify if 'full content' includes attachments, but sibling tools exist for that.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool retrieves full content (subject, sender, recipients, body) of a specific Gmail message. It distinguishes from siblings like get_gmail_attachment_content (attachments) and get_gmail_thread_content (threads).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., batch vs. single, thread vs. message). Agent must infer usage from name and siblings.

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_batchGet Gmail Messages Content BatchA
Read-onlyIdempotent

Retrieves the content of multiple Gmail messages in a single batch request. Supports up to 25 messages per batch to prevent SSL connection exhaustion.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idsYesList of Gmail message IDs to retrieve (max 25 per batch).
user_google_emailYesThe user's Google email address. Required.
formatNoMessage format. "full" includes body, "metadata" only headers.full
body_formatNoBody output format (only applies when format='full'). 'text' (default) returns plaintext (HTML converted to text as fallback). 'html' returns the raw HTML body as-is without conversion. 'raw' fetches the full raw MIME message and returns the base64url-decoded content.text

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds behavioral context beyond annotations by specifying the 25-message limit and the batch nature, which aids in understanding constraints without contradicting annotations.

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

Conciseness5/5

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

Two sentences that are direct and front-loaded. Every sentence provides value: the first states the core function, the second adds a practical constraint. No redundant information.

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

Completeness4/5

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

Given the presence of annotations, a detailed input schema, and an implied output schema, the description covers the essential aspects. It explains the batch behavior and limit, which is sufficient for an agent to use the tool effectively, though it could mention error handling or ordering.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents all parameters in detail. The description does not add new information about parameters, thus meets the baseline expectation of 3.

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

Purpose5/5

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

The description clearly states the tool retrieves content of multiple Gmail messages in batch, with a specific verb and resource. It distinguishes from siblings like get_gmail_message_content (single message) and get_gmail_thread_content (threads) by highlighting the batch aspect.

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

Usage Guidelines3/5

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

The description provides context for when to use by mentioning 'to prevent SSL connection exhaustion', but does not explicitly state when not to use or mention alternatives like get_gmail_message_content for single messages. This leaves 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_gmail_thread_contentGet Gmail Thread ContentA
Read-onlyIdempotent

Retrieves the complete content of a Gmail conversation thread, including all messages.

Optionally also returns structured ownership analysis so a caller can determine who sent the last message and who owes whom a response without re-parsing the formatted string or making a second tool call.

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idYesThe unique ID of the Gmail thread to retrieve.
user_google_emailYesThe user's Google email address. Required.
body_formatNoBody output format. 'text' (default) returns plaintext (HTML converted to text as fallback). 'html' returns the raw HTML body as-is without conversion. 'raw' fetches each message's full raw MIME content and returns the base64url-decoded body.text
include_analysisNoWhen True, the return value is a dict with both the formatted thread content AND structured ownership analysis (last sender, ball-in-court verdict, per-sender message counts, participants). Defaults to False, in which case the existing string return shape is preserved.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate readOnly, safe, and idempotent behavior. The description adds value by disclosing the optional analysis return shape change, which is beyond what annotations provide. No contradictions.

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

Conciseness5/5

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

Two efficient sentences. The first sentence communicates the core purpose, and the second adds the optional analysis feature. No redundant words.

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

Completeness5/5

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

Given the presence of an output schema and full parameter descriptions, the tool description covers the essential information. It explains the return shape change with include_analysis, providing completeness for the agent.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters adequately. The description does not add new semantic meaning beyond what the parameter descriptions provide.

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

Purpose5/5

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

The description clearly states the verb 'retrieves' and resource 'complete content of a Gmail conversation thread'. It distinguishes from siblings like get_gmail_message_content by focusing on full threads and adding an optional analysis feature.

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

Usage Guidelines3/5

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

The description implies use for thread content but does not explicitly compare with siblings like get_gmail_threads_content_batch or state when not to use it. The optional analysis provides a use case, but no direct alternatives are mentioned.

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_batchGet Gmail Threads Content BatchA
Read-onlyIdempotent

Retrieves the content of multiple Gmail threads in a single batch request. Supports up to 25 threads per batch to prevent SSL connection exhaustion.

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idsYesA list of Gmail thread IDs to retrieve. The function will automatically batch requests in chunks of 25.
user_google_emailYesThe user's Google email address. Required.
body_formatNoBody output format. 'text' (default) returns plaintext (HTML converted to text as fallback). 'html' returns the raw HTML body as-is without conversion. 'raw' fetches each message's full raw MIME content and returns the base64url-decoded body.text

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate read-only, non-destructive, idempotent. Description adds important detail about batching to avoid SSL connection exhaustion, which is beyond annotation scope. No contradictions. Good supplemental context.

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

Conciseness5/5

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

Two sentences, front-loaded with main purpose. No superfluous words. Second sentence adds specific constraint. Highly concise and well-structured.

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

Completeness5/5

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

Given presence of output schema (context signal), description need not detail return values. Covers batch limit and format options adequately. No obvious gaps for a batch retrieval tool.

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

Parameters4/5

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

Schema has 100% coverage with descriptions. Description adds value by explaining that thread_ids will be auto-batched in chunks of 25, and elaborates on body_format enum values (text, html, raw) with details on conversion behavior. Meaningful additions beyond schema.

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

Purpose5/5

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

Clearly states it retrieves content of multiple Gmail threads in a single batch. Specific verb 'retrieves' and resource 'Gmail threads'. Differentiates from sibling get_gmail_thread_content (singular) and get_gmail_messages_content_batch (messages vs threads).

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

Usage Guidelines4/5

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

Provides explicit batch limit of 25 threads to prevent SSL exhaustion, guiding usage boundaries. Does not explicitly compare to alternatives like single thread retrieval, but the context of siblings implies when to use batch vs single.

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

get_messagesGet MessagesC
Read-onlyIdempotent

Retrieves messages from a Google Chat space.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes
space_idYes
page_sizeNo
order_byNocreateTime desc
message_filterNoOptional filter string using the Chat API filter syntax. Supports createTime and thread.name. Examples: 'createTime > "2026-03-18T00:00:00-03:00"' 'createTime > "2026-03-18T00:00:00-03:00" AND createTime < "2026-03-19T00:00:00-03:00"' 'thread.name = spaces/X/threads/Y'

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, signaling safe read-only behavior. The description adds no additional behavioral context (e.g., pagination, auth, rate limits) beyond the annotations.

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

Conciseness3/5

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

The description is extremely concise at one sentence. While efficient, it omits essential information, making it insufficiently informative for a tool with multiple parameters and siblings.

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

Completeness2/5

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

Given the tool has 5 parameters, an output schema, and many sibling tools, the description is very sparse. It does not cover pagination, filtering, ordering, authentication, or return behavior, leaving significant gaps 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.

Parameters2/5

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

Schema coverage is only 20% (only message_filter has a description), yet the tool description does not explain any parameters. It adds no meaning beyond the schema, failing to compensate for the low coverage.

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

Purpose4/5

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

The description clearly states it retrieves messages from a Google Chat space. It is specific about the resource and action, but does not differentiate from the sibling tool 'search_messages' which also retrieves messages.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like search_messages or list_spaces. No context about prerequisites or exclusions is given.

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

get_pageGet PageA
Read-onlyIdempotent

Get details about a specific page (slide) in a presentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
presentation_idYesThe ID of the presentation.
page_object_idYesThe object ID of the page/slide to retrieve.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds no behavioral context beyond being a read operation. No extra value.

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

Conciseness5/5

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

Single sentence, 10 words, direct and to the point. No wasted words.

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

Completeness4/5

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

Given the simple nature of the tool and the presence of an output schema, the description is adequately complete. It might benefit from specifying what 'details' include, but overall sufficient.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already describes all three parameters sufficiently. The description does not add any additional parameter-level meaning.

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

Purpose5/5

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

The description clearly states the action ('get details'), the resource ('specific page/slide'), and the context ('in a presentation'). It distinguishes from sibling tools like get_presentation and get_page_thumbnail.

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

Usage Guidelines3/5

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

No explicit guidance on when or when not to use this tool, nor any mention of alternatives. The usage is implied but not clarified, especially given many sibling tools.

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

get_page_thumbnailGet Page ThumbnailA
Read-onlyIdempotent

Generate a thumbnail URL for a specific page (slide) in a presentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
presentation_idYesThe ID of the presentation.
page_object_idYesThe object ID of the page/slide.
thumbnail_sizeNoSize of thumbnail ("LARGE", "MEDIUM", "SMALL"). Defaults to "MEDIUM".MEDIUM

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds that it generates a URL, not the image itself, but does not disclose further behavioral traits such as authentication requirements or rate limits. With robust annotations, this is adequate.

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

Conciseness5/5

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

The description is a single sentence with no unnecessary words. It is front-loaded with the verb and resource, making it immediately understandable.

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

Completeness5/5

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

Given the tool's simplicity (4 parameters, simple behavior), rich annotations, and the presence of an output schema, the description is sufficiently complete. It covers the core purpose and works well with the structured fields.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description does not add parameter-level information beyond what the schema already provides, but no additional details are necessary as the schema is clear.

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

Purpose5/5

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

The description clearly states it generates a thumbnail URL for a specific page (slide) in a presentation. The verb 'generate' and resource 'thumbnail URL' are specific, and it distinguishes from siblings like get_page 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.

Usage Guidelines3/5

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

The description implies usage for obtaining a thumbnail preview image but lacks explicit guidance on when to use this tool versus alternatives. No exclusions or context for when not to use it.

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

get_presentationGet PresentationB
Read-onlyIdempotent

Get details about a Google Slides presentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
presentation_idYesThe ID of the presentation to retrieve.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, fully covering the behavioral profile. The description adds no extra behavioral context, such as what specific details are returned or any limitations.

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

Conciseness4/5

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

A single short sentence is efficient and front-loaded. However, it could be slightly more descriptive without becoming verbose.

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

Completeness4/5

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

With annotations and an output schema present, the description is functionally complete. The missing details (e.g., what 'details' entails) are covered by the output schema, so the agent has enough context.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not elaborate on parameters (e.g., what qualifies as a valid presentation_id), so it adds no additional meaning beyond the schema.

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

Purpose5/5

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

The description 'Get details about a Google Slides presentation' clearly states the verb (Get) and resource (presentation), distinguishing it from sibling tools like create_presentation or import_to_google_slides.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., batch_update_presentation, list_presentation_comments). The description only states the function, 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.

get_script_contentGet Script ContentB
Read-onlyIdempotent

Retrieves content of a specific file within a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's email address
script_idYesThe script project ID
file_nameYesName of the file to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint, destructiveHint, idempotentHint, and openWorldHint, which adequately describe the tool's safety profile. The description adds no behavioral context beyond that, but there is no contradiction.

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

Conciseness4/5

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

The description is a single concise sentence with no wasted words. It could be slightly expanded to include context about the type of content, but as is, it is efficient.

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

Completeness3/5

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

Given the complexity (3 required parameters, annotated as read-only, with output schema), the description is minimal. It lacks context about the specific platform (Google Apps Script) and what 'content' means (e.g., source code), but is adequate for an experienced agent.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter having a clear description in the schema (e.g., 'User's email address'). The description adds no additional semantic value beyond what is already provided.

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

Purpose5/5

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

The description 'Retrieves content of a specific file within a project' uses a specific verb and resource, clearly distinguishing it from siblings like 'get_script_project' (project metadata) and 'update_script_content' (write counterpart).

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

Usage Guidelines2/5

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

No explicit when-to-use or when-not-to-use guidance is provided. While the name implies reading script file content, alternatives such as 'get_doc_content' or 'get_drive_file_content' are not mentioned, leaving ambiguity for similar tools.

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

get_script_metricsGet Script MetricsA
Read-onlyIdempotent

Gets execution metrics for a script project.

Returns analytics data including active users, total executions, and failed executions over time.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's email address
script_idYesThe script project ID
metrics_granularityNoGranularity of metrics - "DAILY" or "WEEKLY"DAILY

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations (readOnlyHint=true, destructiveHint=false, idempotentHint=true) already indicate safety. The description adds context about returned fields (active users, executions, failures) but does not disclose potential behaviors like pagination, latency, or data retention limits. With annotations present, the bar is lower, but additional context would improve transparency.

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

Conciseness5/5

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

The description is two concise sentences: one for purpose and one for return data examples. No redundant information; perfectly front-loaded and efficient.

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

Completeness4/5

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

Given the presence of an output schema (via context signals), the description adequately covers the tool's functionality by listing example return fields. It does not detail time-range behavior or filtering options, but these are implied by the metrics_granularity parameter. Reasonably complete for a metrics retrieval tool.

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

Parameters3/5

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

Schema coverage is 100% with all three parameters described adequately. The description does not add new meaning or clarify parameter usage beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

Title and description clearly state the verb ('gets'), resource ('execution metrics for a script project'), and specific return data (active users, total executions, failed executions). This distinguishes it from sibling tools like get_script_project and run_script_function.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives. It implies usage for retrieving execution analytics but lacks guidance on exclusions or comparisons with siblings like debug_docs_runtime_info or list_script_processes.

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

get_script_projectGet Script ProjectA
Read-onlyIdempotent

Retrieves complete project details including all source files.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's email address
script_idYesThe script project ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate readOnly, idempotent, non-destructive. Description adds that it returns complete details including all source files, which is useful behavioral context beyond annotations.

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

Conciseness5/5

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

Single sentence, 8 words, front-loaded with essential information. Every word earns its place.

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

Completeness4/5

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

Description is adequate for a retrieval tool with output schema. Could mention that it returns full project structure, but the existing sentence covers the key point.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions. The description adds no additional parameter meaning beyond what the schema already provides.

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

Purpose5/5

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

The description uses specific verb 'retrieves' and resource 'complete project details including all source files,' clearly distinguishing it from sibling tools like list_script_projects (list only) and get_script_content (content only).

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

Usage Guidelines2/5

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

No guidance on when to use vs alternatives. Siblings like list_script_projects and get_script_content exist, but description provides no context for choosing this tool.

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

get_search_engine_infoGet Search Engine InfoA
Read-onlyIdempotent

Retrieves metadata about a Programmable Search Engine.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, which clearly communicate behavioral traits. The description adds no additional behavioral context beyond stating it retrieves metadata, so it does not go beyond what annotations provide.

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

Conciseness5/5

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

The description is a single succinct sentence with no unnecessary words. It efficiently conveys the tool's purpose without redundancy.

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

Completeness5/5

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

Given the low complexity (one parameter), full schema coverage, and presence of an output schema, the description is complete enough for an agent to understand and invoke the tool correctly.

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

Parameters3/5

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

Schema coverage for the single parameter is 100%, and the description does not add any additional meaning or context beyond what the schema already provides for 'user_google_email'. Thus, the description does not compensate or enhance parameter semantics.

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

Purpose5/5

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

The description clearly states the tool retrieves metadata about a Programmable Search Engine, which is a specific verb-resource combination. Among sibling tools, no other tool targets search engine info, so it is well-distinguished.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. The usage is implied by its simple purpose.

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

get_spreadsheet_infoGet Spreadsheet InfoA
Read-onlyIdempotent

Gets information about a specific spreadsheet including its sheets.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
spreadsheet_idYesThe ID of the spreadsheet to get info for. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the description adds minimal behavioral context beyond the schema. No contradictions.

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

Conciseness5/5

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

The description is a single, clear sentence with no wasted words. It front-loads the key purpose.

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

Completeness4/5

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

For a simple read-only tool with full parameter schemas and an output schema, the description is adequate. It could mention additional details like what 'information' includes, but completeness is acceptable given the output schema existence.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for both parameters. The tool description does not add additional meaning beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states verb 'gets' and resource 'information about a specific spreadsheet including its sheets', which distinguishes it from sibling tools like 'list_spreadsheets' that list spreadsheets.

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

Usage Guidelines3/5

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

No explicit guidance on when to use or not use this tool versus alternatives. While the name and context imply use for retrieving info by ID, the description lacks explicit when-not or alternative suggestions.

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

get_taskGet TaskA
Read-onlyIdempotent

Get details of a specific task.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
task_list_idYesThe ID of the task list containing the task.
task_idYesThe ID of the task to retrieve.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already provide readOnlyHint, destructiveHint, idempotentHint, openWorldHint. The description adds nothing beyond 'get details', which is consistent. No additional behavioral traits disclosed.

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

Conciseness5/5

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

Single sentence, no verbosity. Every word is necessary for the intended meaning.

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

Completeness4/5

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

Given the simplicity of the operation, the description is adequate. The output schema (not shown) likely covers return details. Minimal but complete for a basic read operation.

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

Parameters3/5

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

Input schema covers 100% of parameters with descriptions. The tool description adds no additional meaning beyond what the schema provides.

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

Purpose4/5

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

The description clearly states the verb 'Get' and resource 'task', matching the tool name. It distinguishes from 'list_tasks' (listing all tasks) and 'manage_task' (mutations), but does not explicitly differentiate from siblings.

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

Usage Guidelines3/5

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

Usage is implied by the name and input parameters (requires task ID). No explicit when-to-use or when-not-to-use guidance, nor alternatives mentioned.

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

get_task_listGet Task ListA
Read-onlyIdempotent

Get details of a specific task list.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
task_list_idYesThe ID of the task list to retrieve.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds no further behavioral context (e.g., authentication, rate limits) beyond what annotations provide, but does not contradict them.

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

Conciseness5/5

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

A single sentence that is front-loaded with the verb and resource, containing no extraneous information. Every word serves a purpose.

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

Completeness4/5

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

Given the simple 2-parameter schema with full descriptions, annotations covering safety, and the presence of an output schema, the description is sufficiently complete for an agent to understand the tool's basic function, though it could hint at the output structure.

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

Parameters3/5

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

Schema description coverage is 100%; both parameters have clear descriptions in the input schema. The tool description itself adds no additional meaning beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the tool retrieves details of a specific task list, using a specific verb ('Get') and resource ('task list'). This distinguishes it from sibling tools like 'list_task_lists' and 'manage_task_list'.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives such as 'list_task_lists' or 'manage_task_list'. Usage is implied based on the action ('get details'), but no when-not or alternative suggestions are provided.

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

get_versionGet VersionB
Read-onlyIdempotent

Gets details of a specific version.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's email address
script_idYesThe script project ID
version_numberYesThe version number to retrieve (1, 2, 3, etc.)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds no behavioral detail beyond the schema. No contradiction.

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

Conciseness5/5

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

Single sentence with no waste. Every word contributes to purpose.

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

Completeness4/5

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

Given simple tool with output schema and good annotations, description is adequate. Could specify that it retrieves version metadata for a script project, but parameters imply this.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all three parameters. Description adds no extra meaning beyond the schema.

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

Purpose4/5

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

Description uses specific verb 'gets' and resource 'details of a specific version', clearly distinguishing from list_versions. Implicitly tied to script projects via parameters.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like list_versions. No exclusions or prerequisites mentioned.

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

import_to_google_docImport to Google DocA

Imports a file (Markdown, DOCX, TXT, HTML, RTF, ODT) into Google Docs format with automatic conversion.

Google Drive automatically converts the source file to native Google Docs format, preserving formatting like headings, lists, bold, italic, etc. For batch operations, prefer file_path for files on disk so callers do not need to load full file contents into their context.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
file_nameYesThe name for the new Google Doc (extension will be ignored).
contentNoText content for text-based formats. Use only for short snippets or content already in memory.
file_pathNoLocal file path or file:// URL for any supported format (MD, TXT, HTML, DOCX, ODT, RTF). Appropriate for larger files than content, but file_path may still load the file into memory or perform non-streaming reads. Avoid very large files that could exceed memory or time limits; use streaming/chunked uploads or an alternative API for huge files.
file_urlNoRemote URL to fetch the file from (http/https).
source_formatNoSource format hint ('md', 'markdown', 'docx', 'txt', 'html', 'rtf', 'odt'). Auto-detected from file_name extension if not provided.
folder_idNoThe ID of the parent folder. Defaults to 'root'.root

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint=false, destructiveHint=false), the description reveals conversion quality (preserves formatting), memory/performance caveats for file_path (non-streaming, risk of memory overload), and auto-detection of source format. Discloses side effects (file creation in Google Drive) consistent with openWorldHint.

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

Conciseness5/5

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

Three sentences: first defines purpose, second adds conversion detail, third provides usage guidance. No filler, front-loaded with essential information. Each sentence earns its place.

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

Completeness5/5

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

Given the tool's complexity (7 params, output schema exists), the description covers core purpose, supported formats, conversion behavior, and parameter selection strategy. It does not need to mention authentication or return values (output schema covers returns). Sibling differentiation is implicit. Complete for a user to understand when and how to invoke this tool.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explaining when to use each file source parameter (content vs file_path vs file_url) and warns about file_path limitations, beyond what the schema describes. Does not repeat but enhances parameter understanding.

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

Purpose5/5

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

The description clearly states the tool imports files in multiple formats (Markdown, DOCX, etc.) into Google Docs format, specifies automatic conversion, and implicitly distinguishes from sibling tools like import_to_google_sheets by targeting Google Docs.

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

Usage Guidelines4/5

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

Provides specific guidance: for batch operations, prefer file_path to avoid loading content into context; describes when to use content (short snippets) vs file_path (larger files with memory warnings) vs file_url. Lacks explicit alternatives to this tool among siblings, but the given guidance is clear and actionable.

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

import_to_google_sheetsImport to Google SheetsA

Imports a spreadsheet (XLSX, XLS, ODS, CSV, TSV) into Google Sheets format with automatic conversion.

Google Drive automatically converts the source spreadsheet to native Google Sheets format, preserving rows, columns, sheets, and values. For batch operations, prefer file_path for files on disk so callers do not need to load full file contents into their context.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
file_nameYesThe name for the new Google Sheets spreadsheet (extension will be ignored).
contentNoText content for text-based formats (CSV, TSV). Use only for short snippets or content already in memory.
file_pathNoLocal file path or file:// URL for any supported format (XLSX, XLS, ODS, CSV, TSV). Appropriate for larger files than content, but file_path may still load the file into memory or perform non-streaming reads. Avoid very large files that could exceed memory or time limits; use streaming/chunked uploads or an alternative API for huge files.
file_urlNoRemote URL to fetch the spreadsheet from (http/https).
source_formatNoSource format hint ('xlsx', 'xls', 'ods', 'csv', 'tsv'). Auto-detected from file_name extension if not provided.
folder_idNoThe ID of the parent folder. Defaults to 'root'.root

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses behavioral traits beyond annotations: it explains Google Drive's automatic conversion preserving rows/columns/sheets/values, and warns that file_path may still load files into memory with potential memory/time limits. No contradiction with annotations (readOnlyHint=false, destructiveHint=false).

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

Conciseness5/5

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

The description is short (4 sentences), front-loaded with the core purpose, and each sentence adds meaningful information without redundancy.

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

Completeness5/5

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

Given the tool's complexity (multiple input formats and methods), the description covers all essential aspects: supported formats, conversion behavior, input method recommendations, and a performance warning. Output schema existence further reduces the need to explain return values.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds extra value by recommending file_path for batch operations and noting content is for short snippets, enhancing understanding of parameter usage.

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

Purpose5/5

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

The description clearly states the tool imports external spreadsheet formats (XLSX, XLS, ODS, CSV, TSV) into Google Sheets with automatic conversion. It distinguishes itself from siblings like import_to_google_doc and import_to_google_slides by specifying the target format.

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

Usage Guidelines4/5

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

The description provides guidelines on when to use file_path vs content (prefer file_path for batch operations to avoid loading full contents into context). However, it does not explicitly compare this tool to alternatives like create_spreadsheet or other import tools.

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

import_to_google_slidesImport to Google SlidesA

Imports a presentation (PPTX, PPT, ODP) into Google Slides format with automatic conversion.

Google Drive automatically converts the source presentation to native Google Slides format, preserving slides, layouts, text, and images. For batch operations, prefer file_path for files on disk so callers do not need to load full file contents into their context.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
file_nameYesThe name for the new Google Slides presentation (extension will be ignored).
file_pathNoLocal file path or file:// URL for any supported format (PPTX, PPT, ODP). Appropriate for larger files than content, but file_path may still load the file into memory or perform non-streaming reads. Avoid very large files that could exceed memory or time limits; use streaming/chunked uploads or an alternative API for huge files.
file_urlNoRemote URL to fetch the presentation from (http/https).
source_formatNoSource format hint ('pptx', 'ppt', 'odp'). Auto-detected from file_name extension if not provided.
folder_idNoThe ID of the parent folder. Defaults to 'root'.root

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Adds behavioral context about automatic conversion and preservation of slides, layouts, text, and images. However, it does not disclose potential limitations, side effects, or authentication requirements beyond the annotations.

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

Conciseness5/5

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

Concise at four sentences with clear front-loading of purpose. Every sentence adds value without redundancy.

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

Completeness4/5

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

Given the presence of an output schema and good parameter coverage, the description is largely complete. It covers purpose, conversion behavior, and parameter usage. Minor omission: no mention of expected return value or error conditions.

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

Parameters4/5

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

Schema coverage is 100% with well-described parameters. The description adds extra value by explaining the trade-off between file_path and file_url for context efficiency, going beyond schema documentation.

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

Purpose5/5

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

Clearly states the verb 'imports' and the resource 'presentation into Google Slides' with supported formats (PPTX, PPT, ODP). Distinguishes from sibling import tools by specifying presentation formats.

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

Usage Guidelines3/5

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

Provides guidance on preferring file_path for batch operations to avoid loading full contents. However, it does not explicitly advise when to use this tool over sibling import tools (e.g., import_to_google_doc) or when to avoid it.

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

insert_doc_elementsInsert Doc ElementsA

Inserts structural elements like tables, lists, or page breaks into a Google Doc.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's Google email address
document_idYesID of the document to update
element_typeYesType of element to insert ("table", "list", "page_break")
indexYesPosition to insert element (0-based)
rowsNoNumber of rows for table (required for table)
columnsNoNumber of columns for table (required for table)
list_typeNoType of list ("UNORDERED", "ORDERED") (required for list)
textNoInitial text content for list items

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate mutation (readOnlyHint=false) and non-destructive behavior (destructiveHint=false). The description adds minimal behavioral context beyond stating it inserts elements. No contradictions.

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

Conciseness5/5

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

The description is a single, clear sentence with no extraneous information. It is front-loaded and efficient.

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

Completeness3/5

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

Given the presence of a detailed input schema and output schema, the description covers the basic purpose. However, it lacks information about prerequisites (e.g., document permissions) or error handling, which would be helpful for a tool with 8 parameters.

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

Parameters3/5

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

Schema coverage is 100%, so all parameters are documented. The description does not add additional meaning beyond what the schema provides, e.g., it lists element types that match the schema enum.

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

Purpose5/5

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

The description clearly states the verb 'Inserts' and the resource 'structural elements like tables, lists, or page breaks into a Google Doc.' It is specific and distinct from sibling tools like 'insert_doc_image' which inserts images.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus alternatives, nor does it specify prerequisites or constraints. It lacks explicit context for decision-making.

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

insert_doc_imageInsert Doc ImageA

Inserts an image into a Google Doc from Drive or a URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's Google email address
document_idYesID of the document to update
image_sourceYesDrive file ID or public image URL
indexYesPosition to insert image (0-based)
widthNoImage width in points (optional)
heightNoImage height in points (optional)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate non-read-only behavior (readOnlyHint=false) and non-destructive behavior (destructiveHint=false). The description does not add additional behavioral context beyond the basic insertion action, missing details like side effects or error conditions.

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

Conciseness5/5

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

The description is a single, efficient sentence that conveys the essential purpose without any redundant or extraneous information.

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

Completeness3/5

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

The description provides the core functionality but lacks details about return values (though an output schema exists), required permissions, or potential side effects. For a tool with six parameters and no behavioral elaboration, it is minimally adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so the burden on the description is lower. The description adds minimal new meaning beyond the schema, only reiterating the source possibilities ('from Drive or a URL'), which is already in the image_source parameter description.

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

Purpose5/5

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

The description clearly states the action ('Inserts an image'), the target resource ('into a Google Doc'), and the source ('from Drive or a URL'). It distinguishes from sibling tools like 'insert_doc_elements' by specifying the exact element type.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 'insert_doc_elements' or other document manipulation tools. The description lacks explicit context for when this tool is preferred.

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

inspect_doc_structureInspect Doc StructureA
Read-onlyIdempotent

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

  • Inspecting structure of specific tabs

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

  • headers / footers: Real segment IDs and previews for header/footer editing

  • tabs: List of available tabs in the document (if no tab_id specified)

WORKFLOW FOR TABLE INSERTION: 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

FORMATTING WORKFLOW: After inserting all text via batch_update_doc with end_of_segment=true, call this tool with detailed=true to get exact start_index and end_index for every paragraph. Use those indices directly in format_text and update_paragraph_style operations in a second batch_update_doc call.

HEADER/FOOTER WORKFLOW: For ordinary header/footer text, use update_doc_headers_footers. If you need low-level segment editing, call this tool first and use the real segment_id values returned under headers/footers. Do not invent IDs.

The detailed output includes elements[].start_index and elements[].end_index with text_preview for each paragraph, making it easy to identify which ranges to format.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's Google email address
document_idYesID of the document to inspect
detailedNoWhether to return detailed structure information
tab_idNoOptional ID of the tab to inspect. If not provided, inspects main document.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating safe, non-destructive behavior. The description adds significant context: it reveals that the tool returns document structure details, explains its critical role in safe insertion, and describes output fields like total_length. It also warns against inventing IDs and clarifies that the tool is for inspection only. No contradiction with annotations.

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

Conciseness5/5

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

The description is well-structured with clear sections (USE THIS FOR, CRITICAL FOR TABLE OPERATIONS, WHAT THE OUTPUT SHOWS, workflows). It is appropriately sized for the tool's complexity, with each section adding unique value. The essential purpose is front-loaded, and the workflow steps are concise yet complete.

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

Completeness5/5

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

Given the tool's complexity (document structure inspection for safe insertion), the description is comprehensive. It covers multiple workflows (table insertion, formatting, header/footer editing), explains output details, and addresses edge cases like tabs. Since the tool has an output schema, the description's explanation of return fields (total_elements, tables, headers/footers, etc.) is sufficient for an agent to use the output effectively.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds minimal new meaning beyond the schema: it mentions using 'detail=true' in the formatting workflow and implies that tab_id is optional. However, it does not elaborate on user_google_email or document_id beyond the schema definitions. The output-focused descriptions (like total_length) do not directly enhance parameter semantics.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'finding safe insertion points and understanding document structure'. It specifies the verb 'inspect' and resource 'doc structure'. It distinguishes from siblings by emphasizing its role as 'Essential tool for finding safe insertion points' and explicitly positioning it as a prerequisite for table operations, differentiating it from tools like debug_table_structure or get_doc_content.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool: 'USE THIS FOR' lists five specific scenarios. It also provides alternatives: 'For ordinary header/footer text, use update_doc_headers_footers' and 'If you need low-level segment editing, call this tool first'. The table insertion workflow instructs to ALWAYS call before creating tables, and the formatting workflow specifies when to call with detailed=true.

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

list_calendarsList CalendarsA
Read-onlyIdempotent

Retrieves a list of calendars accessible to the authenticated user.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that the calendars are 'accessible to the authenticated user,' which confirms the scope. Since annotations carry most of the burden, the description adds modest value, earning a 3.

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

Conciseness5/5

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

The description is a single sentence that immediately states the verb and resource. It is concise with no extraneous information, efficiently communicating the tool's purpose.

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

Completeness5/5

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

Given the tool's simplicity (one parameter, read-only, output schema exists), the description is complete. It adequately explains what the tool does without needing additional details, as the output schema covers return values.

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

Parameters3/5

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

The sole parameter (user_google_email) is fully described in the schema with 'The user's Google email address. Required.' The description does not add additional meaning beyond what the schema provides. With 100% schema coverage, the baseline is 3.

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

Purpose5/5

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

The description clearly states the tool retrieves a list of calendars accessible to the authenticated user. The verb 'retrieves' is specific, and the resource 'calendars' is well-defined. This distinguishes it from sibling tools like create_calendar (write) and get_events (events within a calendar).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. While the tool's purpose is simple, it does not mention when not to use it (e.g., to get events instead) or suggest any exclusions. A score of 2 reflects the lack of explicit usage context.

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

list_contact_groupsList Contact GroupsB
Read-onlyIdempotent

List contact groups (labels) for the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
page_sizeNoMaximum number of groups to return (default: 100, max: 1000).
page_tokenNoToken for pagination.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, so the description's burden is lower. It adds the context that groups are for the user, but does not disclose pagination behavior or the structure of the returned list.

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

Conciseness5/5

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

The description is a single, focused sentence that starts with the verb 'List' and immediately conveys the core purpose. Every word is necessary; there is no extraneous information.

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

Completeness4/5

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

For a simple list operation with 3 parameters and an output schema, the description adequately covers the essential purpose. It could be improved by noting pagination or the scope of results, but the output schema fills some gaps.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter (user_google_email, page_size, page_token) having its own description. The tool's description adds no additional meaning beyond what the schema already provides.

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

Purpose4/5

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

The description states 'List contact groups (labels) for the user,' which clearly identifies the action (list) and resource (contact groups). It adds clarification that contact groups are labels, but does not explicitly differentiate from sibling tools like get_contact_group or manage_contact_group.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention when to list groups versus getting a specific group, and does not address scenarios like filtering or prerequisite conditions.

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

list_contactsList ContactsB
Read-onlyIdempotent

List contacts for the authenticated user.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
page_sizeNoMaximum number of contacts to return (default: 100, max: 1000).
page_tokenNoToken for pagination.
sort_orderNoSort order: "LAST_MODIFIED_ASCENDING", "LAST_MODIFIED_DESCENDING", "FIRST_NAME_ASCENDING", or "LAST_NAME_ASCENDING".

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint, covering the safety profile. The description adds no new behavioral context, such as pagination behavior or sorting specifics, but does not contradict annotations.

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

Conciseness4/5

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

The description is a single, clear sentence that is front-loaded. It is concise, though it could be slightly more descriptive without losing efficiency.

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

Completeness3/5

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

Given the tool's simplicity, annotations, and comprehensive schema, the description is minimally adequate. However, it does not provide tips or context beyond the basics.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already describes all parameters. The description does not add additional meaning beyond what the schema provides.

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

Purpose5/5

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

The description clearly states 'List contacts for the authenticated user,' providing a specific verb and resource. It distinguishes from sibling tools like search_contacts (searching) and manage_contact (CRUD).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like search_contacts or manage_contact. It lacks explicit when-to-use or when-not-to-use context.

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

list_deploymentsList DeploymentsA
Read-onlyIdempotent

Lists all deployments for a script project.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's email address
script_idYesThe script project ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

The description is consistent with annotations (readOnlyHint=true), but adds no additional behavioral context beyond what annotations already provide.

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

Conciseness4/5

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

Single sentence, 6 words, no wasted text. Front-loaded with the key information.

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

Completeness3/5

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

With full schema coverage, annotations, and output schema, the description is minimally adequate. However, it lacks details like pagination or ordering.

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

Parameters3/5

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

Schema coverage is 100% (both parameters described in schema). The description adds no extra meaning beyond the schema's descriptions.

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

Purpose5/5

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

The description clearly states the action (list) and resource (deployments) with scope (for a script project). It is distinct from sibling tools like list_versions or list_script_projects.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives. The purpose is clear, but there is no when-not-to-use or mention of alternatives.

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

list_docs_in_folderList Docs in FolderB
Read-onlyIdempotent

Lists Google Docs within a specific Drive folder.

Returns: str: A formatted list of Google Docs in the specified folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes
folder_idNoroot
page_sizeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true, so the safety profile is known. The description adds minimal behavioral context beyond the return type, not addressing pagination or file type limitation.

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

Conciseness4/5

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

The description is concise at two sentences, but it could be more structured by including brief parameter explanations or usage notes without adding much length.

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

Completeness3/5

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

For a simple list tool with an output schema, the description is adequate but lacks parameter documentation and usage context, making it less complete than it could be.

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

Parameters1/5

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

Schema description coverage is 0%. The description does not explain any of the three parameters (user_google_email, folder_id, page_size), leaving their semantics entirely to the schema.

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

Purpose5/5

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

The description clearly states 'Lists Google Docs within a specific Drive folder', using a specific verb and resource. It distinguishes from siblings like 'list_drive_items' (lists all items) and 'search_docs' (search-based).

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

Usage Guidelines3/5

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

The description provides clear context (within a Drive folder) but does not offer explicit guidance on when to use versus alternatives, nor any exclusions or prerequisites.

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

list_document_commentsList Document CommentsA
Read-onlyIdempotent

List all comments from a Google Document.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes
document_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already convey readOnlyHint, destructiveHint, idempotentHint, and openWorldHint, covering safety and idempotency. The description adds no additional behavioral details (e.g., pagination, ordering, or authentication requirements), but does not contradict annotations.

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

Conciseness4/5

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

The description is a single, concise sentence that directly states the tool's purpose. It is front-loaded and efficient, though it could be slightly expanded to include parameter hints without losing conciseness.

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

Completeness3/5

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

Given the presence of an output schema and only two required parameters, the description provides a minimal but adequate overview. However, it lacks details on comment scope (e.g., replies, ordering) and assumes the agent understands the resource context.

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

Parameters2/5

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

The input schema has 0% description coverage for its two parameters (user_google_email, document_id), and the tool description does not explain their meaning, format, or constraints. The description should compensate for schema gaps but fails to do so.

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

Purpose5/5

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

The description clearly states the action ('List') and resource ('all comments from a Google Document'), which distinguishes it from sibling tools like 'manage_document_comment' and other list tools for different document types.

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

Usage Guidelines3/5

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

The description provides no explicit guidance on when to use this tool versus alternatives (e.g., search or other list tools). While annotations imply read-only usage, the description does not offer context for selection.

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

list_drive_itemsList Drive ItemsA
Read-onlyIdempotent

Lists files/folders or shared drive containers, 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). Set resource_type to "shared_drives" to list shared drive containers instead of folder contents.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
folder_idNoThe 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.root
page_sizeNoThe maximum number of items to return. Defaults to 100.
page_tokenNoPage token from a previous response's nextPageToken to retrieve the next page of results.
drive_idNoID of the shared drive. If provided, the listing is scoped to this drive.
include_items_from_all_drivesNoWhether items from all accessible shared drives should be included if `drive_id` is not set. Defaults to True.
corporaNoCorpus 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.
file_typeNoRestrict results to a specific file type. Accepts a friendly name ('folder', 'document'/'doc', 'spreadsheet'/'sheet', 'presentation'/'slides', 'form', 'drawing', 'pdf', 'shortcut', 'script', 'site', 'jam'/'jamboard') or any raw MIME type string (e.g. 'application/pdf'). Defaults to None (all types).
detailedNoWhether to include size, modified time, and link in results. Defaults to True.
order_byNoSort order. Comma-separated list of sort keys with optional 'desc' modifier. Valid keys: 'createdTime', 'folder', 'modifiedByMeTime', 'modifiedTime', 'name', 'name_natural', 'quotaBytesUsed', 'recency', 'sharedWithMeTime', 'starred', 'viewedByMeTime'. Example: 'modifiedTime desc' or 'folder,modifiedTime desc,name'. Defaults to None (Drive API default ordering).
resource_typeNoWhat to list. Use "items" for folder contents or "shared_drives" for shared drive containers. Defaults to "items".items
queryNoShared drive query used only when resource_type="shared_drives", e.g. "name contains 'Engineering'".
include_organizersNoWhen resource_type="shared_drives", include principals with the organizer role. This costs one extra permissions.list API call per shared drive returned. Defaults to False.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, non-destructive, idempotent, and openWorld. The description adds useful behavioral context: scoping based on 'drive_id', listing shared drive vs item containers, and the extra API cost of 'include_organizers'. No contradictions with annotations.

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

Conciseness4/5

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

The description is concise, using three short paragraphs. It front-loads the core functionality and then adds parameter-specific guidance. Every sentence adds value, though a minor redundancy exists (mention of 'include_items_from_all_drives' appears both in the first paragraph and parameter description).

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

Completeness4/5

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

Given the presence of an output schema (not shown but indicated), the description does not need to explain return values. It covers main behaviors, including edge cases like listing shared drives with organizers. It adequately addresses the complexity of the tool with 13 parameters.

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

Parameters4/5

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

Schema coverage is 100%, setting baseline at 3. The description adds semantic context beyond schema: explains how 'folder_id' is relative when 'drive_id' is provided, and that 'drive_id' can serve as folder_id for root. These relationships are not evident from schema alone.

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

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists files/folders or shared drive containers. It distinguishes between two modes: when 'drive_id' is specified (lists within shared drive) and when not (lists from 'My Drive'). Also mentions 'resource_type' for listing shared drive containers, differentiating it from sibling tools like list_docs_in_folder or 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear guidance on when to use 'drive_id', how to handle 'folder_id' relative to drives, and the effect of 'include_items_from_all_drives'. Also explains the use of 'resource_type' and 'query' for shared drives. However, it does not explicitly state when NOT to use this tool or mention specific alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_form_responsesList Form ResponsesC
Read-onlyIdempotent

List a form's responses.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
form_idYesThe ID of the form.
page_sizeNoMaximum number of responses to return. Defaults to 10.
page_tokenNoToken for retrieving next page of results.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds no extra behavioral context beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, very concise and front-loaded. However, it might be too brief; additional context would improve it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (context indicates true), the description doesn't need to explain return values, but it omits mention of pagination (page_size, page_token) which is relevant for a list tool. Adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% description coverage for all 4 parameters. The description does not add any additional meaning beyond what is in the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists responses for a form, but does not differentiate from sibling tool get_form_response (which retrieves a single response). This is clear but lacks sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, such as get_form_response for a single response or other list tools. No exclusions or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_gmail_filtersList Gmail FiltersA
Read-onlyIdempotent

Lists all Gmail filters configured in the user's mailbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds no extra behavioral context. It does not mention rate limits, authentication needs, or potential limitations, but given annotation coverage, the description is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no wasted words. It is front-loaded and easy to parse, earning top marks for efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (list operation, one param, output schema present), the description is adequate. It covers the core purpose and the annotations/schema fill gaps. Slightly docked for not mentioning the output format, but output schema mitigates this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the one parameter (user_google_email) is self-explanatory. The description does not add meaning beyond the schema, placing it at the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Lists all Gmail filters configured in the user's mailbox' uses a specific verb 'lists' and resource 'Gmail filters', clearly identifying the tool's function. It distinguishes from sibling tools like manage_gmail_filter or list_gmail_labels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., search_gmail_messages, manage_gmail_filter). No prerequisites or context flags are mentioned, leaving the agent without usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_gmail_labelsList Gmail LabelsA
Read-onlyIdempotent

Lists all labels in the user's Gmail account.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true, so the behavioral safety profile is fully covered. The description adds no additional behavioral context beyond what annotations provide, but does not contradict them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that fully conveys the tool's purpose with no extraneous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool, the presence of comprehensive annotations, and the availability of an output schema, the description is complete enough. It covers the essential function without missing critical information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter 'user_google_email', which is well-described in the schema. The description does not add any further meaning or constraints about the parameter beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists all labels in the user's Gmail account, using a specific verb and resource. It distinguishes from sibling tools like 'manage_gmail_label' which handle create/update/delete operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives. While the name implies it's for listing, and siblings like 'manage_gmail_label' cover other actions, no direct when-to-use or when-not-to-use context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_presentation_commentsList Presentation CommentsA
Read-onlyIdempotent

List all comments from a Google Presentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes
presentation_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, openWorldHint, covering safety and idempotency. The description adds no further behavioral context (e.g., whether resolved comments are included, pagination behavior, or rate limits). With full annotation coverage, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One efficient sentence that gets straight to the point. It is appropriately concise for a straightforward list operation. However, it could be slightly improved by including a brief note about parameters without sacrificing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity and the presence of an output schema (reducing need to describe return values), the description is adequate but missing details like pagination, sorting, or whether all comments (including resolved) are listed. Annotations cover behavioral aspects, so completeness is moderate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not explain the parameters (user_google_email, presentation_id). Although the parameter names are somewhat self-explanatory, the description lacks any elaboration on their purpose or format, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and the resource 'comments' with a specific scope 'from a Google Presentation'. It distinguishes from sibling tools like manage_presentation_comment (which modifies comments) and list_document_comments (for Docs), providing unambiguous intent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives. The description implies it's for reading all comments, but does not mention that it is read-only (though annotations indicate this) or provide exclusion criteria (e.g., not for filtered queries). The guidance is implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_script_processesList Script ProcessesA
Read-onlyIdempotent

Lists recent execution processes for user's scripts.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's email address
page_sizeNoNumber of results (default: 50)
script_idNoOptional filter by script ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, which fully cover the safety profile. The description adds minimal behavioral context (e.g., 'recent' is vague, no mention of pagination or limits), so it provides some value but not significant beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that directly states the purpose with no extraneous text. It is appropriately concise for a simple list tool, though it could be slightly improved by adding brief usage context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity, presence of an output schema (not shown), and comprehensive annotations, the description is minimally adequate. However, it lacks explanation of what constitutes a 'process' or the time range for 'recent,' leaving minor gaps in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all parameters already described in the input schema (user_google_email, page_size, script_id). The description adds no additional parameter meaning, so it meets the baseline of 3 without exceeding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists recent execution processes for user's scripts. The verb 'lists' and resource 'execution processes' are specific, and it distinguishes itself from sibling tools like list_script_projects or list_versions by focusing on script executions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide guidance on when to use this tool versus alternatives, nor does it mention prerequisites or context like monitoring script runs. The purpose is clear, but the lack of usage direction keeps it from scoring higher.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_script_projectsList Script ProjectsA
Read-onlyIdempotent

Lists Google Apps Script projects accessible to the user.

Uses Drive API to find Apps Script files.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's email address
page_sizeNoNumber of results per page (default: 50)
page_tokenNoToken for pagination (optional)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this tool as read-only, idempotent, and non-destructive. The description adds context about using Drive API to find Apps Script files, which informs the agent about the underlying mechanism. No contradictions, and the additional detail justifies a score of 4.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, concise, and front-loaded with the core function. No extraneous information, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple list operation, the presence of annotations, and the output schema, the description sufficiently covers the tool's behavior. It mentions the method (Drive API) and scope (accessible to user), leaving details like pagination and output structure to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all parameters described in the schema. The description adds no additional parameter semantics beyond what the schema provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 Apps Script projects accessible to the user'. It also distinguishes from siblings like 'create_script_project' and 'get_script_project' by specifying the scope and the use of Drive API.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly provide usage guidelines or when-not-to-use scenarios. It implies usage through purpose but lacks explicit comparisons to alternatives or conditions, earning a score of 3 for clear but unstated context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sheet_tablesList Sheet TablesA
Read-onlyIdempotent

Lists all structured tables in a spreadsheet with their IDs, names, ranges, and column details. Use this to find table IDs for append_table_rows.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
spreadsheet_idYesThe ID of the spreadsheet. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare read-only, nondestructive, idempotent. Description adds that it returns specific fields (IDs, names, ranges, column details), enhancing understanding beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. Purpose and usage in first sentence, specific guidance in second. Perfectly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values are covered. Description includes all necessary context: what is listed, why use it, and prerequisite info (spreadsheet ID). Complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage 100%, but parameter descriptions are minimal ('Required.'). Description does not add extra meaning beyond the schema. Baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'lists' and specific resource 'structured tables in a spreadsheet' with details on returned fields. Ties to sibling 'append_table_rows' for context, but lacks explicit differentiation from other list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states use case: 'find table IDs for append_table_rows.' Provides context but no when-not-to-use or alternative mention.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_spacesList SpacesB
Read-onlyIdempotent

Lists Google Chat spaces (rooms and direct messages) accessible to the user.

Returns: str: A formatted list of Google Chat spaces accessible to the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes
page_sizeNo
space_typeNoall

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and idempotentHint=true, so the description is not required to repeat safety. It adds the return format (formatted list) but does not disclose any additional behavioral traits beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short with two sentences, no filler. However, it is almost too minimal, missing parameter context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters with no schema descriptions and no output schema provided in context, the description fails to explain parameter usage or output structure. For a simple list tool, it is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema description coverage, the description provides no explanation of the parameters (user_google_email, page_size, space_type). It does not help the agent understand how to fill them, relying solely on schema names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Lists' and the resource 'Google Chat spaces', including clarification of rooms and direct messages. It effectively distinguishes this from other list tools among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like search_messages or other list tools. No context about prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_spreadsheet_commentsList Spreadsheet CommentsC
Read-onlyIdempotent

List all comments from a Google Spreadsheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes
spreadsheet_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating safe read-only operation. The description adds no behavioral context beyond 'List all comments', such as whether replies are included, the output format, or rate limits. It relies entirely on annotations for safety signals.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, readable sentence. It is concise but at the expense of completeness—no additional details are included that would aid understanding. It is front-loaded but lacks structure (e.g., no separation of purpose from usage).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (not shown), the description should still provide context about what the output represents (e.g., comment IDs, threads, author info). It does not mention any filtering or sorting capabilities. The description is insufficient for an agent to fully understand the tool's behavior without inspecting the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no explanation for either parameter (user_google_email, spreadsheet_id). It does not clarify their roles, expected formats, or how they constrain the results, leaving the agent without essential context beyond the schema property names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it lists comments from a spreadsheet, providing a specific verb and resource. It clearly distinguishes from sibling tools like manage_spreadsheet_comment (which modifies comments) and list_document_comments (which targets documents). However, it does not specify if it lists comments across all sheets or only top-level.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, such as using manage_spreadsheet_comment for creating or deleting comments, or list_document_comments for other document types. The description does not mention constraints like pagination or filtering.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_spreadsheetsList SpreadsheetsA
Read-onlyIdempotent

Lists spreadsheets from Google Drive that the user has access to.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
max_resultsNoMaximum number of spreadsheets to return. Defaults to 25.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, destructiveHint, idempotentHint, openWorldHint. Description adds context about access permissions ('that the user has access to'), but does not disclose pagination, sorting, or other behavioral traits. Adequate but not rich beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded, no superfluous words. However, it could include more useful details without sacrificing conciseness. Very efficient but slightly too minimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool is simple with only two well-described parameters and an output schema present. Annotations are comprehensive. The description is complete enough for a basic list operation, though it lacks details on what 'lists' returns (e.g., metadata, IDs). Output schema likely fills that gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter has a description in the schema. Tool description does not add additional meaning beyond what's already in the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it lists spreadsheets from Google Drive that the user has access to. Specifies verb 'lists' and resource 'spreadsheets in Google Drive'. This distinguishes it from siblings like 'list_drive_items' or 'list_sheet_tables', providing clear purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. With many sibling list tools, the description does not mention scenarios or exclusions. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_task_listsList Task ListsB
Read-onlyIdempotent

List all task lists for the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
max_resultsNoMaximum number of task lists to return (default: 1000, max: 1000).
page_tokenNoToken for pagination.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint, covering safety. The description adds no further behavioral details (e.g., pagination, response structure), but the annotations lower the bar.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one sentence, seven words) and front-loaded. While efficient, it could include a bit more context without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with a good output schema and annotations, the description is functional but lacking hints about pagination or when to use sibling tools, leaving some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning beyond the schema descriptions, earning a baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list', the resource 'task lists', and the scope 'for the user', distinguishing it from siblings like 'get_task_list' (singular) and 'list_tasks' (tasks within a list).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool vs alternatives like 'get_task_list' or 'manage_task_list'. No explicit when-not-to-use or alternative mentions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tasksList TasksC
Read-onlyIdempotent

List all tasks in a specific task list.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
task_list_idYesThe ID of the task list to retrieve tasks from.
max_resultsNoMaximum number of tasks to return. (default: 20, max: 10000).
page_tokenNoToken for pagination.
show_completedNoWhether to include completed tasks (default: True). Note that show_hidden must also be true to show tasks completed in first party clients, such as the web UI and Google's mobile apps.
show_deletedNoWhether to include deleted tasks (default: False).
show_hiddenNoWhether to include hidden tasks (default: False).
show_assignedNoWhether to include assigned tasks (default: False).
completed_maxNoUpper bound for completion date (RFC 3339 timestamp).
completed_minNoLower bound for completion date (RFC 3339 timestamp).
due_maxNoUpper bound for due date (RFC 3339 timestamp).
due_minNoLower bound for due date (RFC 3339 timestamp).
updated_minNoLower bound for last modification time (RFC 3339 timestamp).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds no behavioral context beyond the annotations, missing details on parameter interactions (e.g., show_completed requires show_hidden) or pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but insufficient for a tool with 13 parameters and complex filtering options. It front-loads the purpose but lacks necessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (13 parameters, pagination, filtering), the description is incomplete. It does not mention pagination, default filters, or the behavior of show_completed in relation to show_hidden. An output schema exists but the description should still provide high-level context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are well-documented in the schema. The tool description adds no additional parameter meaning, but the baseline is appropriate given the schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'List all tasks in a specific task list' clearly specifies verb (list) and resource (tasks in a specific list), distinguishing it from sibling tools like get_task (single task) and list_task_lists (task lists). However, it does not explicitly contrast with these siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool vs. alternatives (e.g., get_task, manage_task) or any prerequisites. It is a bare statement of function.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_versionsList VersionsA
Read-onlyIdempotent

Lists all versions of a script project.

Versions are immutable snapshots of your script code. They are created when you deploy or explicitly create a version.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's email address
script_idYesThe script project ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, etc. The description adds valuable context: versions are immutable snapshots created via deployment or explicit creation. This helps the agent understand the nature of the data beyond safety hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with the main action up front. No unnecessary words, and it efficiently communicates the purpose and key characteristic (immutability).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, an output schema exists, and annotations are thorough, the description is mostly complete. It could mention ordering or pagination, but it does not hinder understanding for a list operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are described in the schema. The description does not add additional meaning to the parameters beyond what the schema provides, so it meets the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Lists all versions of a script project' with a specific verb and resource. It distinguishes from siblings like create_version and get_version by specifying 'all versions' and adding context about versions being immutable snapshots.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. It does not mention that for a specific version, use get_version, or for creation, use create_version. The description only states what it does without contextual usage advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_conditional_formattingManage Conditional FormattingC
Destructive

Manages conditional formatting rules on a Google Sheet. Supports adding, updating, and deleting conditional formatting rules via a single tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
spreadsheet_idYesThe ID of the spreadsheet. Required.
actionYesThe operation to perform. Must be one of "add", "update", or "delete".
range_nameNoA1-style range (optionally with sheet name). Required for "add". Optional for "update" (preserves existing ranges if omitted). Not used for "delete".
condition_typeNoSheets condition type (e.g., NUMBER_GREATER, TEXT_CONTAINS, DATE_BEFORE, CUSTOM_FORMULA). Required for "add". Optional for "update" (preserves existing type if omitted).
condition_valuesNoValues for the condition; accepts a list or a JSON string representing a list. Depends on condition_type. Used by "add" and "update".
background_colorNoHex background color to apply when condition matches. Used by "add" and "update".
text_colorNoHex text color to apply when condition matches. Used by "add" and "update".
rule_indexNo0-based index of the rule. For "add", optionally specifies insertion position. Required for "update" and "delete".
gradient_pointsNoList (or JSON list) of gradient points for a color scale. If provided, a gradient rule is created and boolean parameters are ignored. Used by "add" and "update".
sheet_nameNoSheet name to locate the rule when range_name is omitted. Defaults to the first sheet. Used by "update" and "delete".

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, but the description adds no further behavioral context (e.g., what gets destroyed, authentication needs, rate limits). It does not contradict annotations, but adds no value beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, front-loading the purpose and supported actions. However, it could be slightly expanded to include usage guidance without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters, multiple actions) and the existence of an output schema, the description is too minimal to provide complete context. It fails to explain the different actions beyond naming them, leaving the agent without enough information to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100%, so all parameters are documented. The description does not add extra meaning beyond what is in the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages conditional formatting on a Google Sheet and lists the supported operations (add, update, delete). It is a specific verb+resource combination, but does not explicitly differentiate from sibling tools like format_sheet_range or modify_sheet_values, though the name implies the domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, no prerequisites, and no when-not-to-use instructions. The agent receives no context for decision-making among sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_contactManage ContactA
Destructive

Create, update, or delete a contact. Consolidated tool replacing create_contact, update_contact, and delete_contact.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
actionYesThe action to perform: "create", "update", or "delete".
contact_idNoThe contact ID. Required for "update" and "delete" actions.
given_nameNoFirst name (for create/update).
family_nameNoLast name (for create/update).
phonesNoList of phone dicts {number, type?}. Supported types: mobile, work, home, main, workMobile, internal, other, etc. Use type="internal" for internal PBX/ATS short numbers (e.g. 250, 301) — stored as a standalone number without + prefix, displayed as "Internal: 250".
emailsNoList of email dicts {address, type?}.
organizationsNoList of org dicts {name?, title?, department?, jobDescription?, type?}.
nicknamesNoList of nickname dicts {value, type?}. Useful for bilingual contacts (e.g. Hebrew/English alternative forms). Android dialer and WhatsApp search both index nicknames, enabling cross-script lookup. Supported types: default, alternate_name, maiden_name, initials, other, etc.
urlsNoList of URL dicts {value, type?}. Supported types: homepage, blog, profile, work, ftp, reservations, other, etc.
user_definedNoList of custom field dicts {key, value}. Useful for structured data like account numbers, IDs, or custom dates.
relationsNoList of relation dicts {person, type?}. Supported types: spouse, child, parent, friend, manager, assistant, etc.
notesNoAdditional notes (for create/update).
addressNoStreet address (for create/update).
birthdayNoBirthday as 'YYYY-MM-DD', 'MM-DD' (no year), or 'clear'/'' to remove.
phones_modeNoHow to update phones on "update": "merge" (default), "replace", or "remove". merge = read-modify-write with dedup by canonicalForm/normalized value. replace = overwrite all phones with provided list. remove = delete phones matching provided numbers.merge
emails_modeNoHow to update emails on "update": "merge" (default), "replace", or "remove".merge
organizations_modeNoHow to update orgs on "update": "merge" (default), "replace", or "remove".merge
nicknames_modeNoHow to update nicknames on "update": "merge" (default), "replace", or "remove".merge
urls_modeNoHow to update urls on "update": "merge" (default), "replace", or "remove". merge dedups by normalized URL (lowercased, trailing slash stripped).merge
user_defined_modeNoHow to update custom fields on "update": "merge" (default), "replace", or "remove". merge overrides value on matching key; new keys appended.merge
relations_modeNoHow to update relations on "update": "merge" (default), "replace", or "remove".merge
phoneNo[DEPRECATED] Single phone number. Use phones=[{"number":..., "type":"mobile"}].
emailNo[DEPRECATED] Email address. Use emails=[{"address":..., "type":"other"}].
organizationNo[DEPRECATED] Company name. Use organizations=[{"name":...}].
job_titleNo[DEPRECATED] Job title. Use organizations=[{"title":...}].

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and idempotentHint=false, which the description aligns with. The description does not add details on side effects (e.g., atomicity, undo possibilities) but is consistent with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences convey purpose and replacement info with zero redundancy. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 26 parameters and complex mode logic, the description is extremely minimal. It does not mention the action parameter, modes (merge/replace/remove), or required fields beyond what schema provides. An output schema exists but the description still lacks context about update behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema fully documents all parameters and their meanings. The description adds no additional parameter information, meeting the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool creates, updates, or deletes contacts, and explicitly says it replaces three previous tools (create_contact, update_contact, delete_contact). This distinguishes it from sibling read-only tools like list_contacts, get_contact, or search_contacts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description mentions it is a consolidated replacement, implying it should be used for any contact mutation. It does not explicitly contrast with read-only alternatives, but the context of replacement provides clear usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_contact_groupManage Contact GroupA
Destructive

Create, update, delete a contact group, or modify its members. Consolidated tool replacing create_contact_group, update_contact_group, delete_contact_group, and modify_contact_group_members.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
actionYesThe action to perform: "create", "update", "delete", or "modify_members".
group_idNoThe contact group ID. Required for "update", "delete", and "modify_members" actions.
nameNoThe group name. Required for "create" and "update" actions.
delete_contactsNoIf True and action is "delete", also delete contacts in the group (default: False).
add_contact_idsNoContact IDs to add (for "modify_members").
remove_contact_idsNoContact IDs to remove (for "modify_members").

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description lists the four actions (create, update, delete, modify_members), which aligns with the annotations (destructiveHint=true, readOnlyHint=false). It adds context about the scope of operations beyond annotations, but does not detail side effects or authorization needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences that front-load the purpose and consolidation, with zero wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and 100% parameter coverage, the description is sufficiently complete for a consolidated tool. It covers all actions and indicates replacement of previous tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already provides parameter meanings. The description does not add extra semantic value beyond grouping the actions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: Create, update, delete a contact group, or modify its members. It also explicitly mentions that it is a consolidated replacement for four previous tools, distinguishing it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates that this tool replaces create_contact_group, update_contact_group, delete_contact_group, and modify_contact_group_members, providing clear context for when to use it. However, it does not explicitly contrast with other manage_* tools like manage_contact or manage_contacts_batch, which might be siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_contacts_batchManage Contacts BatchA
Destructive

Batch create, update, or delete contacts. Consolidated tool replacing batch_create_contacts, batch_update_contacts, and batch_delete_contacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
actionYesThe action to perform: "create", "update", or "delete".
contactsNoList of contact dicts for "create" action. Each dict may contain: given_name, family_name, phones, emails, organizations, notes, address. Deprecated: phone, email, organization, job_title.
updatesNoList of update dicts for "update" action. Each dict must contain contact_id and may contain the same fields as contacts.
contact_idsNoList of contact IDs for "delete" action.
fieldNoFor "update" action — the single People API field to update across all contacts in this batch. Required. Must be one of: names, phoneNumbers, emailAddresses, organizations, nicknames, urls, userDefined, relations, biographies, addresses, birthdays. Using a single field per batch call prevents unintentional data loss from a union updateMask overwriting unrelated fields.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=false and destructiveHint=true, indicating mutation and potential deletion. The description confirms the actions (create, update, delete) but adds no new behavioral context beyond the annotations. With annotations present, a score of 3 is appropriate as the description adds marginal value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently communicates the tool's purpose and distinguishes it from predecessors. Every word serves a purpose, with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 6 parameters, 3 actions, and nested schemas, the description is minimal. It does not explain batch behavior, which parameters to use for each action, or error conditions. However, the presence of a comprehensive input schema and output schema reduces the burden on the description, making a score of 3 adequate but not exceptional.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add meaning beyond what the schema already provides for parameters. It does not explain the relationship between 'action' and the other parameters (contacts, updates, contact_ids), nor does it specify format or constraints beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs batch create, update, or delete on contacts, and explicitly distinguishes it from siblings by noting it replaces three separate batch tools (batch_create_contacts, batch_update_contacts, batch_delete_contacts).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. While it mentions replacing the three batch tools, it does not explain when to prefer this over the singular manage_contact or search_contacts, nor does it specify prerequisites or context for each action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_deploymentManage DeploymentB
Destructive

Manages Apps Script deployments. Supports creating, updating, and deleting deployments.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's email address
actionYesAction to perform - "create", "update", or "delete"
script_idYesThe script project ID
deployment_idNoThe deployment ID (required for update and delete)
descriptionNoDeployment description (required for create and update)
version_descriptionNoOptional version description (for create only)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already indicate destructiveHint=true, implying mutation. The description aligns by listing create, update, delete but adds no extra behavioral context (e.g., irreversible changes, permission requirements). Meets minimum but contributes little beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the tool's purpose. It is not overly verbose, though it could front-load the action types for quicker comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a CRUD tool with 6 parameters, the description is minimal. It omits details on return values (though output schema exists) and prerequisites. Adequate but leaves gaps for an agent to fully understand usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter. The description does not add meaning beyond the schema, e.g., explaining the action values or required conditions. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages Apps Script deployments and lists three CRUD actions (create, update, delete). It is specific about the resource and verb, though it does not explicitly differentiate from sibling tools like list_deployments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as list_deployments or create_version. The description does not mention prerequisites, contexts, or when to avoid using the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_doc_tabManage Doc TabB
Destructive

Manage document tabs: create, rename, delete, or populate from Markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's Google email address
document_idYesID of the document
actionYesAction to perform - "create", "rename", "delete", or "populate_from_markdown"
tab_idNoTab ID (required for rename, delete, populate_from_markdown; use inspect_doc_structure to find IDs)
titleNoTab title (required for create; used by rename)
indexNoPosition index for new tab, 0-based among siblings (required for create)
parent_tab_idNoOptional parent tab ID to nest under (create only)
markdown_textNoMarkdown source to render (populate_from_markdown only)
replace_existingNoClear tab body before inserting markdown (default True)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true. The description adds the 'populate from Markdown' action but does not disclose other behavioral aspects like reversibility or required permissions. Some additional context is provided but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the key action and lists specific behaviors. It is concise and wastes no words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 9 parameters and 4 actions, the description is too brief. It does not explain return values, prerequisites (like using inspect_doc_structure for tab_id), or overall process. The output schema exists but is not referenced.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the tool description adds no additional meaning beyond the schema's parameter descriptions. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'manage' and specific actions (create, rename, delete, populate_from_markdown) on 'document tabs', distinguishing it from sibling tools like create_doc or get_doc_content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide guidance on when to use this tool versus alternatives, nor does it mention when not to use it. It only lists actions without contextual usage conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_document_commentManage Document CommentA

Manage comments on a Google Document.

Actions:

  • create: Create a new document-level comment. Requires comment_content. Note: The Drive API cannot anchor comments to specific text; only the Google Docs UI can do that.

  • reply: Reply to a comment. Requires comment_id and comment_content.

  • resolve: Resolve a comment. Requires comment_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes
document_idYes
actionYes
comment_contentNo
comment_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate the tool is not read-only, not destructive, and not idempotent. The description adds behavioral context by explaining the actions and the limitation about text anchoring. It does not detail further side effects (e.g., notifications), but it provides useful behavioral constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured with bullet points for each action. Every sentence adds value, and there is no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the moderate complexity (5 params, 0% schema coverage) and existence of output schema, the description covers the essential parameter dependencies and behavioral nuances. It could mention that comments are document-level only, but overall it is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description adds value by explaining parameter dependencies: comment_content is needed for create/reply, comment_id for reply/resolve. It clarifies that comment_content is required for create, though schema marks it optional with default null. This adds meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly defines the tool as managing comments on a Google Document, listing three specific actions (create, reply, resolve). It distinguishes from sibling tools like manage_presentation_comment and manage_spreadsheet_comment by specifying 'document-level comment'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use each action and required parameters (e.g., comment_content for create/reply, comment_id for reply/resolve). It also notes a limitation (Drive API cannot anchor comments to text). However, it does not explicitly state when not to use this tool (e.g., for text-anchored comments).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_drive_accessManage Drive AccessA
Destructive

Consolidated tool for managing Google Drive file and folder access permissions.

Supports granting, batch-granting, updating, revoking permissions, and transferring file ownership -- all through a single entry point.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
file_idYesThe ID of the file or folder. Required.
actionYesThe access management action to perform. Required. One of: - "grant": Share with a single user, group, domain, or anyone. - "grant_batch": Share with multiple recipients in one call. - "update": Modify an existing permission (role or expiration). - "revoke": Remove an existing permission. - "transfer_owner": Transfer file ownership to another user.
share_withNoEmail address (user/group), domain name (domain), or omit for 'anyone'. Used by "grant".
roleNoPermission role -- 'reader', 'commenter', or 'writer'. Used by "grant" (defaults to 'reader') and "update".
share_typeNoType of sharing -- 'user', 'group', 'domain', or 'anyone'. Used by "grant". Defaults to 'user'.user
permission_idNoThe permission ID to modify or remove. Required for "update" and "revoke" actions.
recipientsNoList of recipient objects for "grant_batch". Each should have: email (str), role (str, optional), share_type (str, optional), expiration_time (str, optional). For domain shares use 'domain' field instead of 'email'.
send_notificationNoWhether to send notification emails. Defaults to True. Used by "grant" and "grant_batch".
email_messageNoCustom notification email message. Used by "grant" and "grant_batch".
expiration_timeNoExpiration in RFC 3339 format (e.g., "2025-01-15T00:00:00Z"). Used by "grant" and "update".
allow_file_discoveryNoFor 'domain'/'anyone' shares, whether the file appears in search. Used by "grant".
new_owner_emailNoEmail of the new owner. Required for "transfer_owner".
move_to_new_owners_rootNoMove file to the new owner's My Drive root. Defaults to False. Used by "transfer_owner".

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false, so the description's mention of 'managing' permissions adds no new behavioral context. Does not disclose side effects like notification sending, ownership transfer implications, or that changes are immediate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundant information. Directly states the tool's purpose and supported actions without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high parameter count (14) and existence of output schema, the description provides a sufficient overview of the tool's capabilities. It could mention the required fields (user_google_email, file_id) but those are already in the schema. Overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description does not need to re-explain parameters. It adds no additional parameter meaning beyond the schema, which is acceptable per baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it's a consolidated tool for managing Drive permissions, listing specific actions (grant, batch-grant, update, revoke, transfer ownership). The verb 'manage' combined with resource 'access permissions' and the list of actions makes it distinct from sibling tools like 'set_drive_file_permissions' 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies it is the single entry point for permission management, but does not explicitly state when to use this vs other tools (e.g., 'set_drive_file_permissions' for simple single permission changes). No exclusion criteria or alternative tool mentions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_eventManage EventB
Destructive

Manages calendar events. Supports creating, updating, deleting, and RSVP.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
actionYesAction to perform - "create", "update", "delete", or "rsvp".
summaryNoEvent title (required for create).
start_timeNoStart time in RFC3339 format (required for create).
end_timeNoEnd time in RFC3339 format (required for create).
event_idNoEvent ID (required for update and delete).
calendar_idNoCalendar ID (default: 'primary').primary
descriptionNoEvent description.
locationNoEvent location.
attendeesNoAttendee email addresses or objects.
timezoneNoTimezone (e.g., "America/New_York").
attachmentsNoList of Google Drive file URLs or IDs to attach.
add_google_meetNoWhether to add/remove Google Meet.
remindersNoCustom reminder objects.
use_default_remindersNoWhether to use default reminders.
transparencyNo"opaque" (busy) or "transparent" (free).
visibilityNo"default", "public", "private", or "confidential".
color_idNoEvent color ID (1-11, update only).
recurrenceNoRFC5545 recurrence rules for a recurring event, e.g. ["RRULE:FREQ=WEEKLY;COUNT=10"].
guests_can_modifyNoWhether attendees can modify.
guests_can_invite_othersNoWhether attendees can invite others.
guests_can_see_other_guestsNoWhether attendees can see other guests.
responseNoRSVP response — "accepted", "declined", "tentative", or "needsAction" (rsvp action only).
rsvp_commentNoOptional message to include with the RSVP response (rsvp action only).
send_updatesNoNotification behavior for create, update, delete, and rsvp — "all" (default), "externalOnly", or "none".

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive behavior (destructiveHint=true) and non-read-only. The description adds only the action list, with no extra context about deletion permanence, permission needs, or rate limits. Minimal added value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with a clean list of actions. It is front-loaded and efficient, though it could slightly expand on usage without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 25 parameters, multiple actions, and an output schema, the description is too minimal. It omits per-action parameter requirements, return information, and constraints like the 'user_google_email' being required. Inadequate for full context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 25 parameters. The description adds no further parameter meaning or relationships (e.g., required params per action). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages calendar events and lists the specific actions: creating, updating, deleting, and RSVP. This provides a specific verb+resource and distinguishes it from sibling tools like 'get_events' (read-only).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists supported actions but lacks explicit when-to-use guidance or alternatives. It implies use for mutations on events, but no mention of when to use other tools like 'get_events' or constraints. Adequate but could be improved.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_focus_timeManage Focus TimeA
Destructive

Manages Focus Time events on Google Calendar. These special events auto-decline meeting invitations and, by default, set the user's chat status to Do Not Disturb, helping protect blocks of uninterrupted work time.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
actionYesAction to perform - "create", "list", "update", or "delete".
start_timeNoStart date/time. Use 'YYYY-MM-DD' for full-day or RFC3339 for partial-day (e.g., '2024-04-05T09:00:00Z'). Date-only values are auto-converted to dateTime (midnight-to-midnight). Required for create.
end_timeNoEnd date/time (exclusive). Same format as start_time. For a single full day on April 5, use start_time='2026-04-05' and end_time='2026-04-06'. Required for create.
summaryNoDisplay text on the calendar. Defaults to "Focus Time".
descriptionNoEvent description. Useful for adding context about what the focus time is for.
auto_decline_modeNoHow to handle conflicting invitations. One of: "declineAllConflictingInvitations" (default), "declineOnlyNewConflictingInvitations", "declineNone".
decline_messageNoMessage included when auto-declining invitations.
chat_statusNoGoogle Chat status during the focus time. Supports "doNotDisturb" (default) and "available".
recurrenceNoRFC5545 recurrence rules for a recurring Focus Time series, e.g. ["RRULE:FREQ=WEEKLY;COUNT=10"].
timezoneNoTimezone for the event (e.g., "America/New_York", "Europe/London"). Required when using date-only values or dateTime values without an explicit UTC offset.
time_minNoFor "list" action: start of time range. Defaults to current time. Recurring series are expanded into individual instances in the requested range.
time_maxNoFor "list" action: end of time range.
max_resultsNoFor "list" action: maximum events to return. Defaults to 10.
event_idNoEvent ID. Required for "update" and "delete" actions.
calendar_idNoCalendar ID. Defaults to 'primary'. Focus Time status events live on primary calendars, so use 'primary' or a user's primary calendar ID/email rather than a secondary calendar ID.primary

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that Focus Time events auto-decline invitations and set Chat status to DND, adding context beyond annotations (destructiveHint=true). It does not contradict any annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose and unique behavior. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the special behaviors well. Could mention the required parameters or actions briefly, but overall sufficient given the rich schema and output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds no per-parameter detail but provides useful context about the nature of Focus Time events.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages Focus Time events on Google Calendar, and explains the unique behavior of auto-declining meetings and setting Do Not Disturb. This distinguishes it from sibling tools like manage_event or manage_out_of_office.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs. alternatives like manage_event. The description does not provide when-not-to-use or trade-offs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_gmail_filterManage Gmail FilterB
Destructive

Manages Gmail filters. Supports creating and deleting filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
actionYesAction to perform - "create" or "delete".
criteriaNoFilter criteria object (required for create).
filter_actionNoFilter action object (required for create). Named 'filter_action' to avoid shadowing the 'action' parameter.
filter_idNoID of the filter to delete (required for delete).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false, so the agent knows mutations are involved. The description does not add beyond this, such as effect on existing filters or permissions needed. With annotations providing base safety info, a score of 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no extraneous information. Front-loaded with the verb and actions. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is minimal. An output schema exists (not shown) which may cover return values. However, for a tool with multiple actions and parameters, more details like required parameters for each action could help. Schema partially compensates. Score reflects moderate completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, meaning all parameters are described in the schema. The description adds minimal value, only stating 'supports creating and deleting' but not mapping which parameters correspond to each action. The schema itself does this mapping. Baseline of 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages Gmail filters and supports creating and deleting. The verb 'manages' is slightly generic, but combined with the specifics it is clear. It distinguishes from sibling tools like 'list_gmail_filters' which is read-only.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. For example, it does not mention that listing filters should be done with 'list_gmail_filters', or any prerequisites like authentication. The agent is left without context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_gmail_labelManage Gmail LabelB
Destructive

Manages Gmail labels: create, update, or delete labels.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
actionYesAction to perform on the label.
nameNoLabel name. Required for create, optional for update.
label_idNoLabel ID. Required for update and delete operations.
label_list_visibilityNoWhether the label is shown in the label list.labelShow
message_list_visibilityNoWhether the label is shown in the message list.show

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey readOnlyHint=false and destructiveHint=true, so the description's mention of 'delete' adds minimal new behavioral insight. It does not expand on what gets destroyed, permission requirements, or side effects, but it does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the core purpose. It is appropriately sized with no wasted words, though a bit more detail could be included without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, destructive actions, output schema exists), the description lacks completeness. It does not mention return values, error conditions, or permanent effects of deletion, leaving an agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds no extra meaning beyond what the input schema already provides for each parameter. It simply restates the action enum and the overall purpose, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages Gmail labels with create, update, or delete actions. It uses a specific verb+resource pattern and distinguishes from siblings like list_gmail_labels (listing only) and modify_gmail_message_labels (modifying labels on messages).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as list_gmail_labels for viewing labels or manage_gmail_filter for filter operations. It lacks prerequisites, context, or when-not-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_out_of_officeManage Out of OfficeA
Destructive

Manages Out of Office events on Google Calendar. These special events auto-decline meeting invitations and set the user's status to "Out of office" across Google Workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
actionYesAction to perform - "create", "list", "update", or "delete".
start_timeNoStart date/time. Use 'YYYY-MM-DD' for full-day or RFC3339 for partial-day (e.g., '2024-04-05T09:00:00Z'). Date-only values are auto-converted to dateTime (midnight-to-midnight). Required for create.
end_timeNoEnd date/time (exclusive). Same format as start_time. For a single full day on April 5, use start_time='2026-04-05' and end_time='2026-04-06'. Required for create.
summaryNoDisplay text on the calendar. Defaults to "Out of Office".
auto_decline_modeNoHow to handle conflicting invitations. One of: "declineAllConflictingInvitations" (default), "declineOnlyNewConflictingInvitations", "declineNone".
decline_messageNoMessage included when auto-declining invitations.
recurrenceNoRFC5545 recurrence rules for a recurring Out of Office series, e.g. ["RRULE:FREQ=WEEKLY;COUNT=10"].
timezoneNoTimezone for the event (e.g., "America/New_York", "Europe/London"). Required when using date-only values or dateTime values without an explicit UTC offset.
time_minNoFor "list" action: start of time range. Defaults to current time. Recurring series are expanded into individual instances in the requested range.
time_maxNoFor "list" action: end of time range.
max_resultsNoFor "list" action: maximum events to return. Defaults to 10.
event_idNoEvent ID. Required for "update" and "delete" actions.
calendar_idNoCalendar ID. Defaults to 'primary'. Out of Office status events live on primary calendars, so use 'primary' or a user's primary calendar ID/email rather than a secondary calendar ID.primary

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint and not readOnly. The description adds context about auto-declining invitations and setting status across Google Workspace, which enriches understanding of side effects beyond the annotation flags.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences with no filler, directly conveying the tool's purpose and key behavior. Every part contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (14 parameters, CRUD actions, special OOO behavior), the description is somewhat minimal. It does not mention the supported actions (create, list, update, delete) or recurring events, though these are covered in schema. With rich annotations and full schema coverage, the description is barely adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so descriptions in the schema already document each parameter. The tool description does not add further semantic value beyond what's in the schema, earning a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Manages Out of Office events on Google Calendar' with specific behavior of auto-declining and setting status. It distinguishes from sibling calendar tools like manage_event and create_calendar by focusing on OOO events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for Out of Office events but does not explicitly state when to use this tool versus alternatives like manage_event or focus_time. No when-not-to-use or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_presentation_commentManage Presentation CommentA

Manage comments on a Google Presentation.

Actions:

  • create: Create a new comment. Requires comment_content. Note: The Drive API cannot anchor comments to arbitrary text; Slides comments are element-scoped via the API.

  • reply: Reply to a comment. Requires comment_id and comment_content.

  • resolve: Resolve a comment. Requires comment_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes
presentation_idYes
actionYes
comment_contentNo
comment_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds the behavioral note that Slides comments are element-scoped via the API, which is valuable beyond annotations. However, it does not disclose potential side effects (e.g., email notifications) or permission requirements, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a one-sentence introduction followed by a bullet list of actions with requirements. Every sentence adds value, with no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, 0% schema coverage, and an output schema (not shown), the description covers actions and basic requirements but omits details like return values, how to specify an element for comments, and the effect of 'resolve' (e.g., is it reversible?). The note about element-scoping helps but incomplete for precise agent usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description partially compensates by linking each action to required parameters (comment_content, comment_id). However, it does not explain the purpose of user_google_email or presentation_id, nor the format of comment_content or comment_id, leaving ambiguity for those parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages comments on a Google Presentation, and lists specific actions (create, reply, resolve). This distinguishes it from sibling tools like manage_document_comment (for Docs) and manage_spreadsheet_comment (for Sheets), making the tool's scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly guide when to use this tool vs alternatives (e.g., manage_document_comment). It implies usage for Slides comments via the note about element-scoping, but no direct comparison or context for choosing this tool over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_spreadsheet_commentManage Spreadsheet CommentA

Manage comments on a Google Spreadsheet.

Actions:

  • create: Create a new comment. Requires comment_content. Note: The Drive API cannot anchor comments to arbitrary text; Sheets comments are cell-scoped via the API.

  • reply: Reply to a comment. Requires comment_id and comment_content.

  • resolve: Resolve a comment. Requires comment_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes
spreadsheet_idYes
actionYes
comment_contentNo
comment_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate mutating (readOnlyHint=false) and open-world effects. The description adds context: actions are cell-scoped via Drive API, cannot anchor to arbitrary text. This clarifies behavior beyond annotations, though it does not detail side effects like notifications or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: title, then bulleted actions with requirements. Every sentence adds value with no redundancy. Ideal length for quick parsing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, 3 actions, and existing output schema, the description covers actions and key parameter constraints. It mentions the cell-scoped limitation. It doesn't explain return value (output schema handles that) or error handling, but is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must explain parameters. It explains action, comment_content, and comment_id with required conditions, but user_google_email and spreadsheet_id are not described. While spreadsheet_id may be obvious, the description could be more thorough.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages comments on a Google Spreadsheet with three specific actions (create, reply, resolve). It distinguishes from sibling tools like list_spreadsheet_comments (listing) and manage_document_comment (for Docs), making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for managing comments but does not explicitly compare to alternatives (e.g., list_spreadsheet_comments for reading, or other sheet tools). It lacks guidance on when not to use or prerequisites, relying on inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_taskManage TaskA
Destructive

Manage tasks: create, update, delete, or move tasks within task lists.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
actionYesThe action to perform. Must be one of: "create", "update", "delete", "move".
task_list_idYesThe ID of the task list. Required for all actions.
task_idNoThe ID of the task. Required for "update", "delete", and "move" actions.
titleNoThe title of the task. Required for "create", optional for "update".
notesNoNotes/description for the task. Used by "create" and "update" actions.
statusNoTask status ("needsAction" or "completed"). Used by "update" action.
dueNoDue date in RFC 3339 format (e.g., "2024-12-31T23:59:59Z"). Used by "create" and "update" actions.
parentNoParent task ID (for subtasks). Used by "create" and "move" actions.
previousNoPrevious sibling task ID (for positioning). Used by "create" and "move" actions.
destination_task_listNoDestination task list ID (for moving between lists). Used by "move" action.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already indicate destructiveHint=true (mutating operations) and openWorldHint=true (side effects). The description adds the specific actions (create, update, delete, move), which aligns with the destructive hint. However, it does not elaborate on side effects or irreversibility, but the annotations carry that burden. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that conveys the core purpose without redundant words. It is concise and front-loaded with the key information (actions and resource). Every part serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having a complex multi-action tool with 11 parameters and an output schema, the description is minimal. It does not explain parameter usage per action, required combinations, or any nuances. The output schema exists but the description does not leverage it to provide context. For a tool with this complexity, more guidance is needed for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for all 11 parameters. The description does not add any additional meaning beyond what the schema already provides. Per the calibration, when schema coverage is high, baseline score is 3, and the description does not compensate further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool manages tasks with specific actions: create, update, delete, or move. This clearly identifies the resource (tasks) and the operations, distinguishing it from sibling tools like list_tasks (read-only) and manage_task_list (manages task lists, not tasks themselves).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. For example, there is no mention that for reading tasks one should use get_task or list_tasks, or that for managing task lists one should use manage_task_list. The description does not specify prerequisites or when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_task_listManage Task ListA
Destructive

Manage task lists: create, update, delete, or clear completed tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
actionYesThe action to perform. Must be one of: "create", "update", "delete", "clear_completed".
task_list_idNoThe ID of the task list. Required for "update", "delete", and "clear_completed" actions.
titleNoThe title for the task list. Required for "create" and "update" actions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true. Description clarifies the specific destructive actions (delete, clear completed) and non-destructive ones (create, update). No additional behavioral context beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence efficiently conveys the core actions. No superfluous information, front-loaded with the verb 'Manage' and listed operations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Has output schema, so return values need not be described. However, lacks context about required parameters (e.g., user_google_email) or prerequisites. Adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all parameters. The tool description adds no new parameter information beyond stating the actions. Meets baseline but does not enhance semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages task lists with specific actions: create, update, delete, or clear completed tasks. This distinguishes it from sibling tools like list_task_lists (read-only) and get_task_list (single retrieval).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives. Does not mention that for reading tasks, get_task_list or list_task_lists should be used, nor any prerequisites like authorization.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

modify_doc_textModify Doc TextA
Destructive

Modifies text in a Google Doc - can insert/replace text and/or apply formatting in a single operation.

TIP: To append text to the end of the document without calculating indices, set end_of_segment=true. This avoids index calculation errors.

For ordinary header/footer text, prefer update_doc_headers_footers. Only pass segment_id when you already have a real header/footer/footnote segment ID from inspect_doc_structure output. Do not guess IDs such as "kix.header" or "kix.footer".

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's Google email address
document_idYesID of the document to update
start_indexYesStart position for operation using Docs API indices from inspect_doc_structure. For the main body, 0 is also accepted as an alias for the first writable position.
end_indexNoEnd position for text replacement/formatting (if not provided with text, text is inserted)
textNoNew text to insert or replace with (optional - can format existing text without changing it)
tab_idNoOptional document tab ID to target
segment_idNoOptional header/footer/footnote segment ID to target
end_of_segmentNoInsert text at the end of the targeted segment instead of start_index
boldNoWhether to make text bold (True/False/None to leave unchanged)
italicNoWhether to make text italic (True/False/None to leave unchanged)
underlineNoWhether to underline text (True/False/None to leave unchanged)
strikethroughNoWhether to strike through text (True/False/None to leave unchanged)
font_sizeNoFont size in points
font_familyNoFont family name (e.g., "Arial", "Times New Roman")
font_weightNoFont weight (100-900 in steps of 100; requires font_family)
text_colorNoForeground text color (#RRGGBB)
background_colorNoBackground/highlight color (#RRGGBB)
link_urlNoHyperlink URL (http/https)
clear_linkNoRemove hyperlink from the target range
baseline_offsetNoOne of NONE, SUPERSCRIPT, SUBSCRIPT
small_capsNoWhether to apply small caps

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds valuable context: the operation can both change text and apply formatting in one call, explains index behavior (start_index accepts 0 as alias), and warns against guessing segment IDs. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three short paragraphs: purpose, a tip for efficient usage, and a warning about segment_id. Every sentence adds value without unnecessary detail. Front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 21 parameters and an output schema, the description covers essential usage patterns, common pitfalls (index errors), and cross-references sibling tools. It doesn't explain the return value, but the output schema handles that. Could mention auth prerequisites, but overall complete for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaning beyond the schema: clarifies that start_index can be 0 for the first writable position, end_of_segment avoids index calculation, and segment_id must come from inspect_doc_structure. It also clarifies how end_index and text interact (insert vs replace).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool modifies text in a Google Doc with two core capabilities (insert/replace text and apply formatting). It distinguishes from the sibling tool update_doc_headers_footers by advising that tool for ordinary header/footer text, and highlights the append behavior via end_of_segment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: when to use end_of_segment to avoid index errors, to prefer update_doc_headers_footers for headers/footers, and to only pass segment_id from inspect_doc_structure output, not guessed IDs. This helps the agent choose appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

modify_gmail_message_labelsModify Gmail Message LabelsA
Destructive

Adds or removes labels from a Gmail message. To archive an email, remove the INBOX label. To delete an email, add the TRASH label.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
message_idYesThe ID of the message to modify.
add_label_idsNoList of label IDs to add to the message.
remove_label_idsNoList of label IDs to remove from the message.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive hints (destructiveHint: true). The description adds behavioral context by explaining how to archive (remove INBOX) and delete (add TRASH). This goes beyond annotations without contradicting them. It could disclose more about authorization requirements or error handling, but what is provided is helpful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences plus two bullet-point examples. It front-loads the core action and adds no extraneous information. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (modify labels on a single message) and the description, combined with schema annotations and presence of an output schema, covers the essentials. It could mention what happens with invalid label IDs, but for typical use, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with descriptions for each parameter. The description adds value by providing concrete examples (archive, delete) that illustrate how to use add_label_ids and remove_label_ids effectively. This goes beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Adds or removes labels from a Gmail message,' clearly stating the verb and resource. It provides specific examples (archive and delete) that distinguish it from sibling tools like 'manage_gmail_label' or 'batch_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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit context for use (adding/removing labels) and even suggests common tasks (archive by removing INBOX, delete by adding TRASH). However, it does not mention when not to use this tool versus alternatives like 'manage_gmail_label' for label management or 'batch_modify_gmail_message_labels' for multiple messages.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

modify_sheet_valuesModify Sheet ValuesB
Destructive

Modifies values in a specific range of a Google Sheet - can write, update, or clear values.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
spreadsheet_idYesThe ID of the spreadsheet. Required.
range_nameYesThe range to modify (e.g., "Sheet1!A1:D10", "A1:D10"). Required.
valuesNo2D array of values to write/update. Can be a JSON string or Python list. Required unless clear_values=True.
value_input_optionNoHow to interpret input values ("RAW" or "USER_ENTERED"). Defaults to "USER_ENTERED".USER_ENTERED
clear_valuesNoIf True, clears the range instead of writing values. Defaults to False.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true. The description adds that it can write, update, or clear values, but does not explain overwrite behavior or that the entire range is replaced. This is marginal additional context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence that front-loads the action, with no wasted words. It is appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core function but lacks usage guidelines, prerequisites (e.g., edit permissions), and behavioral details like dimension matching. With output schema present, return values are handled, but more context is needed for safe usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The description does not add significant meaning beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it modifies values in a specific range of a Google Sheet and lists operations: write, update, or clear. It implicitly distinguishes from siblings like read_sheet_values and append_table_rows, but could be more explicit about replacing versus appending.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like read_sheet_values or append_table_rows. Given the large set of sibling tools, explicit usage context is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_sheet_rowsMove Sheet RowsA
Destructive

Moves rows from one sheet to another within the same spreadsheet. The move is performed in a single batchUpdate (copyPaste followed by deleteDimension). Note: batchUpdate executes requests sequentially but does not roll back on partial failure — if the copy succeeds but the delete fails, rows may be duplicated. Formulas, data types, and formatting are preserved (unlike a values.get/append round-trip). Row numbers are 1-based (matching the spreadsheet UI).

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
spreadsheet_idYesThe ID of the spreadsheet. Required.
source_sheetYesName of the sheet to move rows from. Required.
start_rowYesFirst row to move (1-based, inclusive). Required.
end_rowYesLast row to move (1-based, inclusive). Required.
destination_sheetYesName of the sheet to move rows to. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds critical details beyond annotations: explains sequential execution without rollback, risk of duplication, and data preservation. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two focused sentences plus a note. No wasted words, purpose stated first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all essential aspects: intent, mechanism, failure mode, data preservation, and row indexing. Output schema exists for return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with detailed descriptions. Description adds no new parameter meaning beyond reiterating 1-based row numbering already in schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool moves rows between sheets in the same spreadsheet. It distinguishes from sibling tools like modify_sheet_values or format_sheet_range by specifying a distinct operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides useful context on batchUpdate behavior, non-rollback on partial failure, and preservation of formulas/formatting compared to value get/append. However, lacks explicit when-to-use versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

query_freebusyQuery FreebusyC
Read-onlyIdempotent

Returns free/busy information for a set of calendars.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
time_minYesThe start of the interval for the query in RFC3339 format (e.g., '2024-05-12T10:00:00Z' or '2024-05-12').
time_maxYesThe end of the interval for the query in RFC3339 format (e.g., '2024-05-12T18:00:00Z' or '2024-05-12').
calendar_idsNoList of calendar identifiers to query. If not provided, queries the primary calendar. Use 'primary' for the user's primary calendar or specific calendar IDs obtained from `list_calendars`.
group_expansion_maxNoMaximum number of calendar identifiers to be provided for a single group. Optional. An error is returned for a group with more members than this value. Maximum value is 100.
calendar_expansion_maxNoMaximum number of calendars for which FreeBusy information is to be provided. Optional. Maximum value is 50.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description repeats basic function without adding behavioral context beyond annotations. Annotations already indicate read-only, idempotent, non-destructive, open-world. No additional traits disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, very concise. Could be improved with additional structure, but not verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, but description lacks details on behavior with multiple calendars, time ranges, or parameter interactions. For a tool with 6 parameters, more context would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well-documented in schema. Description adds no extra meaning beyond what's in the schema, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns free/busy information for calendars, using a specific verb and resource. However, it does not distinguish from sibling tools like get_events that also deal with calendar data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., get_events). No explicit context about when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_sheet_valuesRead Sheet ValuesA
Read-onlyIdempotent

Reads values from a specific range in a Google Sheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
spreadsheet_idYesThe ID of the spreadsheet. Required.
range_nameNoThe range to read (e.g., "Sheet1!A1:D10", "A1:D10"). Defaults to "A1:Z1000".A1:Z1000
include_hyperlinksNoIf True, also fetch hyperlink metadata for the range. Defaults to False to avoid expensive includeGridData requests.
include_notesNoIf True, also fetch cell notes for the range. Defaults to False to avoid expensive includeGridData requests.
include_formulasNoIf True, also fetch raw formula strings for cells that contain formulas. Useful for identifying cross-sheet references before writing back to a range. Defaults to False to avoid an extra API request.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, etc. Description adds no extra behavioral context beyond what annotations provide. Not contradictory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with core action. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given existing output schema and thorough parameter descriptions, the minimal description is adequate for a straightforward read tool. Missing mention of return format, but schema compensates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. Tool description adds no additional parameter meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'reads' and resource 'values from a specific range in a Google Sheet'. It clearly distinguishes from sibling modification tools like modify_sheet_values.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implicitly clear from name and parameters, but no explicit guidance on when to use vs alternatives like get_spreadsheet_info. Lacks when-not-to-use or sibling differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resize_sheet_dimensionsResize Sheet DimensionsA
Destructive

Manages sheet-level dimension properties: resize columns/rows, auto-resize to fit content, freeze rows/columns, hide/unhide rows/columns, and insert/delete rows/columns.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
spreadsheet_idYesThe ID of the spreadsheet. Required.
sheet_nameNoSheet name to target. Defaults to the first sheet if not provided.
column_sizesNoDict mapping column letters to pixel widths. Example: {"A": 200, "C": 300}. Can be a JSON string or Python dict.
row_sizesNoDict mapping 1-based row numbers to pixel heights. Example: {"1": 40, "3": 60}. Can be a JSON string or Python dict.
auto_resize_columnsNoList of column letters to auto-resize to fit content. Example: ["A", "B"].
auto_resize_rowsNoList of 1-based row numbers to auto-resize to fit content. Example: [1, 2].
frozen_row_countNoNumber of rows to freeze from the top. Use 0 to unfreeze all rows.
frozen_column_countNoNumber of columns to freeze from the left. Use 0 to unfreeze all columns.
hide_columnsNoList of column letters to hide. Example: ["C", "D"].
unhide_columnsNoList of column letters to unhide. Example: ["C", "D"].
hide_rowsNoList of 1-based row numbers to hide. Example: [3, 4].
unhide_rowsNoList of 1-based row numbers to unhide. Example: [3, 4].
insert_rowsNoNumber of rows to insert.
insert_rows_atNo1-based row number to insert before. Appends to the end of the sheet if omitted.
insert_columnsNoNumber of columns to insert.
insert_columns_atNoColumn letter to insert before (e.g. "C"). Appends to the end if omitted.
delete_rowsNoList of 1-based row numbers to delete. Example: [5, 6]. Best for non-contiguous rows.
delete_row_rangeNoContiguous range of rows to delete, as "start:end" (1-based, inclusive). Example: "5:10" deletes rows 5 through 10. More efficient than delete_rows for large contiguous ranges.
delete_columnsNoList of column letters to delete. Example: ["E", "F"].

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a write operation (readOnlyHint=false), destructive (destructiveHint=true), and not idempotent. The description adds specific behaviors such as resizing, freezing, hiding, and inserting/deleting rows/columns, which provides useful context beyond annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that lists all operations. It is concise and front-loads the purpose, but could be improved by grouping operations into categories for better readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high parameter count and multiple operation types, the description covers the main functionality but lacks details on parameter interactions (e.g., combining operations) or execution order. An output schema exists, so return values are likely documented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add significant meaning beyond the schema; it only lists operation types. Parameter descriptions in the schema are already detailed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages sheet-level dimension properties with specific verbs like resize, auto-resize, freeze, hide/unhide, insert/delete. It distinguishes from siblings that handle data (e.g., modify_sheet_values) or formatting (e.g., 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists operations but does not explicitly state when to use this tool versus alternatives or when not to use it. The context is implied by the type of operation, but no direct guidance 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.

run_script_functionRun Script FunctionB
Destructive

Executes a function in a deployed script.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's email address
script_idYesThe script project ID
function_nameYesName of function to execute
parametersNoOptional list of parameters to pass
dev_modeNoWhether to run latest code vs deployed version

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true and readOnlyHint=false, but the description adds no behavioral context (e.g., side effects, permissions, execution environment). It does not explain the dev_mode parameter's impact or that the function runs in the script's authorization context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise at 8 words, but it borders on under-specification for a tool that executes arbitrary code. Could include a brief note on deployment or dev_mode without significant bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description omits critical context: the function must be deployed (unless dev_mode=true), what happens on error, and that the script must have been granted necessary permissions. The dev_mode parameter is not explained, leaving the agent uncertain about when to set it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and descriptions in schema are adequate. The tool description adds no extra parameter meaning beyond what schema provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Executes a function in a deployed script' uses a specific verb and resource, clearly distinguishing it from sibling tools like listing or getting script content. It is precise and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., other script manipulation tools). No mention of prerequisites like the script must be deployed or the function must exist. The description is purely operational.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_contactsSearch ContactsB
Read-onlyIdempotent

Search contacts by name, email, phone number, or other fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
queryYesSearch query string (searches names, emails, phone numbers).
page_sizeNoMaximum number of results to return (default: 30, max: 30).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, non-destructive, idempotent, and open-world hints. Description adds minimal extra context (fields searched) beyond the parameter descriptions. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, efficient sentence with no fluff. All information is front-loaded and every word contributes to clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (3 parameters, output schema exists, annotations cover safety), the description is adequate but not exceptional. It could mention pagination limits or return format, but the schema handles that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the description's mention of searchable fields adds no new meaning beyond what the parameter descriptions already provide. Baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'search' and resource 'contacts', and lists searchable fields (name, email, phone number). It distinguishes from sibling tools like list_contacts (which returns all) and get_contact (specific contact) by implying query-based filtering.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like list_contacts or get_contact. Lacks context for when a query is more appropriate or when to expect results.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_customSearch CustomB
Read-onlyIdempotent

Performs a search using Google Custom Search JSON API.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
qYesThe search query. Required.
numNoNumber of results to return (1-10). Defaults to 10.
startNoThe index of the first result to return (1-based). Defaults to 1.
safeNoSafe search level. Defaults to "off".off
search_typeNoSearch for images if set to "image".
site_searchNoRestrict search to a specific site/domain.
site_search_filterNoExclude ("e") or include ("i") site_search results.
date_restrictNoRestrict results by date (e.g., "d5" for past 5 days, "m3" for past 3 months).
file_typeNoFilter by file type (e.g., "pdf", "doc").
languageNoLanguage code for results (e.g., "lang_en").
countryNoCountry code for results (e.g., "countryUS").
sitesNoList of sites/domains to restrict search to (e.g., ["example.com", "docs.example.com"]). When provided, results are limited to these sites.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, indicating it's a safe read operation. The description adds no further behavioral context such as rate limits, auth requirements, or pagination behavior. It neither contradicts nor enhances the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, making it very concise. However, it lacks any structural elements like bullet points or sections, and it could benefit from a brief note on the tool's purpose among siblings. Nonetheless, it is not verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having a complex input schema with 13 parameters and an output schema, the description is minimal. It does not explain what the search returns, how to handle pagination, or any constraints on usage. The annotations provide some context, but the description fails to give a complete picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is documented in the input schema. The description adds no extra meaning beyond what the schema provides. It does not explain parameter interactions or provide examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it performs a search using Google Custom Search JSON API, but it doesn't differentiate from sibling search tools like search_contacts or search_docs, which also perform searches. The verb 'search' is clear but the resource is vague without specifying what is being searched (e.g., web results).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. There are many sibling search tools, but the description provides no context about when to choose search_custom over search_docs, search_drive_files, etc. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_docsSearch DocsC
Read-onlyIdempotent

Searches for Google Docs by name using Drive API (mimeType filter).

Returns: str: A formatted list of Google Docs matching the search query.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes
queryYes
page_sizeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. The description adds that the tool returns a formatted list (str) and uses Drive API with mimeType filter, which is helpful but does not disclose other traits like pagination or error handling. With annotations covering safety, the description's additional context is moderate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (two sentences) and to the point. It front-loads the core action. However, it could include parameter descriptions without much extra length. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (3 parameters, search functionality) and the existence of an output schema, the description is incomplete. Missing parameter semantics, usage context, and examples. While the output schema covers return values, the description does not address how to effectively use the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the three parameters: user_google_email, query, page_size. The agent must infer meaning from parameter names alone. No value is added beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches for Google Docs by name using Drive API with a mimeType filter. This distinguishes it from sibling search tools for other file types (e.g., search_drive_files, search_gmail_messages). However, it does not explicitly differentiate from search_drive_files which also searches files but without the mimeType restriction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives like search_drive_files or search_custom. There is no mention of when not to use it or what prerequisites are needed (e.g., Drive API access). The description is purely functional.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_drive_filesSearch Drive FilesA
Read-onlyIdempotent

Searches for files and folders within a user's Google Drive, including shared drives.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
queryYesThe search query string. Supports Google Drive search operators. NOTE: Owner-based queries ('user@example.com' in owners) DO NOT WORK in Shared Drives because files are owned by the shared drive itself, not individual users. For recent files by a specific user in Shared Drives, search by modifiedTime and use order_by='modifiedTime desc' instead.
page_sizeNoThe maximum number of files to return. Defaults to 10.
page_tokenNoPage token from a previous response's nextPageToken to retrieve the next page of results.
drive_idNoID of the shared drive to search. If None, behavior depends on `corpora` and `include_items_from_all_drives`.
include_items_from_all_drivesNoWhether shared drive items should be included in results. Defaults to True. This is effective when not specifying a `drive_id`.
corporaNoBodies 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.
file_typeNoRestrict results to a specific file type. Accepts a friendly name ('folder', 'document'/'doc', 'spreadsheet'/'sheet', 'presentation'/'slides', 'form', 'drawing', 'pdf', 'shortcut', 'script', 'site', 'jam'/'jamboard') or any raw MIME type string (e.g. 'application/pdf'). Defaults to None (all types).
detailedNoWhether to include size, modified time, and link in results. Defaults to True.
order_byNoSort order. Comma-separated list of sort keys with optional 'desc' modifier. Valid keys: 'createdTime', 'folder', 'modifiedByMeTime', 'modifiedTime', 'name', 'name_natural', 'quotaBytesUsed', 'recency', 'sharedWithMeTime', 'starred', 'viewedByMeTime'. Example: 'modifiedTime desc' or 'folder,modifiedTime desc,name'. Defaults to None (Drive API default ordering).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, fully covering safety and idempotence. The description adds no further behavioral context, such as rate limits or pagination behavior, but does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that immediately conveys the tool's core purpose. It is concise, front-loaded, and contains no unnecessary words or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 10 parameters and an output schema, the description is brief but sufficient. The schema provides extensive parameter details, and annotations cover behavior. However, a brief example or hint about query construction would improve completeness, but it is already adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter thoroughly. The description adds no additional meaning beyond what is in the schema, making a score of 3 appropriate per the baseline rule.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for files and folders in Google Drive, including shared drives. It uses a specific verb ('Searches') and resource ('files and folders within a user's Google Drive'), distinguishing it from sibling tools like search_docs 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention when not to use it. While the schema includes detailed notes on query limitations (e.g., owner-based queries in Shared Drives), the description itself offers no usage tips or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_gmail_messagesSearch Gmail MessagesA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe search query. Supports standard Gmail search operators.
user_google_emailYesThe user's Google email address. Required.
page_sizeNoThe maximum number of messages to return. Defaults to 10.
page_tokenNoToken for retrieving the next page of results. Use the next_page_token from a previous response.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as readOnly, destructiveFalse, idempotent, and openWorld. The description adds value by specifying the return format (Message IDs, Thread IDs, Gmail links) and pagination support, which are beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the main purpose, followed by output details and pagination note. Every sentence is necessary and no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema existing, the description provides sufficient context: it states what is returned (IDs, links) and that pagination is supported. It could mention that it does not return full message content, but that is implied.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well-described there. The description mentions pagination via page_token, but does not add new semantic details beyond what the schema already provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches messages in a user's Gmail account using a query. The verb 'searches' and resource 'messages' are specific, and the tool name includes 'gmail', distinguishing it from sibling search tools like 'search_messages'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives such as 'get_gmail_message_content' or other search tools. No when-to-use or when-not-to-use instructions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_messagesSearch MessagesA
Read-onlyIdempotent

Searches for messages in Google Chat spaces by text content and/or time range.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes
queryNoOptional text to search for. If omitted, only time_filter is applied.
space_idNoOptional space to restrict the search to.
page_sizeNoMaximum number of messages to return per space.
time_filterNoOptional filter using Chat API createTime syntax. Examples: 'createTime > "2026-03-18T00:00:00-03:00"' 'createTime > "2026-03-18T00:00:00-03:00" AND createTime < "2026-03-19T00:00:00-03:00"'
max_spacesNoMaximum number of spaces to search when space_id is not provided (default 10).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, etc. The description adds no behavioral details beyond what annotations provide (e.g., no mention of pagination, rate limits, or result structure). It aligns but does not enhance transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 14 words, front-loaded with 'Searches'. No redundant information. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 6 parameters and existing output schema, the description covers the core functionality. It does not detail authentication (user_google_email) but that is required parameter. Minor gap: purpose of max_spaces is not mentioned, but overall complete for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 83%, so schema already explains most parameters. The description's mention of 'text content and/or time range' maps to query and time_filter but adds no new meaning. High coverage baseline is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for messages in Google Chat spaces using text content and/or time range. The verb 'searches' and resource 'messages in Google Chat spaces' are specific and distinct from siblings like 'get_messages' (retrieval) and 'send_message' (sending).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like 'get_messages' or 'search_gmail_messages'. The context (Google Chat) is implied but not compared. Usage is somewhat clear from the name and resource, but explicit exclusions would improve.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_gmail_messageSend Gmail MessageA

Sends an email using the user's Gmail account. Supports both new emails and replies with optional attachments. Supports Gmail's "Send As" feature to send from configured alias addresses.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required for authentication.
toYesRecipient email address.
subjectYesEmail subject.
bodyYesEmail body content (plain text or HTML).
body_formatNoEmail body format. Use 'plain' for plaintext or 'html' for HTML content.plain
ccNoOptional CC email address.
bccNoOptional BCC email address.
from_nameNoOptional sender display name (e.g., 'Peter Hartree'). If provided, the From header will be formatted as 'Name <email>'.
from_emailNoOptional 'Send As' alias email address. Must be configured in Gmail settings (Settings > Accounts > Send mail as). If not provided, uses the authenticated user's email.
thread_idNoOptional Gmail thread ID to reply within.
in_reply_toNoOptional RFC Message-ID of the message being replied to (e.g., '<message123@gmail.com>').
referencesNoOptional chain of Message-IDs for proper threading.
attachmentsNoOptional list of attachments. Each can have: "url" (fetch from URL — works with MCP attachment URLs from get_drive_file_download_url / get_gmail_attachment_content), OR "path" (file path, auto-encodes), OR "content" (standard base64, not urlsafe) + "filename". Optional "mime_type". Optional "content_id" (string) makes the attachment inline-rendered: it lands in a multipart/related part with `Content-ID: <content_id>` and `Content-Disposition: inline`, and the HTML body can reference it via `<img src="cid:<content_id>">` (RFC 2392). Without `content_id` the attachment is a regular multipart/mixed attachment. Example: [{"url": "https://host/attachments/abc-123", "filename": "report.pdf"}]
include_signatureNoWhether to append the Gmail signature from Settings > Signature when available. Defaults to true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a write operation (readOnlyHint=false) and non-idempotent (idempotentHint=false). Description adds 'Send As' feature but does not discuss potential side effects like duplicate sends or rate limits. Moderate value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with core function, no redundancy. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers basic sending and alias support but omits threading capabilities (thread_id, in_reply_to, references) and attachment handling details, which are important for reply scenarios. However, an output schema exists, reducing the need to describe return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already documents all parameters. The description adds minimal extra meaning beyond mentioning 'Send As' for from_email. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it sends an email using the user's Gmail account, supporting new emails and replies with attachments. It also mentions the 'Send As' feature, which distinguishes it from a basic send operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for sending emails but does not explicitly differentiate from sibling tools like draft_gmail_message or send_message. No guidance on when to avoid using this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_messageSend MessageB

Sends a message to a Google Chat space.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes
space_idYes
message_textYes
thread_keyNoReply in a thread by app-defined key (creates thread if not found).
thread_nameNoReply in an existing thread by its resource name (e.g. spaces/X/threads/Y).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true. The description adds no behavioral context beyond that, such as side effects like message visibility or notification behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no redundant information. It is front-loaded but could benefit from slightly more detail without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters and an output schema, the description is too minimal. It lacks explanation of key fields, thread handling, or usage scenarios, making it insufficient for complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 40% (only thread_key and thread_name have descriptions). The tool description does not clarify the purpose or expected format of user_google_email, space_id, or message_text, leaving ambiguity for the AI.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'sends' and the resource 'message to a Google Chat space', which distinguishes it from sibling tools like send_gmail_message or create_reaction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., send_gmail_message, create_reaction) or any prerequisites. The description only 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.

set_drive_file_permissionsSet Drive File PermissionsA
Destructive

Sets file-level sharing settings and controls link sharing for a Google Drive file or folder.

This is a high-level tool for the most common permission changes. Use this to toggle "anyone with the link" access or configure file-level sharing behavior. For managing individual user/group permissions, use share_drive_file or update_drive_permission instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
file_idYesThe ID of the file or folder. Required.
link_sharingNoControl "anyone with the link" access for the file. - "off": Disable "anyone with the link" access for this file. - "reader": Anyone with the link can view. - "commenter": Anyone with the link can comment. - "writer": Anyone with the link can edit.
writers_can_shareNoWhether editors can change permissions and share. If False, only the owner can share. Defaults to None (no change).
copy_requires_writer_permissionNoWhether viewers and commenters are prevented from copying, printing, or downloading. Defaults to None (no change).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations signal destructiveHint: true; description complements by clarifying it controls link sharing and file-level settings. It provides context that it does not handle individual permissions but does not fully detail what happens to existing permissions. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four well-structured sentences, no wasted words. Front-loaded with main purpose, then usage guidance, then sibling tool redirect. Highly concise and effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 params, annotations, output schema), the description covers purpose, usage, and limitations. It doesn't explain parameter interactions, but that is acceptable as schema covers individual parameters. Output schema exists, so return values are covered elsewhere.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter is documented. The description adds context about the tool's high-level purpose but does not add semantic detail beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb ('Sets'), resource ('file-level sharing settings and controls link sharing'), and scope ('for a Google Drive file or folder'). It distinguishes from sibling tools by naming share_drive_file and update_drive_permission for individual permissions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'high-level tool for the most common permission changes' and directs to alternatives for individual user/group permissions: 'For managing individual user/group permissions, use share_drive_file or update_drive_permission instead.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_publish_settingsSet Publish SettingsC

Updates the publish settings of a form.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
form_idYesThe ID of the form to update publish settings for.
publish_as_templateNoWhether to publish as a template. Defaults to False.
require_authenticationNoWhether to require authentication to view/submit. Defaults to False.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate it's a non-read-only mutation with open-world hint, but the description adds no further behavioral context. It does not disclose required permissions, side effects of publishing as template, or whether changes are reversible. The agent lacks crucial safety information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence. It is not verbose but adequately conveys the tool's purpose. Could be slightly more structured with bullet points for key behaviors, but remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters and an output schema, the description is too minimal. It fails to explain the effect of each setting, return value, or any dependencies. A more thorough description would improve usability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%—each parameter has a description. The tool description does not add any additional meaning or context beyond what the schema already provides, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it updates publish settings of a form, which is specific and distinguishes it from sibling tools like 'batch_update_form' that may update other properties. However, it could be more specific by mentioning the exact settings (template, authentication) to further differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as 'batch_update_form' or 'update_drive_file'. The agent is given no context about prerequisites or scenarios where this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_google_authStart Google AuthA

Manually initiate Google OAuth authentication flow.

NOTE: This is a legacy OAuth 2.0 tool and is disabled when OAuth 2.1 is enabled. The authentication system automatically handles credential checks and prompts for authentication when needed. Only use this tool if:

  1. You need to re-authenticate with different credentials

  2. You want to proactively authenticate before using other tools

  3. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
service_nameYes
user_google_emailNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide minimal info (readOnlyHint, destructiveHint, idempotentHint all false, openWorldHint true). The description adds valuable context: it's a manual OAuth flow, it's legacy, and automatic authentication exists. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively long but well-structured with a NOTE and bullet points, front-loading the core purpose. It could be slightly more concise, but the structure aids readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (auth flow with two params, output schema present), the description covers usage scenarios and behavioral context well. However, it omits parameter semantics and does not describe the return value, which is partially mitigated by the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain parameters. It does not describe 'service_name' or 'user_google_email' at all. The description focuses on when to use the tool but neglects parameter meaning, leaving the agent to guess.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Manually initiate Google OAuth authentication flow.' It provides a specific verb ('initiate') and resource ('OAuth authentication flow'), and it distinguishes itself from sibling tools by being solely for authentication, not workspace operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells when to use this tool (re-authenticate, proactive auth, retry after failure) and when not to ('simply try calling the Google Workspace tool you need'). It also mentions it's legacy and disabled when OAuth 2.1 is enabled, providing clear context for alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_doc_headers_footersUpdate Doc Headers FootersA
Destructive

Safely creates or updates header/footer text in a Google Doc.

This is the default tool for header/footer content. Do NOT use batch_update_doc with create_header_footer just to set header/footer text; that low-level operation is only for advanced section-break workflows and can fail when the default header/footer already exists.

This tool handles both creation and update in one call:

  • If the header/footer does not exist, it is automatically created first.

  • If the header/footer already exists, its content is replaced.

You do NOT need to create a header/footer separately before calling this tool. Simply call it with the desired content and it will work whether the header/footer exists or not.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's Google email address
document_idYesID of the document to update
section_typeYesType of section to create or update ("header" or "footer")
contentYesText content for the header/footer
header_footer_typeNoType of header/footer ("DEFAULT", "FIRST_PAGE_ONLY", "EVEN_PAGE")DEFAULT

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals that the tool handles both creation and update atomically: auto-creates if missing, replaces if exists. Annotations (destructiveHint=true) indicate mutation, but the description adds context about safety and idempotent-like behavior, complementing annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured, starting with a clear statement of purpose, followed by a warning, then bullet points explaining behavior. Every sentence adds value and the length is appropriate for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the schema covers all parameters and an output schema exists, the description provides sufficient context for correct usage. It explains the core behavior and when to use the tool, without needing to describe return values or parameter details already in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter described. The description does not add additional meaning beyond the schema, so the baseline of 3 is appropriate. No extra parameter guidance or examples are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates or updates header/footer text in a Google Doc. It distinguishes itself from the sibling tool batch_update_doc by explaining that this is the default, simpler approach, and warns against using the low-level operation for simple text setting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance (default tool for header/footer content) and when-not-to-use (avoid batch_update_doc with create_header_footer) with reasoning about advanced workflows and potential failure. It also clarifies that no separate creation step is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_drive_fileUpdate Drive FileA
Destructive

Updates metadata, properties, and/or content of a Google Drive file.

Providing one of content, file_path, or file_url replaces the file's content in place. The source is uploaded with its source MIME type so the Drive API applies the same format conversion as import_to_google_doc (markdown headings, tables, bold, etc.) while preserving the existing file ID, sharing, comments, and links. Metadata and content can be updated in a single call.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesThe user's Google email address. Required.
file_idYesThe ID of the file to update. Required.
nameNoNew name for the file.
descriptionNoNew description for the file.
mime_typeNoNew MIME type (note: changing type may require content upload).
add_parentsNoComma-separated folder IDs to add as parents.
remove_parentsNoComma-separated folder IDs to remove from parents.
starredNoWhether to star/unstar the file.
trashedNoWhether to move file to/from trash.
writers_can_shareNoWhether editors can share the file.
copy_requires_writer_permissionNoWhether copying requires writer permission.
propertiesNoCustom key-value properties for the file.
contentNoNew text content for text-based formats (markdown, TXT, HTML).
file_pathNoLocal file path for binary formats (DOCX, ODT). Supports file:// URLs.
file_urlNoRemote http(s) URL to fetch new content from.
source_formatNoSource format hint for conversion (md, markdown, docx, txt, html, rtf, odt). Auto-detected when omitted. Provide at most one of content/file_path/file_url.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructive hint (true) and readOnly (false). The description adds key behaviors: content replacement 'in place' preserves file ID, sharing, comments, links; format conversion is consistent with import_to_google_doc. No contradiction with annotations; additional context provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short paragraphs. The first sentence states the main purpose. The second paragraph provides essential details about content replacement and conversion. No redundant or filler sentences; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (16 params, 2 required) and presence of output schema, the description covers the primary use case and key constraints. It doesn't explain return values (handled by output schema) and omits scenarios like updating only metadata. However, it is sufficient for an agent to understand the core functionality.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the one-of requirement for content/file_path/file_url, the conversion behavior based on MIME type, and that metadata and content can be updated together. This goes beyond the schema's individual parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Updates metadata, properties, and/or content of a Google Drive file.' It specifies the verb (update) and resource (Drive file), and distinguishes from siblings like create_drive_file or copy_drive_file by highlighting in-place content replacement and preservation of existing attributes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use content parameters ('Providing one of content, file_path, or file_url replaces the file's content') and allows combined metadata+content updates. It does not explicitly mention when not to use this tool versus alternatives like import_to_google_doc, but the context is clear for updating existing files.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_paragraph_styleUpdate Paragraph StyleA

Apply paragraph-level formatting, heading styles, and/or list formatting to a range in a Google Doc.

This tool can apply named heading styles (H1-H6) for semantic document structure, create bulleted or numbered lists with nested indentation, and customize paragraph properties like alignment, spacing, and indentation. All operations can be applied in a single call.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's Google email address
document_idYesDocument ID to modify
start_indexYesStart position using Docs API indices from inspect_doc_structure. For the main body, 0 is also accepted as an alias for the first writable position.
end_indexYesEnd position (exclusive) - should cover the entire paragraph
heading_levelNoHeading level 0-6 (0 = NORMAL_TEXT, 1 = H1, 2 = H2, etc.) Use for semantic document structure
alignmentNoText alignment - 'START' (left), 'CENTER', 'END' (right), or 'JUSTIFIED'
line_spacingNoLine spacing multiplier (1.0 = single, 1.5 = 1.5x, 2.0 = double)
indent_first_lineNoFirst line indent in points (e.g., 36 for 0.5 inch)
indent_startNoLeft/start indent in points
indent_endNoRight/end indent in points
space_aboveNoSpace above paragraph in points (e.g., 12 for one line)
space_belowNoSpace below paragraph in points
named_style_typeNoDirect named style type - 'NORMAL_TEXT', 'TITLE', 'SUBTITLE', 'HEADING_1' through 'HEADING_6'. Mutually exclusive with heading_level.
tab_idNoOptional document tab ID to target
segment_idNoOptional header/footer/footnote segment ID to target
directionNoParagraph direction - 'LEFT_TO_RIGHT' or 'RIGHT_TO_LEFT'
keep_lines_togetherNoKeep all lines of the paragraph together
keep_with_nextNoKeep the paragraph with the next paragraph
avoid_widow_and_orphanNoAvoid widows/orphans for the paragraph
page_break_beforeNoStart the paragraph on a new page
spacing_modeNo'NEVER_COLLAPSE' or 'COLLAPSE_LISTS'
shading_colorNoParagraph shading/background color (#RRGGBB)
list_typeNoCreate a list from existing paragraphs ('UNORDERED' for bullets, 'ORDERED' for numbers, 'CHECKBOX' for checklists)
list_nesting_levelNoNesting level for lists (0-8, where 0 is top level, default is 0) Use higher levels for nested/indented list items
bullet_presetNoOptional explicit Google Docs bullet preset

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations by noting that all operations can be applied in a single call. It does not contradict annotations (readOnlyHint=false, etc.). However, it could be more explicit about overwriting behavior or side effects, but overall it complements the annotations well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with clear structure: first line states the core action, followed by a bullet-enumerated list of capabilities. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 25 parameters, 100% schema coverage, and an output schema, the description covers the main use cases. However, it doesn't mention that start_index and end_index require indices from inspect_doc_structure, which could be critical for correct usage. Otherwise fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter is already well-documented. The description groups capabilities (headings, lists, properties) but does not add substantial new meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Apply' and resource 'paragraph-level formatting, heading styles, and/or list formatting to a range in a Google Doc.' This distinguishes it from sibling tools like modify_doc_text or insert_doc_elements, which handle different aspects of document editing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for any paragraph formatting needs but does not explicitly state when to use this tool versus alternatives like batch_update_doc or insert_doc_elements. No exclusions or when-not scenarios are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_script_contentUpdate Script ContentC
Destructive

Updates or creates files in a script project.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYesUser's email address
script_idYesThe script project ID
filesYesList of file objects with name, type, and source

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true. The description adds 'updates or creates' but does not detail behavior like overwriting existing files, required permissions, or side effects. Little extra value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loading the action. However, it could benefit from additional structure or bullet points for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool is destructive and has 3 required parameters, the description is too minimal. It lacks context on output, use cases, or what happens to existing files. Output schema exists but is not referenced.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds no additional meaning beyond what the schema provides for parameters. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates or creates files in a script project. It distinguishes itself from read-only tools like get_script_content and project-level tools like create_script_project, but could be more specific about the scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives (e.g., create_script_project, batch_update_doc). The description does not mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 122 tool updatesv0.1.0
    • First observedappend_table_rows
    • First observedbatch_modify_gmail_message_labels
    • First observedbatch_update_doc
    • First observedbatch_update_form
    • First observedbatch_update_presentation
    • First observedcheck_drive_file_public_access
    • First observedcopy_drive_file
    • First observedcreate_calendar
    • First observedcreate_doc
    • First observedcreate_drive_file
    • First observedcreate_drive_folder
    • First observedcreate_form
    • First observedcreate_presentation
    • First observedcreate_reaction
    • First observedcreate_script_project
    • First observedcreate_sheet
    • First observedcreate_spreadsheet
    • First observedcreate_table_with_data
    • First observedcreate_version
    • First observeddebug_docs_runtime_info
    • First observeddebug_table_structure
    • First observeddelete_script_project
    • First observeddownload_chat_attachment
    • First observeddraft_gmail_message
    • First observedexport_doc_to_pdf
    • First observedfind_and_replace_doc
    • First observedformat_sheet_range
    • First observedgenerate_trigger_code
    • First observedget_contact
    • First observedget_contact_group
    • First observedget_doc_as_markdown
    • First observedget_doc_content
    • First observedget_drive_file_content
    • First observedget_drive_file_download_url
    • First observedget_drive_file_permissions
    • First observedget_drive_shareable_link
    • First observedget_events
    • First observedget_form
    • First observedget_form_response
    • First observedget_gmail_attachment_content
    • First observedget_gmail_message_content
    • First observedget_gmail_messages_content_batch
    • First observedget_gmail_thread_content
    • First observedget_gmail_threads_content_batch
    • First observedget_messages
    • First observedget_page
    • First observedget_page_thumbnail
    • First observedget_presentation
    • First observedget_script_content
    • First observedget_script_metrics
    • First observedget_script_project
    • First observedget_search_engine_info
    • First observedget_spreadsheet_info
    • First observedget_task
    • First observedget_task_list
    • First observedget_version
    • First observedimport_to_google_doc
    • First observedimport_to_google_sheets
    • First observedimport_to_google_slides
    • First observedinsert_doc_elements
    • First observedinsert_doc_image
    • First observedinspect_doc_structure
    • First observedlist_calendars
    • First observedlist_contact_groups
    • First observedlist_contacts
    • First observedlist_deployments
    • First observedlist_docs_in_folder
    • First observedlist_document_comments
    • First observedlist_drive_items
    • First observedlist_form_responses
    • First observedlist_gmail_filters
    • First observedlist_gmail_labels
    • First observedlist_presentation_comments
    • First observedlist_script_processes
    • First observedlist_script_projects
    • First observedlist_sheet_tables
    • First observedlist_spaces
    • First observedlist_spreadsheet_comments
    • First observedlist_spreadsheets
    • First observedlist_task_lists
    • First observedlist_tasks
    • First observedlist_versions
    • First observedmanage_conditional_formatting
    • First observedmanage_contact
    • First observedmanage_contact_group
    • First observedmanage_contacts_batch
    • First observedmanage_deployment
    • First observedmanage_doc_tab
    • First observedmanage_document_comment
    • First observedmanage_drive_access
    • First observedmanage_event
    • First observedmanage_focus_time
    • First observedmanage_gmail_filter
    • First observedmanage_gmail_label
    • First observedmanage_out_of_office
    • First observedmanage_presentation_comment
    • First observedmanage_spreadsheet_comment
    • First observedmanage_task
    • First observedmanage_task_list
    • First observedmodify_doc_text
    • First observedmodify_gmail_message_labels
    • First observedmodify_sheet_values
    • First observedmove_sheet_rows
    • First observedquery_freebusy
    • First observedread_sheet_values
    • First observedresize_sheet_dimensions
    • First observedrun_script_function
    • First observedsearch_contacts
    • First observedsearch_custom
    • First observedsearch_docs
    • First observedsearch_drive_files
    • First observedsearch_gmail_messages
    • First observedsearch_messages
    • First observedsend_gmail_message
    • First observedsend_message
    • First observedset_drive_file_permissions
    • First observedset_publish_settings
    • First observedstart_google_auth
    • First observedupdate_doc_headers_footers
    • First observedupdate_drive_file
    • First observedupdate_paragraph_style
    • First observedupdate_script_content

TDQS

B3/5.0
Disambiguation4/5

Tools are mostly distinct due to domain-specific prefixes (e.g., create_doc, create_sheet). However, some overlap exists between generic tools like get_doc_content and get_drive_file_content, or between multiple modify tools, which could cause minor confusion.

Naming Consistency3/5

Naming conventions are mixed: verb_noun (create_doc), manage_ prefix (manage_contact), and domain-specific suffixes (list_sheet_tables). While readable, the lack of a consistent pattern (e.g., some use 'modify' vs 'update' vs 'set') reduces predictability.

Tool Count2/5

With 122 tools, the surface is excessively large. While the server covers many Google services, many tools could be consolidated (e.g., separate comment tools per service). This volume increases complexity and selection difficulty for an agent.

Completeness4/5

The tool set covers major CRUD operations and advanced features across Docs, Sheets, Gmail, Drive, Calendar, and more. Minor gaps exist (e.g., no batch folder creation), and some redundancy (e.g., multiple text insertion tools), but overall it is comprehensive for the Google Workspace domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chadvdwww-hash/worksuite-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server