Skip to main content
Glama
redesignhealth

Google Workspace MCP Server

Google Workspace MCP Server

License: MIT Python 3.10+ PyPI PyPI Downloads Website

Full natural language control over Google Calendar, Drive, Gmail, Docs, Sheets, Slides, Forms, Tasks, and Chat through all MCP clients, AI assistants and developer tools.

The most feature-complete Google Workspace MCP server, now with Remote OAuth2.1 multi-user support and 1-click Claude installation.

Support for all free Google accounts (Gmail, Docs, Drive etc) & Google Workspace plans (Starter, Standard, Plus, Enterprise, Non Profit) with expanded app options like Chat & Spaces. Interested in a private cloud instance? That can be arranged.

See it in action:


A quick plug for AI-Enhanced Docs

This README was written with AI assistance, and here's why that matters

As a solo dev building open source tools, comprehensive documentation often wouldn't happen without AI help. Using agentic dev tools like Roo & Claude Code that understand the entire codebase, AI doesn't just regurgitate generic content - it extracts real implementation details and creates accurate, specific documentation.

In this case, Sonnet 4 took a pass & a human (me) verified them 8/16/25.

Overview

A production-ready MCP server that integrates all major Google Workspace services with AI assistants. It supports both single-user operation and multi-user authentication via OAuth 2.1, making it a powerful backend for custom applications. Built with FastMCP for optimal performance, featuring advanced authentication handling, service caching, and streamlined development patterns.

Simplified Setup: Now uses Google Desktop OAuth clients - no redirect URIs or port configuration needed!

Related MCP server: Google Workspace MCP Server

Features

@ Gmail Drive Calendar Docs

  • Complete Gmail management, end to end coverage

  • Full calendar management with advanced features

  • File operations with Office format support

  • Document creation, editing & comments

  • Deep, exhaustive support for fine grained editing


Forms@ Chat Sheets Slides

  • Form creation, publish settings & response management

  • Space management & messaging capabilities

  • Spreadsheet operations with flexible cell management

  • Presentation creation, updates & content manipulation

Authentication & Security

  • Advanced OAuth 2.0 & OAuth 2.1 support

  • Automatic token refresh & session management

  • Transport-aware callback handling

  • Multi-user bearer token authentication

  • Innovative CORS proxy architecture


Tasks Custom Search Transport Support

  • Full support for all MCP Transports

  • Task & task list management with hierarchy

  • Programmable Search Engine (PSE) integration


Quick Start

Credentials

export GOOGLE_OAUTH_CLIENT_ID="..."
export GOOGLE_OAUTH_CLIENT_SECRET="..."

Full setup →

Launch Commands

uvx workspace-mcp --tool-tier core
uv run main.py --tools gmail drive

More options →

Tool Tiers

  • core - Essential tools

  • extended - Core + extras

  • complete - Everything Details →

  1. Download: Grab the latest google_workspace_mcp.dxt from the “Releases” page

  2. Install: Double-click the file – Claude Desktop opens and prompts you to Install

  3. Configure: In Claude Desktop → Settings → Extensions → Google Workspace MCP, paste your Google OAuth credentials

  4. Use it: Start a new Claude chat and call any Google Workspace tool

Why DXT?

Desktop Extensions (.dxt) bundle the server, dependencies, and manifest so users go from download → working MCP in one click – no terminal, no JSON editing, no version conflicts.

Required Configuration

Required

Variable

Purpose

GOOGLE_OAUTH_CLIENT_ID

OAuth client ID from Google Cloud

GOOGLE_OAUTH_CLIENT_SECRET

OAuth client secret

OAUTHLIB_INSECURE_TRANSPORT=1

