Google MCP
The Google MCP server enables integration with multiple Google services:
Calendar: Set default calendar, list calendars, create/update/delete events, find free time slots, and view event details.
Gmail: List labels, send/draft/delete emails, modify email labels, and retrieve email content by ID or index.
Drive: List, search, create, update, delete, and share files; retrieve file content and metadata.
Tasks: Manage task lists (create, delete, set default), list tasks, create/update/complete/delete tasks, and view task details.
Workflows: Chain commands for complex operations, like drafting emails and scheduling meetings in one step.
Enables sending emails with attachments, listing emails with custom queries, reading specific emails, managing labels, and drafting emails.
Provides integration with Google Calendar (creating events, listing events, finding free time slots) and Google Drive (searching files, managing file content, sharing files) and Google Tasks (managing task lists and tasks).
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google MCPsend an email to team@company.com about tomorrow's 2pm meeting"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google MCP Tools
This is a collection of Google-native tools (e.g., Gmail, Calendar) for the MCP protocol, designed to integrate seamlessly with AI clients like Claude or Cursor.
Quick Install
Click below for one-click install with .mcpb:
{
"mcpServers": {
"google-mcp": {
"command": "bunx",
"args": ["--no-cache", "google-mcp@latest"],
"env": {
// Either can be used, but not both
// Use OAuth
"GOOGLE_OAUTH_CLIENT_ID": "<YOUR_CLIENT_ID>",
"GOOGLE_OAUTH_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
"GOOGLE_OAUTH_TOKEN_PATH": "<PATH_TO_STORE_TOKENS> CAN_BE_ANYWHERE_ON_YOUR_SYSTEM",
// Use Service Account
"GOOGLE_CLIENT_EMAIL": "<YOUR_SERVICE_ACCOUNT_EMAIL>",
"GOOGLE_PRIVATE_KEY": "<YOUR_SERVICE_ACCOUNT_PRIVATE_KEY>",
"GMAIL_USER_TO_IMPERSONATE": "<USER_TO_IMPERSONATE>"
}
}
}
}Related MCP server: Google Search MCP Server
What's New in v1.1.0
🆕 Major Features
Complete Email Attachment Support:
✉️ Send emails with attachments from local files or Google Drive
📥 Download all email attachments to local storage
🔄 Dual attachment sources: Local file paths or Google Drive file IDs
📁 Smart file handling: Automatic MIME type detection and filename sanitization
🔧 Enhanced Email Capabilities
Multi-source attachments: Attach files from local storage or Google Drive in the same email
Custom filenames: Override original filenames for attachments
File size validation: Automatic 25MB Gmail limit enforcement
Cross-platform downloads: Auto-detection of Downloads folder on Windows, macOS, and Linux
Conflict resolution: Automatic file renaming to prevent overwrites
📁 New & Enhanced Tools
google_gmail_send_email: Now supports attachments from local files and Google Drivegoogle_gmail_draft_email: Create drafts with attachmentsgoogle_gmail_download_attachments: Download all email attachments with customizable path
Features
OAuth Management:
Refresh expired access tokens automatically
Update tokens in the token file without re-authentication
Complete re-authentication with automated token cleanup
Maintain session continuity across long-running operations
Gmail:
Send emails with multiple recipients (to, cc, bcc) and attachments from local files or Google Drive.
Download all email attachments to local storage with cross-platform support.
List emails with custom queries, labels, and result limits.
Read specific emails by ID with attachment information.
Manage labels (add, remove, list).
Draft and delete emails.
Calendar:
List calendars and set a default calendar.
Create events with details (summary, start/end time, attendees, etc.).
List upcoming events with customizable filters.
Update or delete existing events.
Find free time slots for scheduling.
Drive:
Filter with search queries
Sort by modification date or other criteria
Customize display count
View detailed file metadata
Read file content (text, docs, spreadsheets)
Create new files with specified content
Update existing files
Delete files (trash or permanent)
Share files with specific permissions
Tasks:
View all task lists
Create new task lists
Delete existing task lists
Set default task list
List tasks with filters
View task details
Create tasks with title, notes, and due dates
Update task properties
Mark tasks as complete
Delete tasks
TODO Plans:
Google Contacts: Search and manage contacts.
And Many More...
You can chain commands for workflows, e.g.:
"List my unread emails, draft a reply to the latest one, and schedule a follow-up meeting tomorrow at 2 PM."
Hosted deployment
A hosted deployment is available on Fronteir AI.
OAuth Token Management
The server includes built-in OAuth token management to handle expired access tokens gracefully:
Automatic Token Refresh: When access tokens expire, you can refresh them without going through the full OAuth flow again
Complete Re-authentication: Automatically handle cases where refresh tokens are invalid or expired
Persistent Storage: Refreshed tokens are automatically saved to your configured token file path
Session Continuity: All Google services are re-initialized with fresh tokens after refresh
Refreshing Tokens
If you encounter authentication errors or want to proactively refresh your tokens, simply ask:
Refresh my Google OAuth tokensThis will:
Use your stored refresh token to get new access tokens
Update the token file with the new credentials
Re-initialize all Google services with fresh authentication
Show you the new token expiration time
Complete Re-authentication
If you get invalid_grant errors or your refresh token has expired, you can start fresh:
Re-authenticate my Google accountThis automated process will:
Delete existing tokens from your token file
Start OAuth server to handle the callback
Open browser for fresh authentication
Save new tokens automatically
Re-initialize services with fresh credentials
You'll only need to click "Allow" in the browser - everything else is automated!
Note: If you don't have a valid refresh token, you'll need to go through the initial OAuth authentication flow again.
Manual Installation
Prerequisites:
Install Bun:
brew install oven-sh/bun/bun # macOS/Linux with HomebrewSet Up OAuth:
Create a Google Cloud project in the Google Cloud Console.
Set up OAuth 2.0 credentials (Client ID, Client Secret).
Choose the type Desktop app.
If using test mode, add your email to the test users list.
Make sure to enable API access for desired services (Gmail, Calendar, Drive etc.).
Configure Your Client: Edit your claude_desktop_config.json (or equivalent config file for your client):
{
"mcpServers": {
"google-mcp": {
"command": "bunx",
"args": ["--no-cache", "google-mcp@latest"],
"env": {
// Either can be used, but not both
// Use OAuth
"GOOGLE_OAUTH_CLIENT_ID": "<YOUR_CLIENT_ID>",
"GOOGLE_OAUTH_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
"GOOGLE_OAUTH_TOKEN_PATH": "<PATH_TO_STORE_TOKENS>",
// Use Service Account
"GOOGLE_CLIENT_EMAIL": "<YOUR_SERVICE_ACCOUNT_EMAIL>",
"GOOGLE_PRIVATE_KEY": "<YOUR_SERVICE_ACCOUNT_PRIVATE_KEY>",
"GMAIL_USER_TO_IMPERSONATE": "<USER_TO_IMPERSONATE>"
}
}
}
}Authenticate:
The first time you run the server, it will open a browser for OAuth authentication. Follow the prompts to grant access, and tokens will be saved to GOOGLE_OAUTH_TOKEN_PATH.
Usage
Now, ask Claude to use the google-mcp tool.
Send an email to jane.doe@example.com with the subject "Meeting Notes" and body "Here are the notes from today."List my upcoming calendar events for the next 3 days.Create a calendar event titled "Team Sync" tomorrow at 10 AM for 1 hour.Refresh my Google OAuth tokensRe-authenticate my Google accountTransport Support
This MCP server supports both stdio and HTTP transports via environment variables:
Stdio Transport (Default)
# Default mode - uses stdio transport
bun run dev
# Or explicitly
MCP_TRANSPORT=stdio bun run index.tsHTTP Transport (Streamable HTTP)
# HTTP mode with Streamable HTTP support
MCP_TRANSPORT=http bun run index.ts
# Or with custom port
MCP_TRANSPORT=http PORT=3000 bun run index.tsWhen running in HTTP mode, the server provides these endpoints:
GET /health- Health check endpoint with session countGET /mcp- Session info and server statusPOST /mcp- Main MCP JSON-RPC endpoint for sending requestsDELETE /mcp- End session endpoint
Session Management
The Streamable HTTP transport uses the official MCP SDK with automatic session management:
Automatic Sessions: The server automatically generates secure session IDs
SSE Streaming: Supports Server-Sent Events for real-time communication
JSON Responses: Falls back to JSON responses when SSE is not available
DNS Protection: Built-in security features for production deployment
Configuration for HTTP Transport
For HTTP transport, configure your client with the server URL:
{
"mcpServers": {
"google-mcp-http": {
"url": "http://localhost:3000/mcp"
}
}
}Local Development
git clone https://github.com/vakharwalad23/google-mcp.git
cd google-mcp
bun install
# Run in stdio mode (default)
bun run dev:stdio
# Run in HTTP mode
bun run dev:httpThank you for using Google MCP Tools! If you have any questions or suggestions, feel free to open an issue or contribute to the project.
Play around with the tools and enjoy!!
Available Tools
32 toolsgoogle_calendar_create_eventC
Create a new event in Google Calendar
| Name | Required | Description | Default |
|---|---|---|---|
| attendees | No | List of email addresses to invite | |
| calendarId | No | Optional: ID of calendar to use (defaults to primary if not specified) | |
| colorId | No | Color identifier (1-11) for the event | |
| description | No | Detailed description of the event | |
| end | Yes | End time of the event in ISO 8601 format (e.g. 2025-04-02T11:00:00-07:00) | |
| location | No | Physical location or address | |
| recurrence | No | RFC5545 recurrence rule (e.g., 'RRULE:FREQ=WEEKLY;COUNT=10') | |
| start | Yes | Start time of the event in ISO 8601 format (e.g. 2025-04-02T10:00:00-07:00) | |
| summary | Yes | The title/summary of the event |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers almost none. It doesn't mention that this is a write/mutation operation (implied but not stated), what permissions are required, whether events are created immediately or scheduled, error conditions, or what happens on success/failure. For a creation tool with zero annotation coverage, this is critically inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without any fluff. It's appropriately front-loaded and wastes no words, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a 9-parameter creation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., event ID, success confirmation), error handling, or behavioral nuances. The agent lacks critical context needed to use this tool effectively beyond basic parameter passing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with all 9 parameters well-documented in the input schema itself (e.g., format requirements like ISO 8601 for dates, RFC5545 for recurrence). The description adds no additional parameter information beyond what's already in the schema, so it meets the baseline of 3 but doesn't compensate or enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('new event in Google Calendar'), making the purpose immediately understandable. It distinguishes this tool from deletion, update, and retrieval tools in the sibling list. However, it doesn't specify what distinguishes it from similar creation tools in other Google services (like google_drive_create_file), so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites (like authentication), when to choose this over google_calendar_update_event for modifications, or any context about typical use cases. The agent must 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.
google_calendar_delete_eventC
Delete an event from Google Calendar
| Name | Required | Description | Default |
|---|---|---|---|
| calendarId | No | Optional: ID of calendar to use (defaults to primary if not specified) | |
| eventId | Yes | ID of the event to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Delete') but lacks critical details: it doesn't specify if deletion is permanent or reversible, what permissions are required, whether it affects recurring events, or what happens on success/failure. For a destructive operation with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place by directly conveying the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a destructive operation, lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like permanence, permissions, or error handling, which are crucial for safe tool invocation. The high schema coverage helps with parameters, but overall context is inadequate for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear documentation for both parameters (calendarId and eventId). The description adds no parameter-specific information beyond what the schema provides, such as format examples or contextual usage. With high schema coverage, the baseline score of 3 is appropriate, as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Delete') and resource ('an event from Google Calendar'), making the purpose unambiguous. It distinguishes from siblings like 'google_calendar_update_event' by specifying deletion rather than modification, though it doesn't explicitly contrast with other deletion tools like 'google_calendar_delete_event' (which doesn't exist in the list) or deletion tools in other services.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an event ID from a previous operation), when not to use it (e.g., for soft deletion), or direct alternatives like 'google_calendar_update_event' to cancel instead of delete. Usage is implied only by the tool name and action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_find_free_timeC
Find available time slots between events
| Name | Required | Description | Default |
|---|---|---|---|
| calendarIds | No | Optional: Calendar IDs to check (defaults to primary if not specified) | |
| duration | Yes | Minimum slot duration in minutes | |
| endDate | Yes | End of search period (ISO format) | |
| startDate | Yes | Start of search period (ISO format) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions 'available time slots' but doesn't disclose how availability is determined (e.g., considering event busy status, working hours, or permissions). No information on rate limits, authentication needs, or output format is included, leaving significant gaps for a tool that likely interacts with calendar data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core purpose, making it easy to parse quickly. Every word earns its place, adhering to conciseness best practices.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a tool with 4 parameters that likely involves complex calendar logic. It doesn't explain behavioral aspects like how free time is calculated, what happens with multiple calendars, or the return format. For a tool of this complexity, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional meaning beyond the schema's details, such as explaining how 'calendarIds' interact with availability or what constitutes a 'slot'. Baseline 3 is appropriate as the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('find') and resource ('available time slots between events'), making the purpose understandable. It distinguishes itself from siblings like 'get_events' by focusing on free time rather than events themselves. However, it doesn't explicitly differentiate from other calendar tools beyond the general concept.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. While the purpose implies it's for scheduling or checking availability, there's no mention of prerequisites, constraints, or comparison with other tools like 'get_events' for overlapping functionality. The description lacks explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_get_eventC
Get detailed information about a specific event
| Name | Required | Description | Default |
|---|---|---|---|
| calendarId | No | Optional: ID of calendar to use (defaults to primary if not specified) | |
| eventId | Yes | ID of the event to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral context. It states the tool retrieves 'detailed information' but doesn't disclose what that includes (e.g., attendees, time, description), whether it requires specific permissions, or how errors are handled for invalid event IDs. This leaves significant gaps for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately conveys the core function without unnecessary words. It's appropriately sized for a simple retrieval tool and front-loads the essential action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'detailed information' includes, how to handle the optional calendarId, or potential error cases. Given the lack of structured data, more context about return values and usage constraints is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing clear documentation for both parameters. The description adds no additional parameter semantics beyond implying an event ID is needed, which is already covered in the schema. This meets the baseline for high schema coverage but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('detailed information about a specific event'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'google_calendar_get_events' (plural) which retrieves multiple events, leaving room for potential confusion about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'google_calendar_get_events' for listing multiple events or 'google_calendar_find_free_time' for availability checks, nor does it specify prerequisites like needing an event ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_get_eventsC
Retrieve upcoming events from Google Calendar
| Name | Required | Description | Default |
|---|---|---|---|
| calendarId | No | Optional: ID of calendar to use (defaults to primary if not specified) | |
| limit | No | Maximum number of events to return | |
| q | No | Free text search term for events | |
| showDeleted | No | Whether to include deleted events | |
| timeMax | No | End date/time in ISO format | |
| timeMin | No | Start date/time in ISO format (defaults to now) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure but offers minimal information. It states 'Retrieve upcoming events' but doesn't describe authentication requirements, rate limits, pagination behavior, error conditions, or what 'upcoming' means (e.g., default time range). This leaves significant gaps for an AI agent to understand how the tool behaves in practice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for a tool with well-documented parameters in the schema, making it easy to parse while conveying the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a Google Calendar API tool with 6 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what 'upcoming' entails, the format of returned events, error handling, or authentication needs. For a tool that likely returns structured event data, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing clear documentation for all 6 parameters. The description adds no parameter-specific information beyond implying retrieval of 'upcoming events' (which relates to timeMin/timeMax). Since the schema does the heavy lifting, the baseline score of 3 is appropriate, though the description doesn't enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve') and resource ('upcoming events from Google Calendar'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'google_calendar_get_event' (singular) or 'google_calendar_find_free_time', which also retrieve calendar data but with different scopes or purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention that this is for retrieving multiple events (vs. 'google_calendar_get_event' for a single event), doesn't specify use cases like viewing schedules or checking availability, and offers no exclusions or prerequisites for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_list_calendarsB
List all available calendars
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('List') but doesn't describe what 'all available calendars' includes (e.g., personal vs. shared, access levels), whether it requires authentication, or any rate limits. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema) and lack of annotations, the description is incomplete. It doesn't clarify what 'available calendars' means, potential behavioral traits, or output details, leaving gaps that could confuse an AI agent despite the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description adds no parameter information, which is acceptable here since there are no parameters to explain, justifying a baseline score above 3 for this scenario.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all available calendars'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'google_calendar_get_events' or 'google_tasks_list_tasklists' beyond the calendar focus, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. For example, it doesn't specify if this lists only user calendars, shared calendars, or all types, or when to prefer this over other listing tools in the sibling set. This lack of context leaves usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_set_defaultC
Set the default calendar ID for operations
| Name | Required | Description | Default |
|---|---|---|---|
| calendarId | Yes | The ID of the calendar to set as default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Set' implies a mutation, it doesn't specify whether this change is persistent, reversible, requires specific permissions, or affects subsequent operations (like which calendar events are created in). This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple tool and front-loads the essential information, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'default' means operationally, how to verify the change, or potential side effects. Given the complexity of setting a system-wide default, more context is needed for the agent to use this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'calendarId' clearly documented in the schema. The description adds no additional meaning beyond what the schema provides (e.g., format examples, source of valid IDs, or scope implications), so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set') and the resource ('default calendar ID'), making the purpose understandable. However, it doesn't distinguish this tool from its sibling 'google_tasks_set_default_list' which performs a similar default-setting operation for a different resource, missing an opportunity for clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid calendar ID from 'google_calendar_list_calendars'), when this setting applies, or how it affects other operations, leaving the agent with insufficient context for proper tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_calendar_update_eventC
Update an existing event in Google Calendar
| Name | Required | Description | Default |
|---|---|---|---|
| attendees | No | List of email addresses to invite | |
| calendarId | No | Optional: ID of calendar to use (defaults to primary if not specified) | |
| colorId | No | Color identifier (1-11) for the event | |
| description | No | Detailed description of the event | |
| end | No | End time in ISO 8601 format | |
| eventId | Yes | ID of the event to update | |
| location | No | Physical location or address | |
| recurrence | No | RFC5545 recurrence rule (e.g., 'RRULE:FREQ=WEEKLY;COUNT=10') | |
| start | No | Start time in ISO 8601 format | |
| summary | No | The title/summary of the event |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Update' implies mutation, but the description doesn't disclose important behavioral traits: what permissions are needed, whether partial updates are allowed, what happens to unspecified fields, whether attendees receive notifications, or error conditions. For a mutation tool with zero annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized and front-loaded with the essential information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 10 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what the tool returns, error conditions, authentication requirements, or how it interacts with the Google Calendar API. The description should provide more context given the tool's complexity and lack of structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 10 parameters thoroughly. The description adds no parameter information beyond what's in the schema. According to guidelines, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('an existing event in Google Calendar'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'google_calendar_update_event' (which doesn't exist in the sibling list - the closest is 'google_calendar_create_event'), though it's clearly different from create/delete/get operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like needing an existing event ID), when to choose update over create/delete, or how it differs from similar operations. With multiple calendar tools available, this is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_create_fileC
Create a new file in Google Drive
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Content of the file | |
| folderId | No | ID of the folder to create the file in | |
| mimeType | No | MIME type of the file (e.g., 'text/plain', 'application/vnd.google-apps.document') | |
| name | Yes | Name of the file to create |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Create' implies a write operation, it doesn't describe permissions required, whether the operation is idempotent, rate limits, error conditions, or what happens on success (e.g., returns file ID). For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for a tool with good schema coverage. Every word earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like permissions, error handling, or return values, and while the schema covers parameters well, the overall context for safe and effective use is lacking. This is inadequate for a 4-parameter creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 4 parameters with clear descriptions. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain parameter interactions or provide examples). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('new file in Google Drive'), making the purpose immediately understandable. It distinguishes from siblings like 'google_drive_update_file' or 'google_drive_delete_file' by specifying creation. However, it doesn't explicitly mention what type of file or provide specific scope details beyond the basic verb+resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication needs, folder permissions), when not to use it (e.g., for updating existing files), or refer to sibling tools like 'google_drive_update_file' for modifications. Usage is implied by the name but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_delete_fileC
Delete a file from Google Drive
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | ID of the file to delete | |
| permanently | No | Whether to permanently delete the file or move it to trash |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose critical behavioral traits: whether deletion is reversible/irreversible, authentication requirements, error conditions (e.g., permission denied), rate limits, or what happens to shared links. The description mentions 'delete' but doesn't elaborate on the 'permanently' parameter's implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple delete operation and front-loads the core action. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no annotations and no output schema, the description is inadequate. It doesn't cover behavioral aspects (reversibility, permissions), error handling, or return values. Given the complexity of file deletion with permanent/trash options, more context is needed for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing good documentation for both parameters. The description adds no parameter semantics beyond what's in the schema—it doesn't explain fileId format, default behavior for 'permanently', or consequences of different boolean values. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('a file from Google Drive'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'google_drive_update_file' or 'google_drive_share_file' beyond the obvious action difference, nor does it mention the 'permanently' parameter's effect on trash vs permanent deletion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing file ID from list_files), warn about irreversible deletion, or compare to similar tools like 'google_drive_update_file' for modification instead of deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_get_file_contentC
Get the content of a file from Google Drive
| Name | Required | Description | Default |
|---|---|---|---|
| fileId | Yes | ID of the file to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves file content but lacks critical details: whether it requires specific permissions (e.g., read access), what formats are supported (e.g., text, binary), if there are rate limits, or how large files are handled. For a read operation with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's function without unnecessary words. It is front-loaded with the core action ('Get the content'), making it efficient and easy to parse. Every part of the sentence earns its place by conveying essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of file retrieval (which involves access control, format handling, and potential errors) and the lack of annotations and output schema, the description is insufficient. It doesn't explain what is returned (e.g., raw content, a download link, metadata), error conditions, or limitations. For a tool with no structured safety or output information, more context is needed to be complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'fileId' documented as 'ID of the file to retrieve'. The description adds no additional meaning beyond this, such as examples of valid IDs or where to find them. With high schema coverage, the baseline score of 3 is appropriate, as the schema adequately explains the parameter without needing extra details in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('content of a file from Google Drive'), making the purpose immediately understandable. It distinguishes from siblings like google_drive_list_files (which lists metadata) and google_drive_get_file (which presumably retrieves metadata, though not in the sibling list). However, it doesn't explicitly differentiate from potential siblings like google_drive_download_file, which might serve a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., file must exist, user must have access), nor does it contrast with siblings like google_drive_list_files (for browsing) or google_drive_update_file (for modifications). Usage is implied only by the tool name and description, with no 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.
google_drive_list_filesC
List files from Google Drive
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Fields to include in the response (use Google Drive API syntax) | |
| orderBy | No | Comma-separated field names to sort by (e.g., 'modifiedTime desc') | |
| pageSize | No | Maximum number of files to return (default: 10) | |
| query | No | Google Drive search query (e.g., 'name contains "report"') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'List files' implies a read-only operation, but it doesn't specify aspects like authentication requirements, rate limits, pagination behavior (beyond the 'pageSize' parameter in the schema), or what happens on errors. For a tool with no annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration, earning a high score for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a Google Drive listing tool with 4 parameters, no annotations, and no output schema, the description is incomplete. It doesn't address behavioral traits, return values, or usage context, leaving significant gaps for the agent to understand how to effectively invoke and interpret results from this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for all four parameters (fields, orderBy, pageSize, query). The description adds no additional meaning beyond what the schema provides, such as examples or context for parameter usage. According to the rules, with high schema coverage (>80%), the baseline score is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List files from Google Drive' clearly states the verb ('List') and resource ('files from Google Drive'), making the basic purpose understandable. However, it lacks specificity about scope (e.g., all files vs. user's files) and doesn't distinguish it from potential sibling tools like 'google_drive_get_file_content' or other listing operations, making it somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, such as how it differs from other Google Drive tools (e.g., 'google_drive_create_file' for creation). This leaves the agent without explicit usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_drive_update_fileC
Update the content of an existing file in Google Drive
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | New content of the file | |
| fileId | Yes | ID of the file to update | |
| mimeType | No | MIME type of the file (if different from original) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Update' implies a mutation operation, it doesn't disclose important behavioral traits: whether this overwrites or appends content, what permissions are required, whether version history is created, what happens if the file is shared or in a shared drive, or what the response looks like. For a mutation tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a tool with clear purpose and good schema documentation, and the information is front-loaded with the core action immediately apparent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens during the update (overwrite vs append), what permissions are needed, whether changes are reversible, what the response contains, or how errors are handled. Given the complexity of file updates and the lack of structured behavioral information, the description should provide more operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description doesn't add any parameter-specific information beyond what's in the schema descriptions. It mentions 'content' and 'existing file' which align with the schema parameters, but provides no additional context about parameter usage, constraints, or relationships. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Update') and resource ('content of an existing file in Google Drive'), making the purpose immediately understandable. It distinguishes from obvious siblings like 'google_drive_create_file' by specifying 'existing file', but doesn't explicitly differentiate from other update operations like 'google_drive_share_file' which also modifies files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like needing edit permissions), when to use 'google_drive_create_file' for new files instead, or how this differs from 'google_drive_share_file' which also updates file properties. The agent must infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_delete_emailC
Delete or trash an email
| Name | Required | Description | Default |
|---|---|---|---|
| messageId | Yes | ID of the email to delete | |
| permanently | No | Whether to permanently delete or move to trash |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral information. It mentions the 'delete or trash' distinction but doesn't disclose critical behaviors like whether deletion requires specific permissions, if it's reversible from trash, what happens to threads when one email is deleted, or any rate limits. For a destructive operation, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 4 words, front-loading the core action. Every word earns its place - 'delete or trash' captures the dual functionality, 'an email' specifies the resource. There's zero redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after deletion (success confirmation, error cases), doesn't mention authentication requirements, and provides no context about the Gmail-specific behaviors. Given the complexity of email deletion (threads, labels, trash behavior), more completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters. The description adds no additional parameter semantics beyond what's in the schema - it doesn't explain where to find messageId, what format it uses, or provide examples of when to use 'permanently=true' versus false. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('delete or trash') and resource ('an email'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'google_gmail_modify_labels' which might also affect email deletion status, nor does it specify whether this works on drafts vs. sent emails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention whether 'google_gmail_modify_labels' could be used for moving to trash via label changes, or clarify if this should be used instead of batch deletion methods. The description offers no context about prerequisites or typical workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_draft_emailC
Create a draft email
| Name | Required | Description | Default |
|---|---|---|---|
| bcc | No | BCC recipients email addresses | |
| body | Yes | Email body content (can be plain text or HTML) | |
| cc | No | CC recipients email addresses | |
| isHtml | No | Whether the body contains HTML | |
| subject | Yes | Email subject | |
| to | Yes | Recipients email addresses |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Create a draft email' implies a write operation but doesn't specify what 'draft' means in this context - whether it's saved to a drafts folder, what permissions are needed, or what happens on failure. For a mutation tool with zero annotation coverage, this is insufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words - 'Create a draft email'. It's front-loaded with the core action and resource, with zero wasted words. Every word earns its place by conveying essential information about the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'draft' means operationally, what the tool returns, or how it differs from the send_email sibling. The 100% schema coverage helps with parameters, but the overall context for using this tool effectively is lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with all 6 parameters well-documented in the schema itself. The description adds no parameter information beyond what's already in the structured schema. According to the scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a draft email' clearly states the verb ('Create') and resource ('draft email'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'google_gmail_send_email' - both involve email creation, but one creates drafts while the other sends immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention that this creates a draft (not sent) email, nor does it reference the sibling 'google_gmail_send_email' tool for when immediate sending is required. There's no context about prerequisites or when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_get_emailB
Get detailed information about a specific email
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Format to return the email in (full, metadata, minimal, raw) | |
| messageId | Yes | ID of the email to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves 'detailed information' but doesn't specify what that includes (e.g., headers, body, attachments), whether it requires authentication, or if there are rate limits. For a read operation with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the sentence earns its place by specifying the action ('Get'), the scope ('detailed information'), and the target ('a specific email').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on behavior, output format, and usage context. Without annotations or output schema, more elaboration would be helpful for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear parameter descriptions in the schema itself. The description adds no additional parameter semantics beyond what's already documented in the schema (e.g., it doesn't explain the 'format' options or 'messageId' format). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('detailed information about a specific email'), making the purpose immediately understandable. It distinguishes from sibling tools like 'google_gmail_list_emails' (which lists multiple emails) and 'google_gmail_get_email_by_index' (which uses a different identifier). However, it doesn't explicitly mention the Gmail context beyond the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'google_gmail_get_email_by_index' instead, nor does it specify prerequisites like needing a specific email ID. The context is implied by the tool name but not elaborated in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_get_email_by_indexB
Get email by its index from the most recent search results
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Format to return the email in (full, metadata, minimal, raw) | |
| index | Yes | Index of the email from search results (starting from 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the index-based retrieval from search results, which is useful context. However, it doesn't disclose critical behavioral traits: whether this is a read-only operation, what happens if the index is out of bounds, if it requires specific permissions, or what the return format looks like (though 'format' parameter hints at options). For a tool with no annotations, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get email by its index') and adds essential context ('from the most recent search results'). Every word earns its place with zero waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a tool that retrieves data. It mentions the index-based context but doesn't cover return values, error conditions, or behavioral constraints. However, the 100% schema coverage helps document inputs, and the purpose is clear, making it minimally adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('index' and 'format') thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain the 'format' options like 'full' vs 'metadata'). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'email by its index', specifying it's from 'most recent search results'. It distinguishes from sibling 'google_gmail_get_email' (which likely retrieves by ID) by mentioning the index-based retrieval context. However, it doesn't explicitly contrast with 'google_gmail_list_emails' (which might list emails without indexing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('from the most recent search results'), suggesting this tool should be used after a search operation. However, it doesn't explicitly state when to use this versus alternatives like 'google_gmail_get_email' (likely by ID) or 'google_gmail_list_emails', nor does it mention prerequisites (e.g., needing to run a search first).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_list_emailsC
List emails from a specific label or folder
| Name | Required | Description | Default |
|---|---|---|---|
| labelIds | No | Label IDs to filter messages (e.g., 'INBOX', 'SENT') | |
| maxResults | No | Maximum number of emails to return | |
| query | No | Search query to filter emails |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions listing emails but doesn't specify whether this is a read-only operation, how results are ordered, if pagination is supported, or what happens with large result sets. For a list operation with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that states exactly what the tool does without any unnecessary words. It's perfectly front-loaded and wastes no space, making it highly efficient for an AI agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with 3 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what the output looks like (email objects, metadata only), how results are structured, or any behavioral constraints. The description should provide more context about the operation's scope and results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description mentions 'label or folder' which aligns with the 'labelIds' parameter but doesn't add meaningful semantic context beyond what's in the schema. The baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List emails') and specifies the scope ('from a specific label or folder'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'google_gmail_get_email' or 'google_gmail_get_email_by_index', which retrieve individual emails rather than lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'google_gmail_get_email' for single emails or 'google_gmail_list_labels' for listing labels. It mentions filtering by label/folder but doesn't clarify if this is the primary method for listing emails or if there are other approaches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_list_labelsB
List all available Gmail labels
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states what the tool does but lacks behavioral details such as authentication requirements, rate limits, pagination, or the format of the returned label list. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the core functionality without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the output looks like (e.g., list structure, label properties) or behavioral aspects like error handling. For a tool with no structured metadata, more context is needed to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so there's no need for parameter details in the description. The description appropriately focuses on the tool's purpose without redundant parameter information, earning a baseline score of 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('all available Gmail labels'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'google_gmail_list_emails' or 'google_gmail_modify_labels' beyond the obvious label vs. email distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention whether this is for retrieving labels to apply to emails via 'google_gmail_modify_labels' or for general reference. The description lacks context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_modify_labelsC
Add or remove labels from an email
| Name | Required | Description | Default |
|---|---|---|---|
| addLabelIds | No | Labels to add to the message | |
| messageId | Yes | ID of the email to modify | |
| removeLabelIds | No | Labels to remove from the message |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool modifies labels (implying mutation) but doesn't disclose behavioral traits like whether it requires specific permissions, if changes are reversible, rate limits, or what happens if label IDs don't exist. For a mutation tool with zero annotation coverage, this is inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a tool with clear parameters and no complex behavior to explain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., success confirmation, updated email object), error conditions, or important behavioral context needed for safe use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (messageId, addLabelIds, removeLabelIds) with clear descriptions. The description adds no additional meaning beyond what the schema provides, which meets the baseline of 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add or remove') and resource ('labels from an email'), making the purpose immediately understandable. However, it doesn't differentiate this tool from potential sibling tools in the Gmail domain (like google_gmail_list_labels or google_gmail_get_email), which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like needing an existing email ID), when not to use it, or how it relates to other Gmail tools (e.g., use google_gmail_list_labels first to get label IDs).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_gmail_send_emailC
Send a new email
| Name | Required | Description | Default |
|---|---|---|---|
| bcc | No | BCC recipients email addresses | |
| body | Yes | Email body content (can be plain text or HTML) | |
| cc | No | CC recipients email addresses | |
| isHtml | No | Whether the body contains HTML | |
| subject | Yes | Email subject | |
| to | Yes | Recipients email addresses |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Send a new email' implies a write/mutation operation but doesn't disclose critical behavioral traits: it doesn't mention authentication needs, rate limits, whether emails are sent immediately or queued, error handling for invalid addresses, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words ('Send a new email'), making it front-loaded and efficient with zero wasted words. Every element serves a purpose: verb, adjective, and resource. This is an excellent example of minimalism where brevity doesn't sacrifice basic clarity of purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool (sending emails) with no annotations and no output schema, the description is insufficiently complete. It doesn't address authentication requirements, error conditions, rate limits, or what the tool returns upon success/failure. While the schema covers parameters well, the description fails to provide the contextual information needed for safe and effective use of this write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with all 6 parameters well-documented in the schema itself. The description adds no parameter-specific information beyond what's already in the schema (e.g., it doesn't clarify format requirements for email addresses, size limits for body content, or how HTML vs plain text is handled). With high schema coverage, the baseline score of 3 is appropriate as the description doesn't add meaningful semantic value beyond the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Send a new email' clearly states the verb ('Send') and resource ('email'), making the purpose immediately understandable. It distinguishes this from sibling tools like 'google_gmail_draft_email' (which creates drafts) and 'google_gmail_delete_email' (which deletes emails). However, it lacks specificity about the email service (Gmail), which is implied by the tool name but not explicitly stated in the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'google_gmail_draft_email' for creating drafts instead of sending immediately, or clarify prerequisites such as authentication requirements. There's no explicit when/when-not usage context or comparison to other email-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_complete_taskC
Mark a task as completed
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | ID of the task to complete | |
| taskListId | No | ID of the task list the task belongs to (uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Mark a task as completed' implies a mutation (changing task status), but it doesn't disclose behavioral traits like whether this requires specific permissions, if it's reversible, what happens to completed tasks (e.g., archiving), or error conditions (e.g., invalid taskId). For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence ('Mark a task as completed') that is front-loaded and wastes no words. It directly conveys the core purpose without unnecessary elaboration, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation with 2 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects (e.g., side effects, error handling), usage context, or return values. For a tool that modifies task state, more detail is needed to guide an agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for both parameters (taskId and taskListId). The description adds no parameter semantics beyond what the schema provides—it doesn't explain parameter interactions (e.g., taskListId defaults if omitted) or provide examples. Baseline 3 is appropriate since the schema does the heavy lifting, but the description doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Mark a task as completed' clearly states the action (mark as completed) and resource (task) with a specific verb. It distinguishes from siblings like google_tasks_update_task (which might modify other fields) and google_tasks_delete_task (which removes rather than completes). However, it doesn't explicitly mention the Google Tasks service context, though this is implied by the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., task must exist), when not to use it (e.g., for uncompleted tasks only), or compare to siblings like google_tasks_update_task (which could also mark completion). Without such context, the agent must 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.
google_tasks_create_taskC
Create a new task
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | Due date in RFC 3339 format (e.g., '2025-04-02T10:00:00.000Z') | |
| notes | No | Notes or description for the task | |
| taskListId | No | ID of the task list to create the task in (uses default if not specified) | |
| title | Yes | Title of the task |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Create a new task' implies a write operation but doesn't disclose any behavioral traits: it doesn't mention authentication requirements, rate limits, what happens if the task list doesn't exist, whether the creation is idempotent, or what the response looks like. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words, with zero wasted language. It's front-loaded with the core action ('Create'), though this brevity comes at the cost of completeness. Every word earns its place by stating the basic operation, but it's arguably too minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what a 'task' is in Google Tasks context, doesn't mention required parameters (title is required per schema), and provides no information about return values or error conditions. For a tool that creates resources, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all four parameters (due, notes, taskListId, title) with clear descriptions. The description adds no additional meaning beyond what the schema provides, such as explaining parameter interactions or constraints. With high schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new task' is a tautology that merely restates the tool name without adding specificity. It doesn't distinguish this tool from sibling tools like 'google_tasks_create_tasklist' or clarify what resource it creates (a task in Google Tasks). While the verb 'create' is clear, the description lacks any detail about what a 'task' entails in this context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'google_tasks_update_task' for modifications, 'google_tasks_complete_task' for marking tasks as done, or 'google_tasks_create_tasklist' for creating task lists instead of tasks. There's no context about prerequisites, such as needing a task list ID or default list setup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_create_tasklistC
Create a new task list
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Title of the new task list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Create' implies a write/mutation operation, but the description doesn't mention authentication requirements, permission levels needed, whether the operation is idempotent, what happens on failure, or what the response contains. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just four words that directly convey the core purpose. There's zero wasted language, and it's perfectly front-loaded with the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficiently complete. It should address behavioral aspects like authentication requirements, error conditions, and what the tool returns. The description doesn't compensate for the lack of structured metadata about this write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'title' clearly documented in the schema. The description adds no additional parameter information beyond what's already in the structured schema, so it meets the baseline expectation but doesn't provide extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('new task list'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'google_tasks_create_task', which creates individual tasks rather than task lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when this operation is appropriate, or how it relates to sibling tools like 'google_tasks_list_tasklists' or 'google_tasks_set_default_list'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_delete_taskC
Delete a task
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | ID of the task to delete | |
| taskListId | No | ID of the task list the task belongs to (uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 'Delete a task' which implies a destructive mutation, but doesn't disclose critical behavioral traits: whether deletion is permanent or reversible, authentication requirements, rate limits, error conditions, or what happens to subtasks. This leaves significant gaps for safe agent operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with zero wasted words—a single verb-noun phrase that front-loads the core action. Every word earns its place, making it easy to parse quickly, though this brevity contributes to gaps in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (destructive mutation with 2 parameters) and lack of annotations or output schema, the description is incomplete. It doesn't cover behavioral aspects, error handling, or output expectations, leaving the agent with insufficient context to use the tool safely and effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear parameter descriptions in the schema. The tool description adds no additional parameter semantics beyond the schema, such as format examples or constraints. Since the schema fully documents the parameters, the baseline score of 3 is appropriate, but no extra value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the resource ('a task'), making the purpose immediately understandable. It distinguishes from siblings like 'google_tasks_delete_tasklist' by specifying the resource type. However, it doesn't specify the scope (e.g., from Google Tasks API) or differentiate from non-sibling deletions like 'google_calendar_delete_event'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention prerequisites (e.g., needing task ID), when not to use it (e.g., for archiving vs. deletion), or direct alternatives like 'google_tasks_complete_task' for marking tasks as done without deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_delete_tasklistC
Delete a task list
| Name | Required | Description | Default |
|---|---|---|---|
| taskListId | Yes | ID of the task list to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action is a deletion but doesn't mention whether this is permanent, reversible, requires specific permissions, affects associated tasks, or has rate limits. This leaves significant gaps for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with zero wasted words, making it highly efficient and front-loaded. It immediately conveys the core action without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is inadequate. It doesn't explain the outcome (e.g., what happens to tasks in the list), error conditions, or confirmation requirements, leaving the agent with insufficient context to use it safely and effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'taskListId' clearly documented. The description doesn't add any additional meaning beyond what the schema provides, such as format examples or sourcing details, but this is acceptable given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the resource ('a task list'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like google_tasks_delete_task, which deletes individual tasks rather than entire task lists, leaving some ambiguity about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as when to delete a task list versus individual tasks or how it relates to other Google Tasks tools. It lacks context about prerequisites, consequences, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_get_taskC
Get details about a specific task
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | ID of the task to retrieve | |
| taskListId | No | ID of the task list the task belongs to (uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action without behavioral details. It doesn't disclose if this is a read-only operation (implied but not explicit), authentication requirements, rate limits, error handling, or what 'details' include (e.g., metadata, status). For a tool with zero annotation coverage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get details about a specific task') with zero wasted words. It's appropriately sized for a simple retrieval tool, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a simple input schema, the description is incomplete. It doesn't explain what 'details' are returned (e.g., task properties, status), potential errors, or behavioral constraints. For a tool in a context with sibling mutation tools, more guidance is needed to ensure correct agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('taskId' and 'taskListId') with clear descriptions. The description adds no additional parameter semantics beyond implying retrieval by ID, which aligns with the schema. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('details about a specific task'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'google_tasks_list_tasks' or 'google_tasks_complete_task', which would require mentioning it retrieves a single task by ID rather than listing multiple tasks or modifying them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing a task ID), contrast with 'google_tasks_list_tasks' for multiple tasks, or specify scenarios like retrieving task metadata versus content. This leaves the agent without contextual usage cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_list_tasklistsB
List all available task lists
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but only states the action without details. It doesn't mention whether this is a read-only operation, if it requires specific scopes or authentication, how results are returned (e.g., pagination, format), or any rate limits, leaving significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently conveys the core action without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimal but insufficient. It lacks context about authentication needs, return format, or how it interacts with siblings like 'google_tasks_list_tasks', making it incomplete for effective agent use despite the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so no parameter information is needed. The description doesn't add param details, which is appropriate, but it also doesn't compensate for any gaps since there are none, aligning with the baseline for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all available task lists'), making the purpose immediately understandable. However, it doesn't differentiate from its sibling 'google_tasks_list_tasks' beyond the resource name, missing an explicit distinction between listing task lists versus tasks within them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'google_tasks_list_tasks' or 'google_tasks_set_default_list'. It lacks context about prerequisites, such as authentication or permissions needed to access task lists, leaving usage unclear beyond the basic action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_list_tasksC
List tasks from a task list
| Name | Required | Description | Default |
|---|---|---|---|
| showCompleted | No | Whether to include completed tasks | |
| taskListId | No | ID of the task list to retrieve tasks from (uses default if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic action without disclosing behavioral traits. It doesn't mention if this is a read-only operation, potential rate limits, authentication needs, or what the output looks like (e.g., list format, pagination). This is inadequate for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action, making it easy to parse quickly, which is ideal for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (list operation with parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects, output format, or usage context, leaving significant gaps for an AI agent to understand how to invoke it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters. The description adds no additional meaning beyond what's in the schema, such as explaining parameter interactions or defaults. Baseline 3 is appropriate as the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('tasks from a task list'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'google_tasks_list_tasklists' or specify scope (e.g., all tasks vs. filtered), which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'google_tasks_get_task' or 'google_tasks_list_tasklists'. The description lacks context about prerequisites, such as needing a task list ID or default list, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_set_default_listC
Set the default task list ID for operations
| Name | Required | Description | Default |
|---|---|---|---|
| taskListId | Yes | The ID of the task list to set as default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool sets a default, implying a mutation, but doesn't disclose whether this requires specific permissions, if the change is persistent or reversible, what happens if an invalid ID is provided, or any rate limits. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits (e.g., permissions, reversibility), doesn't explain the impact of setting a default, and provides no guidance on usage relative to siblings. For a tool that modifies system state, this leaves critical gaps for an agent to operate effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'taskListId' clearly documented in the schema. The description adds no additional meaning beyond what the schema provides (e.g., it doesn't clarify the format of the ID or where to obtain it), so it meets the baseline of 3 for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Set') and resource ('default task list ID'), making the purpose understandable. However, it doesn't distinguish this tool from its sibling 'google_calendar_set_default' which has a similar naming pattern and function for a different resource, missing an opportunity for sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing task list ID from 'google_tasks_list_tasklists'), nor does it explain what 'default' means in this context or how it affects other operations, leaving the agent to infer usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_tasks_update_taskC
Update an existing task
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | New due date in RFC 3339 format | |
| notes | No | New notes or description for the task | |
| status | No | New status for the task (needsAction or completed) | |
| taskId | Yes | ID of the task to update | |
| taskListId | No | ID of the task list the task belongs to (uses default if not specified) | |
| title | No | New title for the task |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. 'Update an existing task' implies a mutation operation but doesn't specify permissions required, whether updates are partial or full, error handling, or what happens to unspecified fields. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence 'Update an existing task'. It's front-loaded and wastes no words, though this conciseness comes at the cost of completeness. Every word earns its place by stating the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 6 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what fields can be updated, how partial updates work, error conditions, or return values. The agent would need to rely heavily on the input schema alone, missing important behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 6 parameters. The description adds no parameter-specific information beyond what's in the schema. According to the rules, when schema coverage is high (>80%), the baseline score is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update an existing task' clearly states the action (update) and resource (task), but it's vague about what aspects can be updated and doesn't differentiate from sibling tools like google_tasks_complete_task or google_tasks_delete_task. It's a minimal viable description that states the basic purpose without specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like google_tasks_complete_task (which might be for status updates only) or google_tasks_delete_task. There's no mention of prerequisites, context, or exclusions, leaving the agent with no usage direction beyond the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Every tool has a clearly distinct purpose with no ambiguity, as each is scoped to a specific Google service (Calendar, Drive, Gmail, Tasks) and a specific action on a resource (e.g., create, delete, list). Overlap is minimal, such as 'google_calendar_get_event' and 'google_calendar_get_events' being clearly differentiated by singular vs. plural.
Tool names follow a highly consistent verb_noun pattern throughout, with a clear structure: 'google_service_action_resource' (e.g., 'google_calendar_create_event'). All tools use snake_case uniformly, and verbs are predictable (create, delete, get, list, update, etc.), making the set easy to navigate.
With 32 tools, the count is borderline high for a single server, as it covers multiple Google services (Calendar, Drive, Gmail, Tasks). While each service is well-scoped individually, the overall set feels heavy and might be better split into separate servers, but it's not extreme (e.g., not 50+ tools).
The tool surface provides complete CRUD/lifecycle coverage for each Google service domain, with no obvious gaps. For example, Calendar has create, get, list, update, delete, plus utilities like find_free_time; Gmail includes send, draft, get, list, delete, and label management; ensuring agents can handle full workflows without dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
Read and edit GA4, Search Console and Google Tag Manager from any MCP client. 29 tools.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Related MCP Servers
- AlicenseAqualityDmaintenanceThis server enables users to perform Google News searches with automatic categorization and multi-language support via SerpAPI integration.121126MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP (Model Context Protocol) server that provides Google search capabilities and webpage content analysis tools. This server enables AI models to perform Google searches and analyze webpage content programmatically.27256ISC
- FlicenseNot gradedqualityDmaintenanceA locally-hosted MCP server that integrates Gmail, Google Calendar, and Google Drive to provide AI-powered management of emails, events, and files. It enables tool-based interactions like sending emails, creating calendar events, and searching Drive files through clients like Cursor and Claude Desktop.
- AlicenseNot gradedqualityAmaintenanceMCP server for Google APIs — Gmail and Calendar tools for LLM agents.2MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vakharwalad23/google-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server