Skip to main content
Glama
santoshachari

multiGmailMCP

Multi-Gmail MCP Server

A Model Context Protocol (MCP) server that connects your AI assistant to multiple Google accounts simultaneously — Gmail, Calendar, Drive, and Chat — with independent, per-service permission controls (full, read-only, and Gmail's draft-only) for each account.

1. Setup Google Cloud Project

Since this runs locally, you need your own Google Cloud OAuth credentials:

  1. Go to the Google Cloud Console.

  2. Create a new project (e.g., "Multi-Gmail MCP").

  3. Go to APIs & Services > Library and enable the Gmail API, Google Calendar API, Google Drive API, Google Meet API (needed for adding Meet links / Gemini notes to events), Google Chat API, and People API (needed to resolve Chat participant names/emails).

  4. Go to APIs & Services > OAuth consent screen:

    • Choose External user type.

    • Fill in the required fields (App name, User support email, Developer contact email).

    • Click Save and Continue until you reach the Test users step.

    • Add the Gmail addresses you plan to connect as test users (required — Google blocks logins for unlisted users).

    • Click Save and Continue.

  5. Go to APIs & Services > Credentials:

    • Click Create Credentials > OAuth client ID.

    • Choose Desktop app as the application type.

    • Click Create.

  6. Click Download JSON on your new credential.

  7. Rename the downloaded file to credentials.json and place it in the project root.

Related MCP server: Gmail MCP Server

2. Install & Build

npm install
npm run build

3. Authenticate Your Accounts

Authorize each Gmail account you want the server to access. Permissions are set per service — Gmail, Calendar, Drive, and Chat can each be configured independently for a single account.

# Full access to everything (default)
npm run auth

# Shorthand: read-only across all services
npm run auth -- --readonly

# Shorthand: Gmail can draft but not send; Calendar/Drive/Chat are read-only
npm run auth -- --draftonly

# Granular: override individual services
npm run auth -- --gmail=<full|draft|readonly> --calendar=<full|readonly> --drive=<full|readonly> --chat=<full|readonly>

Granular flags can combine with the shorthand flags to override just one service, e.g. an account that can never send email but can fully manage your calendar (accept/decline invites, create events):

npm run auth -- --draftonly --calendar=full

This opens a browser window for Google OAuth. Run the command once per account — credentials are saved locally in tokens.json. Re-running the command for an already-authenticated email replaces its stored permissions.

Note: Your Google Cloud project will be in "Testing" status, so Google shows a "Google hasn't verified this app" warning. Click Advanced then Go to [Your App Name] (unsafe) — this is expected since you built the app yourself.

Re-authenticating existing accounts: If an account was authenticated before Calendar/Drive support existed, before the granular per-service permission model, or before space/membership management was added to Chat, its stored scopes may be missing or narrower than what a tool call needs. Re-run npm run auth with the flags for the access you want — Google reuses the same consent flow, so no new credentials are needed. Old tokens.json entries (with the previous readonly/draft_only booleans) still work and are read as their closest equivalent (--readonly → all read-only, --draftonly → Gmail draft-only with Calendar/Drive/Chat read-only) until you re-auth them.

4. Connecting to Claude Desktop

Add the server to your Claude Desktop configuration file.

macOS

Config file location: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "multi_gmail": {
      "command": "node",
      "args": ["/absolute/path/to/multiGoogleMCP/build/index.js"],
      "env": {
        "NODE_PATH": "/absolute/path/to/multiGoogleMCP/node_modules"
      }
    }
  }
}

Windows

Config file location: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "multi_gmail": {
      "command": "node",
      "args": ["C:\\absolute\\path\\to\\multiGoogleMCP\\build\\index.js"],
      "env": {
        "NODE_PATH": "C:\\absolute\\path\\to\\multiGoogleMCP\\node_modules"
      }
    }
  }
}

Replace the paths above with the actual absolute path to your project folder.

After editing the config, restart Claude Desktop for changes to take effect.

5. Connecting to VS Code (Copilot)

Create a .vscode/mcp.json file in your workspace (or add to your user settings):

{
  "servers": {
    "multi_gmail": {
      "command": "node",
      "args": ["/absolute/path/to/multiGoogleMCP/build/index.js"],
      "env": {
        "NODE_PATH": "/absolute/path/to/multiGoogleMCP/node_modules"
      }
    }
  }
}

On Windows, use backslash paths:

{
  "servers": {
    "multi_gmail": {
      "command": "node",
      "args": ["C:\\absolute\\path\\to\\multiGoogleMCP\\build\\index.js"],
      "env": {
        "NODE_PATH": "C:\\absolute\\path\\to\\multiGoogleMCP\\node_modules"
      }
    }
  }
}

VS Code will prompt you to trust the server the first time it starts.

6. Connecting to Google Antigravity

Open the Agent Panel, go to MCP Servers > Manage MCP Servers > Edit configuration to open mcp_config.json, then add:

{
  "mcpServers": {
    "multi_gmail": {
      "command": "node",
      "args": ["/absolute/path/to/multiGoogleMCP/build/index.js"],
      "env": {
        "NODE_PATH": "/absolute/path/to/multiGoogleMCP/node_modules"
      }
    }
  }
}

Use absolute paths. On Windows, use backslash paths (e.g., C:\\Users\\...).

7. Connecting to Cursor

Add a new MCP server in Cursor settings:

  • Type: command

  • Command: node /absolute/path/to/multiGoogleMCP/build/index.js

If you run into module resolution errors, set the NODE_PATH environment variable to <project-path>/node_modules.

Available Tools

Gmail

Tool

Description

gmail_list_accounts

List all authenticated accounts

gmail_search

Search emails using Gmail search operators

gmail_read

Read the full content of an email by ID

gmail_read_thread

Read all messages in a thread/conversation

gmail_draft

Create a draft email (supports cc, bcc, attachments)

gmail_send

Send an email (supports cc, bcc, attachments)

gmail_reply

Reply to an email within its thread (send or draft)

gmail_forward

Forward an email to new recipients

gmail_get_attachment

Download an attachment from a message

gmail_trash

Move an email to trash

gmail_delete

Permanently delete an email

gmail_mark_read / gmail_mark_unread

Change an email's read state

gmail_star / gmail_unstar

Star or unstar an email

gmail_list_labels

List all labels/folders

gmail_apply_label / gmail_remove_label

Apply or remove a label from an email

gmail_list_drafts

List existing draft emails

gmail_send_draft

Send a previously saved draft

Google Calendar

Tool

Description

calendar_list_calendars

List all calendars in the account

calendar_list_events

List upcoming events, with time range and search filters

calendar_get_event

Get full details of a specific event

calendar_create_event

Create an event (supports attendees, location, all-day, Google Meet, Gemini notes)

calendar_update_event

Update fields on an existing event

calendar_delete_event

Delete an event

calendar_quick_add

Create an event from natural language text

calendar_respond_to_event

RSVP to an event invitation (accept/decline/tentative)

calendar_create_event accepts two optional flags:

Flag

Behavior

addGoogleMeet

Attaches a Google Meet video conference and returns its join link.

enableGeminiNotes

Enables Gemini "Take notes for me" auto-generated notes for the Meet space (requires addGoogleMeet: true). Needs a Google Workspace account with Gemini access — the tool call succeeds either way, but reports if notes couldn't be enabled (e.g. no Gemini license on the organizer's account).

Using these requires the Google Meet API to be enabled on your Cloud project (see step 3 above), and the account must be authenticated with calendar=full (the meetings.space.created and meetings.space.settings scopes are bundled into Calendar's full permission tier — re-run npm run auth for accounts authenticated before this was added).

Google Drive

Tool

Description

drive_list_files

List files/folders in a given folder (or root)

drive_search_files

Search using Drive query syntax

drive_get_file

Get metadata for a file or folder

drive_read_file

Read text content (exports Google Docs/Sheets/Slides as text)

drive_download_file

Download binary content as base64 (images, PDFs, zips, etc.)

drive_upload_file

Upload a base64-encoded file

drive_create_folder

Create a new folder

drive_delete_file

Move a file or folder to trash

drive_share_file

Share a file/folder with another user

drive_move_file

Move a file/folder to a different parent folder

Google Chat

Tool

Description

chat_list_spaces

List Chat spaces/rooms the account belongs to

chat_get_space

Get details about a single space

chat_create_space

Create a new named space, optionally with initial members

chat_list_members

List the members of a space

chat_add_member / chat_remove_member

Add or remove a member from a space

chat_list_messages

List recent messages in a space

chat_get_message

Get the full content of a single message

chat_send_message

Send a message to a space (optionally as a thread reply)

chat_update_message

Edit the text of a message you sent

chat_delete_message

Delete a message you sent

chat_add_reaction

Add an emoji reaction to a message

chat_list_reactions / chat_remove_reaction

List or remove reactions on a message

chat_get_attachment

Download an attachment from a message as base64

chat_upload_attachment

Upload a file and send it as an attachment, with optional text

Note: The Chat API does not support arbitrary DM creation via user-authenticated OAuth (it requires resolving Chat user IDs through the People/Admin API). chat_list_spaces already lists existing DM spaces you can send to. chat_create_space creates named spaces (rooms), not 1:1 DMs.

chat_get_attachment metadata (resourceName) comes from the attachments field in chat_list_messages/chat_get_message output — the dedicated attachment-metadata endpoint requires app (bot) authentication and isn't usable here.

Resolving names: When authenticating as a user (as this MCP does), the Chat API only returns an opaque users/{id} for message senders, reaction users, and space members — not their name or email. sender/user/member fields in the tools above are therefore objects ({ name, email }), resolved via a People API lookup on the same numeric ID. Resolution is best-effort: external users or accounts without a visible profile fall back to { name: "users/{id}" } with no email. This requires the People API to be enabled (see step 3) and the directory.readonly scope, bundled into both Chat permission tiers — re-run npm run auth for accounts authenticated before this was added.

Pagination

gmail_search, gmail_list_drafts, drive_list_files, drive_search_files, calendar_list_events, chat_list_spaces, and chat_list_messages accept an optional pageToken parameter and return a nextPageToken field in their JSON response. Pass the returned nextPageToken back in as pageToken to fetch the next page; a null value means there are no more results.

Content Type Support

gmail_draft, gmail_send, and gmail_reply accept an optional contentType parameter:

Value

Behavior

"text" (default)

Plain text email

"markdown"

Body is converted from Markdown to HTML

"html"

Body is sent as raw HTML

Example — drafting a Markdown email:

{
  "email": "you@gmail.com",
  "to": "recipient@example.com",
  "subject": "Weekly Update",
  "body": "# Status Report\n\n**Completed:**\n- Feature A\n- Bug fix B\n\n*Next steps:* Feature C",
  "contentType": "markdown"
}

The resulting email renders as formatted HTML in Gmail.

Available Tools

54 tools
calendar_create_eventB

Create a new event in a Google Calendar.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account.
titleYesTitle/summary of the event.
isAllDayNoIf true, startDateTime and endDateTime are treated as dates (YYYY-MM-DD) for an all-day event.
locationNoLocation of the event.
timeZoneNoTimezone for the event (e.g. 'America/Los_Angeles'). Defaults to account timezone.
attendeesNoComma-separated list of attendee email addresses.
calendarIdYesThe calendar ID. Use 'primary' for the main calendar.
descriptionNoDescription or notes for the event.
endDateTimeYesEnd date/time in ISO 8601 format. For all-day events use 'YYYY-MM-DD'.
addGoogleMeetNoIf true, attaches a Google Meet video conference to the event and returns its join link.
startDateTimeYesStart date/time in ISO 8601 format (e.g. '2024-06-15T10:00:00-07:00'). For all-day events use 'YYYY-MM-DD'.
enableGeminiNotesNoIf true (requires addGoogleMeet), enables Gemini 'Take notes for me' auto-generated notes for the Meet space. Requires a Google Workspace account with Gemini access; silently reported as unavailable otherwise.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose any behavioral traits beyond the schema (e.g., what the tool returns, permissions needed, side effects like duplicate events).

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 that is front-loaded with purpose. 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?

Despite having 12 parameters and no output schema, the description does not explain what the tool returns, error conditions, or authentication requirements beyond the '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 description coverage is 100%, so the schema already documents all parameters. The description 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?

Clearly states 'Create a new event in a Google Calendar,' using a specific verb ('Create') and resource ('event in a Google Calendar'). Distinguishes from sibling tools like calendar_update_event and calendar_delete_event.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like calendar_quick_add or calendar_update_event. Does not mention prerequisites or context.

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

calendar_delete_eventB

Delete a calendar event.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account.
eventIdYesThe event ID to delete (from calendar_list_events).
calendarIdYesThe calendar ID. Use 'primary' for the main calendar.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits. It only states 'delete' without indicating whether the action is permanent, requires permissions, or has any side effects.

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

Conciseness4/5

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

The description is a single sentence with no fluff, but it could be more detailed without sacrificing conciseness. However, it effectively communicates the core action.

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 and well-defined schema, the description is fairly complete, but it lacks context on behavioral aspects like permanence and permissions.

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?

All three parameters have descriptions in the schema (100% coverage), so the description adds no additional meaning. Baseline 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?

Description clearly states 'Delete a calendar event', which is a specific verb-resource pair. It distinguishes from sibling tools like calendar_create_event or calendar_update_event.

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, prerequisites, or when not to use it. For example, it does not mention that the event must exist or that deletion is irreversible.

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

calendar_get_eventC

Get details of a specific calendar event.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account.
eventIdYesThe event ID (from calendar_list_events).
calendarIdYesThe calendar ID. Use 'primary' for the main calendar.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states 'get details of a specific calendar event.' It does not disclose behavioral traits such as authentication needs, rate limits, or what happens on missing data, resulting in minimal 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 sentence with 7 words, making it extremely concise. It front-loads the verb and resource. However, it is not fully self-contained, which slightly reduces structure quality.

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

Completeness2/5

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

Given the lack of an output schema, the description should at least mention what details are returned (e.g., 'including start time, end time, title'). It does not, making the description incomplete for an agent to fully understand the tool's 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 description coverage is 100% (all three parameters have descriptions), so the baseline is 3. The tool description adds no additional information 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 'details of a specific calendar event,' making the purpose obvious. It implicitly distinguishes from sibling tools like calendar_list_events (which lists events) but does not explicitly differentiate or mention alternatives.

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 calendar_list_events. The description lacks any context about prerequisites or scenarios, leaving the agent without selection advice.

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

calendar_list_calendarsB

List all calendars in a Google account.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It only states it lists calendars but omits details like permissions, side effects, output format, or rate limits. This is insufficient for an agent to understand the full impact.

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 conveys the essential action without any extraneous information. It is appropriately front-loaded.

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 has only one parameter and no output schema, the description is minimally adequate but lacks completeness regarding what is returned (e.g., only IDs or full objects). It does not leverage context to provide a fuller 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?

The schema covers 100% of the parameter descriptions, so the baseline is 3. The description does not add any additional meaning beyond the schema's definition of the 'email' parameter.

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 'list' and the resource 'all calendars in a Google account', making the purpose straightforward. However, it does not differentiate from other list tools like calendar_list_events, but the distinction is reasonable due to the resource difference.

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, nor are there any exclusions or context. The description merely states the action without any situational advice.

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

calendar_list_eventsC

List upcoming events in a calendar.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account.
queryNoFree text search query to filter events.
timeMaxNoEnd of time range in ISO 8601 format.
timeMinNoStart of time range in ISO 8601 format (e.g. '2024-01-01T00:00:00Z'). Defaults to now.
pageTokenNoPagination token from a previous call's nextPageToken, to fetch the next page of results.
calendarIdYesThe calendar ID (from calendar_list_calendars). Use 'primary' for the main calendar.
maxResultsNoMaximum number of events to return (default: 10).

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It does not disclose key behaviors like pagination (pageToken), default time range (timeMin defaults to now), or that it returns only upcoming events by default. The term 'upcoming' is ambiguous without defining the time window.

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

Conciseness3/5

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

The description is very short (one sentence), which is concise but at the expense of useful details. For a 7-parameter tool, a slightly longer description would improve usability 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?

Without an output schema, the description should explain return value structure (e.g., list of event objects). It does not mention pagination, filtering, or the fact that results are limited by maxResults. The description is insufficient given the tool's 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 is 100%, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond saying 'List upcoming events'; it does not clarify parameter usage or relationships (e.g., how timeMin and timeMax define 'upcoming').

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

Purpose4/5

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

The description clearly states the action (List) and the resource (upcoming events in a calendar), which distinguishes it from sibling tools like create or delete events. However, it could be more specific about the scope (e.g., time range) 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 is provided on when to use this tool versus alternatives (e.g., calendar_get_event for single events). The description lacks context about when not to use it or what prerequisites are needed (e.g., a valid calendarId).

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

calendar_quick_addB

Create a calendar event from a natural language string (e.g. 'Lunch with John tomorrow at noon').

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesNatural language description of the event.
emailYesThe authenticated Google account.
calendarIdYesThe calendar ID. Use 'primary' for the main calendar.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided. Description mentions creation but does not disclose side effects, required permissions, or whether events are created immediately. Minimal behavioral context beyond the action itself.

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

Conciseness4/5

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

Single concise sentence with an illustrative example. No wasted words, but could be slightly expanded for clarity on use-case differentiation.

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 simple tool with no output schema, description is adequate but lacks details on parsing behavior, error handling, or distinction from 'calendar_create_event'. Complete for basic use but not for nuanced understanding.

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% coverage with descriptions for all three parameters. Tool description adds a conceptual example but no extra semantic detail 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?

Description clearly states 'Create a calendar event from a natural language string' with an example. Verb 'Create' and resource 'calendar event' are specific. Distinguishes from sibling 'calendar_create_event' which likely requires structured input.

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?

Description implies usage via natural language but does not explicitly state when to use this over alternatives like 'calendar_create_event'. 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.

calendar_respond_to_eventA

RSVP to a calendar event invitation as the authenticated account (accept, decline, or tentative).

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account (must be an attendee of the event).
eventIdYesThe event ID to respond to (from calendar_list_events).
calendarIdYesThe calendar ID. Use 'primary' for the main calendar.
responseStatusYesThe RSVP response to record.

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses the action is for the authenticated account, but does not mention side effects (e.g., if not an attendee, or if already responded), nor any irreversible consequences.

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

Conciseness5/5

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

Single sentence, perfectly concise with no wasted words. Front-loads the verb and object.

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?

No output schema, so description should hint at return values (e.g., success confirmation or error). It lacks that. Parameter count is manageable, but overall completeness is average for a simple RSVP action.

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 3. The description does not add extra meaning beyond the schema; parameter descriptions in schema are sufficient, but tool description could clarify parameter roles or constraints.

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 (RSVP), resource (calendar event invitation), and scope (authenticated account, responses: accept/decline/tentative). It is distinct from sibling tools like calendar_create_event or calendar_delete_event.

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 vs alternatives, or prerequisites. While it is the only RSVP tool among siblings, the absence of usage context limits clarity for an agent deciding between tools.

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

calendar_update_eventC

Update an existing calendar event.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account.
titleNoNew title/summary.
eventIdYesThe event ID to update (from calendar_list_events).
locationNoNew location.
timeZoneNoTimezone for the event.
attendeesNoComma-separated list of attendee email addresses (replaces existing).
calendarIdYesThe calendar ID. Use 'primary' for the main calendar.
descriptionNoNew description.
endDateTimeNoNew end date/time in ISO 8601 format.
startDateTimeNoNew start date/time in ISO 8601 format.

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states 'Update' without detailing behavioral aspects such as whether it performs a partial update (only specified fields are changed) or a full replacement. There is no mention of authorization requirements, idempotency, or side effects.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks important details that could be included without much length. It is front-loaded with the purpose, but every word earns its keep. However, it is too minimal to be highly effective.

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 10 parameters and no output schema or annotations, the description is insufficient. It does not explain the behavior of the update (e.g., whether start and end times must be provided together, or how attendees are replaced). The agent may need to infer from the schema, which is risky.

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% description coverage, so the baseline is 3. The description does not add any additional meaning beyond the schema's parameter descriptions. The schema itself is clear, but the tool description offers no extra value.

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

Purpose4/5

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

The description 'Update an existing calendar event' clearly states the action (update) and the resource (calendar event), which distinguishes it from siblings like calendar_create_event and calendar_delete_event. However, it could be more specific by mentioning which fields can be updated.

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., calendar_quick_add for quick additions). It does not specify that the eventId must be obtained from calendar_list_events first, nor does it mention any prerequisites like needing write access to the calendar.

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

chat_add_memberB

Add a member to a Google Chat space.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account performing the action.
spaceNameYesThe space resource name (e.g. 'spaces/XXXXXX'). Get this from chat_list_spaces.
memberEmailYesEmail address of the person to add.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as required permissions, whether the user must be a space admin, or side effects like the new member receiving a notification.

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 that efficiently conveys the core action. No unnecessary words, but could be slightly improved by front-loading the resource.

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 (3 params, all required, no output schema), the description is minimally adequate. However, it lacks contextual completeness about prerequisites or after-effects.

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 clear. The tool description adds no extra 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 verb 'Add' and the resource 'member to a Google Chat space'. It distinguishes from sibling tools like 'chat_remove_member' by specifying the action.

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, or any prerequisites like needing the space name from chat_list_spaces (though hinted in schema).

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

chat_add_reactionB

Add an emoji reaction to a Google Chat message.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account to react as.
emojiYesThe emoji unicode character to react with (e.g. '👍', '❤️').
messageNameYesThe message resource name to react to (e.g. 'spaces/XXXXXX/messages/YYYYYY'), from chat_list_messages name field.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose idempotency, rate limits, authorization requirements beyond the email parameter, or behavior if an identical reaction 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.

Conciseness5/5

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

Single, short sentence that efficiently conveys the tool's purpose with no wasted words. Front-loaded with the 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?

For a simple tool with 3 required parameters and no output schema, the description is almost complete. It could mention idempotency or membership requirements, but the information 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?

All parameters have descriptions in the schema (100% coverage). The description adds no additional meaning beyond the schema, so it meets 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 clearly states the action ('Add') and the resource ('emoji reaction to a Google Chat message'). It distinguishes from sibling tools like chat_remove_reaction and chat_list_reactions.

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., when to remove a reaction instead). No prerequisites or context for usage are provided.

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

chat_create_spaceA

Create a new named Google Chat space (room), optionally inviting initial members.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account to create the space as.
displayNameYesDisplay name for the new space.
memberEmailsNoComma-separated list of email addresses to invite as initial members (optional).

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It reveals the creation action (a mutation) but omits critical details: required permissions, side effects (e.g., notifications), limits (e.g., uniqueness of displayName), or what happens on duplicate creation.

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 with no unnecessary words. It perfectly front-loads the action and key features.

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 creation tool with no output schema or nested objects, the description covers the essential operation. However, it lacks information about return values (e.g., the created space ID) and does not address potential errors or prerequisites.

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 minimal value beyond schema—only contextualizing memberEmails as 'initial members'. The email and displayName parameters are already well-described 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 verb ('create'), the resource ('new named Google Chat space'), and optional action ('inviting initial members'). It distinguishes well from siblings like chat_add_member (adds to existing space) and chat_list_spaces (lists existing spaces).

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 (e.g., for creating a space optionally with members) but provides no explicit guidance on when to use this tool versus alternatives like chat_add_member for adding members later, nor any prerequisites or limitations.

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

chat_delete_messageB

Delete a Google Chat message you sent.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account that sent the message.
messageNameYesThe message resource name to delete (e.g. 'spaces/XXXXXX/messages/YYYYYY').

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must cover behavioral traits. It only states that the message must be sent by the user, but omits other behaviors like idempotency, error handling, or effects on replies. This is insufficient for a mutation tool.

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

Conciseness5/5

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

A single, clear sentence with no unnecessary words. Every element is meaningful 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?

For a simple delete tool with two required parameters and no output schema, the description is mostly complete. It could mention that deletion is irreversible or what happens if the message is not found, but these are minor 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?

The input schema already has 100% description coverage for both parameters. The description does not add new information about the parameters beyond the schema, but it provides context that the message must be one sent by the user, which indirectly clarifies the 'email' 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 verb 'Delete', the resource 'Google Chat message', and the scope 'you sent'. This distinguishes it from sibling tools like chat_send_message or chat_update_message.

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 delete tools) or when not to use it. The description is purely declarative without contextual advice.

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

chat_get_attachmentA

Download an attachment from a Google Chat message. Use chat_list_messages or chat_get_message first to get the resourceName from the attachments list.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account to use.
filenameNoThe filename of the attachment (from the attachments list, optional but helpful).
resourceNameYesThe attachment data resourceName from a message's attachments list.

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It implies a read operation but lacks details on return format, error handling, or size limits. Basic intent is clear but missing behavioral specifics.

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: first states purpose, second provides essential usage context. No extraneous text, front-loaded 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?

No output schema is provided, yet the description does not explain the return format or behavior (e.g., binary data, encoding). For a download tool, this is a notable gap, though the basic workflow is covered.

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 adds little beyond what the schema already provides for each parameter. The mention of 'from the attachments list' echoes the schema description for resourceName.

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

Purpose5/5

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

The description clearly states 'Download an attachment from a Google Chat message,' using a specific verb and resource. It distinguishes itself from sibling tools like chat_upload_attachment.

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 instructs to use chat_list_messages or chat_get_message first to obtain the resourceName, providing clear when-to-use context and prerequisites.

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

chat_get_messageA

Get the full content of a single Google Chat message by its resource name.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account to use.
messageNameYesThe message resource name (e.g. 'spaces/XXXXXX/messages/YYYYYY'), from chat_list_messages name field.

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates a read-only operation ('Get the full content'), but it does not detail rate limits, authentication requirements beyond the email parameter, or what constitutes 'full content' (e.g., whether it includes attachments, reactions, or formatting).

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 efficiently conveys the tool's purpose without any redundant or 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?

Given no output schema, the description could be more complete by explaining the return format or fields included in 'full content.' While the description suffices for basic understanding, a more detailed explanation would aid an AI agent in using 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 is 100% with both parameters described. The tool description adds minimal value beyond the schema: it reiterates the email purpose and provides an example for messageName. Baseline of 3 is appropriate as the schema already handles the parameter meaning adequately.

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 'get', the resource 'full content of a single Google Chat message', and the method 'by its resource name'. It effectively distinguishes from sibling tools like chat_list_messages (which lists messages without full content) and chat_send_message (which sends messages).

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 after listing messages with chat_list_messages to retrieve a specific message's details, but it does not explicitly state when to use this tool versus alternatives, nor does it provide 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.

chat_get_spaceB

Get details about a single Google Chat space.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account to use.
spaceNameYesThe space resource name (e.g. 'spaces/XXXXXX'). Get this from chat_list_spaces.

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description must cover behavioral traits. While 'get details' implies a read operation, it does not explicitly state read-only nature, error handling, or permissions. The description is adequate but not detailed.

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, no filler. Every word serves a purpose. Ideal 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 simplicity (2 params, no output schema), the description lacks detail on what 'details' includes, such as space name, type, member count, etc. For an agent, knowing the return structure is important for planning follow-up actions.

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 meaning beyond the schema, 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?

The description clearly states it gets details about a single Google Chat space, using a specific verb and resource. It distinguishes from siblings like chat_list_spaces (which lists spaces) and chat_get_message (which gets a message), but does not explicitly mention what details are included.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It does not mention that chat_list_spaces should be used to list spaces before calling this, or any prerequisites. Missing context for proper selection.

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

chat_list_membersB

List the members of a Google Chat space.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account to use.
pageTokenNoPagination token from a previous call's nextPageToken, to fetch the next page of results.
spaceNameYesThe space resource name (e.g. 'spaces/XXXXXX'). Get this from chat_list_spaces.
maxResultsNoMaximum number of members to return (default: 50).

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided; the description only states 'List the members' but fails to disclose pagination behavior, authentication details, rate limits, or error handling. The schema includes a pageToken parameter, but the description does not mention pagination.

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, no wasted words, but could benefit from additional context on pagination or return format.

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

Completeness2/5

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

No output schema, and the description does not explain the return format, default sorting, maximum pages, or behavior for invalid space names. The tool has 4 parameters but lacks 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 description coverage is 100% (all 4 parameters described). The description adds no additional meaning beyond the schema, meeting 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 'List the members of a Google Chat space' using a specific verb and resource, and it effectively distinguishes itself from sibling tools like chat_list_messages and chat_list_spaces.

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 chat_add_member or chat_list_spaces. No context on prerequisites or exclusions.

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

chat_list_messagesB

List recent messages in a Google Chat space.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account to use.
pageTokenNoPagination token from a previous call's nextPageToken, to fetch the next page of results.
spaceNameYesThe space resource name (e.g. 'spaces/XXXXXX'). Get this from chat_list_spaces.
maxResultsNoMaximum number of messages to return (default: 25).

TDQS

B3.3/5.0
Behavior3/5

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

The description mentions 'recent' but does not specify ordering, default limit, or pagination behavior. The schema includes pageToken and maxResults, which inform some behavior, but the description itself adds minimal behavioral context. No annotations exist to supplement.

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 with no redundancy. Every word serves a purpose, and it is well-structured for quick 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?

The tool has no output schema, so the description should ideally indicate what kind of response to expect (e.g., list of message objects). It does not, but the purpose is straightforward. The simplicity of the tool keeps this score from being lower.

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 extra meaning beyond the schema's parameter descriptions. It is consistent but not enriched.

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

Purpose4/5

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

The description clearly states the action (list) and resource (messages in a Google Chat space). The word 'recent' adds some context, but it does not differentiate from sibling tools like chat_get_message or chat_list_members, which have distinct purposes.

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 lacks guidance on when to use this tool versus alternatives, such as chat_get_message for a single message or chat_list_spaces for space listing. No prerequisites, constraints, or contextual recommendations are provided.

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

chat_list_reactionsB

List reactions on a Google Chat message.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account to use.
pageTokenNoPagination token from a previous call's nextPageToken, to fetch the next page of results.
maxResultsNoMaximum number of reactions to return (default: 25).
messageNameYesThe message resource name (e.g. 'spaces/XXXXXX/messages/YYYYYY'), from chat_list_messages name field.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral transparency. It only states 'List reactions', but does not disclose pagination behavior, return format, auth requirements, or any side effects. This is insufficient for an agent to understand the tool's behavior beyond the input 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?

The description is a single, focused sentence with no extraneous words. It efficiently conveys the core purpose without unnecessary elaboration.

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

Completeness2/5

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

The tool has no output schema, so the description should clarify what the response contains (e.g., list of reaction objects). It does not mention pagination despite having pageToken and maxResults parameters. The description is incomplete for a tool with four parameters and no output schema, leaving the agent guessing about return values and pagination 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 description coverage is 100%, so all parameters are already documented in the input schema. The tool description adds no additional semantic meaning beyond the field names and schema descriptions. A score of 3 is appropriate as the schema carries the burden.

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 'reactions on a Google Chat message'. It is concise and directly indicates the tool's function, distinguishing it from sibling tools that add or remove reactions.

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. It implicitly suggests usage for listing reactions, but lacks when-not-to-use or prerequisite information (e.g., requiring a messageName). Among siblings, it is the only list tool, so confusion is low, but clarity on pagination and required context is missing.

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

chat_list_spacesA

List Google Chat spaces (rooms and direct messages) the account belongs to.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account to list spaces for.
pageTokenNoPagination token from a previous call's nextPageToken, to fetch the next page of results.
maxResultsNoMaximum number of spaces to return (default: 25).

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as pagination, rate limits, or authentication requirements. The presence of pageToken and maxResults in the schema is not explained in the description.

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 clearly and efficiently conveys the tool's purpose. It is front-loaded with the action and resource.

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 listing tool with no output schema and three parameters, the description provides the basic purpose but lacks context on pagination behavior, default values, and integration with other tools. 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 parameters are already well-documented. The description adds no additional meaning beyond what the schema provides, thus 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 the verb 'List' and resource 'Google Chat spaces' with specific mention of rooms and direct messages. It distinguishes from sibling tools like chat_get_space (single space) and chat_create_space.

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

Usage Guidelines3/5

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

The description implies usage for listing spaces but provides no explicit guidance on when to use this tool versus alternatives like chat_list_members or chat_list_messages. No when-not or prerequisites discussed.

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

chat_remove_memberA

Remove a member from a Google Chat space.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account performing the action.
spaceNameYesThe space resource name (e.g. 'spaces/XXXXXX'). Get this from chat_list_spaces.
memberEmailYesEmail address of the member to remove.

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, and the description only states the action without disclosing behavioral traits like irreversibility, side effects, or role requirements. For a mutation tool, this is insufficient.

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

Conciseness5/5

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

Single, concise sentence that communicates purpose efficiently with no wasted 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?

Adequate for a simple mutation tool with well-documented parameters, but lacks behavioral context that would help an agent understand implications of 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?

Schema coverage is 100% with clear descriptions. The description adds no extra meaning beyond the action, so baseline 3 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 verb (remove) and resource (a member from a Google Chat space). Distinguishes well from siblings like chat_add_member.

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?

While straightforward, no explicit guidance on when to use or prerequisites (e.g., permissions). Context of removing a member is clear from sibling tool names.

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

chat_remove_reactionA

Remove a reaction from a Google Chat message. Use chat_list_reactions to get the reaction's resource name.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account that created the reaction.
reactionNameYesThe reaction resource name to remove (e.g. 'spaces/XXXXXX/messages/YYYYYY/reactions/ZZZZZZ'), from chat_list_reactions name field.

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavioral traits. It indicates a destructive action ('Remove') but does not mention authentication requirements, side effects, or what happens if the reaction does not exist. The hint about using list is helpful but incomplete.

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. The first sentence states the purpose, the second provides crucial prerequisite guidance. 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 tool with two parameters and no output schema, the description covers the essential action and input dependency. It could mention the requirement that the email must be the creator of the reaction, but the schema already states that.

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 both parameters are described. The description adds value by explaining how to obtain the reactionName via chat_list_reactions, which aids correct invocation. The email parameter is adequately described 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 action ('Remove a reaction') and the specific resource ('from a Google Chat message'). It distinguishes from siblings like chat_add_reaction by focusing on removal and referencing chat_list_reactions.

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 a clear prerequisite ('Use chat_list_reactions to get the reaction's resource name'), guiding the agent on what to do before invoking. It lacks explicit when-not-to-use or alternative tools, but the context is sufficient.

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

chat_send_messageB

Send a message to a Google Chat space, optionally as a reply within an existing thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe message text to send.
emailYesThe authenticated Google account to send from.
spaceNameYesThe space resource name (e.g. 'spaces/XXXXXX'). Get this from chat_list_spaces.
threadNameNoThread resource name to reply within (e.g. 'spaces/XXXXXX/threads/YYYYYY'), from chat_list_messages threadName field. Omit to start a new thread.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description bears full responsibility for behavioral disclosure. It only states 'send a message' implying mutation, but lacks details on authorization, rate limits, 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.

Conciseness4/5

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

The description is a single sentence, front-loaded with the verb and resource, and contains no wasted words. However, it omits important details that could be included without becoming verbose.

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

Completeness2/5

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

Given 4 parameters (3 required), no output schema, and no annotations, the description is too sparse. It does not explain the authentication context or how to obtain required values, leaving the agent to rely solely on 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%, so the schema already documents all parameters. The description adds minimal value beyond echoing the optional reply behavior, which the schema also covers.

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 'Send a message to a Google Chat space' with a specific verb and resource, and mentions optional reply behavior, effectively distinguishing it from sibling tools like chat_add_reaction or chat_delete_message.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives, nor any conditions or exclusions. The agent must infer usage from context.

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

chat_update_messageA

Edit the text of a Google Chat message you sent.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe new text content for the message.
emailYesThe authenticated Google account that sent the message.
messageNameYesThe message resource name to edit (e.g. 'spaces/XXXXXX/messages/YYYYYY').

TDQS

A3.5/5.0
Behavior3/5

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

The description adds the behavioral constraint 'you sent', implying you can only edit your own messages. However, without annotations, it lacks other traits like 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?

A single sentence that efficiently states the verb and resource, with no redundancy. It is appropriately front-loaded and concise without being under-specified.

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 edit tool with no output schema, the description is adequate but lacks details on success behavior, error conditions, or whether the message must exist.

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 descriptions cover all three parameters (100% coverage). The description contributes no additional meaning beyond the schema for any 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 specifies the action 'Edit' and the resource 'text of a Google Chat message', clearly distinguishing from sibling tools like chat_send_message or chat_delete_message.

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., deleting and resending). It does not mention scenarios like correcting typos vs. other updates.

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

chat_upload_attachmentB

Upload a file and send it as an attachment to a Google Chat space, with optional accompanying text.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesBase64-encoded file content.
textNoOptional message text to send alongside the attachment.
emailYesThe authenticated Google account to send from.
filenameYesThe name for the file as it will appear in the message.
mimeTypeYesMIME type of the file (e.g. 'application/pdf', 'image/png').
spaceNameYesThe space resource name (e.g. 'spaces/XXXXXX'). Get this from chat_list_spaces.
threadNameNoThread resource name to reply within (optional), from chat_list_messages threadName field.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavioral traits. It states upload and send but lacks details on side effects (e.g., visibility, size limits, permissions, or return value). Does not mention that the file is base64-encoded or any restrictions.

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 action and resource, no redundancy. Every word is informative.

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

Completeness2/5

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

No output schema, and description does not explain return value or expected response. Given 7 parameters including base64 data and optional thread, more context is needed for successful invocation.

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 described. The description adds 'with optional accompanying text' which is already in the schema. Minimal additional value 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 action: 'Upload a file and send it as an attachment to a Google Chat space'. It specifies the resource (Google Chat space) and distinguishes from siblings like chat_send_message (text-only) and chat_get_attachment (retrieve).

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 when needing to attach a file to a message, but provides no explicit guidance on when to use this vs alternatives (e.g., chat_send_message for text-only, or chat_get_attachment for retrieval). No when-not or prerequisites mentioned.

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

drive_create_folderB

Create a new folder in Google Drive.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the new folder.
emailYesThe authenticated Google account.
parentFolderIdNoID of the parent folder. Omit for root.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It only states 'create a new folder' without mentioning side effects, permissions, or error conditions (e.g., duplicate name, invalid parent).

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 no wasted words. However, it could incorporate more information 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 no annotations and no output schema, the description is too sparse. It omits details about return values, required permissions, and edge cases, leaving the 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 baseline is 3. The description adds no extra meaning beyond the schema's parameter descriptions, which are themselves minimal.

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 'create' and the resource 'folder' in 'Google Drive', making the purpose unmistakable and distinct from sibling tools that perform other drive operations.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives, nor any prerequisites or exclusions. The user must infer usage context from the name alone.

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

drive_delete_fileA

Delete a file or folder from Google Drive (moves to trash).

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account.
fileIdYesThe file or folder ID to delete.

TDQS

A3.6/5.0
Behavior3/5

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

The description discloses the key behavior of moving to trash rather than permanent deletion, which is important for non-reversible decisions. However, it lacks details on authentication requirements, effects on shared files, or behavior when deleting folders with contents. Without annotations, this is somewhat informative 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, concise sentence that front-loads the action and includes the key behavioral note in parentheses. No superfluous content.

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 deletion tool with well-documented parameters and no output schema, the description adequately covers the action and its trash behavior. It could mention return values or side effects but is sufficient for basic 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% description coverage, so the schema already explains both parameters (email and fileId). The description adds no additional parameter context beyond the schema.

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

Purpose5/5

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

The description clearly states the action (delete), the resource (file or folder from Google Drive), and the specific behavior (moves to trash). This is a specific verb+resource that distinguishes it from sibling tools like drive_move_file or drive_search_files.

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 prerequisites, permissions, or scenarios where moving to trash is preferred over permanent deletion or other operations.

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

drive_download_fileA

Download a file from Google Drive as base64-encoded binary content. Use for images, PDFs, zips, and other non-text files. Google Docs/Sheets/Slides are exported to a concrete format (default PDF).

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account.
fileIdYesThe file ID (from drive_list_files or drive_search_files).
exportMimeTypeNoMIME type to export Google-native files (Docs/Sheets/Slides) as (default 'application/pdf'). Ignored for non-Google-native files.

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Discloses base64 encoding and default export format but does not mention read-only nature, error handling, or rate limits. Adequate but could be richer.

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 compact sentences: first defines core action, second adds key details. No fluff, highly 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?

No output schema; description mentions base64 content but doesn't specify exact response structure. Covers main use cases but lacks return field names and error scenarios. Adequate for simple 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 documented properties. Description does not add meaning beyond schema beyond mentioning default export format. 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?

Clearly states the tool downloads a file as base64 binary content, specifies file types (images, PDFs, zips) and export behavior for Google native files. Distinguishes from siblings like drive_read_file.

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 usage context: 'Use for images, PDFs, zips, and other non-text files' and mentions export for Docs/Sheets/Slides. Implies text files use another tool but doesn't explicitly name alternatives or 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.

drive_get_fileA

Get metadata for a specific file or folder in Google Drive.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account.
fileIdYesThe file or folder ID (from drive_list_files or drive_search_files).

TDQS

A3.5/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It states 'Get metadata', implying a read-only, non-destructive operation. However, it does not detail what metadata is returned, authentication requirements beyond the email param, or any side effects. Adequate but minimal.

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

Conciseness4/5

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

Single sentence, concise and front-loaded. No redundant information. Could be slightly more structured (e.g., 'Returns metadata for a specific file or folder.') but 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?

For a simple read operation with two well-documented parameters and no output schema, the description sufficiently covers the tool's purpose and basic usage. The distinction from drive_read_file (content) is clear. Completeness is 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?

Input schema has 100% description coverage for both parameters. The description adds no additional meaning beyond the schema; it does not describe parameters. Baseline 3 is appropriate as schema does the heavy lifting.

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 'Get metadata for a specific file or folder', using a specific verb ('get') and resource ('metadata'). It distinguishes from sibling tools like drive_list_files and drive_search_files by targeting a single file/folder by ID.

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. The description implies a fileId is needed but does not provide when-not or mention alternative tools. Agents must infer usage from the fileId parameter documentation.

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

drive_list_filesB

List files and folders in Google Drive.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account.
folderIdNoFolder ID to list contents of. Omit or use 'root' for the root folder.
pageTokenNoPagination token from a previous call's nextPageToken, to fetch the next page of results.
maxResultsNoMaximum number of files to return (default: 20).

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so the description must fully disclose behavioral traits. It fails to mention that listing is limited to a single folder (not recursive), pagination behavior, or whether it returns metadata only. The description is too brief to cover necessary behavioral context.

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

Conciseness4/5

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

The description is a single concise sentence, front-loading the purpose. It could be slightly more informative without being verbose, but it is appropriately sized.

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 full schema coverage and no output schema, the description provides minimal context. It does not explain the returned data format or any side effects. It is adequate but not comprehensive.

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

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 explains all parameters. The description adds no additional meaning beyond what is in the schema, achieving the baseline score.

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

Purpose5/5

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

The description clearly states the action (list) and the resource (files and folders in Google Drive). It distinguishes from sibling tools like drive_search_files, drive_get_file, and drive_create_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?

No explicit guidance on when to use this tool versus alternatives. The description implies usage for listing directory contents, but does not differentiate from search or other listing methods.

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

drive_move_fileB

Move a file or folder to a different folder in Google Drive.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account.
fileIdYesThe file or folder ID to move.
newParentFolderIdYesThe ID of the destination folder.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description must fully disclose behavior. It only states 'Move', missing details on permissions, reversibility, or side effects like overwriting or moving to shared drives.

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 single sentence, no fluff, but lacks structure like bullet points for parameters or usage notes.

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 3 required params and no output schema, the description is too minimal. It does not inform the agent about potential errors, return values, or whether the operation supports moving to different accounts.

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 adds no new meaning beyond the parameter names and types already documented. It does not clarify formats or constraints.

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 action (Move), resource (file or folder), and destination (different folder in Google Drive), clearly distinguishing it from sibling tools like drive_create_folder or drive_delete_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?

No guidance on when to use this tool versus alternatives, such as drive_upload_file or drive_share_file. No prerequisites or context for invocation are provided.

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

drive_read_fileA

Read the text content of a file in Google Drive. Works for Google Docs, plain text, and other text-based files.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account.
fileIdYesThe file ID (from drive_list_files or drive_search_files).

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It does not confirm read-only nature, side-effects, or limitations like size or encoding. 'Read the text content' is accurate but minimally informative.

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 wasted words. 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?

Given no output schema, the description explains what the tool does and supported file types, but could mention that only text-based files are supported and that the output is the text content. Still mostly complete for a simple read 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% with clear parameter descriptions. The description adds context that fileId comes from drive_list_files or drive_search_files, which aids correct usage beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'read' and resource 'text content of a file in Google Drive', and specifies supported file types (Google Docs, plain text, other text-based files), effectively distinguishing it from siblings like drive_download_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 reading text content but lacks explicit when-not or alternative tool suggestions. It differentiates from siblings by mentioning text-based files, but no direct comparison with drive_download_file or drive_get_file.

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

drive_search_filesC

Search for files in Google Drive.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe authenticated Google account.
queryYesSearch query. Supports Drive query syntax (e.g. "name contains 'report'", "mimeType='application/pdf'").
pageTokenNoPagination token from a previous call's nextPageToken, to fetch the next page of results.
maxResultsNoMaximum number of results to return (default: 20).

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosure. It does not mention pagination (despite a pageToken parameter), response structure, rate limits, or authentication requirements. The brief description lacks depth.

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

Conciseness3/5

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

The description is a single short sentence, which is concise but overly minimal. It front-loads the core action, but every sentence should earn its place; this one does not convey enough detail to be considered 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 complexity of a search tool (4 parameters, no output schema, no annotations), the description is incomplete. It does not explain return values, query capabilities, or edge cases, leaving significant gaps for an agent.

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

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 adds no extra meaning beyond the schema, earning the baseline score. No improvement or degradation.

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 uses the specific verb 'Search' and identifies the resource 'files in Google Drive'. It distinguishes from siblings like 'drive_list_files' (list all files) by implying query-based filtering, but does not explicitly differentiate, which would make it 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 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 'drive_list_files' or 'drive_get_file'. There is no mention of prerequisites, context, or exclusions.

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

drive_share_fileB

Share a file or folder with another user.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoPermission role to grant (default: reader).
emailYesThe authenticated Google account.
fileIdYesThe file or folder ID to share.
shareWithEmailYesThe email address of the person to share with.
sendNotificationNoWhether to send a notification email to the recipient (default: true).

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, and description lacks details on permissions required, side effects like changing ownership, or behavior if already shared.

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, concise and front-loaded, but could include more useful context without verbosity.

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

Completeness2/5

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

No output schema, and description does not indicate return value or confirm success; lacks behavioral details that annotations would normally provide.

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 clear descriptions; description adds no extra 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 'Share' and resource 'file or folder', distinguishing it from sibling tools like drive_delete_file or drive_list_files.

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, no prerequisites or context provided.

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

drive_upload_fileC

Upload a file to Google Drive.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesBase64-encoded file content.
emailYesThe authenticated Google account.
filenameYesThe name for the file in Drive.
folderIdNoID of the parent folder to upload into. Omit for root.
mimeTypeYesMIME type of the file (e.g. 'text/plain', 'application/pdf', 'image/png').

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It only states 'Upload a file' without detailing mutation behavior (e.g., creates new file, overwrites if exists?), authentication needs (partially covered by email parameter), or side effects. Minimal transparency beyond the name.

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

Conciseness3/5

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

The description is a single sentence, which is concise but under-specified. It earns its place but could include more useful information without being verbose. Front-loading is effective but content is too sparse.

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

Completeness2/5

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

Given 5 parameters, no output schema, and no annotations, the description is incomplete. It fails to mention what the tool returns (e.g., file ID, URL), error conditions, or behavior for duplicate filenames. More context is needed for an agent to use it 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 the baseline is 3. The description adds no additional parameter context, but the schema already documents each parameter sufficiently. No value 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 the action (upload) and resource (file to Google Drive). It distinguishes from sibling tools like drive_create_folder or drive_read_file, though it does not explicitly mention alternatives. The purpose is clear but lacks explicit differentiation wording.

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, when not to use, or context such as typical file size limits or overwrite behavior. The description is too brief to guide usage decisions.

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

gmail_apply_labelA

Apply a label to an email. Use gmail_list_labels to get label IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe Gmail address the email belongs to.
labelIdYesThe label ID to apply (from gmail_list_labels).
messageIdYesThe Gmail message ID.

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility. It only states the action and a prerequisite but fails to disclose behavioral traits such as whether it modifies the message, idempotence, required permissions, 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 two sentences: the first states the core action, and the second provides a helpful hint. There is no redundancy or waste.

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 required params, no nested objects, no output schema), the description is minimally adequate. However, it lacks behavioral context such as what happens after applying the label or any side effects.

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 parameters. The description adds no extra meaning beyond the schema, meeting 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 uses a specific verb 'Apply' and resource 'a label to an email', clearly distinguishing it from sibling tools like 'gmail_remove_label' (remove label) and 'gmail_list_labels' (list labels). It also provides a cross-reference to get label IDs.

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 instructs users to use 'gmail_list_labels' to obtain label IDs, which is a helpful prerequisite. However, it does not explicitly mention when not to use this tool or provide alternatives for similar actions like removing labels.

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

gmail_deleteA

Permanently delete an email. This cannot be undone. Use gmail_trash to move to trash instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe Gmail address the email belongs to.
messageIdYesThe Gmail message ID to permanently delete.

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It states that deletion is permanent and irreversible, which is key behavioral information. It could mention potential side effects or permissions, but the core trait is covered.

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 unnecessary words. Every sentence provides value: first states action and permanence, second gives alternative usage. Front-loaded with critical info.

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 (two required params, no output schema), the description is sufficient. It explains the action and permanent consequence. Could note return value, but not essential.

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 'email' and 'messageId'. The description does not add additional parameter meaning beyond the schema, so baseline 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 that the tool permanently deletes an email and distinguishes it from gmail_trash by name. The verb 'delete' and resource 'email' 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?

The description provides an explicit alternative (gmail_trash) and implies when to use each (permanent vs move to trash). It could be more explicit about scenarios, but the guidance is clear.

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

gmail_draftC

Draft an email using a specific Gmail account.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNoCC recipients. Multiple addresses can be comma-separated.
toYesRecipient email address. Multiple addresses can be comma-separated.
bccNoBCC recipients. Multiple addresses can be comma-separated.
bodyYesBody content of the email.
emailYesThe Gmail address to draft the email from.
subjectYesSubject of the email.
attachmentsNoFiles to attach to the email.
contentTypeNoContent format: 'text' (plain text, default), 'markdown' (converted to HTML), or 'html' (raw HTML).

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided. Description does not disclose that the tool creates a draft without sending, nor any permissions 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.

Conciseness4/5

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

Very concise single sentence, but could be improved by structuring key behavioral information upfront.

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 8 parameters and no output schema, the description is too minimal. It lacks detail on what the tool returns and its practical effect.

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. Description does not add 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 clearly states the tool drafts an email using a specific Gmail account, but does not differentiate from sibling tools like gmail_send or gmail_reply.

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 sending immediately or replying to an existing thread.

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

gmail_forwardA

Forward an email to new recipients. Use gmail_read first to get the original message content.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNoCC recipients, comma-separated.
toYesRecipient email address(es), comma-separated.
bccNoBCC recipients, comma-separated.
bodyYesBody content to prepend before the forwarded message.
emailYesThe Gmail address to forward from.
subjectYesSubject of the forwarded email (usually 'Fwd: <original subject>').
attachmentsNoAdditional files to attach.
contentTypeNoContent format for the prepended body.
originalMessageIdYesThe Gmail message ID of the email to forward (from gmail_search or gmail_read).

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description bears full burden for behavioral disclosure. It does not disclose important traits such as whether original attachments are forwarded automatically, permissions required, or effect on read status. Only the basic action is stated.

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

Conciseness5/5

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

Two concise sentences. The first states the purpose, the second provides a crucial usage hint. No redundant 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?

With 9 parameters and no output schema, the description is too brief. It does not explain forwarding behavior for attachments, error handling, or the full process. The schema descriptions help but the description should offer more context to compensate for lack of annotations.

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 that the 'body' is prepended before the forwarded message and that 'subject' is usually 'Fwd: <original subject>', and that 'originalMessageId' comes from gmail_search or gmail_read.

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 'Forward an email to new recipients' which is a specific verb and resource. It distinguishes from sibling tools like gmail_send and gmail_reply by implying this is for forwarding existing emails, and it includes a prerequisite to use gmail_read first.

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 gmail_read first to get the original message content', providing clear guidance on the required preceding step. However, it does not mention when not to use this tool or alternatives for replying vs forwarding.

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

gmail_get_attachmentA

Download an attachment from a Gmail message. Use gmail_read first to get the attachmentId from the attachments list.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe Gmail address the email belongs to.
filenameNoThe filename of the attachment (from gmail_read attachments list, optional but helpful).
messageIdYesThe Gmail message ID containing the attachment (id field from gmail_search or gmail_read).
attachmentIdYesThe attachment ID from the attachments array in gmail_read output.

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description bears full burden. It implies a read operation ('Download') with no disclosure of auth needs, rate limits, or output format. Behavior is straightforward, but minimal detail beyond the obvious.

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: first states purpose, second gives prerequisite. No unnecessary words, front-loaded with key 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 4 parameters (3 required) and no output schema, description covers essential usage: what it does and how to obtain required IDs. Lacks mention of return format (binary), but that is often assumed for download tools.

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%, but description adds operational context: email is the account, filename is optional, messageId and attachmentId come from gmail_read output. This enhances meaning beyond parameter descriptions 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?

Description clearly states 'Download an attachment from a Gmail message', specifying verb and resource. It distinguishes from siblings by instructing to use gmail_read first to obtain the attachmentId, which is a unique prerequisite.

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 usage context: 'Use gmail_read first to get the attachmentId'. This clarifies when to use and prerequisite step. No explicit when-not-to-use or alternatives, but the tool is the only one for this purpose.

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

gmail_list_accountsA

List all Gmail accounts that are currently authenticated and available for use.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full weight. It only states that accounts are listed but does not disclose side effects, authentication needs, or whether accounts are refreshed. For a listing tool, basic behavioral context is missing.

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. However, it could be slightly more informative without increasing length significantly. Still 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 tool has no parameters and no output schema, the description is adequate for basic understanding. It tells what the tool does, but lacks details about return format or potential errors. For a simple listing, it is reasonably 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?

The input schema is empty with 0 parameters, and schema description coverage is 100%. The baseline for 0 params is 4. No parameter information is needed, and the description does not add parameter semantics, which is acceptable.

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 'all Gmail accounts that are currently authenticated and available for use.' It is specific and distinguishes this tool from siblings like gmail_send or calendar_list_events.

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 does it mention prerequisites or limitations. It simply states the function without contextual advice.

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

gmail_list_draftsB

List draft emails in a Gmail account.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe Gmail address to list drafts for.
pageTokenNoPagination token from a previous call's nextPageToken, to fetch the next page of results.
maxResultsNoMaximum number of drafts to return (default: 10).

TDQS

B3.2/5.0
Behavior2/5

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

Without annotations, the description must disclose behavior. It implies a read-only operation via 'list,' but omits details like response format, pagination behavior, or side effects. The agent lacks crucial information about what the tool returns or how it behaves with invalid inputs.

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, non-redundant sentence that efficiently conveys the tool's purpose with no wasted words. It is front-loaded and 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?

For a simple list tool with no output schema, the description should at least mention the return structure (e.g., list of draft summaries). Without this, the agent cannot fully assess the tool's output, making the description incomplete 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?

Schema description coverage is 100%, so the schema already documents each parameter. The description adds no additional meaning beyond the param descriptions, establishing 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 'List draft emails in a Gmail account' uses a specific verb ('list') and resource ('draft emails in a Gmail account'), clearly distinguishing it from sibling tools like gmail_send_draft or gmail_delete that have different actions.

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., gmail_search) or prerequisites (e.g., the email must be a valid Gmail address). The description offers no contextual advice for the AI agent.

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

gmail_list_labelsB

List all labels (folders) in a Gmail account.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe Gmail address to list labels for.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden but only states the basic action. It does not disclose read-only behavior, required permissions, or any constraints like filter applicability or system labels.

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 with no wasted words, front-loading the key action and resource. Ideal conciseness for a straightforward list operation.

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 the tool's simplicity, the description lacks details on output format, label types (e.g., system vs. user), or any caveats. Without an output schema, more context is needed for correct 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?

Schema coverage is 100% for the single parameter, and the description repeats the same information ('The Gmail address to list labels for'). No additional meaning is added beyond the schema.

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

Purpose5/5

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

The description clearly states the action (list) and resource (labels) with an explicit synonym 'folders', making the tool's purpose unambiguous. It distinguishes itself from sibling Gmail tools that apply, remove, or manage 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?

No guidance is provided on when to use this tool versus alternatives, such as gmail_search or gmail_read. There is no mention of prerequisites, context, or exclusions.

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

gmail_mark_readC

Mark an email as read.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe Gmail address the email belongs to.
messageIdYesThe Gmail message ID to mark as read.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavior. It only states the action, omitting details like idempotency, effect on labels, or whether it marks the entire thread. Minimal transparency.

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

Conciseness3/5

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

Extremely concise at 6 words, but this brevity sacrifices helpful context. The description front-loads the action but lacks elaboration. It is not verbose, but under-specified.

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 (2 parameters, no output schema), the description is minimally adequate. However, missing behavioral details like error handling or idempotency reduce 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%, so the description does not need to add parameter details. However, it adds no extra meaning beyond the schema, which already describes the parameters adequately.

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

Purpose4/5

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

The description clearly states the action (Mark an email as read) and resource. It is not a tautology, as it clarifies the object. However, it does not differentiate from siblings like gmail_mark_unread or indicate scope (single message vs thread).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., gmail_mark_unread or gmail_read). The description does not mention prerequisites or context, leaving the agent without decision support.

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

gmail_mark_unreadB

Mark an email as unread.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe Gmail address the email belongs to.
messageIdYesThe Gmail message ID to mark as unread.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description carries full transparency burden. It only states the action without disclosing side effects, permissions, or state changes beyond the basic operation. Minimal behavioral context is added.

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

Conciseness5/5

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

Single sentence with no wasted words. 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?

For a simple tool with 2 parameters and no output schema, the description is nearly sufficient. Minor improvements could include noting that the email must be currently read for the action to apply.

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 both parameters. The description adds no additional meaning beyond what the input schema provides, resulting in 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 'Mark an email as unread.' uses a specific verb ('Mark') and resource ('an email') with a clear state change. It distinguishes from siblings like gmail_mark_read or gmail_star/unstar by naming the unread status.

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. Siblings like gmail_mark_read exist but no comparison or prerequisites are mentioned. The 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.

gmail_readA

Read the full content of a specific email by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe Gmail address the email belongs to.
messageIdYesThe ID of the message to read.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure. It only states 'Read the full content' without revealing traits like whether the email is marked as read, authentication requirements, or response format. This is insufficient for a tool with no annotations.

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

Conciseness5/5

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

The description is a single, concise sentence with no unnecessary words. Every word contributes to the purpose.

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

Completeness3/5

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

For a simple read tool with 100% schema coverage and no output schema, the description is adequate but minimal. It does not mention prerequisites (e.g., valid messageId) or any limitations, leaving some gaps 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?

The input schema covers both parameters (email and messageId) with clear descriptions. The tool description adds 'full content' but does not enhance parameter understanding beyond what the schema already provides. Baseline score of 3 applies due to high schema coverage.

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

Purpose5/5

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

The description clearly states the verb 'Read' and the resource 'full content of a specific email by ID', distinguishing it from sibling tools like gmail_read_thread (reads a thread) and gmail_get_attachment (gets an attachment).

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. The purpose is obvious from context, but the description itself lacks usage guidelines.

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

gmail_read_threadA

Read all messages in a Gmail thread/conversation in chronological order.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe Gmail address the thread belongs to.
threadIdYesThe thread ID (from gmail_read threadId field or gmail_search threadId field).

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It mentions reading in chronological order but omits side effects (e.g., marking as read) and does not clarify if it is read-only. Minimal behavioral disclosure.

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

Conciseness5/5

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

The description is a single, concise sentence (12 words) that is front-loaded and contains no unnecessary 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 the tool has no output schema and no annotations, the description does not provide enough context about return format, limitations, or additional behavioral details. It is adequate but incomplete for a 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?

Schema coverage is 100% with descriptions for both parameters. The tool description adds no extra parameter meaning beyond the schema; baseline score of 3 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 action ('Read'), resource ('Gmail thread/conversation'), and provides distinguishing detail ('in chronological order'). It is specific and distinct from sibling tools like gmail_read or gmail_search.

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 reading a complete thread but lacks guidance on prerequisites or comparison with siblings.

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

gmail_remove_labelA

Remove a label from an email. Use gmail_list_labels to get label IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe Gmail address the email belongs to.
labelIdYesThe label ID to remove (from gmail_list_labels).
messageIdYesThe Gmail message ID.

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description conveys the core behavior (removing a label) but lacks details on consequences, required permissions, or what happens if the label is not present. It is adequate for a simple mutation but could be richer.

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 front-loaded, consisting of two sentences with no unnecessary information. 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?

For a simple tool with no output schema, the description covers the essential purpose and prerequisite. It is largely complete, though it omits details on success/failure indicators or error conditions.

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 provides full descriptions for all three parameters (100% coverage). The description adds value only by referencing 'gmail_list_labels' for obtaining labelId, which is helpful but does not significantly enhance understanding of email or messageId.

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: removing a label from an email. It uses a specific verb ('remove') and resource ('label from an email'), and distinguishes itself from sibling tools like 'gmail_apply_label'.

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 directs users to use 'gmail_list_labels' to obtain label IDs, providing clear prerequisite guidance. However, it does not include when not to use this tool or alternative approaches.

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

gmail_replyA

Reply to an email within its existing thread. Use gmail_read to obtain the threadId, messageId (Message-ID header), and references before calling this tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNoCC recipients. Multiple addresses can be comma-separated.
toYesRecipient email address for the reply.
bccNoBCC recipients. Multiple addresses can be comma-separated.
bodyYesBody content of the reply (plain text).
emailYesThe Gmail address to reply from.
isDraftNoIf true, creates a draft reply instead of sending. Useful for draft-only accounts (default: false).
subjectYesSubject of the reply (usually 'Re: <original subject>').
threadIdYesThe Gmail thread ID to reply within (from gmail_read Thread-ID).
inReplyToYesThe RFC 2822 Message-ID of the email being replied to (from gmail_read Message-ID).
referencesNoSpace-separated list of Message-IDs from the References header of the original email (optional).
attachmentsNoFiles to attach to the reply.
contentTypeNoContent format: 'text' (plain text, default), 'markdown' (converted to HTML), or 'html' (raw HTML).

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations provided, the description must disclose behavioral traits. It mentions the need to obtain IDs via gmail_read but does not describe side effects, authentication requirements, or what happens on success/failure. Some additional behavior 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 concise with two efficient sentences. It front-loads the core purpose and immediately provides actionable guidance, earning its length 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 the tool's complexity (12 parameters), the description provides essential workflow guidance but omits the return value or output format. Since there is no output schema, the agent lacks information about what the tool returns (e.g., sent message ID or draft ID), leaving the description somewhat incomplete.

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 the baseline is 3. The description adds value beyond the schema by explaining how to obtain threadId, inReplyTo, and references from gmail_read, and clarifies the isDraft parameter's usage for draft-only accounts. This extra context enhances semantic 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's purpose: 'Reply to an email within its existing thread.' It uses a specific verb (reply) and resource (email thread), and the context of sibling tools like gmail_send and gmail_draft distinguishes it from sending a new message or creating a draft.

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 instructs to use gmail_read first to obtain threadId, messageId, and references, providing clear prerequisites and usage context. This helps the agent understand when and how to invoke this tool.

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

gmail_sendB

Send an email using a specific Gmail account.

ParametersJSON Schema
NameRequiredDescriptionDefault
ccNoCC recipients. Multiple addresses can be comma-separated.
toYesRecipient email address. Multiple addresses can be comma-separated.
bccNoBCC recipients. Multiple addresses can be comma-separated.
bodyYesBody content of the email.
emailYesThe Gmail address to send the email from.
subjectYesSubject of the email.
attachmentsNoFiles to attach to the email.
contentTypeNoContent format: 'text' (plain text, default), 'markdown' (converted to HTML), or 'html' (raw HTML).

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only says 'Send an email' but does not disclose authentication requirements, error handling, or whether it returns a message ID. The description lacks behavioral context.

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

Conciseness4/5

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

Description is a single sentence, front-loaded with the action, and contains no waste. However, it could be expanded slightly to include usage hints 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?

With 8 parameters (4 required), attachments, and a contentType enum, the tool is complex. No output schema is provided, so the description should explain return values (e.g., message ID). It does not. The description is too minimal 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?

Schema description coverage is 100% with each parameter documented in the input schema. The description itself adds no extra 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 'Send an email using a specific Gmail account.' It uses a specific verb and resource and distinguishes from sibling tools like gmail_draft (create draft) and gmail_send_draft (send draft).

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

Usage Guidelines2/5

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

No guidance provided on when to use this tool versus alternatives such as gmail_reply, gmail_forward, or gmail_draft. The description does not mention context or exclusions.

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

gmail_send_draftA

Send an existing draft email. Use gmail_list_drafts to get draft IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe Gmail address the draft belongs to.
draftIdYesThe draft ID to send (from gmail_list_drafts or gmail_draft).

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. The description only states the action without mentioning side effects (e.g., whether the draft is deleted after sending), authorization requirements, or potential constraints. This leaves significant gaps for safe and correct usage.

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 that front-load the action and provide immediate guidance. No superfluous details, efficient and to the point.

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 two-parameter tool, the description covers the core action and provides necessary context for obtaining the draft ID. However, it lacks behavioral details (e.g., what happens to the draft after sending) that could be helpful given no output schema or annotations. It is adequate but not fully comprehensive.

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 description adds little additional meaning beyond reinforcing the source of draftId ('from gmail_list_drafts or gmail_draft'). Baseline 3 is appropriate as schema already documents parameters adequately.

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 ('Send an existing draft email') and the resource ('draft email'). It distinguishes from siblings by referencing gmail_list_drafts for obtaining draft IDs, which helps differentiate from tools like gmail_send and gmail_draft.

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 guidance to use gmail_list_drafts to get draft IDs, indicating a prerequisite step. While it implies when to use (sending a draft), it does not explicitly mention when not to use or alternatives like gmail_send for new emails.

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

gmail_starB

Star an email.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe Gmail address the email belongs to.
messageIdYesThe Gmail message ID to star.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, and the description offers no behavioral details such as permission requirements, reversibility, or effects on already starred messages.

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

Conciseness4/5

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

The description is very concise with only three words, front-loading the core action. However, it could be slightly expanded for 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?

For a simple tool with full schema coverage and no output schema, the description is minimally sufficient but lacks comparison to sibling tools and 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%, so the schema already documents both parameters. The 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.

Purpose5/5

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

The description uses a specific verb 'Star' and resource 'an email', clearly distinguishing from sibling tools like gmail_unstar. It is 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 vs gmail_unstar or other Gmail actions. The description does not indicate prerequisites or context.

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

gmail_trashB

Move an email to the trash.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe Gmail address the email belongs to.
messageIdYesThe Gmail message ID to trash (from gmail_search or gmail_read).

TDQS

B3.4/5.0
Behavior2/5

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

No annotations exist, so the description must fully disclose behavior. 'Move to trash' implies reversibility, but no details are given about undoing, thread handling, permissions, or rate limits. The description is too brief to cover necessary behavioral traits.

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 purpose. Every word is necessary, and there is no superfluous 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?

The tool has 2 parameters, no output schema, and no annotations. The description fails to explain the return value (e.g., the trashed message or success status) or clarify that the 'email' parameter likely refers to the user's own Gmail address. For a complete context, more detail is needed.

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%, and the description adds value by noting that the messageId comes from gmail_search or gmail_read. This context helps the agent understand how to obtain the required ID, going beyond the schema's basic type 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 'Move an email to the trash' uses a specific verb ('Move') and resource ('email'), clearly indicating the action and destination. It distinguishes from siblings like gmail_delete (permanent deletion) and gmail_star/unstar (labeling), making the purpose unambiguous.

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

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 gmail_delete (which might be permanent). The description does not specify prerequisites or exclusion criteria, leaving the agent to infer usage context.

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

gmail_unstarA

Remove the star from an email.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe Gmail address the email belongs to.
messageIdYesThe Gmail message ID to unstar.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action but lacks important context such as side effects (e.g., idempotency, error behavior if already unstarred), required permissions, or whether any confirmation is needed. This is insufficient for a mutation tool.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no unnecessary words. 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?

Given the simplicity of the tool (two parameters, no output schema), the description is adequately complete for basic understanding. However, it could benefit from mentioning what happens if the email is not starred or if there are errors, which 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 100% of parameters with clear descriptions. The tool description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Remove') and the resource ('star from an email'). It effectively distinguishes from sibling tools like gmail_star, which adds a star, and gmail_mark_read, which changes read status.

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. While the purpose is clear enough that an agent can infer it is for removing a star from a previously starred email, there is no mention of when not to use it (e.g., if the email is already unstarred).

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. 54 tool updatesv1.0.0
    • First observedcalendar_create_event
    • First observedcalendar_delete_event
    • First observedcalendar_get_event
    • First observedcalendar_list_calendars
    • First observedcalendar_list_events
    • First observedcalendar_quick_add
    • First observedcalendar_respond_to_event
    • First observedcalendar_update_event
    • First observedchat_add_member
    • First observedchat_add_reaction
    • First observedchat_create_space
    • First observedchat_delete_message
    • First observedchat_get_attachment
    • First observedchat_get_message
    • First observedchat_get_space
    • First observedchat_list_members
    • First observedchat_list_messages
    • First observedchat_list_reactions
    • First observedchat_list_spaces
    • First observedchat_remove_member
    • First observedchat_remove_reaction
    • First observedchat_send_message
    • First observedchat_update_message
    • First observedchat_upload_attachment
    • First observeddrive_create_folder
    • First observeddrive_delete_file
    • First observeddrive_download_file
    • First observeddrive_get_file
    • First observeddrive_list_files
    • First observeddrive_move_file
    • First observeddrive_read_file
    • First observeddrive_search_files
    • First observeddrive_share_file
    • First observeddrive_upload_file
    • First observedgmail_apply_label
    • First observedgmail_delete
    • First observedgmail_draft
    • First observedgmail_forward
    • First observedgmail_get_attachment
    • First observedgmail_list_accounts
    • First observedgmail_list_drafts
    • First observedgmail_list_labels
    • First observedgmail_mark_read
    • First observedgmail_mark_unread
    • First observedgmail_read
    • First observedgmail_read_thread
    • First observedgmail_remove_label
    • First observedgmail_reply
    • First observedgmail_search
    • First observedgmail_send
    • First observedgmail_send_draft
    • First observedgmail_star
    • First observedgmail_trash
    • First observedgmail_unstar

TDQS

A3.7/5.0
Disambiguation5/5

Tools are clearly separated by domain-specific prefixes (gmail_, calendar_, chat_, drive_), making each tool's purpose immediately identifiable. Within each domain, operations are distinct, and descriptions provide enough detail to differentiate similar actions like gmail_delete vs gmail_trash or gmail_star vs gmail_unstar.

Naming Consistency5/5

All tool names follow a consistent 'domain_verb_noun' pattern (e.g., gmail_send, calendar_list_events). While verbs like 'read' and 'get' are used for different actions, they are contextually appropriate and not confusing.

Tool Count4/5

With 54 tools, this server is large but justified by covering four distinct Google services. Some tools like gmail_star/unstar or mark_read/unread could be combined, but the count is still reasonable for a comprehensive multi-service MCP.

Completeness5/5

The tool set provides extensive coverage for Gmail, Calendar, Chat, and Drive, including CRUD operations, search, attachments, and more. Only minor gaps like drive update file exist, but core workflows are fully supported.

Maintenance

ActivityActive
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

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to manage Gmail accounts programmatically, including sending emails, managing labels, creating filters, and handling attachments via OAuth2 authentication.
    53
    4
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Enables AI assistants to manage multiple Gmail accounts simultaneously with built-in OAuth authentication, supporting email reading, sending, drafts, labels, and account management.
    60
    48
    2
    MIT

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/santoshachari/multiGoogleMCP'

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