Development only (allows http:// redirect)

Optional

Variable

Purpose

USER_GOOGLE_EMAIL

Default email for single-user auth

GOOGLE_PSE_API_KEY

API key for Custom Search

GOOGLE_PSE_ENGINE_ID

Search Engine ID for Custom Search

MCP_ENABLE_OAUTH21

Set to true for OAuth 2.1 support

EXTERNAL_OAUTH21_PROVIDER

Set to true for external OAuth flow with bearer tokens (requires OAuth 2.1)

WORKSPACE_MCP_STATELESS_MODE

Set to true for stateless operation (requires OAuth 2.1)

Claude Desktop stores these securely in the OS keychain; set them once in the extension pane.



Prerequisites

  • Python 3.10+

  • uvx (for instant installation) or uv (for development)

  • Google Cloud Project with OAuth 2.0 credentials

Configuration

1. Create Project

console.cloud.google.com

→ Create new project
→ Note project name

Open Console →

2. OAuth Credentials

APIs & Services → Credentials
→ Create Credentials
→ OAuth Client ID
→ Desktop Application

Download & save credentials

3. Enable APIs

APIs & Services → Library

Search & enable:
Calendar, Drive, Gmail,
Docs, Sheets, Slides,
Forms, Tasks, Chat, Search

See quick links below

Complete Setup Process:

  1. Create OAuth 2.0 Credentials - Visit Google Cloud Console

    • Create a new project (or use existing)

    • Navigate to APIs & Services → Credentials

    • Click Create Credentials → OAuth Client ID

    • Choose Desktop Application as the application type (no redirect URIs needed!)

    • Download credentials and note the Client ID and Client Secret

  2. Enable Required APIs - In APIs & Services → Library

    • Search for and enable each required API

    • Or use the quick links below for one-click enabling

  3. Configure Environment - Set your credentials:

    export GOOGLE_OAUTH_CLIENT_ID="your-client-id"
    export GOOGLE_OAUTH_CLIENT_SECRET="your-secret"

Full Documentation →

1.1. Credentials: See Credential Configuration for detailed setup options

  1. Environment Configuration:

◆ Development Mode

export OAUTHLIB_INSECURE_TRANSPORT=1

Allows HTTP redirect URIs

@ Default User

export USER_GOOGLE_EMAIL=\
  your.email@gmail.com

Single-user authentication

◆ Custom Search

export GOOGLE_PSE_API_KEY=xxx
export GOOGLE_PSE_ENGINE_ID=yyy

Optional: Search API setup

  1. Server Configuration:

◆ Base Configuration

export WORKSPACE_MCP_BASE_URI=
  http://localhost
export WORKSPACE_MCP_PORT=8000

Server URL & port settings

↻ Proxy Support

export MCP_ENABLE_OAUTH21=
  true

Leverage multi-user OAuth2.1 clients

@ Default Email

export USER_GOOGLE_EMAIL=\
  your.email@gmail.com

Skip email in auth flows in single user mode

Variable

Description

Default

WORKSPACE_MCP_BASE_URI

Base server URI (no port)

http://localhost

WORKSPACE_MCP_PORT

Server listening port

8000

WORKSPACE_EXTERNAL_URL

External URL for reverse proxy setups

None

GOOGLE_OAUTH_REDIRECT_URI

Override OAuth callback URL

Auto-constructed

USER_GOOGLE_EMAIL

Default auth email

None

Google Custom Search Setup

1. Create Search Engine

programmablesearchengine.google.com
/controlpanel/create

→ Configure sites or entire web
→ Note your Engine ID (cx)

Open Control Panel →

2. Get API Key

developers.google.com
/custom-search/v1/overview

→ Create/select project
→ Enable Custom Search API
→ Create credentials (API Key)

Get API Key →

3. Set Variables

export GOOGLE_PSE_API_KEY=\
  "your-api-key"
export GOOGLE_PSE_ENGINE_ID=\
  "your-engine-id"

Configure in environment

Complete Setup Process:

  1. Create Search Engine - Visit the Control Panel

    • Choose "Search the entire web" or specify sites

    • Copy the Search Engine ID (looks like: 017643444788157684527:6ivsjbpxpqw)

  2. Enable API & Get Key - Visit Google Developers Console

    • Enable "Custom Search API" in your project

    • Create credentials → API Key

    • Restrict key to Custom Search API (recommended)

  3. Configure Environment - Add to your shell or .env:

    export GOOGLE_PSE_API_KEY="AIzaSy..."
    export GOOGLE_PSE_ENGINE_ID="01764344478..."

Full Documentation →

Start the Server

▶ Quick Start

uv run main.py

Default stdio mode

◆ HTTP Mode

uv run main.py \
  --transport streamable-http

Web interfaces & debugging

@ Single User

uv run main.py \
  --single-user

Simplified authentication

▶ Selective Tool Loading

# Load specific services only
uv run main.py --tools gmail drive calendar
uv run main.py --tools sheets docs

# Combine with other flags
uv run main.py --single-user --tools gmail

★ Tool Tiers

uv run main.py --tool-tier core      # ● Essential tools only
uv run main.py --tool-tier extended  # ◐ Core + additional
uv run main.py --tool-tier complete  # ○ All available tools

◆ Docker Deployment

docker build -t workspace-mcp .
docker run -p 8000:8000 -v $(pwd):/app \
  workspace-mcp --transport streamable-http

# With tool selection via environment variables
docker run -e TOOL_TIER=core workspace-mcp
docker run -e TOOLS="gmail drive calendar" workspace-mcp

Available Services: gmaildrivecalendardocssheetsformstaskschatsearch

Tool Tiers

The server organizes tools into three progressive tiers for simplified deployment. Choose a tier that matches your usage needs and API quota requirements.

Available Tiers

Core (--tool-tier core) Essential tools for everyday tasks. Perfect for light usage with minimal API quotas. Includes search, read, create, and basic modify operations across all services.

Extended (--tool-tier extended) Core functionality plus management tools. Adds labels, folders, batch operations, and advanced search. Ideal for regular usage with moderate API needs.

Complete (--tool-tier complete) Full API access including comments, headers/footers, publishing settings, and administrative functions. For power users needing maximum functionality.

Important Notes

Start with core and upgrade as needed Tiers are cumulative – each includes all previous Mix and match with --tools for specific services Configuration in core/tool_tiers.yaml Authentication included in all tiers

Usage Examples

# Basic tier selection
uv run main.py --tool-tier core                            # Start with essential tools only
uv run main.py --tool-tier extended                        # Expand to include management features
uv run main.py --tool-tier complete                        # Enable all available functionality

# Selective service loading with tiers
uv run main.py --tools gmail drive --tool-tier core        # Core tools for specific services
uv run main.py --tools gmail --tool-tier extended          # Extended Gmail functionality only
uv run main.py --tools docs sheets --tool-tier complete    # Full access to Docs and Sheets

📋 Credential Configuration

🚀 Environment Variables

export GOOGLE_OAUTH_CLIENT_ID=\
  "your-client-id"
export GOOGLE_OAUTH_CLIENT_SECRET=\
  "your-secret"

Best for production

📁 File-based

# Download & place in project root
client_secret.json

# Or specify custom path
export GOOGLE_CLIENT_SECRET_PATH=\
  /path/to/secret.json

Traditional method

⚡ .env File

cp .env.oauth21 .env
# Edit .env with credentials

Best for development

Loading Priority

  1. Environment variables (export VAR=value)

  2. .env file in project root (warning - if you run via uvx rather than uv run from the repo directory, you are spawning a standalone process not associated with your clone of the repo and it will not find your .env file without specifying it directly)

  3. client_secret.json via GOOGLE_CLIENT_SECRET_PATH

  4. Default client_secret.json in project root

Why Environment Variables?

  • Docker/K8s ready - Native container support

  • Cloud platforms - Heroku, Railway, Vercel

  • CI/CD pipelines - GitHub Actions, Jenkins

  • No secrets in git - Keep credentials secure

  • Easy rotation - Update without code changes


🧰 Available Tools

Note: All tools support automatic authentication via @require_google_service() decorators with 30-minute service caching.

📅 Google Calendar calendar_tools.py

Tool

Tier

Description

list_calendars

Core

List accessible calendars

get_events

Core

Retrieve events with time range filtering

create_event

Core

Create events with attachments & reminders

modify_event

Core

Update existing events

delete_event

Extended

Remove events

📁 Google Drive drive_tools.py

Tool

Tier

Description

search_drive_files

Core

Search files with query syntax

get_drive_file_content

Core

Read file content (Office formats)

get_drive_file_download_url

Core

Get download URL for Drive files

create_drive_file

Core

Create files or fetch from URLs

share_drive_file

Core

Share file with users/groups/domains/anyone

get_drive_shareable_link

Core

Get shareable links for a file

list_drive_items

Extended

List folder contents

update_drive_file

Extended

Update file metadata, move between folders

batch_share_drive_file

Extended

Share file with multiple recipients

update_drive_permission

Extended

Modify permission role

remove_drive_permission

Extended

Revoke file access

transfer_drive_ownership

Extended

Transfer file ownership to another user

get_drive_file_permissions

Complete

Get detailed file permissions

check_drive_file_public_access

Complete

Check public sharing status

📧 Gmail gmail_tools.py

Tool

Tier

Description

search_gmail_messages

Core

Search with Gmail operators

get_gmail_message_content

Core

Retrieve message content

get_gmail_messages_content_batch

Core

Batch retrieve message content

send_gmail_message

Core

Send emails

get_gmail_thread_content

Extended

Get full thread content

modify_gmail_message_labels

Extended

Modify message labels

list_gmail_labels

Extended

List available labels

manage_gmail_label

Extended

Create/update/delete labels

draft_gmail_message

Extended

Create drafts

get_gmail_threads_content_batch

Complete

Batch retrieve thread content

batch_modify_gmail_message_labels

Complete

Batch modify labels

start_google_auth

Complete

Initialize authentication

📝 Google Docs docs_tools.py

Tool

Tier

Description

get_doc_content

Core

Extract document text

create_doc

Core

Create new documents

modify_doc_text

Core

Modify document text

search_docs

Extended

Find documents by name

find_and_replace_doc

Extended

Find and replace text

list_docs_in_folder

Extended

List docs in folder

insert_doc_elements

Extended

Add tables, lists, page breaks

insert_doc_image

Complete

Insert images from Drive/URLs

update_doc_headers_footers

Complete

Modify headers and footers

batch_update_doc

Complete

Execute multiple operations

inspect_doc_structure

Complete

Analyze document structure

export_doc_to_pdf

Extended

Export document to PDF

create_table_with_data

Complete

Create data tables

debug_table_structure

Complete

Debug table issues

*_document_comments

Complete

Read, Reply, Create, Resolve

📊 Google Sheets sheets_tools.py

Tool

Tier

Description

read_sheet_values

Core

Read cell ranges

modify_sheet_values

Core

Write/update/clear cells

create_spreadsheet

Core

Create new spreadsheets

list_spreadsheets

Extended

List accessible spreadsheets

get_spreadsheet_info

Extended

Get spreadsheet metadata

create_sheet

Complete

Add sheets to existing files

*_sheet_comment

Complete

Read/create/reply/resolve comments

🖼️ Google Slides slides_tools.py

Tool

Tier

Description

create_presentation

Core

Create new presentations

get_presentation

Core

Retrieve presentation details

batch_update_presentation

Extended

Apply multiple updates

get_page

Extended

Get specific slide information

get_page_thumbnail

Extended

Generate slide thumbnails

*_presentation_comment

Complete

Read/create/reply/resolve comments

📝 Google Forms forms_tools.py

Tool

Tier

Description

create_form

Core

Create new forms

get_form

Core

Retrieve form details & URLs

set_publish_settings

Complete

Configure form settings

get_form_response

Complete

Get individual responses

list_form_responses

Extended

List all responses with pagination

Google Tasks tasks_tools.py

Tool

Tier

Description

list_tasks

Core

List tasks with filtering

get_task

Core

Retrieve task details

create_task

Core

Create tasks with hierarchy

update_task

Core

Modify task properties

delete_task

Extended

Remove tasks

move_task

Complete

Reposition tasks

clear_completed_tasks

Complete

Hide completed tasks

*_task_list

Complete

List/get/create/update/delete task lists

💬 Google Chat chat_tools.py

Tool

Tier

Description

list_spaces

Extended

List chat spaces/rooms

get_messages

Core

Retrieve space messages

send_message

Core

Send messages to spaces

search_messages

Core

Search across chat history

🔍 Google Custom Search search_tools.py

Tool

Tier

Description

search_custom

Core

Perform web searches

get_search_engine_info

Complete

Retrieve search engine metadata

search_custom_siterestrict

Extended

Search within specific domains

Tool Tier Legend:

  • Core: Essential tools for basic functionality • Minimal API usage • Getting started

  • Extended: Core tools + additional features • Regular usage • Expanded capabilities

  • Complete: All available tools including advanced features • Power users • Full API access


Connect to Claude Desktop

The server supports two transport modes:

In general, you should use the one-click DXT installer package for Claude Desktop. If you are unable to for some reason, you can configure it manually via claude_desktop_config.json

Manual Claude Configuration (Alternative)

  1. Open Claude Desktop Settings → Developer → Edit Config

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

  2. Add the server configuration:

{
  "mcpServers": {
    "google_workspace": {
      "command": "uvx",
      "args": ["workspace-mcp"],
      "env": {
        "GOOGLE_OAUTH_CLIENT_ID": "your-client-id",
        "GOOGLE_OAUTH_CLIENT_SECRET": "your-secret",
        "OAUTHLIB_INSECURE_TRANSPORT": "1"
      }
    }
  }
}

Connect to LM Studio

Add a new MCP server in LM Studio (Settings → MCP Servers) using the same JSON format:

{
  "mcpServers": {
    "google_workspace": {
      "command": "uvx",
      "args": ["workspace-mcp"],
      "env": {
        "GOOGLE_OAUTH_CLIENT_ID": "your-client-id",
        "GOOGLE_OAUTH_CLIENT_SECRET": "your-secret",
        "OAUTHLIB_INSECURE_TRANSPORT": "1",
      }
    }
  }
}

2. Advanced / Cross-Platform Installation

If you’re developing, deploying to servers, or using another MCP-capable client, keep reading.

Instant CLI (uvx)

# Requires Python 3.10+ and uvx
# First, set credentials (see Credential Configuration above)
uvx workspace-mcp --tool-tier core  # or --tools gmail drive calendar

Note: Configure OAuth credentials before running. Supports environment variables, .env file, or client_secret.json.

Local Development Setup

# Install everything needed for linting, tests, and release tooling
uv sync --group dev

# Run the same linter that git hooks invoke automatically
uv run ruff check .

# Execute the full test suite (async fixtures require pytest-asyncio)
uv run pytest
  • uv sync --group test installs only the testing stack if you need a slimmer environment.

  • uv run main.py --transport streamable-http launches the server with your checked-out code for manual verification.

  • Ruff is part of the dev group because pre-push hooks call ruff check automatically—run it locally before committing to avoid hook failures.

OAuth 2.1 Support (Multi-User Bearer Token Authentication)

The server includes OAuth 2.1 support for bearer token authentication, enabling multi-user session management. OAuth 2.1 automatically reuses your existing GOOGLE_OAUTH_CLIENT_ID and GOOGLE_OAUTH_CLIENT_SECRET credentials - no additional configuration needed!

When to use OAuth 2.1:

  • Multiple users accessing the same MCP server instance

  • Need for bearer token authentication instead of passing user emails

  • Building web applications or APIs on top of the MCP server

  • Production environments requiring secure session management

  • Browser-based clients requiring CORS support

Enabling OAuth 2.1: To enable OAuth 2.1, set the MCP_ENABLE_OAUTH21 environment variable to true.

# OAuth 2.1 requires HTTP transport mode
export MCP_ENABLE_OAUTH21=true
uv run main.py --transport streamable-http

If MCP_ENABLE_OAUTH21 is not set to true, the server will use legacy authentication, which is suitable for clients that do not support OAuth 2.1.

FastMCP ships a native GoogleProvider that we now rely on directly. It solves the two tricky parts of using Google OAuth with MCP clients:

  1. Dynamic Client Registration: Google still doesn't support OAuth 2.1 DCR, but the FastMCP provider exposes the full DCR surface and forwards registrations to Google using your fixed credentials. MCP clients register as usual and the provider hands them your Google client ID/secret under the hood.

  2. CORS & Browser Compatibility: The provider includes an OAuth proxy that serves all discovery, authorization, and token endpoints with proper CORS headers. We no longer maintain custom /oauth2/* routes—the provider handles the upstream exchanges securely and advertises the correct metadata to clients.

The result is a leaner server that still enables any OAuth 2.1 compliant client (including browser-based ones) to authenticate through Google without bespoke code.

Stateless Mode (Container-Friendly)

The server supports a stateless mode designed for containerized environments where file system writes should be avoided:

Enabling Stateless Mode:

# Stateless mode requires OAuth 2.1 to be enabled
export MCP_ENABLE_OAUTH21=true
export WORKSPACE_MCP_STATELESS_MODE=true
uv run main.py --transport streamable-http

Key Features:

  • No file system writes: Credentials are never written to disk

  • No debug logs: File-based logging is completely disabled

  • Memory-only sessions: All tokens stored in memory via OAuth 2.1 session store

  • Container-ready: Perfect for Docker, Kubernetes, and serverless deployments

  • Token per request: Each request must include a valid Bearer token

Requirements:

  • Must be used with MCP_ENABLE_OAUTH21=true

  • Incompatible with single-user mode

  • Clients must handle OAuth flow and send valid tokens with each request

This mode is ideal for:

  • Cloud deployments where persistent storage is unavailable

  • Multi-tenant environments requiring strict isolation

  • Containerized applications with read-only filesystems

  • Serverless functions and ephemeral compute environments

MCP Inspector: No additional configuration needed with desktop OAuth client.

Claude Code: No additional configuration needed with desktop OAuth client.

OAuth Proxy Storage Backends

The server supports pluggable storage backends for OAuth proxy state management via FastMCP 2.13.0+. Choose a backend based on your deployment needs.

Available Backends:

Backend

Best For

Persistence

Multi-Server

Memory

Development, testing

Disk

Single-server production

Valkey/Redis

Distributed production

Configuration:

# Memory storage (fast, no persistence)
export WORKSPACE_MCP_OAUTH_PROXY_STORAGE_BACKEND=memory

# Disk storage (persists across restarts)
export WORKSPACE_MCP_OAUTH_PROXY_STORAGE_BACKEND=disk
export WORKSPACE_MCP_OAUTH_PROXY_DISK_DIRECTORY=~/.fastmcp/oauth-proxy

# Valkey/Redis storage (distributed, multi-server)
export WORKSPACE_MCP_OAUTH_PROXY_STORAGE_BACKEND=valkey
export WORKSPACE_MCP_OAUTH_PROXY_VALKEY_HOST=redis.example.com
export WORKSPACE_MCP_OAUTH_PROXY_VALKEY_PORT=6379

Valkey support is optional. Install workspace-mcp[valkey] (or py-key-value-aio[valkey]) only if you enable the Valkey backend. Windows: building valkey-glide from source requires MSVC C++ build tools with C11 support. If you see aws-lc-sys C11 errors, set CFLAGS=/std:c11.

Variable

Default

Description

WORKSPACE_MCP_OAUTH_PROXY_VALKEY_HOST

localhost

Valkey/Redis host

WORKSPACE_MCP_OAUTH_PROXY_VALKEY_PORT

6379

Port (6380 auto-enables TLS)

WORKSPACE_MCP_OAUTH_PROXY_VALKEY_DB

0

Database number

WORKSPACE_MCP_OAUTH_PROXY_VALKEY_USE_TLS

auto

Enable TLS (auto if port 6380)

WORKSPACE_MCP_OAUTH_PROXY_VALKEY_USERNAME

-

Authentication username

WORKSPACE_MCP_OAUTH_PROXY_VALKEY_PASSWORD

-

Authentication password

WORKSPACE_MCP_OAUTH_PROXY_VALKEY_REQUEST_TIMEOUT_MS

5000

Request timeout for remote hosts

WORKSPACE_MCP_OAUTH_PROXY_VALKEY_CONNECTION_TIMEOUT_MS

10000

Connection timeout for remote hosts

Encryption: Disk and Valkey storage are encrypted with Fernet. The encryption key is derived from FASTMCP_SERVER_AUTH_GOOGLE_JWT_SIGNING_KEY if set, otherwise from GOOGLE_OAUTH_CLIENT_SECRET.

External OAuth 2.1 Provider Mode

The server supports an external OAuth 2.1 provider mode for scenarios where authentication is handled by an external system. In this mode, the MCP server does not manage the OAuth flow itself but expects valid bearer tokens in the Authorization header of tool calls.

Enabling External OAuth 2.1 Provider Mode:

# External OAuth provider mode requires OAuth 2.1 to be enabled
export MCP_ENABLE_OAUTH21=true
export EXTERNAL_OAUTH21_PROVIDER=true
uv run main.py --transport streamable-http

How It Works:

  • Protocol-level auth disabled: MCP handshake (initialize) and tools/list do not require authentication

  • Tool-level auth required: All tool calls must include Authorization: Bearer <token> header

  • External OAuth flow: Your external system handles the OAuth flow and obtains Google access tokens

  • Token validation: Server validates bearer tokens via Google's tokeninfo API

  • Multi-user support: Each request is authenticated independently based on its bearer token

Key Features:

  • No local OAuth flow: Server does not provide OAuth callback endpoints or manage OAuth state

  • Bearer token only: All authentication via Authorization headers

  • Stateless by design: Works seamlessly with WORKSPACE_MCP_STATELESS_MODE=true

  • External identity providers: Integrate with your existing authentication infrastructure

  • Tool discovery: Clients can list available tools without authentication

Requirements:

  • Must be used with MCP_ENABLE_OAUTH21=true

  • OAuth credentials still required for token validation (GOOGLE_OAUTH_CLIENT_ID, GOOGLE_OAUTH_CLIENT_SECRET)

  • External system must obtain valid Google OAuth access tokens (ya29.*)

  • Each tool call request must include valid bearer token

Use Cases:

  • Integrating with existing authentication systems

  • Custom OAuth flows managed by your application

  • API gateways that handle authentication upstream

  • Multi-tenant SaaS applications with centralized auth

  • Mobile or web apps with their own OAuth implementation

VS Code MCP Client Support

{
    "servers": {
        "google-workspace": {
            "url": "http://localhost:8000/mcp/",
            "type": "http"
        }
    }
}

Claude Code MCP Client Support

claude mcp add --transport http workspace-mcp http://localhost:8000/mcp

Reverse Proxy Setup

If you're running the MCP server behind a reverse proxy (nginx, Apache, Cloudflare, etc.), you have two configuration options:

Problem: When behind a reverse proxy, the server constructs OAuth URLs using internal ports (e.g., http://localhost:8000) but external clients need the public URL (e.g., https://your-domain.com).

Solution 1: Set WORKSPACE_EXTERNAL_URL for all OAuth endpoints:

# This configures all OAuth endpoints to use your external URL
export WORKSPACE_EXTERNAL_URL="https://your-domain.com"

Solution 2: Set GOOGLE_OAUTH_REDIRECT_URI for just the callback:

# This only overrides the OAuth callback URL
export GOOGLE_OAUTH_REDIRECT_URI="https://your-domain.com/oauth2callback"

You also have options for: | OAUTH_CUSTOM_REDIRECT_URIS (optional) | Comma-separated list of additional redirect URIs | | OAUTH_ALLOWED_ORIGINS (optional) | Comma-separated list of additional CORS origins |

Important:

  • Use WORKSPACE_EXTERNAL_URL when all OAuth endpoints should use the external URL (recommended for reverse proxy setups)

  • Use GOOGLE_OAUTH_REDIRECT_URI when you only need to override the callback URL

  • The redirect URI must exactly match what's configured in your Google Cloud Console

  • Your reverse proxy must forward OAuth-related requests (/oauth2callback, /oauth2/*, /.well-known/*) to the MCP server

# Configure credentials first (see Credential Configuration section)

# Start with specific tools only
uvx workspace-mcp --tools gmail drive calendar tasks

# Start with tool tiers (recommended for most users)
uvx workspace-mcp --tool-tier core      # Essential tools
uvx workspace-mcp --tool-tier extended  # Core + additional features
uvx workspace-mcp --tool-tier complete  # All tools

# Start in HTTP mode for debugging
uvx workspace-mcp --transport streamable-http

Requires Python 3.10+ and uvx. The package is available on PyPI.

Development Installation

For development or customization:

git clone https://github.com/taylorwilsdon/google_workspace_mcp.git
cd google_workspace_mcp
uv run main.py

Development Installation (For Contributors):

{
  "mcpServers": {
    "google_workspace": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/repo/google_workspace_mcp",
        "main.py"
      ],
      "env": {
        "GOOGLE_OAUTH_CLIENT_ID": "your-client-id",
        "GOOGLE_OAUTH_CLIENT_SECRET": "your-secret",
        "OAUTHLIB_INSECURE_TRANSPORT": "1"
      }
    }
  }
}

HTTP Mode (For debugging or web interfaces)

If you need to use HTTP mode with Claude Desktop:

{
  "mcpServers": {
    "google_workspace": {
      "command": "npx",
      "args": ["mcp-remote", "http://localhost:8000/mcp"]
    }
  }
}

Note: Make sure to start the server with --transport streamable-http when using HTTP mode.

First-Time Authentication

The server uses Google Desktop OAuth for simplified authentication:

  • No redirect URIs needed: Desktop OAuth clients handle authentication without complex callback URLs

  • Automatic flow: The server manages the entire OAuth process transparently

  • Transport-agnostic: Works seamlessly in both stdio and HTTP modes

When calling a tool:

  1. Server returns authorization URL

  2. Open URL in browser and authorize

  3. Google provides an authorization code

  4. Paste the code when prompted (or it's handled automatically)

  5. Server completes authentication and retries your request


◆ Development

Project Structure

google_workspace_mcp/
├── auth/              # Authentication system with decorators
├── core/              # MCP server and utilities
├── g{service}/        # Service-specific tools
├── main.py            # Server entry point
├── client_secret.json # OAuth credentials (not committed)
└── pyproject.toml     # Dependencies

Adding New Tools

from auth.service_decorator import require_google_service

@require_google_service("drive", "drive_read")  # Service + scope group
async def your_new_tool(service, param1: str, param2: int = 10):
    """Tool description"""
    # service is automatically injected and cached
    result = service.files().list().execute()
    return result  # Return native Python objects

Architecture Highlights

  • Service Caching: 30-minute TTL reduces authentication overhead

  • Scope Management: Centralized in SCOPE_GROUPS for easy maintenance

  • Error Handling: Native exceptions instead of manual error construction

  • Multi-Service Support: @require_multiple_services() for complex tools

Credential Store System

The server includes an abstract credential store API and a default backend for managing Google OAuth credentials with support for multiple storage backends:

Features:

  • Abstract Interface: CredentialStore base class defines standard operations (get, store, delete, list users)

  • Local File Storage: LocalDirectoryCredentialStore implementation stores credentials as JSON files

  • Configurable Storage: Environment variable GOOGLE_MCP_CREDENTIALS_DIR sets storage location

  • Multi-User Support: Store and manage credentials for multiple Google accounts

  • Automatic Directory Creation: Storage directory is created automatically if it doesn't exist

Configuration:

# Optional: Set custom credentials directory
export GOOGLE_MCP_CREDENTIALS_DIR="/path/to/credentials"

# Default locations (if GOOGLE_MCP_CREDENTIALS_DIR not set):
# - ~/.google_workspace_mcp/credentials (if home directory accessible)
# - ./.credentials (fallback)

Usage Example:

from auth.credential_store import get_credential_store

# Get the global credential store instance
store = get_credential_store()

# Store credentials for a user
store.store_credential("user@example.com", credentials)

# Retrieve credentials
creds = store.get_credential("user@example.com")

# List all users with stored credentials
users = store.list_users()

The credential store automatically handles credential serialization, expiry parsing, and provides error handling for storage operations.


⊠ Security

  • Credentials: Never commit .env, client_secret.json or the .credentials/ directory to source control!

  • OAuth Callback: Uses http://localhost:8000/oauth2callback for development (requires OAUTHLIB_INSECURE_TRANSPORT=1)

  • Transport-Aware Callbacks: Stdio mode starts a minimal HTTP server only for OAuth, ensuring callbacks work in all modes

  • Production: Use HTTPS & OAuth 2.1 and configure accordingly

  • Scope Minimization: Tools request only necessary permissions



≡ License

MIT License - see LICENSE file for details.


Validations: MCP Badge

Available Tools

105 tools
add_conditional_formattingA

Adds a conditional formatting rule to a range.

Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. range_name (str): A1-style range (optionally with sheet name). Required. condition_type (str): Sheets condition type (e.g., NUMBER_GREATER, TEXT_CONTAINS, DATE_BEFORE, CUSTOM_FORMULA). condition_values (Optional[Union[str, List[Union[str, int, float]]]]): Values for the condition; accepts a list or a JSON string representing a list. Depends on condition_type. background_color (Optional[str]): Hex background color to apply when condition matches. text_color (Optional[str]): Hex text color to apply when condition matches. rule_index (Optional[int]): Optional position to insert the rule (0-based) within the sheet's rules. gradient_points (Optional[Union[str, List[dict]]]): List (or JSON list) of gradient points for a color scale. If provided, a gradient rule is created and boolean parameters are ignored.

Returns: str: Confirmation of the added rule.

ParametersJSON Schema
NameRequiredDescriptionDefault
range_nameYes
rule_indexNo
text_colorNo
condition_typeYes
spreadsheet_idYes
gradient_pointsNo
background_colorNo
condition_valuesNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the effect (adds a rule), key behavioral details (e.g., gradient points create a gradient rule and ignore boolean parameters), and return type. It lacks permission or auth context, but the required user_google_email parameter hints at authentication.

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

Conciseness4/5

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

The description is well-structured with a concise one-sentence purpose followed by an Args section and a Returns section. It is longer due to the parameter explanations, but every sentence serves a purpose given the lack of schema descriptions.

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

Completeness4/5

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

Given the tool's complexity (9 parameters, no annotations, no schema descriptions), the description is nearly complete. It covers all parameters, behavior, and return value. It does not address error conditions or prerequisites beyond user_google_email, but this is a minor gap.

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

Parameters5/5

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

The description provides detailed explanations for all 9 parameters, including types, required status, and dependencies (e.g., 'Values for the condition... Depends on condition_type'). Since schema coverage is 0%, this fully compensates and adds significant meaning beyond the schema.

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

Purpose5/5

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

The description clearly states 'Adds a conditional formatting rule to a range' with a specific verb and resource. It distinguishes from sibling tools like update_conditional_formatting and delete_conditional_formatting by focusing on the 'add' action.

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

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. Sibling tools (update_conditional_formatting, delete_conditional_formatting) exist, but the description does not mention them or provide context on choosing this tool. Usage is only implied by the word 'Adds'.

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

batch_modify_gmail_message_labelsA

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

Args: user_google_email (str): The user's Google email address. Required. message_ids (List[str]): A list of message IDs to modify. add_label_ids (Optional[List[str]]): List of label IDs to add to the messages. remove_label_ids (Optional[List[str]]): List of label IDs to remove from the messages.

Returns: str: Confirmation message of the label changes applied to the messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idsYes
add_label_idsNoLabel IDs to add to messages.
remove_label_idsNoLabel IDs to remove from messages.
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 carry the behavioral disclosure burden. It states the core action and return type but does not discuss permissions, error handling, partial failures, or the destructive nature of removing labels. It also does not mention authentication requirements, which are likely necessary.

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

Conciseness5/5

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

The description is well-structured as a docstring with Args and Returns sections. It is concise, with each line serving a purpose, and no extraneous text.

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

Completeness3/5

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

Given the tool's moderate complexity and the absence of annotations, the description provides adequate but not exhaustive context. It covers all parameters and the return value, but lacks prerequisites, error handling, or batch-specific behaviors. The output schema is noted as present, so return description is redundant, but the overall context is slightly thin.

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

Parameters4/5

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

The input schema covers 50% of parameters, leaving user_google_email and message_ids undocumented in the schema. The description compensates by clearly explaining these two parameters, noting 'Required' and providing a concise purpose. It also confirms the optional nature of add/remove lists.

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

Purpose5/5

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

The description clearly states the tool's function: 'Adds or removes labels from multiple Gmail messages in a single batch request.' It uses a specific verb and resource, and the scope 'multiple' and 'batch' differentiates it from the sibling modify_gmail_message_labels.

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

Usage Guidelines3/5

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

The description implies batch usage but does not explicitly state when to use this tool over the singular modify_gmail_message_labels or other alternatives. It mentions 'single batch request' but no explicit exclusions or alternative references.

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

batch_share_drive_fileA

Shares a Google Drive file or folder with multiple users or groups in a single operation.

Each recipient can have a different role and optional expiration time.

Note: Each recipient is processed sequentially. For very large recipient lists, consider splitting into multiple calls.

Args: user_google_email (str): The user's Google email address. Required. file_id (str): The ID of the file or folder to share. Required. recipients (List[Dict]): List of recipient objects. Each should have: - email (str): Recipient email address. Required for 'user' or 'group' share_type. - role (str): Permission role - 'reader', 'commenter', or 'writer'. Defaults to 'reader'. - share_type (str, optional): 'user', 'group', or 'domain'. Defaults to 'user'. - expiration_time (str, optional): Expiration in RFC 3339 format (e.g., "2025-01-15T00:00:00Z"). For domain shares, use 'domain' field instead of 'email': - domain (str): Domain name. Required when share_type is 'domain'. send_notification (bool): Whether to send notification emails. Defaults to True. email_message (Optional[str]): Custom message for notification emails.

Returns: str: Summary of created permissions with success/failure for each recipient.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes
recipientsYes
email_messageNo
send_notificationNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries full behavioral disclosure. It reveals sequential processing, defaults for roles and notifications, and the return value with per-recipient success/failure. It does not mention auth requirements or potential partial-failure implications, but provides useful operational 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 long but appropriately structured with an overview, performance note, Args section, and Returns section. Every detail earns its place given the complex nested parameter and no schema descriptions. It is somewhat verbose but not wasteful.

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

Completeness5/5

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

The description completely covers purpose, behavioral nuances, all parameters, and return value. The output schema exists, but even without it, the description explains the string summary of created permissions. No critical gaps remain.

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

Parameters5/5

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

The input schema has 0% description coverage, and the description compensates fully. It explains each parameter, the structure of recipient objects, required fields per share_type, defaults, and the domain alternative. This is as thorough as needed.

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 first sentence clearly states the tool shares a Google Drive file or folder with multiple users or groups in a single operation, using a specific verb and resource. This distinguishes it from the single-recipient share_drive_file sibling tool.

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 implies the tool is for batch sharing with multiple recipients and adds a practical note about sequential processing and splitting large lists. It doesn't explicitly name the alternative for single-recipient sharing, but the batch semantics are clear.

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

batch_update_docA

Executes multiple document operations in a single atomic batch update.

Args: user_google_email: User's Google email address document_id: ID of the document to update operations: List of operation dictionaries. Each operation should contain: - type: Operation type ('insert_text', 'delete_text', 'replace_text', 'format_text', 'insert_table', 'insert_page_break') - Additional parameters specific to each operation type

Example operations: [ {"type": "insert_text", "index": 1, "text": "Hello World"}, {"type": "format_text", "start_index": 1, "end_index": 12, "bold": true}, {"type": "insert_table", "index": 20, "rows": 2, "columns": 3} ]

Returns: str: Confirmation message with batch operation results

ParametersJSON Schema
NameRequiredDescriptionDefault
operationsYes
document_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses key behavioral traits: operations are executed in a single atomic batch, and it also lists supported operation types and the return format. It does not cover error handling or permission requirements, but the provided details are substantial.

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

Conciseness5/5

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

The description is well-organized with clear sections (Args, Example operations, Returns), front-loads the core purpose, and contains no superfluous information. Every sentence adds value, making it appropriately sized for the tool's complexity.

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

Completeness4/5

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

For a batch update tool, the description provides the essential elements: purpose, parameter examples, and return type. It does not cover edge cases like validation failures or whether all operation types are equally supported, but given no annotations or output schema details, it is reasonably complete for an agent to select and invoke the tool.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully explain parameters. It does this well: each parameter is described concisely, and the complex 'operations' parameter is given structure with allowed types and a concrete example. This goes beyond the basic baseline required.

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

Purpose5/5

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

The description clearly states the tool's function: 'Executes multiple document operations in a single atomic batch update.' This specifies a verb (executes), a resource (document operations), and the batch/atomic nature, which distinguishes it from single-operation siblings like modify_doc_text or insert_doc_elements.

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

Usage Guidelines4/5

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

The description implies the tool is for performing multiple document operations atomically, which gives clear contextual usage. However, it does not explicitly name alternative tools or state when not to use it, so it stops short of a full 5.

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

batch_update_presentationC

Apply batch updates to a Google Slides presentation.

Args: user_google_email (str): The user's Google email address. Required. presentation_id (str): The ID of the presentation to update. requests (List[Dict[str, Any]]): List of update requests to apply.

Returns: str: Details about the batch update operation results.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestsYes
presentation_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention that updates modify the presentation destructively, whether requests are atomic, or any authentication requirements. The return type is described, but side effects and rate limits are omitted.

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

Conciseness4/5

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

The description is concise and well-structured with an Args/Returns format, making key information easy to parse. The parameter descriptions are somewhat redundant with the schema but do not add excessive verbosity.

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

Completeness2/5

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

For a tool with three required parameters, including a complex list of request objects, and no annotations or detailed schema coverage, the description is insufficient. It omits how to construct requests, error handling behavior, and the exact return content, leaving critical operational details undocumented.

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

Parameters2/5

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

The description adds basic parameter explanations (e.g., user_google_email is required) but does not explain the structure of `requests` objects, which are arbitrary dictionaries. Given 0% schema description coverage, this is a significant gap that leaves users guessing about valid request formats.

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

Purpose4/5

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

The description clearly states the operation as 'Apply batch updates to a Google Slides presentation', which is a specific verb+resource combination that distinguishes it from read-only presentation tools like get_presentation. However, it lacks detail on what 'batch updates' entails, preventing a perfect score.

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

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 like batch_update_doc or individual update tools. It implies use for multiple updates but does not state exclusions, prerequisites, or alternatives.

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

check_drive_file_public_accessA

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

Args: user_google_email (str): The user's Google email address. Required. file_name (str): The name of the file to check.

Returns: str: Information about the file's sharing status and whether it can be used in Google Docs.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_nameYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 carries the full burden. It discloses the search-and-check behavior and describes the return value as a string with sharing status and Google Docs usability. However, it omits edge-case behaviors such as multiple files with the same name, exact-match requirements, or what happens if no file is found. It also doesn't mention whether it is a pure read operation or if any side effects occur, though it appears safe.

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

Conciseness5/5

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

The description is well-structured with a clear opening sentence, an Args section, and a Returns section. Every sentence earns its place: the purpose is stated first, then parameters are defined, and the return type is clarified. There is no redundant or filler content, and the format is easy to parse.

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

Completeness4/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 that returns a string, the description is largely sufficient. The presence of an output schema (not shown) means return values don't need to be explained, yet the description still provides return info. The main gaps are lack of guidance on file lookup uniqueness and potential error cases, but given the tool's simplicity, the description covers the essentials.

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

Parameters4/5

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

The schema only provides parameter names and types with no descriptions (0% coverage). The description compensates by explaining both parameters: 'user_google_email (str): The user's Google email address. Required.' and 'file_name (str): The name of the file to check.' This adds meaningful semantic value beyond the schema, though it could further specify constraints like case sensitivity or exact match requirement.

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

Purpose5/5

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

The description clearly states a specific action: 'Searches for a file by name and checks if it has public link sharing enabled.' This combines a specific verb ('searches', 'checks') with a resource (file) and a specific scope (public link sharing), distinguishing it from sibling tools like search_drive_files or get_drive_file_permissions.

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

Usage Guidelines4/5

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

The description implies usage context: use when you need to find a file by name and determine if it has public link sharing. While it doesn't explicitly name alternatives or exclusions, the purpose is clear enough that an agent can infer when to select this tool over others like get_drive_shareable_link or get_drive_file_permissions. No misleading guidance.

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

clear_completed_tasksA

Clear all completed tasks from a task list. The tasks will be marked as hidden.

Args: user_google_email (str): The user's Google email address. Required. task_list_id (str): The ID of the task list to clear completed tasks from.

Returns: str: Confirmation message.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_list_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It importantly reveals that tasks are 'marked as hidden' rather than permanently deleted, which is a non-obvious and critical behavior. It also specifies that user_google_email is required, implying an authentication need. However, it does not mention reversibility or permissions beyond the required email.

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

Conciseness5/5

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

The description is concise and well-structured. The core purpose is stated in the first sentence, followed by a critical behavioral note. The Args and Returns sections are clearly formatted and contain no unnecessary information.

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

Completeness5/5

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

The tool has only 2 parameters, both explained in the description. The return type is specified ('str: Confirmation message'). The action and side effect are clear. The description is fully sufficient for an agent to invoke the tool correctly, even without additional schemas or annotations.

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

Parameters5/5

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

The input schema provides only names and types with no descriptions. The description compensates fully by explaining each parameter: 'The user's Google email address' and 'The ID of the task list to clear completed tasks from.' This completely clarifies the meaning of both required parameters.

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

Purpose5/5

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

The description clearly states the tool's function: 'Clear all completed tasks from a task list.' It uses a specific verb and resource, and the additional note that tasks are 'marked as hidden' distinguishes it from a simple delete. Sibling tools like delete_task and move_task are clearly different in scope.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool—when you need to clear completed tasks from a list. It does not explicitly mention alternatives or when-not-to-use scenarios, but the context is unambiguous. The required email and list ID give necessary context for invocation.

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

create_docA

Creates a new Google Doc and optionally inserts initial content.

Returns: str: Confirmation message with document ID and link.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
contentNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses that the tool creates a doc, optionally inserts content, and returns a confirmation message with document ID and link. However, it does not mention authorization requirements, behavior on invalid input, or potential side effects beyond creation, leaving some behavioral gaps.

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

Conciseness5/5

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

The description is highly concise, with a clear action sentence followed by a structured return type statement. Every word adds value, and the information is front-loaded.

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

Completeness3/5

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

For a simple create tool with no nested objects and a clear return schema, the description covers the main function and return value. However, the unexplained required parameter 'user_google_email' and lack of any usage prerequisites or content format details leave gaps that reduce completeness.

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

Parameters2/5

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

Schema has 0% description coverage, and the description adds minimal parameter meaning. It notes that 'content' is optional initial content, and the title is implied as the doc title, but the required 'user_google_email' parameter is unexplained. Without schema descriptions, the description should compensate more for parameter semantics.

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

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 primary action: 'Creates a new Google Doc and optionally inserts initial content.' This is specific and uses a distinct resource (Google Doc), differentiating it from sibling tools like create_drive_file or create_spreadsheet.

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

Usage Guidelines3/5

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

The description implies usage for creating a new Google Doc with optional initial content, but it does not explicitly state when to prefer this over alternatives or mention any exclusions. Since the tool name is clear, usage is somewhat implied, but explicit guidance is minimal.

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

create_document_commentC

Create a new comment on a Google Document.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYes
comment_contentYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 the basic action without disclosing behavioral details such as authentication requirements, whether the comment is anchored to a specific location, or the response format. This is a mutation tool, so more context is expected.

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

Conciseness4/5

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

The description is one concise sentence, front-loaded and easy to parse. It avoids verbosity, but under-specification limits its value. Still, the brevity is appropriate for the simple action.

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

Completeness2/5

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

For a tool with three required parameters, no annotation coverage, and no description-level parameter context, the one-sentence description is incomplete. It doesn't mention prerequisites (e.g., Google auth), what inputs are needed, or any post-conditions. Although an output schema exists, the description still leaves significant gaps in user guidance.

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

Parameters1/5

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

With schema description coverage at 0%, the description must compensate by explaining parameters. It does not mention user_google_email, document_id, or comment_content at all. The parameter names are somewhat self-explanatory, but without clarification of user_google_email's role (e.g., the authenticated user vs. an attributor) the semantics remain ambiguous.

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

Purpose5/5

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

The description 'Create a new comment on a Google Document' clearly specifies the verb (create), the resource (comment), and the target (Google Document). It distinguishes from sibling comment tools like read_document_comments, reply_to_document_comment, and resolve_document_comment.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as reply_to_document_comment or read_document_comments. It does not mention any prerequisities, exclusions, or alternative scenarios, leaving the user to infer usage from the tool name alone.

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

create_drive_fileA

Creates a new file in Google Drive, supporting creation within shared drives. Accepts either direct content or a fileUrl to fetch the content from.

Args: user_google_email (str): The user's Google email address. Required. file_name (str): The name for the new file. content (Optional[str]): If provided, the content to write to the file. folder_id (str): The ID of the parent folder. Defaults to 'root'. For shared drives, this must be a folder ID within the shared drive. mime_type (str): The MIME type of the file. Defaults to 'text/plain'. fileUrl (Optional[str]): If provided, fetches the file content from this URL. Supports file://, http://, and https:// protocols.

Returns: str: Confirmation message of the successful file creation with file link.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentNo
fileUrlNo
file_nameYes
folder_idNoroot
mime_typeNotext/plain
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It explains two content sources (direct content or fileUrl), the fileUrl protocols supported, folder_id behavior for shared drives, and return value. However, it does not specify what happens if both content and fileUrl are provided, leaving a slight ambiguity.

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

Conciseness4/5

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

The description is moderately sized but well-structured, with a clear one-sentence summary followed by an enumerated Args list and Returns line. Each param has a concise explanation, and there is no redundant filler. It earns its length.

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

Completeness4/5

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

The description covers the key operational aspects: creation, shared drive support, content sources, defaults, and return value. However, it lacks explicit handling for edge cases like conflicting content/fileUrl inputs or auth prerequisites, which would make it fully complete given the absence of annotations.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully compensate. It does so by documenting every parameter: user_google_email is required, content is optional, folder_id defaults to 'root' and must be within shared drives, mime_type defaults to text/plain, and fileUrl supports specific protocols. This adds significant meaning beyond the raw schema.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb and resource: 'Creates a new file in Google Drive.' It also distinguishes itself from siblings like update_drive_file and get_drive_file_content by focusing on creation and mentions shared drive support, which is a notable differentiator.

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

Usage Guidelines3/5

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

The description implies the tool should be used when creating a new Drive file, but it does not explicitly state when not to use it or mention alternatives. Sibling tools like update_drive_file are clearly for existing files, but no direct contrast is given.

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

create_eventA

Creates a new event.

Args: user_google_email (str): The user's Google email address. Required. summary (str): Event title. start_time (str): Start time (RFC3339, e.g., "2023-10-27T10:00:00-07:00" or "2023-10-27" for all-day). end_time (str): End time (RFC3339, e.g., "2023-10-27T11:00:00-07:00" or "2023-10-28" for all-day). calendar_id (str): Calendar ID (default: 'primary'). description (Optional[str]): Event description. location (Optional[str]): Event location. attendees (Optional[List[str]]): Attendee email addresses. timezone (Optional[str]): Timezone (e.g., "America/New_York"). attachments (Optional[List[str]]): List of Google Drive file URLs or IDs to attach to the event. add_google_meet (bool): Whether to add a Google Meet video conference to the event. Defaults to False. reminders (Optional[Union[str, List[Dict[str, Any]]]]): JSON string or list of reminder objects. Each should have 'method' ("popup" or "email") and 'minutes' (0-40320). Max 5 reminders. Example: '[{"method": "popup", "minutes": 15}]' or [{"method": "popup", "minutes": 15}] use_default_reminders (bool): Whether to use calendar's default reminders. If False, uses custom reminders. Defaults to True. transparency (Optional[str]): Event transparency for busy/free status. "opaque" shows as Busy (default), "transparent" shows as Available/Free. Defaults to None (uses Google Calendar default). visibility (Optional[str]): Event visibility. "default" uses calendar default, "public" is visible to all, "private" is visible only to attendees, "confidential" is same as private (legacy). Defaults to None (uses Google Calendar default).

Returns: str: Confirmation message of the successful event creation with event link.

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryYes
end_timeYes
locationNo
timezoneNo
attendeesNo
remindersNo
start_timeYes
visibilityNo
attachmentsNo
calendar_idNoprimary
descriptionNo
transparencyNo
add_google_meetNo
user_google_emailYes
use_default_remindersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses return behavior (confirmation with event link) and some parameter interactions (use_default_reminders vs reminders). However, it omits broader operational details such as authentication requirements, potential side effects (e.g., sending invitations to attendees), or any rate limits/destructive actions.

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 long but well-structured as a docstring with an Args section and Returns section. Every sentence adds necessary value given the schema lacks descriptions. The front-loaded 'Creates a new event' and clear formatting make it easy to scan despite the length.

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

Completeness4/5

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

The description thoroughly covers all parameters and the return value. However, it omits critical operational context such as authentication prerequisites (e.g., requiring start_google_auth) and how the tool interacts with Google Calendar permissions. For a create operation with complex options, this is a minor but notable gap.

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

Parameters5/5

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

With 0% schema coverage, the description fully compensates by documenting all 15 parameters with types, defaults, examples, and constraints (e.g., reminders max 5, RFC3339 format). This goes far beyond what the raw schema provides, adding meaningful semantics for each 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 opens with 'Creates a new event,' which is a specific verb and resource. It clearly identifies the action but does not explicitly differentiate from sibling tools like modify_event or delete_event, so it lacks overt sibling differentiation.

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 usage is implied: this tool creates a new event. However, there is no explicit guidance on when to use it versus alternatives, no exclusions, and no mention of prerequisites such as prior authentication. The description does not state 'use modify_event for changes' or similar guidance.

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

create_formB

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

Args: user_google_email (str): The user's Google email address. Required. title (str): The title of the form. description (Optional[str]): The description of the form. document_title (Optional[str]): The document title (shown in browser tab).

Returns: str: Confirmation message with form ID and edit URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
descriptionNo
document_titleNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

The description discloses the return behavior (confirmation message with form ID and edit URL) and includes an Args section with types and required markers. However, it does not mention potential side effects beyond creation, required authentication/permissions, or error conditions. The reference to a 'provided form message' is unexplained, which is a significant transparency gap, especially with no annotations to cover the burden.

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

Conciseness4/5

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

The description is well-structured with a purpose statement followed by Args and Returns sections. It is concise and front-loaded. The opening sentence is somewhat awkward due to the 'provided form message' phrase, but overall it earns its place without fluff.

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

Completeness2/5

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

The description is incomplete for a create operation. It fails to explain what a 'form message' is, which appears to be a prerequisite for invoking the tool correctly. While the return value is stated, there is no mention of required permissions, the environment (Google Workspace), or any post-creation implications. This ambiguity significantly reduces completeness.

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

Parameters4/5

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

With 0% schema description coverage, the description compensates by explaining each parameter's purpose: user_google_email, title, description, and document_title. It also flags required parameters. However, it does not clarify the relationship between the 'title given in the provided form message' and the 'title' parameter, leaving a semantic gap.

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

Purpose4/5

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

The description clearly states the tool creates a new form, establishing a specific verb and resource. It is distinct from sibling tools like get_form or set_publish_settings. However, the phrase 'using the title given in the provided form message in the request' introduces ambiguity about whether the title comes from a message or the 'title' parameter, slightly clouding the purpose.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as get_form or other creation tools. There is no mention of prerequisites, exclusions, or intended scenarios. The description only states what the tool does, not when to use it.

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

create_gmail_filterB

Creates a Gmail filter using the users.settings.filters API.

Args: user_google_email (str): The user's Google email address. Required. criteria (Dict[str, Any]): Criteria for matching messages. action (Dict[str, Any]): Actions to apply to matched messages.

Returns: str: Confirmation message with the created filter ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesFilter action object as defined in the Gmail API.
criteriaYesFilter criteria object as defined in the Gmail API.
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It states the return value (confirmation message with filter ID) but does not mention permissions, reversibility, idempotency, error behavior, or side effects. This is inadequate 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.

Conciseness4/5

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

The description is well-structured with Args and Returns sections, and every sentence is purposeful. It is concise and front-loaded with the core purpose. Minor redundancy with schema types but overall 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?

The tool has nested objects (criteria and action) with complex structures, but the description provides no details or examples on how to construct them. It does not explain valid fields or formats, leaving the agent under-informed. The return value is specified, but the input construction is insufficiently described.

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

Parameters4/5

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

The description adds meaning beyond the schema: for user_google_email, which has no schema description, it clarifies it is the user's Google email and required. For criteria and action, it provides plain-language explanations ('Criteria for matching messages', 'Actions to apply to matched messages') that complement the vague schema descriptions. Schema coverage is 67%, and the description helps compensate.

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

Purpose5/5

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

The description clearly states the tool's action: 'Creates a Gmail filter using the users.settings.filters API.' It specifies the exact resource and API, distinguishing it from siblings like list_gmail_filters and delete_gmail_filter. The verb 'creates' is specific and unambiguous.

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

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, exclusions, or scenarios where another tool might be more appropriate. Usage is only implied by the purpose statement.

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

create_meeting_with_zoomA

Create a Google Calendar event WITH a Zoom meeting link automatically added.

This is the preferred way to create meetings - it creates a Zoom meeting and a Google Calendar event in one step, with the Zoom link included.

Args: summary: The meeting title (used for both Calendar event and Zoom meeting) start_time: Start time in RFC3339 format (e.g., "2026-01-15T10:00:00-05:00") end_time: End time in RFC3339 format (e.g., "2026-01-15T11:00:00-05:00") attendees: Optional list of attendee email addresses description: Optional meeting description/agenda location: Optional location (Zoom link will be appended) timezone: Timezone for the Zoom meeting (default: "America/New_York")

Returns: dict containing: - calendar_event: The created Google Calendar event details - zoom_meeting: The created Zoom meeting details including join_url - message: Success message with links

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryYes
end_timeYes
locationNo
timezoneNoAmerica/New_York
attendeesNo
start_timeYes
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/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 the full burden. It discloses that two resources are created (calendar event and Zoom meeting), that the Zoom link is appended to the location, and that the return contains both details. It does not mention failure modes, permissions, or whether attendees receive invitations, but the disclosed behaviors are significant and well-explained.

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

Conciseness5/5

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

The description is well-structured with an intro sentence, an Args section, and a Returns section. Every sentence provides useful information, and it is not overly verbose despite covering 7 parameters. The most important purpose is front-loaded.

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

Completeness4/5

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

The tool is inherently complex (coordinates two services) and has 7 parameters, but the description covers the parameters, the return structure, and the core behavioral contract. It does not explain partial-failure behavior (e.g., if Zoom creation fails, does the calendar event still get created) or authentication prerequisites, leaving some gaps.

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

Parameters5/5

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

The schema has no descriptions (0% coverage), but the description's Args section fully compensates by explaining each of the 7 parameters, including formats, defaults, and optional status. It adds critical semantics like RFC3339 format for times, default timezone, and that location gets the Zoom link appended.

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

Purpose5/5

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

The description clearly states the tool creates a Google Calendar event with an automatically added Zoom meeting link. It distinguishes itself from sibling tools like create_event and create_zoom_meeting by explicitly saying it combines both in one step, and describes it as 'the preferred way to create meetings'.

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 says 'This is the preferred way to create meetings' and explains the one-step combined creation, giving clear context for when to use it. However, it does not explicitly mention alternatives or when-not-to-use scenarios (e.g., when a plain calendar event without Zoom is needed), which would earn a 5.

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

create_presentationA

Create a new Google Slides presentation.

Args: user_google_email (str): The user's Google email address. Required. title (str): The title for the new presentation. Defaults to "Untitled Presentation".

Returns: str: Details about the created presentation including ID and URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoUntitled Presentation
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/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 states the basic create action and return value, but does not disclose authorization requirements, potential side effects, or error behavior. For a write operation with no annotation safety flags, this lacks critical transparency.

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

Conciseness5/5

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

The description is concise and well-structured with Args and Returns sections. Every sentence provides useful information and there is no filler.

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

Completeness4/5

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

For a simple create tool with two parameters and an output schema, the description is largely complete: it covers all parameters and return semantics. However, it omits usage context like authentication needs or relationship to sibling tools, which would make it fully robust.

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

Parameters5/5

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

Schema coverage is 0%, so the description must compensate. It fully explains both parameters: user_google_email is the required Google email, and title defaults to 'Untitled Presentation'. This adds clear meaning beyond the raw schema.

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

Purpose5/5

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

The description uses the specific verb 'Create' with the resource 'Google Slides presentation', making the action explicit. It is clearly distinct from sibling tools like create_presentation_comment or get_presentation.

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

Usage Guidelines3/5

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

The description implies usage (when you need to create a new presentation) but does not provide explicit guidance on when to choose this over alternatives or any exclusions. It does not mention prerequisites like authentication or when another creation tool might be more appropriate.

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

create_presentation_commentC

Create a new comment on a Google Presentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_contentYes
presentation_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a write operation ('Create') but does not mention authentication requirements, potential side effects, or what happens on failure. This is insufficient for a mutation tool.

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

Conciseness5/5

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

The description is a single concise sentence with no wasted words. It is appropriately sized for the simple action it describes, earning a high score for efficiency.

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

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 and the presence of an output schema, the description is too sparse. It lacks usage context, parameter explanations, and behavioral details (like whether authentication is needed). The tool has 3 required parameters at 0% schema coverage, so more context is needed for correct invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It implies that 'comment_content' is the text of the comment and 'presentation_id' identifies the presentation, but it does not explain 'user_google_email' or any parameter syntax/format. It adds minimal value beyond the parameter names.

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

Purpose5/5

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

The description clearly states the action ('Create a new comment') and the target resource ('Google Presentation'). It distinguishes from sibling tools like 'reply_to_presentation_comment' by specifying 'new' and from doc/spreadsheet comment tools by naming the resource.

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

Usage Guidelines1/5

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

No guidance is provided about when to use this tool versus alternatives, no prerequisites are mentioned, and there are no exclusions. The description merely states the tool's function without any contextual usage advice.

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

create_sheetA

Creates a new sheet within an existing spreadsheet.

Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. sheet_name (str): The name of the new sheet. Required.

Returns: str: Confirmation message of the successful sheet creation.

ParametersJSON Schema
NameRequiredDescriptionDefault
sheet_nameYes
spreadsheet_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 carries full burden for behavioral disclosure. It only states the operation and return value, but does not mention side effects, required permissions, reversibility, or error conditions. This is a significant gap for a mutation tool.

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

Conciseness5/5

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

The description is concise and well-structured, with a clear first line, a list of arguments, and a return value. Every sentence contributes necessary information without redundancy.

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

Completeness4/5

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

For a simple creation tool, the description covers the essential information: what it does, required parameters, and return value. It could mention prerequisites (e.g., spreadsheet must exist) or error behavior, but the simplicity of the tool makes this description reasonably complete.

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

Parameters3/5

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

The schema has 0% description coverage, so the description must compensate. It provides one-line explanations for each parameter (e.g., 'The ID of the spreadsheet'), adding basic meaning beyond the schema. However, it lacks format details, examples, or constraints, so it only minimally compensates.

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

Purpose5/5

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

The description clearly states 'Creates a new sheet within an existing spreadsheet,' which is a specific verb+resource. It distinguishes itself from siblings like create_spreadsheet (new spreadsheet) and modify_sheet_values (modifies values).

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

Usage Guidelines4/5

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

The phrase 'within an existing spreadsheet' clearly implies the tool requires an existing spreadsheet, providing context for when to use it. It doesn't explicitly mention alternatives or exclusions, but the context is clear enough for correct tool selection.

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

create_spreadsheetA

Creates a new Google Spreadsheet.

Args: user_google_email (str): The user's Google email address. Required. title (str): The title of the new spreadsheet. Required. sheet_names (Optional[List[str]]): List of sheet names to create. If not provided, creates one sheet with default name.

Returns: str: Information about the newly created spreadsheet including ID, URL, and locale.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
sheet_namesNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden for behavioral disclosure. It explains what is created, how optional sheet_names behave (default single sheet), and what the return value contains. It does not mention authentication prerequisites or that the operation is a permanent write, but it is reasonably transparent for a creation tool.

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

Conciseness5/5

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

The description is structured as a docstring with a one-line summary followed by concise, relevant parameter and return explanations. Every sentence adds value and there is no padding or redundancy.

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

Completeness4/5

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

The description covers the tool's purpose, all parameters, default behavior, and return type. It does not address how it relates to sibling tools like create_sheet or mention authentication steps, but it is otherwise complete for invoking the tool successfully.

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

Parameters5/5

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

Schema description coverage is 0%, but the description compensates fully. It explains each parameter, marks required fields, specifies the type and role of sheet_names, and clarifies the default behavior. This goes well beyond what the bare schema provides.

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

Purpose5/5

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

The description starts with 'Creates a new Google Spreadsheet', a specific verb+resource that clearly distinguishes it from siblings like create_sheet (which adds a sheet to an existing spreadsheet) and create_drive_file. The name itself is also descriptive.

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

Usage Guidelines3/5

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

The description implies its use case by detailing parameters and return behavior, but it does not explicitly say when to prefer this over create_sheet or other alternatives. There is no exclusion guidance or mention of prerequisites, leaving some ambiguity for an agent deciding between similar tools.

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

create_spreadsheet_commentC

Create a new comment on a Google Spreadsheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
spreadsheet_idYes
comment_contentYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden. It only states the action without disclosing side effects, permission requirements, or how the comment is associated with the user_google_email parameter. It lacks the detail expected for a mutation tool.

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

Conciseness3/5

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

The description is a single, non-verbose sentence that is easy to read, but it is under-specified. While it earns its place, the lack of additional context makes it minimally adequate rather than well-structured.

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

Completeness2/5

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

The presence of an output schema covers return values, but the description fails to provide essential context such as auth requirements, comment placement, or parameter semantics. For a tool with 0% parameter coverage and no annotations, this is insufficient.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any of the three required parameters (user_google_email, spreadsheet_id, comment_content). It provides no additional meaning beyond the parameter names themselves.

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

Purpose5/5

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

The description uses a specific verb ('Create') and resource ('a new comment on a Google Spreadsheet'), clearly distinguishing it from comment-related actions on documents or presentations. It directly indicates the tool's function and target platform.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus siblings like reply_to_spreadsheet_comment or read_spreadsheet_comments. It does not mention prerequisites such as Google authentication or whether this creates top-level comments only.

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

create_table_with_dataA

Creates a table and populates it with data in one reliable operation.

CRITICAL: YOU MUST CALL inspect_doc_structure FIRST TO GET THE INDEX!

MANDATORY WORKFLOW - DO THESE STEPS IN ORDER:

Step 1: ALWAYS call inspect_doc_structure first Step 2: Use the 'total_length' value from inspect_doc_structure as your index Step 3: Format data as 2D list: [["col1", "col2"], ["row1col1", "row1col2"]] Step 4: Call this function with the correct index and data

EXAMPLE DATA FORMAT: table_data = [ ["Header1", "Header2", "Header3"], # Row 0 - headers ["Data1", "Data2", "Data3"], # Row 1 - first data row ["Data4", "Data5", "Data6"] # Row 2 - second data row ]

CRITICAL INDEX REQUIREMENTS:

  • NEVER use index values like 1, 2, 10 without calling inspect_doc_structure first

  • ALWAYS get index from inspect_doc_structure 'total_length' field

  • Index must be a valid insertion point in the document

DATA FORMAT REQUIREMENTS:

  • Must be 2D list of strings only

  • Each inner list = one table row

  • All rows MUST have same number of columns

  • Use empty strings "" for empty cells, never None

  • Use debug_table_structure after creation to verify results

Args: user_google_email: User's Google email address document_id: ID of the document to update table_data: 2D list of strings - EXACT format: [["col1", "col2"], ["row1col1", "row1col2"]] index: Document position (MANDATORY: get from inspect_doc_structure 'total_length') bold_headers: Whether to make first row bold (default: true)

Returns: str: Confirmation with table details and link

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes
table_dataYes
document_idYes
bold_headersNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and succeeds. It discloses the critical dependency on inspect_doc_structure, the exact source and validity requirements for the index, data format constraints, and post-creation verification via debug_table_structure. It also states the return value and default for bold_headers.

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

Conciseness4/5

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

The description is well-structured and front-loaded with critical information. However, the same index-related warning is repeated multiple times in slightly different forms, adding unnecessary length. Still, the level of detail is justified by the tool's cross-tool dependency.

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

Completeness5/5

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

The description covers all five parameters, the required sibling-tool call, validation rules, a data format example, the return type, and a verification step. With the output schema also present, an agent has everything needed to use this tool correctly. No major gaps are evident.

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

Parameters5/5

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

Schema description coverage is 0%, but the description compensates fully. Every parameter is explained in the Args section, including the exact 2D-list format for table_data, the mandatory source for index, and the default for bold_headers. A worked example further clarifies usage.

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

Purpose5/5

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

The description clearly states the tool's function: 'Creates a table and populates it with data in one reliable operation.' This is a specific verb+resource combination and distinguishes it from generic document-insertion tools like insert_doc_elements.

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

Usage Guidelines4/5

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

The description provides an explicit mandatory workflow: must call inspect_doc_structure first, use total_length as the index, and verify with debug_table_structure. It does not explicitly name alternative tools or state when not to use this tool, so it falls short of a 5.

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

create_taskA

Create a new task in a task list.

Args: user_google_email (str): The user's Google email address. Required. task_list_id (str): The ID of the task list to create the task in. title (str): The title of the task. notes (Optional[str]): Notes/description for the task. due (Optional[str]): Due date in RFC 3339 format (e.g., "2024-12-31T23:59:59Z"). parent (Optional[str]): Parent task ID (for subtasks). previous (Optional[str]): Previous sibling task ID (for positioning).

Returns: str: Confirmation message with the new task ID and details.

ParametersJSON Schema
NameRequiredDescriptionDefault
dueNo
notesNo
titleYes
parentNo
previousNo
task_list_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 carries the full burden of behavioral disclosure. It states the mutation ('Create') and the return confirmation, but does not disclose auth requirements, potential errors (e.g., invalid task list), idempotency, or side effects. For a write operation, this is a notable gap.

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

Conciseness5/5

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

The description is a well-structured docstring with a one-line purpose, Args list, and Returns. Every sentence adds value, and the format is easily parseable. No redundant or filler 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 7-parameter create tool with no schema descriptions and no annotations, the description covers all parameters and the return type. However, it lacks operational context such as authentication prerequisites or error behavior, which would be necessary for a fully self-contained tool definition. Given the output schema exists, return values are covered, but dynamic context is missing.

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

Parameters4/5

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

Schema description coverage is 0%, but the description compensates with a detailed Args section. It explains each parameter's purpose, marks required vs optional, and provides format details (e.g., due as RFC 3339). This goes well beyond the raw schema, though some context like how to obtain task_list_id is missing.

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 'Create a new task in a task list' is a specific verb+resource statement. It clearly distinguishes this from sibling tools like create_task_list, list_tasks, and update_task, leaving no ambiguity about what action is performed.

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 purpose implies when to use it (creating tasks), but there is no explicit guidance on when not to use it or alternatives. It doesn't mention prerequisites like needing an existing task_list_id or authentication, which would help an agent decide between this and other tools.

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

create_task_listA

Create a new task list.

Args: user_google_email (str): The user's Google email address. Required. title (str): The title of the new task list.

Returns: str: Confirmation message with the new task list ID and details.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavior. It states that a new task list is created and that the return is a confirmation message with the list ID and details. This covers the primary side effect and return. However, it does not mention authentication requirements, potential errors, or whether the operation is irreversible. For a simple create tool, the disclosure is adequate but not rich.

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

Conciseness5/5

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

The description is concise and well-structured. It starts with a one-sentence purpose, followed by an Args section and a Returns section. No unnecessary words or repetition. Each sentence earns its place.

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

Completeness4/5

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

Given the tool's simplicity (two parameters, no annotations), the description covers the essential aspects: purpose, required arguments, and return value. It is complete enough for an agent to invoke correctly. Minor gaps include lack of usage alternatives and error handling, but these are not critical for a straightforward create operation.

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 provides only parameter names and types (two strings) with no descriptions. The description compensates by explaining each: 'user_google_email' is 'The user's Google email address. Required.' and 'title' is 'The title of the new task list.' This adds clear meaning beyond the schema, fully covering both parameters.

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

Purpose5/5

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

The description clearly states the action: 'Create a new task list.' The verb 'create' and resource 'task list' are specific, and it is distinct from siblings like create_task, which creates a task within a list, and list_task_lists, which reads. The purpose is unambiguous.

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

Usage Guidelines3/5

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

The description implies usage by clearly naming the operation, but it does not explicitly explain when to use this tool versus alternatives such as create_task or list_task_lists. There is no mention of exclusions or prerequisites. The usage context is inferred from the name and purpose.

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

create_zoom_meetingA

Create a new Zoom meeting.

Args: topic: The meeting topic/title start_time: Meeting start time in ISO 8601 format (e.g., "2026-01-15T10:00:00") duration: Meeting duration in minutes (default: 60) timezone: Timezone for the meeting (default: "America/New_York") agenda: Optional meeting agenda/description

Returns: dict containing: - id: Meeting ID - join_url: URL for participants to join - start_url: URL for host to start the meeting - password: Meeting password - topic: Meeting topic - start_time: Scheduled start time - duration: Duration in minutes

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYes
agendaNo
durationNo
timezoneNoAmerica/New_York
start_timeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It provides a detailed return value structure (id, join_url, start_url, etc.), which adds transparency about the output. However, it does not disclose potential side effects, authentication requirements, or behavioral nuances beyond the immediate creation action.

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

Conciseness5/5

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

The description is well-structured with distinct 'Args' and 'Returns' sections, front-loads the purpose, and contains no filler. Every line provides useful information, and the length is appropriate for the complexity of the tool.

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 5-parameter creation tool with no annotations, the description covers all required and optional parameters, their defaults, and the return structure. It is largely sufficient for an agent to invoke the tool correctly. It could be slightly more complete with error conditions or authentication notes, but the presence of an output schema reduces the need to describe return values extensively.

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

Parameters5/5

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

The input schema has zero description coverage, and the description fully compensates by explaining each parameter in plain language. It provides an example format for start_time, states defaults for duration and timezone, and clarifies that agenda is optional. This goes well beyond the bare 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 begins with a clear, specific verb and resource: 'Create a new Zoom meeting.' It is unambiguous about the tool's core function. However, it does not differentiate this tool from the sibling tool 'create_meeting_with_zoom', which appears to serve the same purpose.

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

Usage Guidelines3/5

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

Usage is implied by the description: this tool is for creating a Zoom meeting. There is no explicit guidance on when to prefer it over alternatives like 'create_meeting_with_zoom' or 'create_event', and no exclusion criteria or prerequisites are mentioned.

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

debug_table_structureA

ESSENTIAL DEBUGGING TOOL - Use this whenever tables don't work as expected.

USE THIS IMMEDIATELY WHEN:

  • Table population put data in wrong cells

  • You get "table not found" errors

  • Data appears concatenated in first cell

  • Need to understand existing table structure

  • Planning to use populate_existing_table

WHAT THIS SHOWS YOU:

  • Exact table dimensions (rows × columns)

  • Each cell's position coordinates (row,col)

  • Current content in each cell

  • Insertion indices for each cell

  • Table boundaries and ranges

HOW TO READ THE OUTPUT:

  • "dimensions": "2x3" = 2 rows, 3 columns

  • "position": "(0,0)" = first row, first column

  • "current_content": What's actually in each cell right now

  • "insertion_index": Where new text would be inserted in that cell

WORKFLOW INTEGRATION:

  1. After creating table → Use this to verify structure

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

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

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

Args: user_google_email: User's Google email address document_id: ID of the document to inspect table_index: Which table to debug (0 = first table, 1 = second table, etc.)

Returns: str: Detailed JSON structure showing table layout, cell positions, and current content

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYes
table_indexNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It thoroughly explains the output format (JSON with dimensions, positions, content, insertion indices) and how to interpret it. However, it does not explicitly state non-destructive behavior or error handling, which is a minor gap for an inspection tool.

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

Conciseness4/5

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

The description is lengthy but well-structured with sections and bullet points. It is front-loaded with a clear 'ESSENTIAL' headline, and each section adds practical value. Some repetition occurs but overall it is organized and readable.

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

Completeness5/5

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

The description covers purpose, usage triggers, output decoding, and workflow integration, making it highly complete for a debugging tool. Even with an output schema present, it clearly explains the return format and interpretation, leaving little ambiguity.

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

Parameters5/5

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

Schema coverage is 0%, but the description includes an Args section that explains all three parameters in user-meaningful terms (e.g., 'table_index: Which table to debug'). This fully compensates for the schema's minimal type-only information.

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

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: to debug table structure by showing dimensions, cell positions, content, and insertion indices. It uses specific verbs like 'debug' and 'shows', and clearly distinguishes itself from sibling tools by focusing on table-specific inspection.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use scenarios (e.g., wrong cell placement, 'table not found' errors, planning to use populate_existing_table) and workflow integration steps. This gives clear guidance on when to choose this tool over alternatives.

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

delete_conditional_formattingA

Deletes an existing conditional formatting rule by index on a sheet.

Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. rule_index (int): Index of the rule to delete (0-based). sheet_name (Optional[str]): Name of the sheet that contains the rule. Defaults to the first sheet if not provided.

Returns: str: Confirmation of the deletion and the current rule state.

ParametersJSON Schema
NameRequiredDescriptionDefault
rule_indexYes
sheet_nameNo
spreadsheet_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description relies on its own wording to convey destructive behavior, which it does by stating 'Deletes' and noting it returns confirmation and current rule state. It doesn't disclose side effects like index shifting or irreversibility, but the primary destructive action is clear and the return behavior adds useful context.

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

Conciseness5/5

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

The description is well-structured with a one-sentence summary followed by a tidy Args list and Returns note. Every line adds value, and the length is appropriate for four parameters. It is front-loaded with the main purpose.

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

Completeness5/5

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

All four parameters are described, including the optional sheet_name and its default behavior. The return type is also specified, and the output schema exists to cover return structure. The description provides sufficient information for an agent to invoke the tool correctly.

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

Parameters5/5

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

Schema description coverage is 0%, but the description fully compensates with a detailed Args section: it provides types, required status, defaults (sheet_name defaults to null), and the important 0-based index note for rule_index. This is more informative than the bare schema.

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

Purpose5/5

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

The description opens with 'Deletes an existing conditional formatting rule by index on a sheet', which is a specific verb ('deletes') and resource ('conditional formatting rule') with the deletion mechanism ('by index'). This clearly differentiates it from sibling tools like add_conditional_formatting and update_conditional_formatting.

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

Usage Guidelines4/5

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

The description clearly states the operation and its parameters, making it evident this is the deletion tool among conditional formatting siblings. However, it does not explicitly mention when to use this instead of add/update, nor does it note that indices may shift after deletion, which would be helpful context for sequencing operations.

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

delete_eventA

Deletes an existing event.

Args: user_google_email (str): The user's Google email address. Required. event_id (str): The ID of the event to delete. calendar_id (str): Calendar ID (default: 'primary').

Returns: str: Confirmation message of the successful event deletion.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYes
calendar_idNoprimary
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden. It does not disclose that deletion is permanent/irreversible or mention required permissions (auth). It only states the action and return message, which is insufficient for a destructive operation.

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

Conciseness5/5

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

The description is short and structured into Args and Returns sections, with no redundant text. It clearly conveys the needed information in a straightforward, scannable format.

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

Completeness3/5

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

For a simple deletion tool, the description covers the basics (action, parameters, return), but it lacks behavioral warnings like irreversibility or prerequisites. It also doesn't mention error handling, making it functional but not comprehensive for a destructive action.

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

Parameters4/5

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

The description lists all parameters with brief explanations: user_google_email as the user's email, event_id as the event ID, and calendar_id with a default. Since the schema provides no parameter descriptions, this adds necessary meaning, even though the explanations are minimal.

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

Purpose5/5

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

The description opens with 'Deletes an existing event,' which clearly states the action and resource. This distinguishes it from sibling tools like create_event and modify_event by explicitly targeting deletion.

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

Usage Guidelines3/5

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

The description does not explicitly compare with alternatives or specify when to use it; usage is implied from the verb 'Deletes' and the context of sibling tools. It lacks guidance on when not to use or prerequisites.

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

delete_gmail_filterB

Deletes a Gmail filter by ID.

Args: user_google_email (str): The user's Google email address. Required. filter_id (str): The ID of the filter to delete.

Returns: str: Confirmation message for the deletion.

ParametersJSON Schema
NameRequiredDescriptionDefault
filter_idYesID of the filter to delete.
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 of behavioral disclosure. It indicates deletion (destructive) but does not mention permanent deletion, idempotency, error behavior if the filter is not found, or any required authentication steps. The return value is noted, but no other behavioral traits are disclosed.

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

Conciseness4/5

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

The description is concise and structured: a purpose sentence followed by clearly formatted Args and Returns sections. It is front-loaded with the key action and avoids unnecessary wording. Slight redundancy with the schema for filter_id, but overall 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?

For a simple 2-parameter delete tool, the description is minimally adequate. It includes the return type and parameter lists, but lacks context about the need to first list filters to obtain the ID, potential side effects, or when this tool is preferred over other filter management tools. The presence of an output schema reduces the need to describe return details, but more contextual guidance 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?

Schema coverage is 50% because user_google_email lacks a description in the schema. The description adds meaning for user_google_email ('The user's Google email address. Required.') and repeats the filter_id description from the schema. This compensates partially for the gap but does not fully enrich the parameter semantics.

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

Purpose5/5

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

The description clearly states 'Deletes a Gmail filter by ID,' using a specific verb ('Deletes') and resource ('Gmail filter'), which distinguishes it from sibling tools like list_gmail_filters and create_gmail_filter.

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 needing to obtain the filter ID from list_gmail_filters, or situations where create_gmail_filter would be more appropriate. The description simply states the action without context or prerequisites.

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

delete_taskA

Delete a task from a task list.

Args: user_google_email (str): The user's Google email address. Required. task_list_id (str): The ID of the task list containing the task. task_id (str): The ID of the task to delete.

Returns: str: Confirmation message.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
task_list_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/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 mentions the action and return message but does not disclose whether deletion is permanent, any permission requirements, or error behavior. This lack of transparency is a significant gap for a mutation tool.

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

Conciseness5/5

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

The description is concise and well-structured: a one-sentence summary followed by explicit Args and Returns sections. Every element is useful and nothing is redundant.

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 operation, the description adequately covers purpose, all parameters, and the return value. It lacks details on edge cases or permissions, but these are not critical given the tool's low complexity and the presence of an output schema.

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

Parameters5/5

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

The description comprehensively explains all three parameters, including types and meaning (e.g., 'The user's Google email address. Required.'). This fully compensates for the 0% schema description 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 states a clear action and target: 'Delete a task from a task list.' This distinguishes it from sibling tools like delete_task_list and other task-related 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 versus alternatives such as clear_completed_tasks or delete_task_list. There are no prerequisites or exclusions, leaving the usage context entirely implied.

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

delete_task_listA

Delete a task list. Note: This will also delete all tasks in the list.

Args: user_google_email (str): The user's Google email address. Required. task_list_id (str): The ID of the task list to delete.

Returns: str: Confirmation message.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_list_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It explicitly discloses the critical side effect that all tasks in the list will be deleted, which is essential for a destructive operation. It also states the return type (confirmation message), but does not mention reversibility or authentication requirements.

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

Conciseness5/5

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

The description is highly concise and well-structured, with a front-loaded warning about cascade deletion followed by a clear Args/Returns format. Every sentence provides value with no redundancy.

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

Completeness5/5

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

For a simple delete tool with two parameters and an output schema, the description covers the essential aspects: the operation, the critical side effect, parameter meanings, and the return type. It is complete for the tool's complexity.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate. It provides meaningful explanations for both parameters: user_google_email is described as the user's Google email address (and marked Required), and task_list_id as the ID of the task list. This fully addresses the semantic gap.

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 a task list') and identifies the specific resource. The note about also deleting all tasks in the list further clarifies its scope, distinguishing it from sibling tools like delete_task.

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

Usage Guidelines4/5

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

The description provides clear context for when to use it (deleting a task list). However, it does not explicitly mention alternatives or when not to use it (e.g., when you only want to delete a single task), so it falls short of a 5.

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

delete_zoom_meetingA

Delete a Zoom meeting.

Args: meeting_id: The Zoom meeting ID to delete

Returns: dict with confirmation message

ParametersJSON Schema
NameRequiredDescriptionDefault
meeting_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/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 merely states 'Delete a Zoom meeting' without disclosing whether the action is permanent, requires specific permissions, or has side effects (e.g., deleting recordings or associated data). The return type is mentioned, but the destructive nature and potential irreversible impact are not explicitly communicated.

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

Conciseness5/5

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

The description is extremely concise and well-structured: a clear one-line purpose followed by Args and Returns sections. Every sentence adds value, and it is front-loaded with the core action.

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

Completeness5/5

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

This is a simple, single-parameter delete operation. The description states the return type ('dict with confirmation message'), and an output schema exists. Given the simplicity and available structured information, the description is complete enough for an agent to use 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?

There is only one parameter, meeting_id. The description explains it as 'The Zoom meeting ID to delete,' which adds minimal meaning beyond the schema (it doesn't say what format the ID takes or how to obtain it). Since schema description coverage is 0%, the description provides some reinforcement but does not fully compensate with additional semantic detail.

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 ('Delete') and resource ('Zoom meeting'), clearly stating the tool's function. It distinguishes from sibling tools like create_zoom_meeting, get_zoom_meeting, and list_zoom_meetings by being the only deletion operation for Zoom meetings.

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 clearly implies the use case: when a Zoom meeting needs to be deleted. It does not explicitly mention alternatives or exclusions, but the context is clear enough given the sibling tools. However, it lacks explicit 'when not to use' guidance or prerequisites, so it doesn't fully earn a 5.

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

draft_gmail_messageA

Creates a draft email in the user's Gmail account. Supports both new drafts and reply drafts.

Args: user_google_email (str): The user's Google email address. Required. subject (str): Email subject. body (str): Email body (plain text). body_format (Literal['plain', 'html']): Email body format. Defaults to 'plain'. to (Optional[str]): Optional recipient email address. Can be left empty for drafts. cc (Optional[str]): Optional CC email address. bcc (Optional[str]): Optional BCC email address. thread_id (Optional[str]): Optional Gmail thread ID to reply within. When provided, creates a reply draft. in_reply_to (Optional[str]): Optional Message-ID of the message being replied to. Used for proper threading. references (Optional[str]): Optional chain of Message-IDs for proper threading. Should include all previous Message-IDs.

Returns: str: Confirmation message with the created draft's ID.

Examples: # Create a new draft draft_gmail_message(subject="Hello", body="Hi there!", to="user@example.com")

# Create a plaintext draft with CC and BCC
draft_gmail_message(
    subject="Project Update",
    body="Here's the latest update...",
    to="user@example.com",
    cc="manager@example.com",
    bcc="archive@example.com"
)

# Create a HTML draft with CC and BCC
draft_gmail_message(
    subject="Project Update",
    body="<strong>Hi there!</strong>",
    body_format="html",
    to="user@example.com",
    cc="manager@example.com",
    bcc="archive@example.com"
)

# Create a reply draft in plaintext
draft_gmail_message(
    subject="Re: Meeting tomorrow",
    body="Thanks for the update!",
    to="user@example.com",
    thread_id="thread_123",
    in_reply_to="<message123@gmail.com>",
    references="<original@gmail.com> <message123@gmail.com>"
)

# Create a reply draft in HTML
draft_gmail_message(
    subject="Re: Meeting tomorrow",
    body="<strong>Thanks for the update!</strong>",
    body_format="html,
    to="user@example.com",
    thread_id="thread_123",
    in_reply_to="<message123@gmail.com>",
    references="<original@gmail.com> <message123@gmail.com>"
)
ParametersJSON Schema
NameRequiredDescriptionDefault
ccNoOptional CC email address.
toNoOptional recipient email address.
bccNoOptional BCC email address.
bodyYesEmail body (plain text).
subjectYesEmail subject.
thread_idNoOptional Gmail thread ID to reply within.
referencesNoOptional chain of Message-IDs for proper threading.
body_formatNoEmail body format. Use 'plain' for plaintext or 'html' for HTML content.plain
in_reply_toNoOptional Message-ID of the message being replied to.
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. It discloses key behaviors: creates rather than sends, supports reply drafts via thread_id/in_reply_to/references, and returns the draft ID. It also explains the effect of optional parameters like 'to' being left empty. However, it does not mention authentication requirements or potential side effects, which would be useful.

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

Conciseness3/5

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

The description is front-loaded with the purpose and includes useful examples, but the Args section largely repeats the schema descriptions (90% coverage) and adds length. There is also a typo in the last example (missing quote). Overall it is well-organized but not maximally concise.

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

Completeness4/5

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

Given the tool has 10 parameters and no annotations, the description covers all parameters and provides examples for new drafts, reply drafts, HTML/plain text, and optional CC/BCC. It also states the return value. This is quite complete, though it omits error cases and authentication context.

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

Parameters4/5

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

Schema coverage is 90%, so baseline is 3. The description adds meaningful nuance beyond the schema: thread_id 'creates a reply draft', references 'should include all previous Message-IDs', and body_format default. The Args section partly duplicates schema descriptions but the extra context justifies a 4.

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

Purpose5/5

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

The description clearly states 'Creates a draft email in the user's Gmail account' with a specific verb and resource. It also distinguishes from send_gmail_message by explicitly supporting both new and reply drafts, making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description provides clear context on when to use the tool (creating drafts, including reply drafts with threading parameters). It does not explicitly name alternatives or exclusions, but the sibling tool send_gmail_message is implicitly contrasted by the draft nature. This is clear but not fully explicit.

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

export_doc_to_pdfA

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

Args: user_google_email: User's Google email address document_id: ID of the Google Doc to export pdf_filename: Name for the PDF file (optional - if not provided, uses original name + "_PDF") folder_id: Drive folder ID to save PDF in (optional - if not provided, saves in root)

Returns: str: Confirmation message with PDF file details and links

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_idNo
document_idYes
pdf_filenameNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

There are no annotations, so the description carries the full burden. It discloses the key side effect (saving to Google Drive) and explains default behavior for optional parameters (filename and folder). However, it does not mention potential overwrite behavior, required permissions, or error conditions. While the description is honest, it lacks depth in behavioral disclosure.

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

Conciseness4/5

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

The description is well-structured with an opening sentence, an Args section, and a Returns section. It is concise and every line adds value. The docstring style is conventional and easy to parse. No wasted words.

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

Completeness4/5

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

Given the tool's purpose (export and save) and the presence of an output schema, the description covers the essential aspects: what the tool does, how to call it (parameters and defaults), and what it returns. It slightly lacks information about edge cases or permissions, but for a moderately simple operation, it is complete enough for an AI agent to use effectively.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it does. Each parameter is explained: user_google_email and document_id are required; pdf_filename and folder_id are optional with clear defaults. This adds meaning beyond the bare schema, although it could be more detailed (e.g., format of IDs, folder ID lookup).

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

Purpose5/5

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

The description clearly states the action: 'Exports a Google Doc to PDF format and saves it to Google Drive.' It uses a specific verb (exports), resource (Google Doc), result (PDF saved to Drive), and distinguishes this tool from siblings like get_doc_content or create_doc. This is a precise and unambiguous purpose statement.

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

Usage Guidelines4/5

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

The description clearly implies when to use this tool (when a Google Doc needs to be converted to PDF) and provides detailed context about optional parameters and their defaults. It does not explicitly name alternatives or exclusions, but for this straightforward conversion task, the context is sufficient to guide usage.

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

find_and_replace_docA

Finds and replaces text throughout a Google Doc.

Args: user_google_email: User's Google email address document_id: ID of the document to update find_text: Text to search for replace_text: Text to replace with match_case: Whether to match case exactly

Returns: str: Confirmation message with replacement count

ParametersJSON Schema
NameRequiredDescriptionDefault
find_textYes
match_caseNo
document_idYes
replace_textYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/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 behavioral disclosure. It mentions the operation and return value but fails to disclose that this is a mutating operation with likely irreversible changes, or any authorization requirements beyond an email address. The phrase 'throughout' implies all occurrences, but no warnings or side effects are noted.

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

Conciseness5/5

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

The description is well-structured with a one-line summary followed by a clean Args list and Returns line. Every word serves a purpose, and it is directly readable without extraneous information.

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

Completeness3/5

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

Given the tool's moderate complexity (5 parameters), no annotations, and presence of an output schema, the description covers core functionality and parameter semantics but lacks contextual completeness. It omits usage guidance, behavioral warnings, and any discussion of document access or editability prerequisites, making it minimally adequate.

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

Parameters4/5

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

The description provides concise explanations for all five parameters, compensating for the 0% schema description coverage. Each parameter (user_google_email, document_id, find_text, replace_text, match_case) is meaningfully described, though descriptions are brief and could include more detail on formats or constraints.

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

Purpose5/5

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

The description clearly states 'Finds and replaces text throughout a Google Doc' with a specific verb (finds and replaces), resource (Google Doc), and scope (throughout). This distinguishes it from sibling tools like modify_doc_text by emphasizing a global find-and-replace operation.

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

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 modify_doc_text or batch_update_doc. The description only states the action, leaving the agent to infer appropriate usage without explicit context or exclusions.

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

format_sheet_rangeA

Applies formatting to a range: background/text color and number/date formats.

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

Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. range_name (str): A1-style range (optionally with sheet name). Required. background_color (Optional[str]): Hex background color (e.g., "#FFEECC"). text_color (Optional[str]): Hex text color (e.g., "#000000"). number_format_type (Optional[str]): Sheets number format type (e.g., "DATE"). number_format_pattern (Optional[str]): Optional custom pattern for the number format.

Returns: str: Confirmation of the applied formatting.

ParametersJSON Schema
NameRequiredDescriptionDefault
range_nameYes
text_colorNo
spreadsheet_idYes
background_colorNo
user_google_emailYes
number_format_typeNo
number_format_patternNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 the transparency burden. It usefully discloses value constraints (hex colors, Sheets format types) and default sheet behavior, but does not explicitly state that this is a mutating operation that may overwrite existing formatting, nor does it mention permissions or error behavior.

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

Conciseness5/5

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

The description is well-structured with a concise summary followed by an Args/Returns breakdown. Every sentence adds useful information, and there is no filler or unnecessary repetition.

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

Completeness4/5

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

The description covers all parameters, return value, accepted value examples, and default sheet behavior. It is missing a few details such as whether unspecified format properties are preserved or cleared and possible error conditions, but it is largely complete for a formatting tool.

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

Parameters5/5

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

Schema description coverage is 0%, but the Args section fully documents all seven parameters, including required status, types, examples, and defaults. This fully compensates for the schema gap and adds significant semantic meaning.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb ('Applies formatting') and resource ('a range'), and lists the exact formatting dimensions (background/text color and number/date formats). This differentiates it from sibling tools like modify_sheet_values and conditional formatting tools.

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

Usage Guidelines3/5

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

The description gives context such as default first-sheet behavior and accepted number format values, but it does not explicitly say when to use this tool over alternatives like add_conditional_formatting or modify_sheet_values. Usage is implied rather than explicitly contrasted with siblings.

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

get_doc_contentA

Retrieves content of a Google Doc or a Drive file (like .docx) identified by document_id.

  • Native Google Docs: Fetches content via Docs API.

  • Office files (.docx, etc.) stored in Drive: Downloads via Drive API and extracts text.

Returns: str: The document content with metadata header.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that native Google Docs are fetched via Docs API and Office files are downloaded and text-extracted, and mentions the metadata header in the return. However, it omits details on authentication, error handling, and limitations, so transparency is incomplete.

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

Conciseness5/5

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

The description is concise and well-structured: a clear opening statement, bullet points for distinct behaviors, and a return type line. Every sentence adds value with no redundancy, making it easy to parse quickly.

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

Completeness3/5

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

The tool has moderate complexity with two modes and two required parameters. The description covers core functionality and return type, but lacks details on user_google_email, prerequisites like authentication, and edge cases. It is adequate but not comprehensive for an agent to confidently invoke.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It explains document_id as the identifier for the doc/file, but user_google_email is not explained at all. No formats, usage, or additional context are provided, leaving a significant gap for one of the two required parameters.

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

Purpose5/5

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

The description clearly states the tool retrieves content of a Google Doc or Drive file (like .docx) using document_id, with specific verbs and resource scope. It explicitly distinguishes between handling native Google Docs via Docs API and Office files via Drive API, differentiating it from sibling tools like get_drive_file_content.

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

Usage Guidelines3/5

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

The description implies usage for retrieving content from Google Docs or Office files in Drive, but it does not explicitly state when to use this tool over alternatives or provide exclusions. It offers context about the two file types but leaves the agent to infer the appropriate scenario.

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

get_drive_file_contentA

Retrieves the content of a specific Google Drive file by ID, supporting files in shared drives.

• Native Google Docs, Sheets, Slides → exported as text / CSV. • Office files (.docx, .xlsx, .pptx) → unzipped & parsed with std-lib to extract readable text. • Any other file → downloaded; tries UTF-8 decode, else notes binary.

Args: user_google_email: The user’s Google email address. file_id: Drive file ID.

Returns: str: The file content as plain text with metadata header.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses the tool's behavior: exporting native Google Docs/Sheets/Slides as text/CSV, unzipping and parsing Office files, and attempting UTF-8 decode for other files with binary notification. It also mentions a metadata header in the return value, which is valuable context beyond the schema.

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

Conciseness5/5

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

The description is well-structured and efficient: a clear purpose statement, a bulleted breakdown of file-type handling, and a concise Args/Returns section. Every sentence adds value, and the formatting enhances readability and quick comprehension.

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

Completeness5/5

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

Given the tool's moderate complexity and the presence of an output schema, the description covers all essential aspects: the action, the supported file types, the processing approach, and the return type. The metadata header mention hints at the output format without needing to duplicate schema details. No significant gaps are apparent.

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

Parameters3/5

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

The input schema has no descriptions (0% coverage), so the description must compensate. It provides brief definitions for user_google_email and file_id, which are helpful but not deeply detailed—e.g., it doesn't clarify the relationship between the email and the file access or the expected format of file_id. This is adequate but leaves room for more semantic richness.

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

Purpose5/5

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

The description clearly states the tool retrieves content of a specific Google Drive file by ID, with a specific verb and resource. It also distinguishes itself from siblings by mentioning support for shared drives and outlining the behavior for different file types, which sets it apart from tools like get_drive_file_download_url or list_drive_items.

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

Usage Guidelines4/5

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

The description provides clear context on when to use the tool (retrieve file content, including from shared drives) and what outcomes to expect for various file formats. It does not explicitly name alternative tools or exclusion criteria, but the behavior overview effectively guides selection for content retrieval needs.

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

get_drive_file_download_urlA

Gets a download URL for a Google Drive file. The file is prepared and made available via HTTP URL.

For Google native files (Docs, Sheets, Slides), exports to a useful format: • Google Docs → PDF (default) or DOCX if export_format='docx' • Google Sheets → XLSX (default) or CSV if export_format='csv' • Google Slides → PDF (default) or PPTX if export_format='pptx'

For other files, downloads the original file format.

Args: user_google_email: The user's Google email address. Required. file_id: The Google Drive file ID to get a download URL for. export_format: Optional export format for Google native files. Options: 'pdf', 'docx', 'xlsx', 'csv', 'pptx'. If not specified, uses sensible defaults (PDF for Docs/Slides, XLSX for Sheets).

Returns: str: Download URL and file metadata. The file is available at the URL for 1 hour.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes
export_formatNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

The description discloses important behaviors: files are prepared and available for 1 hour, and native files are exported to specific formats. It doesn't mention auth requirements or rate limits, but with no annotations, it carries some burden. The 1-hour expiry is a useful behavioral trait, but missing details like whether the tool triggers a copy or affects permissions.

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

Conciseness5/5

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

The description is well-structured with bullet points for export formats and clear Args/Returns sections. Every sentence adds information; no redundancy or filler.

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

Completeness4/5

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

Given the tool's moderate complexity (3 params, output schema present), the description fully explains purpose, parameters, return value, and the 1-hour validity. It doesn't explicitly state the return format but that's covered by the output schema. Minor gap: no note on error cases or permission requirements.

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

Parameters4/5

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

Schema description coverage is 0% and parameters have no enums, so the description must compensate. It explains each parameter: user_google_email (required, user's email), file_id (Drive file ID), and export_format (optional with explicit options and defaults). It adds meaning beyond the bare schema types.

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

Purpose5/5

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

The description clearly states 'Gets a download URL for a Google Drive file' and explains the behavior for Google native files vs. other files, distinguishing it from sibling tools like get_drive_file_content or get_drive_shareable_link. It also details export format mappings, making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description implies when to use this tool (when a URL is needed, including export conversions) but does not explicitly say when not to use it or mention alternatives. However, the detailed export format behavior provides clear context for when to choose this over sibling tools like get_drive_file_content.

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

get_drive_file_permissionsB

Gets detailed metadata about a Google Drive file including sharing permissions.

Args: user_google_email (str): The user's Google email address. Required. file_id (str): The ID of the file to check permissions for.

Returns: str: Detailed file metadata including sharing status and URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It states the output ('Returns: str: Detailed file metadata including sharing status and URLs') but does not mention authentication requirements, side effects, error conditions, or whether it is read-only. The term 'Gets' implies a read, but no explicit guarantees or limitations are provided.

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

Conciseness5/5

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

The description is concise and well-structured: a one-sentence purpose, followed by Args and Returns sections. Every sentence earns its place, with no extraneous detail. The front-loaded summary makes the tool's purpose immediately clear.

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

Completeness3/5

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

For a simple getter with an output schema, the description is minimally viable: it explains the resource, parameters, and return type. However, given the large number of sibling permission-related tools (share_drive_file, update_drive_permission, check_drive_file_public_access), it does not provide enough context to choose this tool over alternatives, and it omits authentication/error details. This makes it incomplete for safe autonomous use.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It does describe both parameters: 'user_google_email (str): The user's Google email address. Required.' and 'file_id (str): The ID of the file to check permissions for.' However, the meaning of user_google_email is ambiguous (whose email? the account owner or the user to impersonate?), and file_id could benefit from format hints. This adds value but leaves gaps.

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

Purpose5/5

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

The description clearly states the tool's function: 'Gets detailed metadata about a Google Drive file including sharing permissions.' This distinguishes it from sibling tools like get_drive_file_content (content) and get_drive_shareable_link (link). The verb 'Gets' plus the specific resource (Drive file metadata/permissions) makes the purpose unambiguous.

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

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 any exclusions or comparisons to closely related siblings such as check_drive_file_public_access, share_drive_file, or update_drive_permission. Usage is only implied by the stated purpose, not explicitly directed.

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

get_eventsA

Retrieves events from a specified Google Calendar. Can retrieve a single event by ID or multiple events within a time range. You can also search for events by keyword by supplying the optional "query" param.

Args: user_google_email (str): The user's Google email address. Required. calendar_id (str): The ID of the calendar to query. Use 'primary' for the user's primary calendar. Defaults to 'primary'. Calendar IDs can be obtained using list_calendars. event_id (Optional[str]): The ID of a specific event to retrieve. If provided, retrieves only this event and ignores time filtering parameters. time_min (Optional[str]): The start of the time range (inclusive) in RFC3339 format (e.g., '2024-05-12T10:00:00Z' or '2024-05-12'). If omitted, defaults to the current time. Ignored if event_id is provided. time_max (Optional[str]): The end of the time range (exclusive) in RFC3339 format. If omitted, events starting from time_min onwards are considered (up to max_results). Ignored if event_id is provided. max_results (int): The maximum number of events to return. Defaults to 25. Ignored if event_id is provided. query (Optional[str]): A keyword to search for within event fields (summary, description, location). Ignored if event_id is provided. detailed (bool): Whether to return detailed event information including description, location, attendees, and attendee details (response status, organizer, optional flags). Defaults to False. include_attachments (bool): Whether to include attachment information in detailed event output. When True, shows attachment details (fileId, fileUrl, mimeType, title) for events that have attachments. Only applies when detailed=True. Set this to True when you need to view or access files that have been attached to calendar events, such as meeting documents, presentations, or other shared files. Defaults to False.

Returns: str: A formatted list of events (summary, start and end times, link) within the specified range, or detailed information for a single event if event_id is provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
detailedNo
event_idNo
time_maxNo
time_minNo
calendar_idNoprimary
max_resultsNo
user_google_emailYes
include_attachmentsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/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 the burden. It discloses defaults, ignore rules, and return format, but the Returns section states 'detailed information for a single event if event_id is provided,' which is ambiguous with the detailed flag's default of False. It also does not mention authentication requirements.

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

Conciseness5/5

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

The description is long but appropriately structured with a clear overview and an Args list. Every parameter explanation earns its place without excessive words.

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

Completeness4/5

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

Given the complexity (9 params, no annotations), the description covers all parameters, defaults, relationships, and return types. However, the Returns ambiguity and lack of error/edge-case handling prevent it from being fully complete.

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

Parameters5/5

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

Schema description coverage is 0%, but the description fully documents all 9 parameters with types, defaults, formats, and interactions. Examples of RFC3339 formats and conditions like 'Ignored if event_id is provided' add significant value beyond the schema.

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

Purpose5/5

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

The description clearly states the tool retrieves events from a specified Google Calendar, with modes for single event by ID, time range, and keyword search. This distinguishes it from sibling tools like create_event, modify_event, delete_event, and list_calendars.

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

Usage Guidelines5/5

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

Provides explicit guidance: calendar IDs can be obtained via list_calendars, and the include_attachments parameter includes a clear use case ('Set this to True when you need to view or access files...'). It also clarifies when event_id overrides time/query parameters, giving conditional usage.

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

get_formA

Get a form.

Args: user_google_email (str): The user's Google email address. Required. form_id (str): The ID of the form to retrieve.

Returns: str: Form details including title, description, questions, and URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
form_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It indicates a read operation ('Get a form') but does not explicitly state it has no side effects. The user_google_email parameter suggests an auth requirement, but its necessity is not explained, and there is no mention of potential errors or rate limits.

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

Conciseness5/5

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

The description is concise, starting with a clear one-line purpose, followed by structured Args and Returns sections. Every sentence contributes value, with no unnecessary repetition.

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

Completeness4/5

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

The description is fairly complete for a simple retrieval tool, covering the purpose, parameters, and return value. However, it does not explain why user_google_email is required or address potential errors, which would be useful for an agent to invoke it correctly.

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

Parameters5/5

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

The schema has no descriptions for its parameters, but the description thoroughly explains both user_google_email and form_id with types and meanings, adding critical semantic value. This fully compensates for the schema's lack of detail.

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

Purpose5/5

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

The description explicitly states 'Get a form' and elaborates on the return value as 'Form details including title, description, questions, and URLs.' This clearly distinguishes it from siblings like get_form_response or list_form_responses, which deal with responses, making the tool's purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies usage for retrieving form metadata through its return value, but it does not explicitly state when to use this tool versus alternatives like get_form_response or list_form_responses. No when-not-to-use or alternative guidance is provided, leaving the context implicit.

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

get_form_responseA

Get one response from the form.

Args: user_google_email (str): The user's Google email address. Required. form_id (str): The ID of the form. response_id (str): The ID of the response to retrieve.

Returns: str: Response details including answers and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
form_idYes
response_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the operation retrieves a response and returns details, implying a read-only operation, but does not explicitly state there are no side effects, error behavior, or auth requirements. The 'Returns' line adds some context but is limited.

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

Conciseness5/5

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

The description is concise and well-structured with a clear one-line summary followed by Args and Returns sections. Every sentence is purposeful, and it avoids redundancy with the schema.

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

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 (3 required parameters) and the presence of an output schema, the description is reasonably complete. It conveys the core operation and return type, though it omits potential error cases or format specifics, which are likely covered by the output schema.

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

Parameters4/5

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

Schema description coverage is 0%, but the description lists all three parameters with meaningful explanations: user_google_email, form_id, and response_id. It clarifies the role of each parameter and marks user_google_email as Required, adding value beyond the bare schema.

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

Purpose5/5

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

The description states 'Get one response from the form' with a specific verb and resource, clearly distinguishing it from sibling tools like list_form_responses and get_form. The phrase 'one response' clarifies it retrieves a single response by ID.

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

Usage Guidelines3/5

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

The description implies usage by requiring response_id, but does not explicitly mention when to use this over list_form_responses or other alternatives. No exclusionary guidance is provided, leaving the agent to infer the distinction from the word 'one'.

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

get_gmail_attachment_contentA

Downloads the content of a specific email attachment.

Args: message_id (str): The ID of the Gmail message containing the attachment. attachment_id (str): The ID of the attachment to download. user_google_email (str): The user's Google email address. Required.

Returns: str: Attachment metadata and base64-encoded content that can be decoded and saved.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYes
attachment_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses that the return value is base64-encoded content that can be decoded and saved, but it does not mention any side effects, access requirements beyond user_google_email, or error conditions. It provides basic behavior but lacks deeper context.

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

Conciseness5/5

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

The description is concise and well-structured, with a short purpose statement followed by clearly formatted Args and Returns sections. Every sentence provides necessary information without redundant filler.

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

Completeness4/5

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

For a simple 3-parameter read operation, the description covers the essential aspects: what it does, all parameters, and the return format. While it lacks usage guidelines, those are addressed in dimension 2, and the existing output schema reduces the need to detail return values further. Overall, it is nearly complete for its complexity.

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

Parameters3/5

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

Since schema description coverage is 0%, the description is the only source of parameter meaning. It provides brief explanations for all three parameters, such as message_id being 'The ID of the Gmail message containing the attachment'. However, these explanations are largely restatements of the parameter names and do not explain how to obtain the IDs or the expected format, offering only minimal added value over the schema.

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

Purpose5/5

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

The description clearly states the tool 'Downloads the content of a specific email attachment', which is a specific verb+resource combination. It distinguishes from sibling tools like get_gmail_message_content by explicitly focusing on attachment content rather than message content.

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

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 get_gmail_messages_content_batch or get_gmail_thread_content. The description implies you need both a message_id and attachment_id, but it does not explain why this tool should be chosen over others for a given scenario.

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

get_gmail_message_contentA

Retrieves the full content (subject, sender, recipients, plain text body) of a specific Gmail message.

Args: message_id (str): The unique ID of the Gmail message to retrieve. user_google_email (str): The user's Google email address. Required.

Returns: str: The message details including subject, sender, date, Message-ID, recipients (To, Cc), and body content.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It clearly states this is a read operation and describes what is returned, but it does not mention authentication/permission prerequisites, error cases, or potential limitations. This is acceptable for a simple getter but not thorough.

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

Conciseness4/5

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

The description is compact and well-organized into purpose, args, and returns sections. The only minor redundancy is listing 'Required' for user_google_email, which duplicates the schema's required field.

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

Completeness4/5

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

For a simple two-parameter single-message getter with an output schema, the description covers the action, both parameters, and the return fields. It could be improved by mentioning auth prerequisites and alternative tools, but it is sufficient for an agent to invoke it correctly.

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

Parameters4/5

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

The input schema provides bare string fields with zero descriptions, so the Args section is essential. It explains message_id as the unique Gmail message ID and user_google_email as the user's Google email address, adding meaningful semantics. It could clarify where message_id comes from, but the basics are covered.

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

Purpose4/5

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

The description uses a specific verb ('Retrieves') and names a clear resource: the full content of a specific Gmail message, including subject, sender, recipients, and body. The phrase 'specific message' implicitly distinguishes it from batch and thread siblings, though no alternative is explicitly named.

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

Usage Guidelines3/5

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

There is no explicit when-to-use or when-not-to-use guidance and no reference to sibling tools like search_gmail_messages or get_gmail_messages_content_batch. However, the phrase 'specific Gmail message' implies the intended use case, providing some contextual guidance.

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

get_gmail_messages_content_batchA

Retrieves the content of multiple Gmail messages in a single batch request. Supports up to 25 messages per batch to prevent SSL connection exhaustion.

Args: message_ids (List[str]): List of Gmail message IDs to retrieve (max 25 per batch). user_google_email (str): The user's Google email address. Required. format (Literal["full", "metadata"]): Message format. "full" includes body, "metadata" only headers.

Returns: str: A formatted list of message contents including subject, sender, date, Message-ID, recipients (To, Cc), and body (if full format).

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNofull
message_idsYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

Since no annotations are provided, the description carries the transparency burden. It discloses the batch behavior, the message limit, and the effect of the 'format' parameter on output. However, it does not explicitly state that the operation is read-only or describe authentication requirements, which would be useful but are not critical given the tool's obvious read nature.

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

Conciseness5/5

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

The description is well-structured with a clear summary, Args section, and Returns section. Every sentence is informative and there is no redundant text. It is appropriately sized for the tool's functionality.

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

Completeness5/5

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

The description is complete for the tool's complexity: it covers parameters, limits, and the return format. It explains what the returned string contains, which is especially important given that no output schema is shown. Sibling tools are not necessary for this description to be self-sufficient.

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

Parameters5/5

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

The description thoroughly explains each parameter beyond the schema: message_ids is a list of Gmail message IDs with a maximum of 25, user_google_email is required and specifies whose email, and format describes the difference between 'full' and 'metadata'. This adds significant semantic value, compensating for the 0% schema coverage.

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

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: 'Retrieves the content of multiple Gmail messages in a single batch request.' It specifies the resource (Gmail messages) and distinguishes from sibling tools like get_gmail_message_content by explicitly indicating 'multiple' and 'batch'.

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

Usage Guidelines4/5

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

The description implies when to use this tool: for retrieving multiple messages in a batch, with a cap of 25 to prevent SSL connection exhaustion. It does not explicitly name alternatives or exclude use cases, but the context is clear enough for an agent to choose this instead of the singular variant.

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

get_gmail_thread_contentA

Retrieves the complete content of a Gmail conversation thread, including all messages.

Args: thread_id (str): The unique ID of the Gmail thread to retrieve. user_google_email (str): The user's Google email address. Required.

Returns: str: The complete thread content with all messages formatted for reading.

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does state that the return is a string 'with all messages formatted for reading,' giving some insight into output format. However, it does not explicitly mention that this is a read-only operation, potential rate limits, authentication requirements (beyond the required email parameter), or any error conditions. It is minimally transparent but lacks richer behavioral context.

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

Conciseness5/5

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

The description is concise and well-structured with a one-sentence purpose, Args section, and Returns section. Every line adds value, and the main verb is front-loaded. There is no redundant or filler content.

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

Completeness3/5

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

The tool is simple (two string parameters, no nested objects), and the description covers the core functionality and return type. However, it does not position the tool relative to its many siblings, such as get_gmail_threads_content_batch, nor does it mention any limitations (e.g., thread size, pagination). For a straightforward retrieval tool, it's mostly complete but could benefit from a 'use this for single-thread retrieval' note.

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

Parameters4/5

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

The input schema has no parameter descriptions (0% coverage), so the description must compensate. It does so by explaining thread_id as 'The unique ID of the Gmail thread to retrieve' and user_google_email as 'The user's Google email address. Required.' This adds meaningful context beyond the bare parameter names and required flags, though it could provide more detail about where to find the thread ID or the format of the email.

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

Purpose5/5

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

The description clearly states the tool 'Retrieves the complete content of a Gmail conversation thread, including all messages.' This uses a specific verb ('retrieves') and resource ('Gmail conversation thread'), and the mention of 'complete content' and 'all messages' distinguishes it from sibling tools like get_gmail_message_content (single message) and get_gmail_threads_content_batch (batch retrieval).

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

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 that this is for a single thread as opposed to get_gmail_threads_content_batch, nor does it suggest any context or prerequisites. Without explicit usage guidance, an agent must infer the appropriate situation from the name alone.

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

get_gmail_threads_content_batchA

Retrieves the content of multiple Gmail threads in a single batch request. Supports up to 25 threads per batch to prevent SSL connection exhaustion.

Args: thread_ids (List[str]): A list of Gmail thread IDs to retrieve. The function will automatically batch requests in chunks of 25. user_google_email (str): The user's Google email address. Required.

Returns: str: A formatted list of thread contents with separators.

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idsYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

Since annotations are not provided, the description carries the full burden. It discloses key behaviors: automatic batching in chunks of 25, the 25-thread limit rationale, and the return format as a formatted string with separators. It does not mention authentication, error handling, or side effects, but for a read-only batch retrieval, this is reasonable coverage.

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

Conciseness5/5

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

The description is concise and well-structured: opening one-sentence purpose, then a short behavioral note, then Args and Returns sections. Every sentence contributes new information without redundancy or fluff.

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

Completeness4/5

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

The description covers the essential aspects: purpose, batch limit, parameter semantics, and return type. It also includes behavioral nuance about SSL exhaustion. It does not cover error scenarios or require prerequisites, but given the output schema exists and the tool is part of a larger Gmail suite, this is adequately complete.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It provides clear explanations for both parameters: thread_ids is a list of Gmail thread IDs with automatic batching, and user_google_email is the required user email. This adds meaning beyond the raw schema, though it could give more detail on ID formats or potential validation, but it is sufficient.

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

Purpose5/5

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

The description clearly states it 'Retrieves the content of multiple Gmail threads in a single batch request', with a specific verb (retrieves), resource (Gmail threads content), and scope (multiple, batch). This distinguishes it from the singular sibling tool get_gmail_thread_content by emphasizing batch processing.

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

Usage Guidelines4/5

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

It implies use for fetching multiple threads and mentions the 25-thread batch limit to prevent SSL connection exhaustion, giving context for when it's appropriate. However, it does not explicitly state when to prefer alternative tools like get_gmail_thread_content for single threads, though the batch emphasis makes this clear by contrast.

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

get_messagesC

Retrieves messages from a Google Chat space.

Returns: str: Formatted messages from the specified space.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_byNocreateTime desc
space_idYes
page_sizeNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden but only says 'retrieves messages' and 'returns formatted messages'. It does not disclose ordering, pagination, authentication needs, or access constraints, leaving important behavioral aspects unspecified.

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

Conciseness4/5

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

The description is short, front-loaded, and free of fluff. Each sentence adds some information, though the overall content is thin.

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, no annotations, and sibling tools, the description is too minimal for reliable invocation. It lacks parameter explanations and behavioral context, making it incomplete even though an output schema exists.

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

Parameters1/5

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

The schema has 4 parameters with 0% schema description coverage, and the description does not explain any parameter semantics. It only mentions 'specified space' indirectly, omitting the meaning of user_google_email, order_by, and page_size.

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

Purpose4/5

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

The description clearly states the tool retrieves messages from a Google Chat space, using a specific verb and resource. However, it doesn't explicitly differentiate from sibling tools like search_messages, so it falls short of a 5.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus search_messages or other alternatives. There is no mention of exclusions or preferred contexts.

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

get_pageA

Get details about a specific page (slide) in a presentation.

Args: user_google_email (str): The user's Google email address. Required. presentation_id (str): The ID of the presentation. page_object_id (str): The object ID of the page/slide to retrieve.

Returns: str: Details about the specific page including elements and layout.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_object_idYes
presentation_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

The description discloses that it returns a string with page elements and layout, and lists all required parameters, including user_google_email for authentication. However, it does not explicitly state that this is a read-only operation, nor does it describe error conditions or rate limits. With no annotations, the description carries the full burden but only partially covers behavioral context.

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

Conciseness4/5

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

The description is well-structured with a purpose sentence, Args list, and Returns section, and it is front-loaded with the primary purpose. It is slightly verbose with repetitive 'page/slide' phrasing and contains a typo ('thepresentation'), but it remains efficient and readable.

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

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 three required parameters and a string return value, the description adequately covers purpose, parameter meaning, and return type. However, it lacks guidance on how it relates to sibling tools such as get_page_thumbnail and does not mention edge cases, though these are not critical for this straightforward get tool.

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

Parameters5/5

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

The description includes a full 'Args' section explaining user_google_email, presentation_id, and page_object_id. This adds meaning beyond the input schema, which has no parameter descriptions (schema coverage 0%). Each parameter is clearly defined, compensating fully for the schema's lack of descriptions.

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

Purpose5/5

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

The description clearly states 'Get details about a specific page (slide) in a presentation,' providing a specific verb and resource. It also mentions 'elements and layout,' which differentiates it from sibling tools like get_presentation (whole deck) and get_page_thumbnail (thumbnail image).

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives like get_presentation or get_page_thumbnail. The description only states what it does, without any 'use this when...' or 'use alternative when...' instructions.

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

get_page_thumbnailA

Generate a thumbnail URL for a specific page (slide) in a presentation.

Args: user_google_email (str): The user's Google email address. Required. presentation_id (str): The ID of the presentation. page_object_id (str): The object ID of the page/slide. thumbnail_size (str): Size of thumbnail ("LARGE", "MEDIUM", "SMALL"). Defaults to "MEDIUM".

Returns: str: URL to the generated thumbnail image.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_object_idYes
thumbnail_sizeNoMEDIUM
presentation_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 carries the burden. It discloses the return type (URL) and parameter defaults, but does not state side effects, auth requirements, or that it is read-only. Given the 'get_' prefix, it's likely safe, but this is not explicitly confirmed.

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

Conciseness5/5

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

The description is well-structured: a one-line purpose, a clear args list, and a returns section. It is concise without missing critical information.

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

Completeness5/5

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

With only four simple string parameters and an output schema expected, the description is complete. It includes all necessary details such as the allowed thumbnail_size values and the return type, making the tool self-contained.

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

Parameters5/5

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

Schema description coverage is 0%, but the description fully documents all four parameters, including types, required status, and the default for thumbnail_size. This fully compensates for the lack of schema descriptions.

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

Purpose5/5

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

The description clearly states the tool's function: 'Generate a thumbnail URL for a specific page (slide) in a presentation.' This distinguishes it from siblings like get_page or get_presentation by focusing on the thumbnail URL output.

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

Usage Guidelines3/5

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

The description implies use when a thumbnail URL is needed but does not explicitly mention alternatives or when not to use it. There is no comparison to get_page or other related tools, leaving room for ambiguity.

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

get_presentationA

Get details about a Google Slides presentation.

Args: user_google_email (str): The user's Google email address. Required. presentation_id (str): The ID of the presentation to retrieve.

Returns: str: Details about the presentation including title, slides count, and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
presentation_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of revealing behavioral traits. It discloses that the tool returns a string with title, slides count, and metadata, but does not mention auth requirements, error handling, or side effects. This is adequate for a simple getter but lacks depth.

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

Conciseness5/5

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

The description is front-loaded with the core purpose, followed by a clean Args/Returns structure. Every sentence is informative, and the format is easy to parse. No filler or redundancy.

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

Completeness3/5

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

The description covers the basic operation but lacks contextual depth. It does not mention prerequisites like authentication, how errors surface, or the full scope of metadata returned. The presence of an output schema offsets some return-detail needs, but usage guidance and behavioral context are thin.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It does by explaining both parameters: 'user_google_email' as the user's Google email address and 'presentation_id' as the ID of the presentation. This adds meaning beyond bare parameter names, though it does not specify formats or sources.

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

Purpose5/5

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

The description clearly states 'Get details about a Google Slides presentation' with a specific verb and resource. It differentiates from sibling tools like get_page and read_presentation_comments by focusing on overall presentation details, not pages or comments.

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

Usage Guidelines3/5

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

The description implies a read-only use case but provides no explicit guidance on when to prefer this over alternatives. No exclusions or alternative tools are mentioned, leaving the agent to infer usage from the description.

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

get_search_engine_infoB

Retrieves metadata about a Programmable Search Engine.

Args: user_google_email (str): The user's Google email address. Required.

Returns: str: Information about the search engine including its configuration and available refinements.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 transparency burden. It does not disclose whether this operation is read-only, requires specific authentication, or has any side effects. The Returns section describes output but not behavior.

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

Conciseness5/5

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

The description is short and structured with Args and Returns sections. Every sentence serves a purpose, and the main action is front-loaded.

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 one-parameter read-only tool with an output schema, the description covers the essentials. It explains the return value's content (configuration and refinements) and the required parameter, making it reasonably complete for its simplicity.

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

Parameters3/5

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

The schema has no descriptions, and the description provides a basic explanation for the only parameter ('The user's Google email address. Required.'). This adds some meaning beyond the raw schema, though the parameter name is already self-explanatory.

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 'Retrieves metadata about a Programmable Search Engine,' a specific verb and resource. It distinguishes itself from search-execution siblings by focusing on metadata, not search results.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. It does not mention that it is for configuration inspection before searching, nor does it contrast with search_custom or search_custom_siterestrict.

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

get_spreadsheet_infoA

Gets information about a specific spreadsheet including its sheets.

Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet to get info for. Required.

Returns: str: Formatted spreadsheet information including title, locale, and sheets list.

ParametersJSON Schema
NameRequiredDescriptionDefault
spreadsheet_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that the tool returns a formatted string with title, locale, and sheets list, which is useful. However, it does not explicitly state that this is a read-only operation, mention potential errors (e.g., inaccessible spreadsheet), or describe any side effects, leaving some ambiguity.

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

Conciseness5/5

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

The description is extremely concise and well-structured with separate Args and Returns sections. Every sentence adds value—no fluff or redundancy. It is appropriately sized for a two-parameter tool.

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

Completeness4/5

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

For a simple read-oriented tool with two parameters, the description is largely complete. It specifies the parameters, return format, and content. The lack of explicit error handling or alternative tool references is a minor gap, but the presence of an output schema and the straightforward nature of the operation make it sufficient.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It clearly explains both parameters: user_google_email is the user's Google email and spreadsheet_id is the ID of the spreadsheet, marking both as required. This adds meaningful context beyond the bare schema and satisfies the need for parameter clarity.

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

Purpose4/5

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

The description clearly states it 'Gets information about a specific spreadsheet including its sheets,' which specifies a concrete action and resource. It implicitly distinguishes from sibling tools like list_spreadsheets by focusing on a single spreadsheet, but does not explicitly name alternatives, preventing a 5.

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

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 list_spreadsheets or read_sheet_values. The description only states what the tool does, without any contextual hints or exclusions. This makes it hard for an agent to decide between this and similar spreadsheet tools.

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

get_taskA

Get details of a specific task.

Args: user_google_email (str): The user's Google email address. Required. task_list_id (str): The ID of the task list containing the task. task_id (str): The ID of the task to retrieve.

Returns: str: Task details including title, notes, status, due date, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
task_list_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/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 carry transparency. It discloses the return value format ('Task details including title, notes, status, due date, etc.') but does not mention error behavior, auth requirements, or side effects. Since this is a read operation with minimal risks, the description covers the essential behavior but lacks depth.

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

Conciseness5/5

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

The description is concise and well-structured with sections for Args and Returns. Each sentence serves a purpose, no redundancy. It is minimally sized while still providing parameter details and return information.

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

Completeness4/5

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

The tool is simple (fetch by three required IDs) and an output schema exists (string). The description explains what the return string contains. It does not cover error cases or prerequisites beyond the required parameters, but given the low complexity and presence of output schema, it is reasonably complete.

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

Parameters5/5

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

Schema description coverage is 0%, but the description's Args section provides clear explanations for every parameter (e.g., 'The ID of the task list containing the task'). This fully compensates for missing schema descriptions, adding meaning that the JSON schema alone does not provide.

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

Purpose5/5

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

The description uses a specific verb 'Get' and clearly identifies the resource: 'details of a specific task'. It distinguishes itself from siblings like 'list_tasks' (plural, listing) and 'get_task_list' (list-level). The phrase 'specific task' signals singular retrieval 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 Guidelines3/5

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

The description implies usage from the required IDs (user_google_email, task_list_id, task_id) but does not explicitly state when to use this tool versus alternatives such as 'list_tasks' or 'search_tasks'. No exclusions or alternative tool names are mentioned, so context is implied rather than explicit.

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

get_task_listA

Get details of a specific task list.

Args: user_google_email (str): The user's Google email address. Required. task_list_id (str): The ID of the task list to retrieve.

Returns: str: Task list details including title, ID, and last updated time.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_list_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Since no annotations are provided, the description carries full burden. It discloses that the tool returns a string containing title, ID, and last updated time, which is useful context. However, it does not mention error behavior, authentication requirements, or whether tasks in the list are included. It adds some transparency but not exhaustive.

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

Conciseness4/5

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

The description uses a clear docstring format with a one-line summary followed by Args and Returns sections. It is concise and front-loaded. The only minor redundancy is marking 'Required' when the schema already lists the params as required, but this is not intrusive.

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

Completeness4/5

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

The tool is a simple 2-parameter read operation. The input schema fully specifies required params, the output schema likely defines return structure, and the description confirms return contents. It does not mention how to obtain task_list_id or that this returns only list metadata, but for its simplicity it is sufficiently complete.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must explain parameters. It does so: 'user_google_email: The user's Google email address' clarifies whose email is needed, and 'task_list_id: The ID of the task list to retrieve' defines the identifier. However, these are fairly close to the parameter names and do not specify formats or how to obtain the values.

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

Purpose5/5

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

The description 'Get details of a specific task list' clearly identifies the action (get) and resource (task list), and the specificity of 'a specific task list' distinguishes it from list_task_lists (which retrieves multiple) and create/update/delete. It also clarifies it is not about individual tasks (get_task).

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool versus sibling tools like list_task_lists or get_task. It neither states prerequisites (e.g., need task_list_id from list_task_lists) nor mentions alternatives. The required parameters are implied but not framed as usage guidance.

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

get_zoom_meetingA

Get details of an existing Zoom meeting.

Args: meeting_id: The Zoom meeting ID

Returns: dict containing meeting details including join_url, topic, start_time, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
meeting_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output 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 carries the full burden. It only says 'Get details' which implies a safe read operation, but does not disclose potential error behavior (e.g., meeting not found), authentication requirements, or rate limits. This is a significant gap for a tool with no annotation coverage.

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

Conciseness5/5

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

The description is highly concise and well-structured with an Args/Returns format. The summary sentence is front-loaded, and every line provides relevant information without redundancy.

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

Completeness3/5

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

The tool is simple with one parameter and an output schema present, so the description need not detail return values extensively. However, it lacks usage guidance and behavioral transparency, leaving some context to be inferred. It is functional but not rich enough for a 4.

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 description adds minimal meaning beyond the schema by defining meeting_id as 'The Zoom meeting ID'. With 0% schema coverage, the description does compensate, but the explanation is barely more than the parameter name itself, lacking format details (e.g., numeric ID, where to find it).

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

Purpose5/5

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

The description clearly states 'Get details of an existing Zoom meeting' with a specific verb and resource. It distinguishes itself from sibling tools like list_zoom_meetings (which lists meetings) and delete_zoom_meeting (which deletes), 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 Guidelines3/5

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

Usage is implied: the tool takes a meeting_id to fetch details for a specific meeting, which is distinct from list_zoom_meetings for browsing. However, there is no explicit guidance on when to use this tool versus alternatives, such as when you already have the meeting ID.

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

insert_doc_elementsA

Inserts structural elements like tables, lists, or page breaks into a Google Doc.

Args: user_google_email: User's Google email address document_id: ID of the document to update element_type: Type of element to insert ("table", "list", "page_break") index: Position to insert element (0-based) rows: Number of rows for table (required for table) columns: Number of columns for table (required for table) list_type: Type of list ("UNORDERED", "ORDERED") (required for list) text: Initial text content for list items

Returns: str: Confirmation message with insertion details

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsNo
textNo
indexYes
columnsNo
list_typeNo
document_idYes
element_typeYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/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 discloses conditional parameter requirements (rows/columns for tables, list_type/text for lists) and the return type (confirmation string). However, it does not mention side effects like content shifting, required permissions, or failure modes, leaving some behavioral ambiguity.

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

Conciseness5/5

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

The description is well-structured: purpose statement followed by a clear Args list and Returns section. Every sentence is informative, with no redundancy or fluff. The front-loaded purpose immediately conveys the tool's function.

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

Completeness4/5

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

Given the complexity (8 parameters, conditional logic), the description thoroughly covers purpose, parameters, and return value. It lacks error-handling details or edge-case behavior, but the provided information is sufficient for basic invocation. The presence of an output schema reduces the need to describe return format in depth.

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

Parameters5/5

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

Schema description coverage is 0%, but the description rigorously documents all 8 parameters, including enums ('UNORDERED', 'ORDERED'), conditional requirements, and the meaning of 'text' for list items. This fully compensates for missing schema descriptions and adds significant semantic value.

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

Purpose5/5

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

The description clearly states 'Inserts structural elements like tables, lists, or page breaks into a Google Doc.' This is a specific verb (inserts), a clear resource (Google Doc), and explicit element types. It distinguishes itself from sibling tools like insert_doc_image (images) and modify_doc_text (text).

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

Usage Guidelines3/5

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

The description implies its use for inserting structural elements, but it does not explicitly state when to use this tool versus alternatives such as create_table_with_data or modify_doc_text. No exclusions or alternative tool names are provided, leaving the agent to infer the appropriate context.

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

insert_doc_imageA

Inserts an image into a Google Doc from Drive or a URL.

Args: user_google_email: User's Google email address document_id: ID of the document to update image_source: Drive file ID or public image URL index: Position to insert image (0-based) width: Image width in points (optional) height: Image height in points (optional)

Returns: str: Confirmation message with insertion details

ParametersJSON Schema
NameRequiredDescriptionDefault
indexYes
widthNo
heightNo
document_idYes
image_sourceYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/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 the full burden of behavioral transparency. While it states the action, it does not disclose that this is a write operation requiring edit permissions, nor does it mention any side effects, error conditions, or reversibility. This is a significant gap for a mutation tool without annotation support.

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

Conciseness5/5

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

The description is concise and well-structured with an 'Args' section listing parameters and a 'Returns' section. Every line adds value, and there is no redundant or excessive text. The format makes it easy to scan and understand.

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

Completeness4/5

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

All six parameters are clearly explained, and the return type is specified. The tool's complexity is moderate, and the description covers the essential aspects. However, it lacks details on prerequisites (e.g., user authentication, edit access) and error handling, which would be expected for a write operation without annotations.

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

Parameters5/5

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

The schema has 0% description coverage, so the description is the sole source of parameter meaning. It explains each parameter in plain language: user email, document ID, image source (Drive file ID or public URL), zero-based index, and optional width/height in points. This fully compensates for the schema's lack of descriptions and adds meaningful context.

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

Purpose5/5

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

The description starts with a specific verb and resource: 'Inserts an image into a Google Doc from Drive or a URL.' This clearly distinguishes it from sibling tools like insert_doc_elements by focusing specifically on image insertion and the source locations. Even without mentioning siblings, the purpose is unambiguous.

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

Usage Guidelines3/5

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

The description makes the use case clear (inserting an image into a Google Doc) and explains the image source options. However, it does not explicitly differentiate this tool from the broader insert_doc_elements tool or state when not to use it. The usage context is implied, not directly contrasted with alternatives.

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

inspect_doc_structureA

Essential tool for finding safe insertion points and understanding document structure.

USE THIS FOR:

  • Finding the correct index for table insertion

  • Understanding document layout before making changes

  • Locating existing tables and their positions

  • Getting document statistics and complexity info

CRITICAL FOR TABLE OPERATIONS: ALWAYS call this BEFORE creating tables to get a safe insertion index.

WHAT THE OUTPUT SHOWS:

  • total_elements: Number of document elements

  • total_length: Maximum safe index for insertion

  • tables: Number of existing tables

  • table_details: Position and dimensions of each table

WORKFLOW: Step 1: Call this function Step 2: Note the "total_length" value Step 3: Use an index < total_length for table insertion Step 4: Create your table

Args: user_google_email: User's Google email address document_id: ID of the document to inspect detailed: Whether to return detailed structure information

Returns: str: JSON string containing document structure and safe insertion indices

ParametersJSON Schema
NameRequiredDescriptionDefault
detailedNo
document_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It explains what the output contains (total_elements, total_length, tables, table_details) and positions it as a safe inspection step, implying no side effects. It doesn't explicitly state read-only or potential errors, but the behavior is well disclosed for the tool's purpose.

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

Conciseness4/5

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

The description is well-structured with clear sections (USE THIS FOR, CRITICAL, OUTPUT, WORKFLOW, Args, Returns). It is slightly verbose with repetition between the 'CRITICAL' section and the workflow, but the organization earns its place. No unnecessary fluff.

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

Completeness4/5

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

The description provides a complete workflow, output explanation, and parameter list, making it self-sufficient for the agent to use correctly. It doesn't cover edge cases or detailed interpretation of 'detailed', but it adequately explains the critical aspects of safe insertion indices.

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

Parameters4/5

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

Schema description coverage is 0%, so the description compensates by listing all three parameters and their purposes. The 'detailed' parameter is only vaguely described as 'Whether to return detailed structure information', but the output section helps infer its impact. Overall, it adds enough meaning beyond the raw schema.

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

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: 'inspect_doc_structure' is for finding safe insertion points and understanding document structure. It distinguishes from siblings by explicitly linking to table operations (e.g., 'CRITICAL FOR TABLE OPERATIONS'), making it clear this is not just a generic document reader.

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

Usage Guidelines4/5

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

The description provides explicit use cases under 'USE THIS FOR' and a numbered workflow, emphasizing to call it before creating tables. It lacks explicit mention of alternatives or when not to use it, but the context is strong enough to guide an agent.

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

list_calendarsA

Retrieves a list of calendars accessible to the authenticated user.

Args: user_google_email (str): The user's Google email address. Required.

Returns: str: A formatted list of the user's calendars (summary, ID, primary status).

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description partially carries the transparency burden. It discloses the read-only nature and scope ('accessible to the authenticated user') and the return format, but omits details like error handling, authentication steps, or pagination. This adds some value beyond the schema but is not comprehensive.

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

Conciseness5/5

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

The description is well-structured with an Args/Returns format, front-loads the primary action, and contains no unnecessary words. It conveys all essential information efficiently.

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

Completeness4/5

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

For a simple single-parameter read tool, the description covers purpose, parameter semantics, and return value characteristics. It lacks minor details like error behavior, but given the tool's simplicity and the presence of an output schema, it is reasonably complete.

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

Parameters4/5

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

The schema has zero description coverage, so the description must compensate. It provides semantic meaning for 'user_google_email' as 'the user's Google email address' and marks it required, which is helpful. However, it could add more context on where to obtain this email or format expectations.

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

Purpose5/5

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

The description states a specific verb ('retrieves') and resource ('a list of calendars'), clearly distinguishing it from sibling tools. No other sibling tool lists calendars, so it stands out.

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

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 any exclusions or prerequisites mentioned. The description only states what it does, leaving usage context implicit.

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

list_docs_in_folderC

Lists Google Docs within a specific Drive folder.

Returns: str: A formatted list of Google Docs in the specified folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_idNoroot
page_sizeNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states that a formatted list is returned, but omits any information about permissions needed, behavior with empty folders, page_size handling, or whether the tool filters exclusively to native Google Docs vs. other file types. This lack of context leaves significant room for misestimation.

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

Conciseness5/5

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

The description is two sentences long, front-loads the primary action, and includes a return-type note. Every word earns its place, with no filler or redundancy.

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

Completeness2/5

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

For a tool with three parameters (one required) and no comprehensive output schema visible, this description is insufficient. It lacks parameter semantics, behavioral caveats, and usage alternatives. The agent cannot confidently invoke this tool without guessing at the meaning of user_google_email and page_size, and the absence of any exclusion criteria makes it hard to distinguish from sibling listing tools.

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

Parameters1/5

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

The schema description coverage is 0%, so the description must compensate by explaining the parameters. It fails to do so: it never mentions user_google_email, folder_id, or page_size, and only obliquely references a 'specific Drive folder.' Required parameters are left undefined, making successful invocation dependent on external knowledge.

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

Purpose5/5

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

The description clearly states the verb 'Lists' and the resource 'Google Docs within a specific Drive folder,' which distinguishes it from siblings like list_drive_items (all files) and search_drive_files (search). The scope is explicit, making the tool's intent unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as list_drive_items or search_drive_files. It does not mention exclusions, prerequisites, or typical use cases beyond the basic action, leaving the agent to infer usage from the name and sibling context.

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

list_drive_itemsA

Lists files and folders, supporting shared drives. If drive_id is specified, lists items within that shared drive. folder_id is then relative to that drive (or use drive_id as folder_id for root). If drive_id is not specified, lists items from user's "My Drive" and accessible shared drives (if include_items_from_all_drives is True).

Args: user_google_email (str): The user's Google email address. Required. folder_id (str): The ID of the Google Drive folder. Defaults to 'root'. For a shared drive, this can be the shared drive's ID to list its root, or a folder ID within that shared drive. page_size (int): The maximum number of items to return. Defaults to 100. drive_id (Optional[str]): ID of the shared drive. If provided, the listing is scoped to this drive. include_items_from_all_drives (bool): Whether items from all accessible shared drives should be included if drive_id is not set. Defaults to True. corpora (Optional[str]): Corpus to query ('user', 'drive', 'allDrives'). If drive_id is set and corpora is None, 'drive' is used. If None and no drive_id, API defaults apply.

Returns: str: A formatted list of files/folders in the specified folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
corporaNo
drive_idNo
folder_idNoroot
page_sizeNo
user_google_emailYes
include_items_from_all_drivesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the scoping behavior, how folder_id is interpreted relative to drives, and the return type as a formatted list. It does not mention rate limits or explicit read-only status, but the read-only nature is implicit and the auth context (user_google_email) is included.

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

Conciseness4/5

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

The description is detailed but well-structured, starting with the main purpose and conditional rules, followed by an Args block. It is slightly longer than necessary, but every sentence adds useful information, and is appropriately front-loaded with the core listing behavior.

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

Completeness5/5

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

Given the tool's complexity (shared drives, conditional folder scoping, multiple parameters), the description covers all essential aspects: parameters, return format, and behavioral nuances. The output schema exists and the return is described, making it complete for an agent to invoke correctly.

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

Parameters5/5

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

The input schema has 0% description coverage, but the description's Args section fully documents each parameter, including default values, relationships (e.g., folder_id relative to drive_id), and conditional logic for corpora. It adds significant meaning beyond the bare schema property names and types.

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

Purpose5/5

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

The description starts with 'Lists files and folders, supporting shared drives', which is a specific verb-resource pair that clearly differentiates from sibling search tools like 'search_drive_files'. It also explains drive_id and folder_id semantics, fully conveying the tool's purpose.

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

Usage Guidelines4/5

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

The description provides explicit conditional behavior for when drive_id is specified vs not, and explains include_items_from_all_drives. However, it does not explicitly compare to sibling tools such as search_drive_files, so it stops short of naming alternatives. Clear context is present, but exclusions are not.

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

list_form_responsesA

List a form's responses.

Args: user_google_email (str): The user's Google email address. Required. form_id (str): The ID of the form. page_size (int): Maximum number of responses to return. Defaults to 10. page_token (Optional[str]): Token for retrieving next page of results.

Returns: str: List of responses with basic details and pagination info.

ParametersJSON Schema
NameRequiredDescriptionDefault
form_idYes
page_sizeNo
page_tokenNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description must carry the burden. It discloses pagination behavior and that results include basic details and pagination info, but it does not explicitly state that the operation is read-only or mention any authentication requirements or side effects.

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

Conciseness5/5

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

The description is compact and well-structured, with a clear one-sentence purpose followed by an organized Args/Returns format. Every sentence adds value and there is no unnecessary verbosity.

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

Completeness4/5

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

For a list operation with pagination and no annotations, the description is largely complete: it covers all parameters, return type, and pagination details. It does not specify what 'basic details' include, but this is a minor gap.

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

Parameters5/5

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

The description fully documents all four parameters with types and explanations (e.g., user_google_email is required, page_size defaults to 10, page_token is optional). This adds significant meaning beyond the bare schema, which lacks property descriptions.

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

Purpose5/5

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

The description opens with 'List a form's responses', using a specific verb and resource. It clearly distinguishes from the sibling get_form_response, which retrieves a single response.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives like get_form_response. The description simply states what the tool does without any context on use cases, prerequisites, or exclusions.

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

list_gmail_filtersA

Lists all Gmail filters configured in the user's mailbox.

Args: user_google_email (str): The user's Google email address. Required.

Returns: str: A formatted list of filters with their criteria and actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It transparently states that the operation lists filters (a read-only action) and describes the return format as 'a formatted list of filters with their criteria and actions.' While it doesn't explicitly mention auth requirements or side effects, the behavior is simple and adequately disclosed.

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

Conciseness5/5

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

The description is concise and well-structured. The main purpose is stated in the first sentence, followed by clearly formatted Args and Returns sections. There is no redundant or extraneous content; every sentence contributes meaning.

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

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 (one parameter, no output schema, no nested objects), the description is complete. It provides a clear purpose, parameter explanation, and return format. It does not cover potential errors or authentication prerequisites, but for a straightforward list operation this is acceptable.

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

Parameters4/5

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

The input schema has no description for user_google_email (0% coverage), but the description's Args section compensates: 'The user's Google email address. Required.' This clarifies the parameter's meaning beyond the raw schema, even though the parameter name is self-explanatory. The description adds value by tying the parameter to the mailbox being queried.

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

Purpose5/5

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

The description clearly states the tool's function: "Lists all Gmail filters configured in the user's mailbox." It uses a specific verb (Lists), defines the resource (Gmail filters), and specifies the scope (all filters in the user's mailbox), distinguishing it from sibling tools like create_gmail_filter and delete_gmail_filter.

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

Usage Guidelines4/5

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

The usage context is clear: use this tool to list all Gmail filters. It does not explicitly compare against alternatives, but the action is unambiguous and the sibling tools for creating/deleting filters are clearly different operations. Since there are no exclusions or caveats, a 4 is appropriate.

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

list_gmail_labelsA

Lists all labels in the user's Gmail account.

Args: user_google_email (str): The user's Google email address. Required.

Returns: str: A formatted list of all labels with their IDs, names, and types.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the transparency burden. It discloses the return format (formatted list with IDs, names, and types) and the required argument, but it does not explicitly state auth requirements or confirm read-only behavior, though 'Lists' implies it.

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

Conciseness5/5

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

The description is compact and well-structured: one purpose sentence followed by Args and Returns sections. Every sentence adds value with no redundancy or filler.

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

Completeness4/5

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

The tool is a simple read-only listing operation, and the description gives the core purpose, required input, and return contents. It is sufficient for correct invocation, though it could briefly mention auth prerequisites or clarify that it returns all labels without filtering.

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

Parameters4/5

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

The single parameter user_google_email is explained as 'The user's Google email address' and marked Required, adding meaning beyond the bare schema type. Since there is only one parameter, this fully covers the parameter surface, though it offers no advanced format details.

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

Purpose5/5

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

The description uses the specific verb 'Lists' and names the resource 'all labels in the user's Gmail account,' clearly distinguishing it from sibling tools like list_gmail_filters and manage_gmail_label. The purpose is immediately unambiguous.

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

Usage Guidelines3/5

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

The description gives no explicit when-to-use guidance or alternatives, but the verb and resource make the intended use apparent. It does not mention cases where a different Gmail label-related tool would be more appropriate.

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

list_spacesB

Lists Google Chat spaces (rooms and direct messages) accessible to the user.

Returns: str: A formatted list of Google Chat spaces accessible to the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNo
space_typeNoall
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full behavioral disclosure responsibility. It only states that the tool returns a formatted list of accessible spaces; it doesn't mention pagination behavior, filtering via space_type, auth requirements, or result size limits.

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 compact and front-loaded with the purpose. The Returns block is slightly redundant but does not detract significantly from readability.

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

Completeness3/5

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

The tool is simple and has an output schema, so the return format is covered. However, the lack of annotations and zero parameter semantics leaves meaningful ambiguity for correct invocation, especially around space_type and page_size values. It is minimally viable but not comprehensive.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain any parameter. user_google_email is only weakly implied by 'accessible to the user', while page_size and space_type are left completely undocumented, relying solely on their names and defaults.

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 the specific verb 'Lists' and clearly identifies the resource 'Google Chat spaces (rooms and direct messages)', with the scope 'accessible to the user'. This distinguishes it from sibling list_* tools like list_calendars or list_drive_items.

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

Usage Guidelines3/5

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

The description implies the tool is used when the agent needs to enumerate Google Chat spaces, but it provides no explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives such as search_messages.

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

list_spreadsheetsA

Lists spreadsheets from Google Drive that the user has access to.

Args: user_google_email (str): The user's Google email address. Required. max_results (int): Maximum number of spreadsheets to return. Defaults to 25.

Returns: str: A formatted list of spreadsheet files (name, ID, modified time).

ParametersJSON Schema
NameRequiredDescriptionDefault
max_resultsNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that the output is a formatted list with name, ID, and modified time, and that access is scoped by the user's email. It also notes the max_results default, which adds behavioral context beyond the schema, though it omits any limitations such as pagination.

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

Conciseness5/5

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

The description is well-structured with a one-line purpose followed by concise Args and Returns sections. Every sentence adds value, and there is no redundant filler.

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

Completeness4/5

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

The description adequately covers a simple listing tool with two parameters, including the return format. It is slightly incomplete because it doesn't address pagination or error conditions, but given the simplicity and presence of an output schema, it is sufficient.

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

Parameters5/5

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

The description explains both parameters explicitly: user_google_email is required and max_results defaults to 25. Since the schema has 0% description coverage, this fully compensates and provides clear meaning beyond the type information.

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

Purpose5/5

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

The description clearly states it lists spreadsheets from Google Drive with the specific scope of what the user has access to, distinguishing it from sibling tools like list_drive_items and search_drive_files.

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

Usage Guidelines3/5

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

The description provides context that it lists only spreadsheets accessible to the user, but does not explicitly mention alternatives or when not to use this tool. No exclusions or comparisons with sibling tools are provided, so usage guidance is only implied.

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

list_task_listsA

List all task lists for the user.

Args: user_google_email (str): The user's Google email address. Required. max_results (int): Maximum number of task lists to return (default: 1000, max: 1000). page_token (Optional[str]): Token for pagination.

Returns: str: List of task lists with their IDs, titles, and details.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_tokenNo
max_resultsNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/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. It discloses pagination parameters and the return format (IDs, titles, details), but does not explicitly state that this is a read-only operation or mention error/rate-limit behavior.

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 tightly structured docstring with a one-sentence summary, concise parameter descriptions, and a return type note. No wasted words.

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

Completeness4/5

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

For a simple listing tool, the description covers the essential behavioral aspects: params, pagination, limits, and return format. It could briefly note the read-only nature, but the overall completeness is adequate.

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

Parameters5/5

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

Schema description coverage is 0%, but the description fully documents each parameter with semantics, requiredness, default, and maximum, adding value 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 specifies the action ('List') and the resource ('all task lists for the user'), clearly distinguishing it from sibling tools like list_tasks (which lists tasks) and get_task_list (which fetches a single task list).

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

Usage Guidelines4/5

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

The description states that it lists all task lists for a user, providing clear context for when to use this tool, but does not explicitly mention alternatives or exclusion cases (e.g., when needing a single list).

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

list_tasksA

List all tasks in a specific task list.

Args: user_google_email (str): The user's Google email address. Required. task_list_id (str): The ID of the task list to retrieve tasks from. max_results (int): Maximum number of tasks to return. (default: 20, max: 10000). page_token (Optional[str]): Token for pagination. show_completed (bool): Whether to include completed tasks (default: True). Note that show_hidden must also be true to show tasks completed in first party clients, such as the web UI and Google's mobile apps. show_deleted (bool): Whether to include deleted tasks (default: False). show_hidden (bool): Whether to include hidden tasks (default: False). show_assigned (bool): Whether to include assigned tasks (default: False). completed_max (Optional[str]): Upper bound for completion date (RFC 3339 timestamp). completed_min (Optional[str]): Lower bound for completion date (RFC 3339 timestamp). due_max (Optional[str]): Upper bound for due date (RFC 3339 timestamp). due_min (Optional[str]): Lower bound for due date (RFC 3339 timestamp). updated_min (Optional[str]): Lower bound for last modification time (RFC 3339 timestamp).

Returns: str: List of tasks with their details.

ParametersJSON Schema
NameRequiredDescriptionDefault
due_maxNo
due_minNo
page_tokenNo
max_resultsNo
show_hiddenNo
updated_minNo
show_deletedNo
task_list_idYes
completed_maxNo
completed_minNo
show_assignedNo
show_completedNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the burden of disclosure. It explains filtering behavior, defaults, and a notable nuance: 'show_hidden must also be true to show tasks completed in first party clients.' It does not mention auth requirements or side effects, but as a list operation, read-only behavior is implied. The extra caveat adds useful context.

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

Conciseness5/5

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

The description is long but well-structured with an Args list and Returns section. The opening sentence is direct and informative. Every parameter earns its place given the tool's complexity, and there is no filler or redundancy.

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

Completeness5/5

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

For a complex tool with 13 parameters, no annotations, and no output schema details beyond a string return, the description is comprehensive. It covers all parameters, defaults, constraints, and a behavioral caveat. It is complete enough for an agent to call the tool correctly without additional external knowledge.

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

Parameters5/5

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

Schema description coverage is 0%, and the description compensates thoroughly. Each of the 13 parameters is documented with its type, default, constraints (e.g., max_results max 10000), and special notes (e.g., the interaction between show_hidden and show_completed). This is far beyond what the schema alone provides.

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

Purpose5/5

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

The description clearly states 'List all tasks in a specific task list,' which specifies the verb (list), resource (tasks), and scope (specific task list). This distinguishes it from sibling tools like get_task, list_task_lists, and task mutation tools.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool (to retrieve tasks from a specific task list), but it does not explicitly mention alternatives or when not to use it. For instance, it doesn't say 'use get_task for a single task.' However, the purpose is clear enough that an agent can infer appropriate usage.

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

list_zoom_meetingsA

List Zoom meetings for the authenticated user.

Args: meeting_type: Type of meetings to list. Options: - "scheduled": All scheduled meetings (default) - "live": Currently live meetings - "upcoming": Upcoming meetings page_size: Number of meetings to return (max 300, default 30)

Returns: dict containing list of meetings with their details

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNo
meeting_typeNoscheduled

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that the operation targets the authenticated user's meetings, describes the return type as 'dict containing list of meetings,' and adds max/default constraints for page_size. It doesn't explicitly state it's read-only, but the verb 'List' makes that clear, and there are no side effects to disclose.

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 compact docstring with clear Args/Returns sections. The one-line purpose is front-loaded, and every sentence adds necessary information without redundancy or filler.

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

Completeness4/5

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

For a read-only list tool with two optional parameters and an existing output schema, the description covers key aspects: authentication scope, parameter semantics, and return shape. It doesn't elaborate on pagination behavior beyond page_size, but the output schema likely handles return details, making the description sufficiently complete.

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

Parameters5/5

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

Schema description coverage is 0%, so the description fully compensates. It enumerates meeting_type options with parenthetical meanings and states the max/default for page_size, adding constraints not present in the schema. This provides complete parameter semantics beyond the raw JSON 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 uses the specific verb 'List' with the resource 'Zoom meetings' and clarifies the scope to 'the authenticated user.' This clearly differentiates it from sibling tools like get_zoom_meeting (singular fetch) and create_zoom_meeting/delete_zoom_meeting.

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 meeting_type parameter implies usage contexts (scheduled, live, upcoming), but the description never explicitly contrasts with alternatives such as get_zoom_meeting or states when not to use this tool. There are no exclusion guidelines, so it only reaches the 'implied usage' level.

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

manage_gmail_labelA

Manages Gmail labels: create, update, or delete labels.

Args: user_google_email (str): The user's Google email address. Required. action (Literal["create", "update", "delete"]): Action to perform on the label. name (Optional[str]): Label name. Required for create, optional for update. label_id (Optional[str]): Label ID. Required for update and delete operations. label_list_visibility (Literal["labelShow", "labelHide"]): Whether the label is shown in the label list. message_list_visibility (Literal["show", "hide"]): Whether the label is shown in the message list.

Returns: str: Confirmation message of the label operation.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
actionYes
label_idNo
user_google_emailYes
label_list_visibilityNolabelShow
message_list_visibilityNoshow

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 carry the burden of behavioral disclosure. It explains parameter requirements per action and the return type, which is helpful. However, it does not disclose potential side effects, such as what happens to messages when a label is deleted, whether updates are reversible, or if any specific permissions are needed beyond providing the user email. This leaves room for ambiguity in edge cases.

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

Conciseness5/5

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

The description is well-structured and front-loaded: a one-sentence summary, followed by a clean Args block with each parameter on its own line, and a Returns line. There is no fluff or repetition; every sentence earns its place. The format is easy to scan and directly supports parameter understanding.

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

Completeness4/5

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

Given the tool's complexity (6 parameters, 3 enums, three distinct actions) and the lack of annotations or schema descriptions, the description covers all essential aspects: action semantics, parameter requirements per action, and the return type. It does not include examples or error scenarios, but for a straightforward CRUD tool this is a minor gap. Overall, it provides sufficient context for an agent to use it correctly.

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

Parameters5/5

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

The schema has 0% description coverage for parameters, so the description's Args section is essential. It provides a clear explanation for each parameter, including the role of user_google_email, the action-dependent requirements for name and label_id, and the meaning of the visibility flags. This goes well beyond the bare type/enum info in the schema, making it highly informative for correct invocation.

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

Purpose5/5

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

The description opens with 'Manages Gmail labels: create, update, or delete labels,' which clearly identifies the resource (Gmail labels) and the specific actions (create, update, delete). This distinguishes it from sibling tools like list_gmail_labels, which only lists labels, and modify_gmail_message_labels, which acts on message labels rather than the label definitions themselves.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool (when needing to create, update, or delete labels) and clarifies which parameters are required for each action. However, it does not explicitly mention alternatives or state when not to use this tool, such as pointing out that list_gmail_labels is for read-only listing. This is a minor gap, but the context is strong enough to guide an agent.

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

modify_doc_textA

Modifies text in a Google Doc - can insert/replace text and/or apply formatting in a single operation.

Args: user_google_email: User's Google email address document_id: ID of the document to update start_index: Start position for operation (0-based) end_index: End position for text replacement/formatting (if not provided with text, text is inserted) text: New text to insert or replace with (optional - can format existing text without changing it) bold: Whether to make text bold (True/False/None to leave unchanged) italic: Whether to make text italic (True/False/None to leave unchanged) underline: Whether to underline text (True/False/None to leave unchanged) font_size: Font size in points font_family: Font family name (e.g., "Arial", "Times New Roman") text_color: Foreground text color (#RRGGBB) background_color: Background/highlight color (#RRGGBB)

Returns: str: Confirmation message with operation details

ParametersJSON Schema
NameRequiredDescriptionDefault
boldNo
textNo
italicNo
end_indexNo
font_sizeNo
underlineNo
text_colorNo
document_idYes
font_familyNo
start_indexYes
background_colorNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It explains parameter-level behaviors such as 'None to leave unchanged,' 'text is optional - can format existing text without changing it,' and 'if not provided with text, text is inserted.' It also specifies the return value. It does not explicitly discuss permissions or irreversibility, but 'insert/replace' makes the mutation clear and the added parameter nuances are valuable.

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

Conciseness4/5

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

The description opens with a concise summary sentence, followed by a clearly labeled Args list and Returns line. It is a bit lengthy but each parameter explanation earns its place, and the structure is easy to scan. The front-loaded summary helps an agent quickly understand the core purpose.

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

Completeness4/5

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

Given the high parameter count and no annotations, the description covers all parameters, the return type, and the main operation. It even clarifies edge-case behavior like text insertion without end_index. Missing are usage comparisons with siblings and constraints like index bounds or auth prerequisites, but the core functionality is adequately documented.

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

Parameters5/5

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

Schema coverage is 0%, and the description fully compensates by explaining all 12 parameters in the Args section. It defines the meaning of each parameter, including optionality, the role of None for formatting fields, and the conditional behavior of end_index and text. This goes well beyond the raw schema.

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

Purpose5/5

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

The description clearly states it 'Modifies text in a Google Doc' and specifies the capability: 'insert/replace text and/or apply formatting in a single operation.' This distinguishes it from siblings like find_and_replace_doc and batch_update_doc by emphasizing combined text editing and formatting in one call.

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

Usage Guidelines3/5

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

The description implies usage context through 'single operation' but does not explicitly mention when to use this tool versus alternatives like batch_update_doc or insert_doc_elements. There are no when-not-to-use instructions or named sibling alternatives, so guidance is left to inference.

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

modify_eventA

Modifies an existing event.

Args: user_google_email (str): The user's Google email address. Required. event_id (str): The ID of the event to modify. calendar_id (str): Calendar ID (default: 'primary'). summary (Optional[str]): New event title. start_time (Optional[str]): New start time (RFC3339, e.g., "2023-10-27T10:00:00-07:00" or "2023-10-27" for all-day). end_time (Optional[str]): New end time (RFC3339, e.g., "2023-10-27T11:00:00-07:00" or "2023-10-28" for all-day). description (Optional[str]): New event description. location (Optional[str]): New event location. attendees (Optional[Union[List[str], List[Dict[str, Any]]]]): Attendees as email strings or objects with metadata. Supports: ["email@example.com"] or [{"email": "email@example.com", "responseStatus": "accepted", "organizer": true, "optional": true}]. When using objects, existing metadata (responseStatus, organizer, optional) is preserved. New attendees default to responseStatus="needsAction". timezone (Optional[str]): New timezone (e.g., "America/New_York"). add_google_meet (Optional[bool]): Whether to add or remove Google Meet video conference. If True, adds Google Meet; if False, removes it; if None, leaves unchanged. reminders (Optional[Union[str, List[Dict[str, Any]]]]): JSON string or list of reminder objects to replace existing reminders. Each should have 'method' ("popup" or "email") and 'minutes' (0-40320). Max 5 reminders. Example: '[{"method": "popup", "minutes": 15}]' or [{"method": "popup", "minutes": 15}] use_default_reminders (Optional[bool]): Whether to use calendar's default reminders. If specified, overrides current reminder settings. transparency (Optional[str]): Event transparency for busy/free status. "opaque" shows as Busy, "transparent" shows as Available/Free. If None, preserves existing transparency setting. visibility (Optional[str]): Event visibility. "default" uses calendar default, "public" is visible to all, "private" is visible only to attendees, "confidential" is same as private (legacy). If None, preserves existing visibility setting. color_id (Optional[str]): Event color ID (1-11). If None, preserves existing color.

Returns: str: Confirmation message of the successful event modification with event link.

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryNo
color_idNo
end_timeNo
event_idYes
locationNo
timezoneNo
attendeesNo
remindersNo
start_timeNo
visibilityNo
calendar_idNoprimary
descriptionNo
transparencyNo
add_google_meetNo
user_google_emailYes
use_default_remindersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries full responsibility for behavior. It discloses important behavior: add_google_meet adds or removes a Google Meet conference, reminders 'replaces existing reminders' with a max of 5, and all optional fields preserve existing settings when None. It also explains attendee metadata preservation and default needsAction. Lacks details on auth or undo, but is solid overall.

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 structured as a docstring: one-line purpose, organized Args list, and Returns. It is long due to 16 parameters, but every sentence provides necessary information—formats, examples, defaults, and edge-case behavior—without fluff.

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

Completeness4/5

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

The tool has 16 parameters and an output schema; the description covers all parameters, specifies required fields, includes examples, and states the return type. It omits error conditions and prerequisites (e.g., auth), but for a modification tool this is fairly complete.

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

Parameters5/5

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

Schema description coverage is 0%, but the description fully compensates with detailed, actionable semantics: RFC3339 examples, all-day date support, attendee object structures, reminder examples, and explicit meaning of None for each field. This goes far beyond the schema's bare types and defaults.

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 opens with 'Modifies an existing event,' which clearly states the verb (modify) and resource (existing event). This distinguishes it from sibling tools like create_event, delete_event, and get_events by its specific action.

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 when-to-use or alternative guidance is provided. Usage is implied by the action: if you have an event_id and want to change fields, this is the tool. The description does not mention alternatives like create_event for new events or get_events for retrieval.

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

modify_gmail_message_labelsA

Adds or removes labels from a Gmail message. To archive an email, remove the INBOX label. To delete an email, add the TRASH label.

Args: user_google_email (str): The user's Google email address. Required. message_id (str): The ID of the message to modify. add_label_ids (Optional[List[str]]): List of label IDs to add to the message. remove_label_ids (Optional[List[str]]): List of label IDs to remove from the message.

Returns: str: Confirmation message of the label changes applied to the message.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYes
add_label_idsNoLabel IDs to add to the message.
remove_label_idsNoLabel IDs to remove from the message.
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains special label behaviors (INBOX/TRASH) and states the return type, but it omits details about permissions, idempotence, or error conditions. It adds helpful context but is not exhaustive.

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

Conciseness4/5

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

The description is well-structured with a direct summary, practical examples, and an Args section. While the Args section overlaps with the schema, it is reasonably compact and the examples justify the extra length. No extraneous content.

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

Completeness4/5

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

For a moderately simple mutation tool, the description covers the core operation, special cases, and return value. It lacks discussion of permissions or contrast with the batch sibling, but given the tool's simplicity and the presence of an output schema, it is sufficiently complete for most agent use cases.

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

Parameters3/5

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

Schema descriptions cover 50% of the parameters (add_label_ids and remove_label_ids), and the description's Args section adds brief context for the other two (user_google_email, message_id). However, the descriptions are minimal and don't explain where to obtain label IDs or how the parameters interact, so the added meaning is only slightly above the schema baseline.

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

Purpose5/5

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

The description opens with 'Adds or removes labels from a Gmail message,' which is a specific verb and resource, clearly distinguishing the tool from label management or batch operations. The examples further clarify the purpose.

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

Usage Guidelines3/5

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

The description provides concrete usage examples ('To archive an email, remove the INBOX label'), which imply when to use these parameter combinations. However, it does not explicitly contrast with sibling tools like batch_modify_gmail_message_labels or manage_gmail_label, so the guidance on when to choose this tool vs alternatives is only implicit.

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

modify_sheet_valuesA

Modifies values in a specific range of a Google Sheet - can write, update, or clear values.

Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. range_name (str): The range to modify (e.g., "Sheet1!A1:D10", "A1:D10"). Required. values (Optional[Union[str, List[List[str]]]]): 2D array of values to write/update. Can be a JSON string or Python list. Required unless clear_values=True. value_input_option (str): How to interpret input values ("RAW" or "USER_ENTERED"). Defaults to "USER_ENTERED". clear_values (bool): If True, clears the range instead of writing values. Defaults to False.

Returns: str: Confirmation message of the successful modification operation.

ParametersJSON Schema
NameRequiredDescriptionDefault
valuesNo
range_nameYes
clear_valuesNo
spreadsheet_idYes
user_google_emailYes
value_input_optionNoUSER_ENTERED

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the mutation operation ('can write, update, or clear values'), explains the clear_values behavior, and specifies the return type (confirmation message). However, it does not mention permissions, irreversibility, or potential errors, which are relevant for a write tool.

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

Conciseness4/5

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

The description is well-structured with a one-sentence summary followed by Args and Returns sections. It is appropriately detailed without unnecessary fluff. The Args section is relatively long but necessary given the schema lacks descriptions. Could be slightly more concise, but it remains clear and organized.

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

Completeness4/5

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

The description covers the main functionality, all parameter semantics, and return value. For a 6-param mutation tool with no annotations, it provides sufficient context for an agent to invoke it correctly. It lacks a few edge-case details (e.g., handling of value-size mismatches) but is otherwise complete.

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

Parameters5/5

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

Schema coverage is 0%, but the description fully compensates with a detailed Args section. It explains each parameter's type, requirement, examples (e.g., range_name format), the special behavior of values (JSON string or 2D list, required unless clear_values=True), and defaults for value_input_option and clear_values. This adds significant meaning beyond the schema.

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

Purpose5/5

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

The description opens with 'Modifies values in a specific range of a Google Sheet' which clearly identifies the verb, resource, and scope. It further specifies that the tool can 'write, update, or clear values,' distinguishing it from sibling tools like read_sheet_values or format_sheet_range.

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

Usage Guidelines3/5

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

The description provides clear context of what the tool does ('Modifies values... can write, update, or clear') but does not explicitly state when to use it versus alternatives or mention any exclusions. Usage is implied rather than explicitly contrasted with sibling tools.

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

move_taskA

Move a task to a different position or parent within the same list, or to a different list.

Args: user_google_email (str): The user's Google email address. Required. task_list_id (str): The ID of the current task list containing the task. task_id (str): The ID of the task to move. parent (Optional[str]): New parent task ID (for making it a subtask). previous (Optional[str]): Previous sibling task ID (for positioning). destination_task_list (Optional[str]): Destination task list ID (for moving between lists).

Returns: str: Confirmation message with updated task details.

ParametersJSON Schema
NameRequiredDescriptionDefault
parentNo
task_idYes
previousNo
task_list_idYes
user_google_emailYes
destination_task_listNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/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. It discloses the return value ('Confirmation message') and explains the effect of each parameter, but it lacks explicit statements about side effects, permissions, or reversibility. For a mutating operation, this is adequate but not rich.

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

Conciseness5/5

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

The description opens with a clear one-sentence summary, followed by a structured Args list that adds value without fluff. Every sentence is purposeful, and the format is easy to scan.

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

Completeness4/5

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

The description covers the core functionality, all parameters, and the return value, making it complete for a tool of this complexity. It does not discuss edge cases or failure modes, but these are not necessary for basic invocation, so it earns a 4.

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

Parameters5/5

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

The input schema has no descriptions (coverage 0%), but the description includes an explicit Args section that explains the meaning and purpose of all six parameters, including optional ones like 'parent' and 'destination_task_list.' This fully compensates for the schema's lack of semantics.

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

Purpose5/5

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

The description states a specific action ('Move a task') with the resource ('task') and clearly defines the scope: 'to a different position or parent within the same list, or to a different list.' This distinguishes it from sibling tools like 'update_task' or 'create_task' by focusing exclusively on repositioning tasks.

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 clearly indicates when to use the tool: to move a task within or between lists, including repositioning as a subtask or sibling. It does not name alternatives explicitly or state 'when not to use,' but the context is clear enough for basic selection, so it earns a 4.

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

read_document_commentsC

Read all comments from a Google Document.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states only that it reads comments, but does not explain whether replies are included, whether resolved comments are returned, authentication requirements, or any side effects. This lacks sufficient transparency for a tool with zero annotation support.

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

Conciseness4/5

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

The description is a single concise sentence with no wasted words, making it efficiently structured and front-loaded. However, it is arguably too sparse, missing useful information, though conciseness itself is well handled.

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

Completeness2/5

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

The tool is minimally described with only one sentence, no annotations, and no parameter details. Although an output schema exists, important context such as prerequisites, behavior regarding comment threads/replies, and user authorization is absent. This makes the description insufficient for reliable tool selection and invocation.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds no information about the parameters. While 'document_id' is fairly self-explanatory, 'user_google_email' is ambiguous—does it identify whose comments to read or the authenticated user? The description does not clarify this, failing to compensate for the missing schema descriptions.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Read all comments from a Google Document.' This clearly states the tool's function and distinguishes it from sibling tools like 'read_presentation_comments' or 'create_document_comment' by specifying the document type and action.

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

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 read_presentation_comments or reply_to_document_comment. The intended use is only implied by the tool name and description, but no explicit context or exclusions are given.

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

read_presentation_commentsC

Read all comments from a Google Presentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
presentation_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behaviors, but it only states the basic operation. It does not mention whether replies are included, auth requirements, pagination, or the non-destructive nature of the read action.

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

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. It is maximally concise while still conveying the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given two required parameters, zero schema descriptions, no annotations, and no parameter guidance, the description is inadequate for an agent to confidently invoke the tool. It only identifies the operation and resource, but omits essential contextual details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the two required parameters (user_google_email, presentation_id). It does not mention or explain either parameter, forcing the agent to rely solely on parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the verb 'Read' and the resource 'comments from a Google Presentation,' which is specific and distinguishes it from sibling comment tools for documents and spreadsheets. It is unambiguous about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as create_presentation_comment or reply_to_presentation_comment. It lacks any contextual cues about scenario fit or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_sheet_valuesA

Reads values from a specific range in a Google Sheet.

Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. range_name (str): The range to read (e.g., "Sheet1!A1:D10", "A1:D10"). Defaults to "A1:Z1000".

Returns: str: The formatted values from the specified range.

ParametersJSON Schema
NameRequiredDescriptionDefault
range_nameNoA1:Z1000
spreadsheet_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/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. 'Reads values' correctly implies a non-mutating operation, and the return type is described. However, it does not disclose authorization prerequisites (e.g., prior OAuth via start_google_auth), potential errors, or rate limits. Basic but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a concise docstring with a clear opening sentence, followed by structured Args and Returns sections. Every sentence adds value, and the front-loaded first sentence immediately conveys the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple (3 params, no nested objects), and an output schema exists, so return values are covered. The description provides necessary parameter details and return behavior. It lacks explicit mention of authentication prerequisites, but the user_google_email parameter hints at this. Overall, sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the Args section explains every parameter, including the range format with an example ('Sheet1!A1:D10') and the default value ('A1:Z1000'). This fully compensates for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Reads values from a specific range in a Google Sheet,' which is a specific verb+resource pairing. It clearly distinguishes this read operation from sibling tools like modify_sheet_values or format_sheet_range.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when reading cell values from a range, but it does not explicitly state when to use this over alternatives or mention any exclusions. No alternatives are named, so the agent must infer from the 'Reads' verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_spreadsheet_commentsB

Read all comments from a Google Spreadsheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
spreadsheet_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/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 responsibility for behavioral disclosure. It states the operation is a read ('Read all comments'), but it does not mention that the user email must have access, whether comments are returned in any particular order, or any other behavioral traits beyond the action itself.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that states exactly what the tool does. Every word earns its place, and there is no unnecessary content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists, the absence of annotations and a bare-bones description leave out critical context such as authentication needs, access restrictions, or how the comments are scoped to a user. For a tool with two required parameters and no safety annotations, the description is too thin to be fully self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining the parameters. It does not address 'spreadsheet_id' or 'user_google_email' at all. The parameter names are somewhat self-explanatory, but the description adds no semantic detail beyond the schema fields themselves.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Read' and clearly identifies the resource as 'all comments from a Google Spreadsheet.' It distinguishes itself from sibling tools like read_document_comments and read_presentation_comments by naming the spreadsheet, though it does not explicitly call out those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The implied usage is to fetch comments from a spreadsheet, but the description provides no explicit guidance on when to choose this over create/reply/resolve comment tools, nor does it state any exclusions or prerequisites like authentication or access requirements.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_drive_permissionA

Removes a permission from a Google Drive file or folder, revoking access.

Args: user_google_email (str): The user's Google email address. Required. file_id (str): The ID of the file or folder. Required. permission_id (str): The ID of the permission to remove (from get_drive_file_permissions). Required.

Returns: str: Confirmation of the removed permission.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes
permission_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 carries the transparency burden. It states the core behavior—'removes a permission' and 'revoking access'—and mentions the confirmation return value. However, it does not disclose irreversibility, required permissions/scopes, or potential failure conditions such as removing an owner.

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, well-structured with Args and Returns sections, and every sentence provides necessary information without redundancy. It includes parameter explanations and the return type without excessive prose.

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 straightforward permission-removal tool, the description covers purpose, all three required parameters, a prerequisite source for permission_id, and the return type. It could be more complete by noting the destructive nature and requiring auth, but overall it gives an agent sufficient context to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description fully compensates by explaining each parameter: user_google_email as the user's Google email, file_id as the file/folder ID, and permission_id as the ID of the permission to remove. It also adds a valuable cross-reference indicating permission_id comes from get_drive_file_permissions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Removes a permission from a Google Drive file or folder, revoking access,' using a specific verb and resource. This clearly differentiates it from sibling tools like get_drive_file_permissions (retrieval) and update_drive_permission (modification).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool (to remove/revoke a permission) and notes that permission_id comes from get_drive_file_permissions, implying the prerequisite workflow. It does not explicitly name alternatives or exclusions, but the purpose is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reply_to_document_commentB

Reply to a specific comment in a Google Document.

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYes
document_idYes
reply_contentYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action but omits critical traits: whether it requires write permissions, whether it has side effects (e.g., email notifications), reversibility, rate limits, or how authentication is handled. This is a bare statement with none of these operational details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loaded with the verb and object, and contains no filler. Every word earns its place, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple but still needs context: how to obtain the comment_id, whether prior authentication is required, and what the output schema contains (present but not shown). With no annotations and sparse parameter documentation, the description is not complete enough for an agent to confidently invoke the tool without additional assumptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only mentions 'specific comment', which maps vaguely to comment_id, but it does not explain the purpose of user_google_email, document_id, or reply_content, nor their expected format (e.g., plain text). The property names give some clue, but the description adds no additional semantic value beyond what the schema already exposes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Reply to a specific comment in a Google Document.' It uses a specific verb ('reply') and resource ('comment in a Google Document'), which distinguishes it from sibling tools like create_document_comment or resolve_document_comment. The wording is unambiguous and self-contained.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: when the user wants to reply to an existing comment. However, it does not provide explicit guidance on prerequisites (e.g., must first retrieve comments via read_document_comments to obtain a comment_id) or mention any alternatives. There are no exclusions, but also no practical context for invocation, so it stops at implied usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reply_to_presentation_commentC

Reply to a specific comment in a Google Presentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYes
reply_contentYes
presentation_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description must disclose side effects and requirements. It only states 'Reply to a specific comment' without mentioning auth, irreversibility, or any effects on the presentation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, with no filler words, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 4 required parameters and no annotations, yet the description provides no operational context, return value expectations, or error conditions. The existence of an output schema is not leveraged by the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no parameter information. Although parameter names are self-explanatory, the description does not clarify formats, constraints, or relationships between parameters (e.g., how comment_id relates to presentation_id).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (reply) and the target (a specific comment in a Google Presentation), distinguishing it from sibling comment tools for documents and spreadsheets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives like reply_to_document_comment or reply_to_spreadsheet_comment, nor are any preconditions or contexts mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reply_to_spreadsheet_commentC

Reply to a specific comment in a Google Spreadsheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYes
reply_contentYes
spreadsheet_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior1/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 transparency. It discloses nothing about side effects, authentication requirements, or how the reply affects the existing comment thread. The description is silent on all behavioral aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no fluff, but it is under-specified. It earns its place by stating purpose, yet omits necessary details, balancing conciseness against completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 required parameters and no annotations, the description provides minimal context. It does not mention how to obtain a comment_id, any permissions needed, or what the operation does beyond replying. The output schema may cover return values, but other contextual gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description adds no parameter-specific meaning. It does not explain formats or details for user_google_email, spreadsheet_id, comment_id, or reply_content, leaving the parameter names to carry all semantic weight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Reply to a specific comment in a Google Spreadsheet', with a specific verb ('Reply to') and resource ('specific comment in Google Spreadsheet'). It distinguishes itself from sibling tools like reply_to_document_comment and reply_to_presentation_comment by explicitly naming the spreadsheet context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as create_spreadsheet_comment or resolve_spreadsheet_comment, nor does it mention prerequisites like obtaining a comment_id. It simply states the action without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_document_commentC

Resolve a comment in a Google Document.

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYes
document_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior1/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 the action 'resolve' without disclosing side effects, reversibility, permission requirements, or behavior when the comment is already resolved. This is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words, making it concise and front-loaded. It is not verbose, but the extreme brevity limits its usefulness; still, for this dimension, it is well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple, but without annotations or output schema details, the description is insufficient. It does not explain the expected outcome or the meaning of resolving a comment, making it incomplete for an agent to correctly invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the three parameters. For instance, it does not clarify whether user_google_email is the authenticated user or the comment author, and it gives no context for comment_id or document_id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'resolve' and identifies the resource as 'a comment in a Google Document,' clearly distinguishing it from sibling tools like create_document_comment or reply_to_document_comment. However, it does not define what 'resolve' means in the context of Google Docs (e.g., marking the comment as resolved), which would enhance clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as reply_to_document_comment or read_document_comments. It also does not mention prerequisites like authentication or that the comment must be unresolved.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_presentation_commentC

Resolve a comment in a Google Presentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYes
presentation_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior1/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 the action 'Resolve' with no details on what resolving entails (e.g., changes status, idempotency, permissions, or side effects). This is a significant gap for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, but under-specified. It is a single sentence that could easily have included more behavioral or param context without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple mutation tool with 3 required params and an output schema, the description is incomplete. It does not mention any behavioral context, prerequisites, or edge cases, relying entirely on the schema and output schema which are not described either.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any parameters. The parameter names are self-explanatory but the description does not add meaning or compensate for the missing schema details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Resolve' with a clear resource 'a comment in a Google Presentation'. It distinguishes from sibling tools like read, create, and reply for presentation comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

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 resolving document or spreadsheet comments, or when not to use it. The implied usage is only that it resolves a comment, but no context or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_spreadsheet_commentB

Resolve a comment in a Google Spreadsheet.

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYes
spreadsheet_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full responsibility for behavioral disclosure. It does not explain what 'resolve' entails (e.g., marking a comment as resolved, closing a thread), whether the action is reversible, or any permission requirements. This is a significant gap for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that wastes no words. It directly communicates the tool's purpose, which is ideal for conciseness, even though additional context is missing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 3 parameters and no annotations, yet the description is minimal. While an output schema exists, the description still fails to provide necessary behavioral context, such as what resolving a comment does or when to use it, making it incomplete for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no parameter-level detail. While parameter names (user_google_email, spreadsheet_id, comment_id) are somewhat self-explanatory, the description does not clarify their exact roles or any constraints, such as ownership or authentication implications for user_google_email.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Resolve' and the resource 'a comment in a Google Spreadsheet', distinguishing it from sibling tools like resolve_document_comment or resolve_presentation_comment by explicitly naming the spreadsheet context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

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, when not to use, or any alternative tools, leaving the agent to infer usage solely from the name and resource.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_customA

Performs a search using Google Custom Search JSON API.

Args: user_google_email (str): The user's Google email address. Required. q (str): The search query. Required. num (int): Number of results to return (1-10). Defaults to 10. start (int): The index of the first result to return (1-based). Defaults to 1. safe (Literal["active", "moderate", "off"]): Safe search level. Defaults to "off". search_type (Optional[Literal["image"]]): Search for images if set to "image". site_search (Optional[str]): Restrict search to a specific site/domain. site_search_filter (Optional[Literal["e", "i"]]): Exclude ("e") or include ("i") site_search results. date_restrict (Optional[str]): Restrict results by date (e.g., "d5" for past 5 days, "m3" for past 3 months). file_type (Optional[str]): Filter by file type (e.g., "pdf", "doc"). language (Optional[str]): Language code for results (e.g., "lang_en"). country (Optional[str]): Country code for results (e.g., "countryUS").

Returns: str: Formatted search results including title, link, and snippet for each result.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYes
numNo
safeNooff
startNo
countryNo
languageNo
file_typeNo
search_typeNo
site_searchNo
date_restrictNo
user_google_emailYes
site_search_filterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does document the return format and parameter defaults, which adds value, but it omits operational constraints such as rate limits, authentication prerequisites (beyond the user email parameter), and potential errors. This makes it partially transparent 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a well-structured docstring that front-loads the purpose and then systematically documents each parameter and the return value. It is appropriately sized for a 12-parameter tool, with no fluff, though it is somewhat mechanical and could benefit from a more agent-friendly summary.

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 12-parameter complexity and the presence of an output schema, the description covers all parameters and the return format adequately. It does not mention caveats, rate limits, or alternative tool selection, but it provides enough for an agent to invoke the tool correctly in a straightforward search scenario.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description compensates thoroughly. It provides detailed semantics for every parameter, including ranges (num 1-10), defaults, allowed literal values, and examples for date_restrict and language. This adds substantial meaning beyond the bare schema types and defaults.

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 identifies the tool as performing a search using the Google Custom Search JSON API, with a specific verb and resource. It does not explicitly differentiate from the sibling search_custom_siterestrict, but the general web search purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

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 like search_custom_siterestrict or search_docs. It simply documents parameters and return values without any 'use when' or 'alternatives' context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_custom_siterestrictA

Performs a search restricted to specific sites using Google Custom Search.

Args: user_google_email (str): The user's Google email address. Required. q (str): The search query. Required. sites (List[str]): List of sites/domains to search within. num (int): Number of results to return (1-10). Defaults to 10. start (int): The index of the first result to return (1-based). Defaults to 1. safe (Literal["active", "moderate", "off"]): Safe search level. Defaults to "off".

Returns: str: Formatted search results from the specified sites.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYes
numNo
safeNooff
sitesYes
startNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/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 for behavioral disclosure. It states that it returns formatted search results and describes parameters, but it doesn't disclose any potential side effects, authentication requirements (beyond passing an email), or error behaviors. This is adequate for a simple read-only search but doesn't add deeper behavioral context like rate limits or the nature of the formatted output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a clean docstring with a one-sentence summary, a structured Args list, and a Returns section. Every line is informative and there is no redundant or filler content. It is appropriately sized and front-loaded with the main purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 6 parameters with 3 required and an output schema. The description explains all parameters, defaults, and the return format. It doesn't mention edge cases or error handling, but for a straightforward search tool, the description provides sufficient context. A small gap is the lack of any mention of authorization prerequisites or limitations, so it's not a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no descriptions for any properties (0% coverage), so the description fully compensates. It clearly explains each parameter's meaning, type, defaults, and constraints (e.g., 'num (int): Number of results to return (1-10)', 'start (int): The index of the first result to return (1-based)'). This is exactly the kind of semantic enrichment the description should provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Performs a search restricted to specific sites using Google Custom Search', which specifies the verb (performs a search), the resource (specific sites via Google Custom Search), and distinguishes this from sibling tools like the general 'search_custom' by the site restriction. It is a specific and unambiguous purpose.

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 implies when to use this tool: when a search needs to be restricted to particular sites or domains. It provides clear context but does not explicitly mention alternatives or exclusion scenarios. The 'sites' parameter makes it obvious, but there's no explicit 'use this instead of search_custom' guidance, so it doesn't reach a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_docsC

Searches for Google Docs by name using Drive API (mimeType filter).

Returns: str: A formatted list of Google Docs matching the search query.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
page_sizeNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 behavioral disclosure, but it only states the operation and return type. It does not mention pagination, sorting, authentication requirements, limitations, or side effects, leaving the agent without important behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and front-loaded, with no filler or redundancy. The 'Returns' line is useful. However, its brevity comes at the cost of necessary detail, which is a completeness issue rather than a conciseness problem.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given three parameters, no annotations, an output schema that is not described, and numerous sibling search/list tools, this description is too sparse. It omits key context about query syntax, authentication needs, and result formatting, making it difficult for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, and the description does not compensate. It only alludes to searching by name but does not explain how `query` maps to that behavior, what `user_google_email` is for, or how `page_size` is used. It adds no meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Searches for Google Docs by name') and the resource (Google Docs), while mentioning the use of Drive API and mimeType filter to scope results. This distinguishes it from sibling tools like search_drive_files, which searches all file types, and list_docs_in_folder, which lists rather than searches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as search_drive_files or list_docs_in_folder, and does not mention prerequisites like authentication. It lacks any explicit or implicit usage context beyond the tool's name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_drive_filesA

Searches for files and folders within a user's Google Drive, including shared drives.

Args: user_google_email (str): The user's Google email address. Required. query (str): The search query string. Supports Google Drive search operators. page_size (int): The maximum number of files to return. Defaults to 10. drive_id (Optional[str]): ID of the shared drive to search. If None, behavior depends on corpora and include_items_from_all_drives. include_items_from_all_drives (bool): Whether shared drive items should be included in results. Defaults to True. This is effective when not specifying a drive_id. corpora (Optional[str]): Bodies of items to query (e.g., 'user', 'domain', 'drive', 'allDrives'). If 'drive_id' is specified and 'corpora' is None, it defaults to 'drive'. Otherwise, Drive API default behavior applies. Prefer 'user' or 'drive' over 'allDrives' for efficiency.

Returns: str: A formatted list of found files/folders with their details (ID, name, type, size, modified time, link).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
corporaNo
drive_idNo
page_sizeNo
user_google_emailYes
include_items_from_all_drivesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses meaningful behavior: shared drive inclusion, default page_size, drive_id/corpora interactions, and an efficiency tip ('Prefer 'user' or 'drive' over 'allDrives' for efficiency'). This goes well beyond a bare 'Searches for files' statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear purpose sentence, an Args block, and a Returns section. While it is somewhat lengthy, every line serves a purpose, especially given the 0% schema coverage. It does not waste words, but the parameter details could be slightly more compressed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 params, no annotations, multiple drive-related options), the description covers all necessary aspects: what it does, scope, parameter semantics, defaults, and return format. It is complete enough for an agent to select and invoke the tool correctly without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero descriptions, so the description fully compensates by documenting all six parameters: required user email, query string, page_size default, optional drive_id with behavior, include_items_from_all_drives default and scope, and corpora default logic. This is comprehensive and adds significant clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with a specific verb and resource: 'Searches for files and folders within a user's Google Drive, including shared drives.' This clearly distinguishes it from sibling tools like list_drive_items, which lists items rather than searching by query.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies searching as the core use case and gives details about parameters (e.g., search operators, corpora) but does not explicitly state when to choose this over alternatives like list_drive_items. No exclusions or alternative tool mentions are provided, so guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_gmail_messagesA

Searches messages in a user's Gmail account based on a query. Returns both Message IDs and Thread IDs for each found message, along with Gmail web interface links for manual verification. Supports pagination via page_token parameter.

Args: query (str): The search query. Supports standard Gmail search operators. user_google_email (str): The user's Google email address. Required. page_size (int): The maximum number of messages to return. Defaults to 10. page_token (Optional[str]): Token for retrieving the next page of results. Use the next_page_token from a previous response.

Returns: str: LLM-friendly structured results with Message IDs, Thread IDs, and clickable Gmail web interface URLs for each found message. Includes pagination token if more results are available.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
page_sizeNo
page_tokenNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does this well by explaining pagination via page_token, the return structure (Message IDs, Thread IDs, web links), and that 'user_google_email is Required.' It also notes support for standard Gmail search operators. Missing details like rate limits or authentication are not disclosed, but for a read-only search tool the provided information is substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a one-sentence summary, a return overview, then a clear Args list, and a Returns section. Each sentence serves a purpose and contains no filler. The format is easy to scan and front-loads the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 parameters, output schema exists, no annotations), the description is remarkably complete. It covers the search purpose, all parameters with defaults and required status, the return format, pagination behavior, and links for manual verification. There is no significant missing context that would prevent an agent from using the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema description coverage, the description's Args section fully documents all four parameters. It explains that query supports standard Gmail search operators, user_google_email is required, page_size defaults to 10, and page_token should use next_page_token from a previous response. This adds meaningful detail beyond the bare schema, fully compensating for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Searches messages in a user's Gmail account based on a query,' which is a specific verb+resource combination. It distinguishes itself from sibling tools like get_gmail_message_content by focusing on search and returning Message IDs, Thread IDs, and web links, not content. This unambiguous purpose differentiates it well.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: to find messages by query and get IDs/links for manual verification. It implies that content retrieval is not its purpose, but it does not explicitly name alternatives or exclusions, such as suggesting get_gmail_message_content for reading full messages. The guidance is therefore clear but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_messagesB

Searches for messages in Google Chat spaces by text content.

Returns: str: A formatted list of messages matching the search query.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
space_idNo
page_sizeNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavior, but it only states that it returns a formatted list. It does not mention pagination, scoping across spaces, authentication requirements, or read-only nature. The 'Searches' phrasing implies non-destructive behavior but is not explicit, and key behavioral details like the meaning of page_size or space_id are omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the primary purpose in one sentence. The 'Returns' section adds value by indicating the output is a formatted list, and overall the description is minimally sized with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters, no annotations, and a non-trivial domain (Google Chat), the description is too thin. It lacks behavior details, parameter explanations, and usage context. While an output schema exists, the description does not cover edge cases (e.g., optional space_id, pagination via page_size) that an agent needs to know for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description is expected to explain parameters. It clarifies that 'query' is text content and 'space_id' relates to Google Chat spaces, but it does not explain 'page_size' or 'user_google_email'. This leaves the agent with incomplete understanding of how to invoke the tool correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Searches for messages in Google Chat spaces by text content', which identifies the specific action (search), resource (messages), and domain (Google Chat spaces). It distinguishes itself from sibling tools like search_gmail_messages and search_docs by explicitly naming Google Chat.

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 context (use when you need to find Chat messages by text) but provides no explicit guidance on when not to use it or alternatives. It does not compare with similar tools such as get_messages or search_gmail_messages, leaving the agent to infer the appropriate scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_gmail_messageA

Sends an email using the user's Gmail account. Supports both new emails and replies.

Args: to (str): Recipient email address. subject (str): Email subject. body (str): Email body content. body_format (Literal['plain', 'html']): Email body format. Defaults to 'plain'. cc (Optional[str]): Optional CC email address. bcc (Optional[str]): Optional BCC email address. user_google_email (str): The user's Google email address. Required. thread_id (Optional[str]): Optional Gmail thread ID to reply within. When provided, sends a reply. in_reply_to (Optional[str]): Optional Message-ID of the message being replied to. Used for proper threading. references (Optional[str]): Optional chain of Message-IDs for proper threading. Should include all previous Message-IDs.

Returns: str: Confirmation message with the sent email's message ID.

Examples: # Send a new email send_gmail_message(to="user@example.com", subject="Hello", body="Hi there!")

# Send an HTML email
send_gmail_message(
    to="user@example.com",
    subject="Hello",
    body="<strong>Hi there!</strong>",
    body_format="html"
)

# Send an email with CC and BCC
send_gmail_message(
    to="user@example.com",
    cc="manager@example.com",
    bcc="archive@example.com",
    subject="Project Update",
    body="Here's the latest update..."
)

# Send a reply
send_gmail_message(
    to="user@example.com",
    subject="Re: Meeting tomorrow",
    body="Thanks for the update!",
    thread_id="thread_123",
    in_reply_to="<message123@gmail.com>",
    references="<original@gmail.com> <message123@gmail.com>"
)
ParametersJSON Schema
NameRequiredDescriptionDefault
ccNoOptional CC email address.
toYesRecipient email address.
bccNoOptional BCC email address.
bodyYesEmail body content (plain text or HTML).
subjectYesEmail subject.
thread_idNoOptional Gmail thread ID to reply within.
referencesNoOptional chain of Message-IDs for proper threading.
body_formatNoEmail body format. Use 'plain' for plaintext or 'html' for HTML content.plain
in_reply_toNoOptional Message-ID of the message being replied to.
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/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 responsibility for behavioral disclosure. It explains that replies are supported and that thread_id triggers a reply, and it describes the return value. However, it does not explicitly warn that sending is an irreversible side effect or mention authentication prerequisites beyond the user_google_email parameter, which is a meaningful gap for a send action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with Args, Returns, and Examples sections. It is longer than necessary because it duplicates schema field descriptions, but the examples and threading explanations are valuable. The structure helps an agent parse the information efficiently, though it could be slightly more compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, reply/threading behavior), the description covers most aspects: new emails, replies, HTML/plain body, CC/BCC, threading, and return value. It lacks explicit error handling or authentication prerequisites, but the examples and detailed parameter semantics make it sufficient for correct invocation in most cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 90% schema coverage, the baseline is 3, but the description adds significant value beyond the schema. It clarifies that thread_id converts the send into a reply, explains the role of in_reply_to and references for threading, and provides examples for HTML formatting and CC/BCC usage. This goes well beyond the raw schema definitions.

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: 'Sends an email using the user's Gmail account' and explicitly supports both new emails and replies. This distinguishes it from sibling tools like draft_gmail_message (which creates drafts) and send_message (which targets chat spaces), making the resource and action unambiguous.

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 clearly indicates when to use the tool ('to send an email') and when to use reply-specific parameters (thread_id, in_reply_to, references). It does not explicitly name alternatives or exclude other tools, but the context is clear enough for an agent to select it for sending Gmail messages.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_messageB

Sends a message to a Google Chat space.

Returns: str: Confirmation message with sent message details.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idYes
thread_keyNo
message_textYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It mentions returning a confirmation message but omits critical details such as authentication requirements, side effects of sending, error handling, or the role of thread_key. For a mutating operation, 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?

The description is two concise sentences: the first states the core function, and the second states the return type. Each sentence earns its place with no wasted words, and the main action is front-loaded.

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 a tool with four parameters, no annotations, no schema descriptions, and no explicit output schema beyond a Returns line, the description is far too minimal. It does not address thread usage, user identification, prerequisites, or failure modes, making it insufficient for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no explanations for the four parameters (space_id, thread_key, message_text, user_google_email). It relies entirely on parameter names and types, which is inadequate for correctly constructing calls, especially for thread_key semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool 'Sends a message to a Google Chat space', providing a specific verb and resource. This distinguishes it from sibling tools like send_gmail_message (Gmail) and read-oriented tools like get_messages or search_messages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose implies when to use it (to send a new message to a Google Chat space), but there is no explicit guidance on alternatives, exclusions, or prerequisites. It does not mention reading messages or other messaging tools, so usage context is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_publish_settingsA

Updates the publish settings of a form.

Args: user_google_email (str): The user's Google email address. Required. form_id (str): The ID of the form to update publish settings for. publish_as_template (bool): Whether to publish as a template. Defaults to False. require_authentication (bool): Whether to require authentication to view/submit. Defaults to False.

Returns: str: Confirmation message of the successful publish settings update.

ParametersJSON Schema
NameRequiredDescriptionDefault
form_idYes
user_google_emailYes
publish_as_templateNo
require_authenticationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/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 behavioral disclosure. It does not mention side effects, permissions, whether existing settings are overwritten, or any limitations. For a mutation tool, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with Args and Returns sections, every sentence earns its place, and there is no fluff. It is concise and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple with 4 parameters and a string return. The description covers purpose, parameters, and return, but lacks behavioral details and usage guidance. It is adequate but not comprehensive, especially given the absence of annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It lists all four parameters with brief meanings, but most are tautological (e.g., 'The ID of the form to update publish settings for'). It adds slight value (e.g., 'to view/submit') but does not fully clarify ambiguous terms like 'publish as template'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Updates the publish settings of a form' with a specific verb and resource. This distinguishes it from siblings like create_form and get_form, which handle form creation and retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool (updating publish settings) but does not explicitly mention alternatives or exclusions. It lacks 'use X instead' guidance, but the purpose is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

share_drive_fileA

Shares a Google Drive file or folder with a user, group, domain, or anyone with the link.

When sharing a folder, all files inside inherit the permission.

Args: user_google_email (str): The user's Google email address. Required. file_id (str): The ID of the file or folder to share. Required. share_with (Optional[str]): Email address (for user/group), domain name (for domain), or omit for 'anyone'. role (str): Permission role - 'reader', 'commenter', or 'writer'. Defaults to 'reader'. share_type (str): Type of sharing - 'user', 'group', 'domain', or 'anyone'. Defaults to 'user'. send_notification (bool): Whether to send a notification email. Defaults to True. email_message (Optional[str]): Custom message for the notification email. expiration_time (Optional[str]): Expiration time in RFC 3339 format (e.g., "2025-01-15T00:00:00Z"). Permission auto-revokes after this time. allow_file_discovery (Optional[bool]): For 'domain' or 'anyone' shares - whether the file can be found via search. Defaults to None (API default).

Returns: str: Confirmation with permission details and shareable link.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoreader
file_idYes
share_typeNouser
share_withNo
email_messageNo
expiration_timeNo
send_notificationNo
user_google_emailYes
allow_file_discoveryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries the transparency burden. It discloses folder inheritance, permission auto-revocation via expiration_time, notification behavior, and the return value. It explains how share_type affects share_with and allow_file_discovery, going well beyond a basic summary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a one-sentence summary, a key behavioral note, then a clear Args list. Every parameter is documented without redundancy. It is appropriately sized for a 9-parameter tool and front-loads the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (9 parameters, no annotations, no schema descriptions), the description is complete. It covers all parameters, the return value, folder inheritance, expiration, and notification behavior. It even provides an example for expiration_time format, leaving no major gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description's Args section is essential. It explains each parameter in detail, including defaults, optionality, and specifics like RFC 3339 format for expiration_time. This fully compensates for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Shares a Google Drive file or folder with a user, group, domain, or anyone with the link,' which is specific and covers the main action. It also notes folder inheritance, making it distinct from related tools like batch_share_drive_file or update_drive_permission.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool by detailing supported recipient types and parameter options. It does not explicitly name alternatives or exclusions, but the thorough explanation of behaviors (like folder inheritance) gives strong implied guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_google_authA

Manually initiate Google OAuth authentication flow.

NOTE: This tool should typically NOT be called directly. The authentication system automatically handles credential checks and prompts for authentication when needed. Only use this tool if:

  1. You need to re-authenticate with different credentials

  2. You want to proactively authenticate before using other tools

  3. The automatic authentication flow failed and you need to retry

In most cases, simply try calling the Google Workspace tool you need - it will automatically handle authentication if required.

ParametersJSON Schema
NameRequiredDescriptionDefault
service_nameYes
user_google_emailNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the behavior of initiating OAuth, mentions the automatic authentication flow, and explains when manual initiation is appropriate. It does not detail side effects like user prompts or credential storage, but it provides solid behavioral context beyond a minimal statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a lead sentence and a bullet-style NOTE section. It is slightly repetitive in the final 'In most cases' sentence, which restates the earlier automatic-handling point, but overall it is efficient and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple authentication tool, the description covers purpose, typical usage, and alternatives well. It lacks parameter-level detail and specifics about authentication state outcomes, but given the presence of an output schema and the low operational complexity, it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain either 'service_name' or 'user_google_email'. The names are somewhat self-explanatory, but the description adds no meaning beyond the schema, leaving the required parameter and the optional email parameter underspecified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Manually initiate Google OAuth authentication flow') and explicitly distinguishes this tool from normal usage by noting it should typically not be called directly. It clarifies the resource (Google OAuth) and the trigger conditions, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance with numbered scenarios, explicitly states when NOT to use it, and names the alternative approach ('simply try calling the Google Workspace tool you need'). This is exemplary usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transfer_drive_ownershipA

Transfers ownership of a Google Drive file or folder to another user.

This is an irreversible operation. The current owner will become an editor. Only works within the same Google Workspace domain or for personal accounts.

Args: user_google_email (str): The user's Google email address. Required. file_id (str): The ID of the file or folder to transfer. Required. new_owner_email (str): Email address of the new owner. Required. move_to_new_owners_root (bool): If True, moves the file to the new owner's My Drive root. Defaults to False.

Returns: str: Confirmation of the ownership transfer.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes
new_owner_emailYes
user_google_emailYes
move_to_new_owners_rootNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/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 clearly states the operation is irreversible, the current owner becomes an editor, domain restrictions, and the effect of move_to_new_owners_root on file placement. It also describes the return value, providing comprehensive context beyond the structured 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 well-structured with a concise opening sentence, followed by key behavioral notes, and a clean Args/Returns formatting. Every sentence provides necessary information without redundancy, making it easy for an agent to quickly parse purpose, constraints, and parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 parameters, no annotations, no output schema), the description covers all essential aspects: what it does, constraints, parameter meanings, behavioral outcomes, and return value. It is fully self-sufficient for an agent to invoke it correctly in typical ownership-transfer scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides zero description coverage (0%), so the description must fully compensate. It explicitly defines each parameter with types, required status, and meaning, including the default for move_to_new_owners_root. This adds significant semantic value beyond the bare 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 opens with a specific verb and resource: 'Transfers ownership of a Google Drive file or folder to another user.' This clearly distinguishes it from sibling tools like share_drive_file or update_drive_permission, which focus on sharing or permission changes rather than ownership transfer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool by noting it is irreversible and only works within the same Google Workspace domain or for personal accounts. However, it does not explicitly name alternative tools or state 'use this instead of X', so it falls short of the highest benchmark in this dimension.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_conditional_formattingA

Updates an existing conditional formatting rule by index on a sheet.

Args: user_google_email (str): The user's Google email address. Required. spreadsheet_id (str): The ID of the spreadsheet. Required. range_name (Optional[str]): A1-style range to apply the updated rule (optionally with sheet name). If omitted, existing ranges are preserved. rule_index (int): Index of the rule to update (0-based). condition_type (Optional[str]): Sheets condition type. If omitted, the existing rule's type is preserved. condition_values (Optional[Union[str, List[Union[str, int, float]]]]): Values for the condition. background_color (Optional[str]): Hex background color when condition matches. text_color (Optional[str]): Hex text color when condition matches. sheet_name (Optional[str]): Sheet name to locate the rule when range_name is omitted. Defaults to first sheet. gradient_points (Optional[Union[str, List[dict]]]): If provided, updates the rule to a gradient color scale using these points.

Returns: str: Confirmation of the updated rule and the current rule state.

ParametersJSON Schema
NameRequiredDescriptionDefault
range_nameNo
rule_indexYes
sheet_nameNo
text_colorNo
condition_typeNo
spreadsheet_idYes
gradient_pointsNo
background_colorNo
condition_valuesNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It adds useful details: omitted range_name preserves existing ranges, omitted condition_type preserves the existing type, and gradient_points switches the rule to a gradient scale. It also states the return value includes the current rule state. It does not discuss permissions or error scenarios, but the provided behavior is rich enough for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with Args and Returns sections. Each parameter explanation is concise yet informative, and the overall length is appropriate for a 10-parameter tool. Every sentence earns its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 parameters and no annotations, the description covers all parameter semantics and return values. While it lacks explicit edge-case handling (e.g., invalid rule_index), the tool is sufficiently specified for an agent to invoke it correctly. The output schema exists, so return details are already structured, and the description adds the confirmation/current-state context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It provides detailed Args with explanations for every parameter, including optionality and default behavior. This fully compensates for the schema's lack of descriptions and adds semantic meaning beyond parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('updates') and resource ('existing conditional formatting rule by index on a sheet'), clearly distinguishing it from sibling tools like add_conditional_formatting and delete_conditional_formatting. It is unambiguous about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: the tool is for modifying an existing rule using its index. It implies the user must already have a rule and know its index, but it does not explicitly mention alternatives or when not to use it. This is clear context without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_doc_headers_footersB

Updates headers or footers in a Google Doc.

Args: user_google_email: User's Google email address document_id: ID of the document to update section_type: Type of section to update ("header" or "footer") content: Text content for the header/footer header_footer_type: Type of header/footer ("DEFAULT", "FIRST_PAGE_ONLY", "EVEN_PAGE")

Returns: str: Confirmation message with update details

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
document_idYes
section_typeYes
user_google_emailYes
header_footer_typeNoDEFAULT

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description must disclose behavioral traits. It does not mention whether the update overwrites existing content or appends, whether it creates a header/footer if none exists, or any permission/authentication requirements. The return type is mentioned, but critical side-effect information 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 well-structured with Args and Returns sections, concise and free of fluff. It communicates the essential information efficiently without being overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately covers the parameters and return value, making it possible for an agent to call the tool. However, it lacks guidance on usage context and behavioral consequences, which are important for a mutation tool with no annotations. It is adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description compensates for the 0% schema coverage by providing a clear one-line explanation for each parameter, including the allowed values for section_type and header_footer_type. This gives the agent the necessary meaning to invoke the tool correctly, though it could be enriched with examples or edge cases.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Updates headers or footers in a Google Doc', using a specific verb and resource. It is unambiguous and easy to understand, though it does not explicitly differentiate itself from sibling tools like modify_doc_text or batch_update_doc.

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 scenarios where this tool is preferred over other document modification tools, nor does it state 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.

update_drive_fileA

Updates metadata and properties of a Google Drive file.

Args: user_google_email (str): The user's Google email address. Required. file_id (str): The ID of the file to update. Required. name (Optional[str]): New name for the file. description (Optional[str]): New description for the file. mime_type (Optional[str]): New MIME type (note: changing type may require content upload). add_parents (Optional[str]): Comma-separated folder IDs to add as parents. remove_parents (Optional[str]): Comma-separated folder IDs to remove from parents. starred (Optional[bool]): Whether to star/unstar the file. trashed (Optional[bool]): Whether to move file to/from trash. writers_can_share (Optional[bool]): Whether editors can share the file. copy_requires_writer_permission (Optional[bool]): Whether copying requires writer permission. properties (Optional[dict]): Custom key-value properties for the file.

Returns: str: Confirmation message with details of the updates applied.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
file_idYes
starredNo
trashedNo
mime_typeNo
propertiesNo
add_parentsNo
descriptionNo
remove_parentsNo
user_google_emailYes
writers_can_shareNo
copy_requires_writer_permissionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the important caveat that changing MIME type may require content upload, and it describes the return value. It doesn't detail all side effects (e.g., moving to trash or parent changes), but it provides meaningful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Despite its length, the description is a well-organized docstring with a clear purpose line, a structured argument list, and a return value note. Every line serves a purpose for a tool with 12 parameters; there is no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (12 parameters) and lack of annotations, this description is comprehensive. It covers all parameters with semantic explanations, includes a return value description, and a caveat about MIME type changes. It is sufficient for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, but the description thoroughly documents every parameter, including formats like 'Comma-separated folder IDs' for add_parents/remove_parents and the note that changing MIME type may require content upload. This adds substantial semantics beyond the bare schema types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Updates metadata and properties of a Google Drive file,' using a specific verb and resource. It distinguishes itself from sibling tools like update_drive_permission, which handles permissions separately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While no explicit when-to-use or exclusions are provided, the description's focus on 'metadata and properties' implies it is for file metadata updates rather than permissions or sharing, which are covered by sibling tools. The parameter list further clarifies its scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_drive_permissionA

Updates an existing permission on a Google Drive file or folder.

Args: user_google_email (str): The user's Google email address. Required. file_id (str): The ID of the file or folder. Required. permission_id (str): The ID of the permission to update (from get_drive_file_permissions). Required. role (Optional[str]): New role - 'reader', 'commenter', or 'writer'. If not provided, role unchanged. expiration_time (Optional[str]): Expiration time in RFC 3339 format (e.g., "2025-01-15T00:00:00Z"). Set or update when permission expires.

Returns: str: Confirmation with updated permission details.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNo
file_idYes
permission_idYes
expiration_timeNo
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses behavioral nuances: role is optional and unchanged if omitted, and expiration_time has a specific format and purpose. It does not mention auth requirements or error conditions, but for an update operation the core behavior is well articulated.

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 well-structured docstring: a one-sentence purpose statement, then per-parameter details, and a return type. Every sentence is informative and there is no fluff or repetition of the schema.

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?

All five parameters are described with required markers and examples, and the return type is specified. It lacks guidance on when to prefer this tool over remove_drive_permission or share_drive_file, and does not mention side effects or prerequisites, but overall it provides enough information for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must fully compensate. It provides explicit meaning for every parameter, including valid role values ('reader', 'commenter', 'writer'), a format example for expiration_time, and a cross-reference to get_drive_file_permissions for permission_id. This adds significant value beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates an existing permission on a Google Drive file or folder, distinguishing it from siblings like remove_drive_permission or transfer_drive_ownership. It also references get_drive_file_permissions, linking to the source of permission 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 implies usage context by stating it updates an existing permission and points to get_drive_file_permissions for the permission_id. It does not explicitly exclude alternatives or provide when-not-to-use guidance, but the context is clear enough for an agent to choose appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_taskA

Update an existing task.

Args: user_google_email (str): The user's Google email address. Required. task_list_id (str): The ID of the task list containing the task. task_id (str): The ID of the task to update. title (Optional[str]): New title for the task. notes (Optional[str]): New notes/description for the task. status (Optional[str]): New status ("needsAction" or "completed"). due (Optional[str]): New due date in RFC 3339 format.

Returns: str: Confirmation message with updated task details.

ParametersJSON Schema
NameRequiredDescriptionDefault
dueNo
notesNo
titleNo
statusNo
task_idYes
task_list_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the disclosure burden. It adds useful context by clarifying that title, notes, status, and due are new values, listing the allowed status values, and noting the due date format. However, it does not disclose whether updates are partial/merge vs full replacement, the authorization requirements, or error behavior for invalid task IDs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with Args and Returns sections, placing each parameter on its own line with a concise explanation. There is no redundant or filler text; every sentence contributes useful 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 7-parameter update tool with no annotations, the description covers all parameters, the return value, and the action clearly. It lacks explicit usage guidance and edge-case/error behavior, but it is sufficiently complete for an agent to select and invoke the tool correctly in most scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema properties have zero descriptions, but the description documents every parameter with type, optionality, and format details ('New due date in RFC 3339 format', 'needsAction' or 'completed'). It fully compensates for the schema's lack of semantic information, making parameter usage unambiguous.

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 the specific verb 'Update' with the clear resource 'an existing task', making the tool's function immediately obvious. It distinguishes well from sibling tools like update_task_list, update_drive_file, and create_task by naming the exact entity being modified.

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 when to use it (for modifying an existing task) and even hints through optional parameters that not all fields need updating. However, it does not explicitly contrast with related tools such as create_task, move_task, or delete_task, nor does it state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_task_listA

Update an existing task list.

Args: user_google_email (str): The user's Google email address. Required. task_list_id (str): The ID of the task list to update. title (str): The new title for the task list.

Returns: str: Confirmation message with updated task list details.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
task_list_idYes
user_google_emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full behavioral disclosure burden. It only states that it updates a task list and returns a confirmation message, omitting side effects, irreversibility, error behavior, or whether fields other than title are preserved. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, with a clear opening sentence followed by Args and Returns sections. The 'Required' note is redundant but not harmful. Every line serves a 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 CRUD update with all parameters described and a basic string return, the description is reasonably complete. However, it lacks context about permissions, error cases, and whether the update is partial or full, which would be expected for a mutation tool with no 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 description coverage is 0%, but the description's Args section compensates by explaining all three parameters. It clarifies that user_google_email is required, task_list_id identifies the list, and title is the new value, adding meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Update an existing task list' with a specific verb and resource, distinguishing it from sibling CRUD operations like create_task_list, get_task_list, and delete_task_list. The scope 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 Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for modifying an existing task list, but it does not explicitly contrast with create, get, or delete task list tools. No prerequisites or exclusions are mentioned, leaving the agent to infer when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 105 tool updatesv1.0.0
    • First observedadd_conditional_formatting
    • First observedbatch_modify_gmail_message_labels
    • First observedbatch_share_drive_file
    • First observedbatch_update_doc
    • First observedbatch_update_presentation
    • First observedcheck_drive_file_public_access
    • First observedclear_completed_tasks
    • First observedcreate_doc
    • First observedcreate_document_comment
    • First observedcreate_drive_file
    • First observedcreate_event
    • First observedcreate_form
    • First observedcreate_gmail_filter
    • First observedcreate_meeting_with_zoom
    • First observedcreate_presentation
    • First observedcreate_presentation_comment
    • First observedcreate_sheet
    • First observedcreate_spreadsheet
    • First observedcreate_spreadsheet_comment
    • First observedcreate_table_with_data
    • First observedcreate_task
    • First observedcreate_task_list
    • First observedcreate_zoom_meeting
    • First observeddebug_table_structure
    • First observeddelete_conditional_formatting
    • First observeddelete_event
    • First observeddelete_gmail_filter
    • First observeddelete_task
    • First observeddelete_task_list
    • First observeddelete_zoom_meeting
    • First observeddraft_gmail_message
    • First observedexport_doc_to_pdf
    • First observedfind_and_replace_doc
    • First observedformat_sheet_range
    • First observedget_doc_content
    • First observedget_drive_file_content
    • First observedget_drive_file_download_url
    • First observedget_drive_file_permissions
    • First observedget_drive_shareable_link
    • First observedget_events
    • First observedget_form
    • First observedget_form_response
    • First observedget_gmail_attachment_content
    • First observedget_gmail_message_content
    • First observedget_gmail_messages_content_batch
    • First observedget_gmail_thread_content
    • First observedget_gmail_threads_content_batch
    • First observedget_messages
    • First observedget_page
    • First observedget_page_thumbnail
    • First observedget_presentation
    • First observedget_search_engine_info
    • First observedget_spreadsheet_info
    • First observedget_task
    • First observedget_task_list
    • First observedget_zoom_meeting
    • First observedinsert_doc_elements
    • First observedinsert_doc_image
    • First observedinspect_doc_structure
    • First observedlist_calendars
    • First observedlist_docs_in_folder
    • First observedlist_drive_items
    • First observedlist_form_responses
    • First observedlist_gmail_filters
    • First observedlist_gmail_labels
    • First observedlist_spaces
    • First observedlist_spreadsheets
    • First observedlist_task_lists
    • First observedlist_tasks
    • First observedlist_zoom_meetings
    • First observedmanage_gmail_label
    • First observedmodify_doc_text
    • First observedmodify_event
    • First observedmodify_gmail_message_labels
    • First observedmodify_sheet_values
    • First observedmove_task
    • First observedread_document_comments
    • First observedread_presentation_comments
    • First observedread_sheet_values
    • First observedread_spreadsheet_comments
    • First observedremove_drive_permission
    • First observedreply_to_document_comment
    • First observedreply_to_presentation_comment
    • First observedreply_to_spreadsheet_comment
    • First observedresolve_document_comment
    • First observedresolve_presentation_comment
    • First observedresolve_spreadsheet_comment
    • First observedsearch_custom
    • First observedsearch_custom_siterestrict
    • First observedsearch_docs
    • First observedsearch_drive_files
    • First observedsearch_gmail_messages
    • First observedsearch_messages
    • First observedsend_gmail_message
    • First observedsend_message
    • First observedset_publish_settings
    • First observedshare_drive_file
    • First observedstart_google_auth
    • First observedtransfer_drive_ownership
    • First observedupdate_conditional_formatting
    • First observedupdate_doc_headers_footers
    • First observedupdate_drive_file
    • First observedupdate_drive_permission
    • First observedupdate_task
    • First observedupdate_task_list

TDQS

B3.1/5.0

Scored across 105 tools

Disambiguation2/5

Multiple tools have overlapping purposes, such as get_doc_content and get_drive_file_content both retrieving file content, and search_docs vs search_drive_files with redundant functionality. While descriptions are detailed, the boundaries between these pairs and others (e.g., permission-related Drive tools) are not clearly distinct, making misselection likely.

Naming Consistency3/5

Most tools follow a verb_noun pattern, but there are notable inconsistencies: 'modify_event' instead of 'update_event', 'doc' vs 'document' prefixes (get_doc_content vs read_document_comments), and 'create_meeting_with_zoom' breaking the pattern. Overall, the naming is readable but not fully consistent.

Tool Count2/5

With 105 tools, the server is heavily overloaded, far exceeding the typical 3-15 well-scoped range. The broad coverage of Google services justifies a larger set, but the sheer number still makes it difficult for an agent to choose appropriately and may include redundant tools.

Completeness3/5

The tool set covers most core workflows across Gmail, Calendar, Drive, Docs, Sheets, Slides, Tasks, and Chat, but there are notable gaps: Forms lacks update/delete operations, and Zoom lacks an update meeting tool. These gaps will require workarounds for full lifecycle management.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers