fastmcp-gsuite
Provides tools for managing Gmail, including querying emails, creating drafts, replying to emails, and retrieving attachments.
Provides tools for managing Google Calendar, including viewing events, creating events with attendees and notifications, and deleting events.
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., "@fastmcp-gsuiteWhat do I have on my agenda tomorrow?"
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.
fastmcp-gsuite MCP server (using fastmcp)
MCP server to interact with Google products, rewritten using the fastmcp library.
This project is a fork of mcp-gsuite.
Example prompts
Right now, this MCP server supports Gmail and Calendar integration with the following capabilities:
General
Multiple google accounts
Gmail
Get your Gmail user information
Query emails with flexible search (e.g., unread, from specific senders, date ranges, with attachments)
Retrieve complete email content by ID
Create new draft emails with recipients, subject, body and CC options
Delete draft emails
Reply to existing emails (can either send immediately or save as draft)
Retrieve multiple emails at once by their IDs.
Save multiple attachments from emails to your local system.
Calendar
Manage multiple calendars
Get calendar events within specified time ranges
Create calendar events with:
Title, start/end times
Optional location and description
Optional attendees
Custom timezone support
Notification preferences
Delete calendar events
Example prompts you can try:
Retrieve my latest unread messages
Search my emails from the Scrum Master
Retrieve all emails from accounting
Take the email about ABC and summarize it
Write a nice response to Alice's last email and upload a draft.
Reply to Bob's email with a Thank you note. Store it as draft
What do I have on my agenda tomorrow?
Check my private account's Family agenda for next week
I need to plan an event with Tim for 2hrs next week. Suggest some time slots.
Related MCP server: Google-Workspace-MCP-Server
Quickstart
Install
Quick Setup (Recommended)
The easiest way to set up authentication is using the interactive setup command:
# Install the package
pip install fastmcp-gsuite
# or with uv
uv pip install fastmcp-gsuite
# Run interactive setup
uv run fastmcp-gsuite-setupPrerequisites:
Create OAuth2 credentials in Google Cloud Console
Select "Desktop app" as application type
Enable Gmail API, Google Calendar API, and Google Drive API
The setup wizard will guide you through:
Entering your Google OAuth2 Client ID and Client Secret
Authorizing your Google account(s) in browser
Copying the authorization code from browser back to terminal
Automatically creating all necessary configuration files
Additional Commands:
# Add another Google account
uv run fastmcp-gsuite-setup --add-account
# List configured accounts
uv run fastmcp-gsuite-setup --list
# Remove an account
uv run fastmcp-gsuite-setup --remove-account user@example.comManual Setup (Advanced)
Google Workspace (G Suite) APIs require OAuth2 authorization. Follow these steps to set up authentication manually:
Create OAuth2 Credentials:
Go to the Google Cloud Console
Create a new project or select an existing one
Enable the Gmail API, Google Calendar API, and Google Drive API for your project
Go to "Credentials" → "Create Credentials" → "OAuth client ID"
Select "Desktop app" as the application type
Configure the OAuth consent screen with required information
Note: For desktop/CLI applications, the redirect URI
urn:ietf:wg:oauth:2.0:oobwill be used automatically
Required OAuth2 Scopes:
[
"openid",
"https://mail.google.com/",
"https://www.googleapis.com/auth/calendar",
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/userinfo.email"
]Create a
.gauth.jsonin your working directory:
{
"installed": {
"client_id": "$your_client_id",
"client_secret": "$your_client_secret",
"redirect_uris": ["urn:ietf:wg:oauth:2.0:oob", "http://localhost"],
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token"
}
}Note:
Use
"installed"for Desktop app credentials (recommended)Alternatively,
"web"format also works with this libraryurn:ietf:wg:oauth:2.0:oobis the Out-of-Band (OOB) redirect URIGoogle will display the authorization code in the browser for you to copy and paste
Create a
.accounts.jsonfile with account information:
{
"accounts": [
{
"email": "alice@bob.com",
"account_type": "personal",
"extra_info": "Additional info that you want to tell Claude: E.g. 'Contains Family Calendar'"
}
]
}You can specify multiple accounts. Make sure they have access in your Google Auth app. The extra_info field is especially interesting as you can add info here that you want to tell the AI about the account (e.g. whether it has a specific agenda).
Run the authentication script to generate credentials:
# Set environment variables
export GOOGLE_ACCOUNT_EMAIL="your-email@example.com"
export GOOGLE_CLIENT_ID="your-client-id"
export GOOGLE_CLIENT_SECRET="your-client-secret"
# Run the script
uv run python scripts/get_refresh_token.pyThis will open a browser for authorization and create .oauth2.{email}.json credential files.
Claude Desktop
On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"gsuite": {
"command": "uv",
"args": [
"--directory",
"<dir_to>/fastmcp-gsuite",
"run",
"fastmcp-gsuite"
]
}
}
}Note: Configuration is now primarily handled via environment variables or a .env file in the working directory, using pydantic-settings . See the Configuration Options section below.
{
"mcpServers": {
"fastmcp-gsuite": {
"command": "uv",
"args": [
"--directory",
"<dir_to>/fastmcp-gsuite",
"run",
"fastmcp-gsuite" # Use the new entry point
# Configuration via .env or environment variables is preferred now
]
}
}
}{
"mcpServers": {
"fastmcp-gsuite": {
"command": "uvx",
"args": [
"fastmcp-gsuite" # Use the new entry point
# Configuration via .env or environment variables is preferred now
]
}
}
}Configuration Options (via .env file or Environment Variables)
Configuration is now managed using pydantic-settings . Create a .env file in the directory where you run the server, or set environment variables:
GAUTH_FILE: Path to the.gauth.jsonfile containing OAuth2 client configuration. Default:./.gauth.jsonACCOUNTS_FILE: Path to the.accounts.jsonfile containing Google account information. Default:./.accounts.jsonCREDENTIALS_DIR: Directory to store the generated.oauth2.{email}.jsoncredential files. Default:.(current directory)
Example .env file:
GAUTH_FILE=/path/to/your/.gauth.json
ACCOUNTS_FILE=/path/to/your/.accounts.json
CREDENTIALS_DIR=/path/to/your/credentialsThis allows for flexible configuration without command-line arguments when running the server.
Troubleshooting Setup
Problem: "No refresh token received"
Cause: You may have already authorized the app previously
Solution: Go to https://myaccount.google.com/permissions and revoke access, then try setup again
Problem: "Browser doesn't open automatically"
Solution: Copy the authorization URL displayed in the terminal and open it manually in your browser
Problem: "Redirect URI mismatch" error
Cause: Google Cloud Console has wrong redirect URI configured
Solution: In Google Cloud Console, ensure your OAuth client is configured as "Desktop app" type. Desktop apps automatically use
urn:ietf:wg:oauth:2.0:oobas the redirect URI
Problem: "Permission denied when creating .gauth.json"
Cause: Insufficient write permissions in current directory
Solution: Run setup in a directory where you have write permissions, or use
GAUTH_FILEenvironment variable to specify a different location
Problem: "Account already exists" when adding account
Solution: Use
--remove-accountto remove the old account first, or choose to overwrite when prompted
Problem: Setup works but MCP server can't find credentials
Solution: Ensure you're running the MCP server from the same directory where you ran setup, or set
GAUTH_FILE,ACCOUNTS_FILE, andCREDENTIALS_DIRenvironment variables to point to the correct locations
For more help, see the GitHub Issues.
Development
Building and Publishing
To prepare the package for distribution:
Sync dependencies and update lockfile:
uv syncBuild package distributions:
uv buildThis will create source and wheel distributions in the dist/ directory.
Publish to PyPI:
uv publishNote: You'll need to set PyPI credentials via environment variables or command flags:
Token:
--tokenorUV_PUBLISH_TOKENOr username/password:
--username/UV_PUBLISH_USERNAMEand--password/UV_PUBLISH_PASSWORD
Automatic PyPI Publishing with Tag Push
This project is configured to automatically publish to PyPI when a tag is pushed to the repository. The publishing process is handled by a GitHub Actions workflow.
To publish a new version:
Update the version in
pyproject.tomlCommit the changes
Tag the commit with a version tag (e.g.,
v0.4.2)Push the tag to GitHub
# Example workflow to release a new version
git add pyproject.toml
git commit -m "Bump version to 0.4.2"
git tag -a v0.4.2 -m "Version 0.4.2"
git push && git push --tagsThe GitHub Actions workflow will automatically build and publish the package to PyPI. Make sure to set the following secrets in your GitHub repository:
PYPI_API_TOKEN: Your PyPI API token
You can also use the version bumping commands in the Makefile:
# Bump patch version (0.4.1 -> 0.4.2)
make bump-patch
# Bump minor version (0.4.1 -> 0.5.0)
make bump-minor
# Bump major version (0.4.1 -> 1.0.0)
make bump-majorDebugging
Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.
You can launch the MCP Inspector via npm with this command:
npx @modelcontextprotocol/inspector uv --directory /path/to/fastmcp-gsuite run fastmcp-gsuiteUpon launching, the Inspector will display a URL that you can access in your browser to begin debugging.
You can also watch the server logs with this command:
tail -n 20 -f ~/Library/Logs/Claude/mcp-server-fastmcp-gsuite.log # Log filename might change based on the server nameE2E Testing
Standard E2E Tests
To run the standard E2E tests, you need to set up the necessary environment variables with valid Google credentials:
# Make sure valid Google credentials are set in your environment variables
dotenvx run -f .env.local -- uv run make e2e-testsThese tests use the Google API libraries directly to authenticate and test the functionality.
MCP-Based E2E Tests
There are also MCP-based E2E tests that test the functionality through the MCP protocol, simulating how Claude or other clients would interact with the MCP server:
# Specify the environment file containing your Google credentials
make mcp-e2e-tests ENV_FILE=.env.localThis will run tests that:
Start the MCP G-Suite server
Connect to it using the chuk-mcp client
Test various tools like Gmail message listing and Calendar event retrieval
The environment file should contain the following variables:
GSUITE_CREDENTIALS_JSON- Base64 encoded JSON credentialsGOOGLE_ACCOUNT_EMAIL- Your Google account emailGOOGLE_PROJECT_ID- Your Google Cloud project IDGOOGLE_CLIENT_ID- Your OAuth client IDGOOGLE_CLIENT_SECRET- Your OAuth client secret
Both types of E2E tests are excluded from CI pipelines and should only be run locally with valid credentials.
E2E Test Execution Guide
This project implements end-to-end (E2E) tests using real Google accounts. You can run the E2E tests using the following steps.
Prerequisites
To run E2E tests, you need:
A
.env.localfile with the following environment variables:GSUITE_CREDENTIALS_JSON: Base64 encoded Google credentialsGOOGLE_ACCOUNT_EMAIL: Google account email for testingGOOGLE_PROJECT_ID: Google project IDGOOGLE_CLIENT_ID: Google client IDGOOGLE_CLIENT_SECRET: Google client secret
E2E test dependencies installed:
uv pip install -e ".[e2e]"Test Execution Commands
Run all E2E tests:
dotenvx run -f .env.local -- uv run make mcp-all-e2e-testsRun tests for individual services:
# Gmail tests
dotenvx run -f .env.local -- uv run make mcp-e2e-tests
# Google Calendar tests
dotenvx run -f .env.local -- uv run make mcp-google-e2e-tests
# Google Drive tests
dotenvx run -f .env.local -- uv run make mcp-gdrive-e2e-tests
# Google Tasks tests
dotenvx run -f .env.local -- uv run make mcp-tasks-e2e-tests
# Google Contacts tests
dotenvx run -f .env.local -- uv run make mcp-contacts-e2e-testsImportant Notes
E2E tests access real Google accounts, so be careful not to affect production environments
E2E tests are automatically skipped in CI environments
Temporary authentication files are created during test execution but are automatically deleted afterward
Available Tools
35 toolsarchive_gmail_messageA
Archive a Gmail message (remove from inbox).
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| message_id | Yes | The ID of the Gmail message to archive. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains the primary effect ('remove from inbox') but does not disclose whether the message is still accessible via labels, whether the action is reversible, or any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with 8 words, conveying the essential information with zero waste. It is efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with two required parameters and no output schema, the description provides sufficient context. It specifies the input (user_id, message_id) and the effect (remove from inbox). No additional information seems necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are described in the schema. The description adds minimal value beyond the schema, as it repeats the action context but does not provide additional formatting or usage details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('archive') and the resource ('Gmail message'), with a parenthetical clarification ('remove from inbox'). It distinguishes from siblings like 'batch_modify_gmail_messages' and 'mark_gmail_message_read' by specifying the exact outcome.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., 'batch_modify_gmail_messages'). The use case is implied by the action, but no when-not or alternative mentions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_modify_gmail_messagesA
Modify labels on multiple Gmail messages in a single batch request (max 1000).
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| message_ids | Yes | ||
| add_label_ids | No | Label IDs to add to all messages. | |
| remove_label_ids | No | Label IDs to remove from all messages. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions 'modify labels' but does not clarify side effects (e.g., merging vs overwriting labels) or required permissions. It notes a max of 1000 messages, which is a constraint, but lacks details on failure modes, idempotency, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 12 words, front-loading the core action ('Modify labels on multiple Gmail messages') and including a key constraint. Every word serves a purpose; no superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and the presence of sibling tools for single-message modification, the description does not explain return values or error handling. It lacks information on how the batch result is returned. The constraint of 1000 messages is useful, but overall completeness is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (75%), with descriptions for 3 of 4 parameters. The description adds no additional meaning beyond what the schema already provides. For high coverage, a baseline of 3 is appropriate; the description does not 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 explicitly states 'Modify labels on multiple Gmail messages in a single batch request (max 1000)', clearly identifying the verb (modify), resource (multiple Gmail messages), and key constraint (batch with size limit). It distinguishes from siblings like 'modify_gmail_message' (single message) and 'archive_gmail_message' (specific label action).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies batch usage but does not explicitly guide when to use this tool versus alternatives like 'modify_gmail_message' for single messages or other label modification tools. No exclusions or specific context are provided; the 'batch' hint is implicit but insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_get_gmail_emailsA
Retrieves multiple Gmail email messages by their IDs in a single request, including bodies and attachment metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| email_ids | Yes | List of Gmail message IDs 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. It discloses that the tool retrieves bodies and attachment metadata, which is helpful, but does not address potential side effects (e.g., marking as read) or limitations (e.g., rate limits, maximum IDs).
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 of 14 words that conveys the core functionality without any 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 bulk retrieval tool, the description is adequate but lacks details on output format, error handling, or limits. It mentions including bodies and attachment metadata but does not clarify how to access actual attachment files, which may require downstream tools like download_drive_file.
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 adequately. The description adds context about including bodies and attachment metadata, which gives insight into the output but does not significantly enhance parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves multiple Gmail email messages by IDs, including bodies and attachment metadata, distinguishing it from siblings like get_email_details (single message) and query_gmail_emails (search).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for bulk retrieval via 'by their IDs in a single request' but does not explicitly state when to use over alternatives like get_email_details for single messages or mention any prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_save_gmail_attachmentsB
Save multiple Gmail attachments to disk by their message IDs and attachment IDs in a single request.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| attachments | Yes | List of attachment information dictionaries. Each dictionary should have message_id, attachment_id, and save_path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description should cover behavioral aspects. It only mentions 'single request' but omits details like authentication, overwrite behavior, directory creation, or success indicator.
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?
Single sentence with clear action and scope, no unnecessary words. Efficiently conveys 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?
Missing output schema and behavioral details (return value, error handling) for a file-saving operation. Adequate for purpose but incomplete for full agent decision-making.
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 baseline is 3. Description adds minimal value beyond schema, except noting dictionary keys (message_id, attachment_id, save_path) which schema allows additional properties.
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 'Save multiple Gmail attachments to disk' specifying the verb and resource, and distinguishes from siblings like 'bulk_save_gmail_attachments_to_drive' by indicating 'to disk' instead of Drive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for bulk saving to disk but lacks explicit guidance on when to use vs alternatives (e.g., singular version or Drive-saving versions). No when-not or alternative tool mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk_save_gmail_attachments_to_driveB
Save multiple Gmail attachments to Google Drive in a single request.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| attachments | Yes | List of attachment information dictionaries. Each should have message_id and part_id, and optionally folder_id and rename fields. Example: [{'message_id': 'abc123', 'part_id': '1', 'rename': 'invoice.pdf'}] | |
| folder_id | No | Default Google Drive folder ID to save attachments to if not specified per attachment. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only states the basic action and batch nature, but omits critical details like required permissions, rate limits, partial failure handling, or whether it overwrites existing files. This is insufficient for a batch mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that is front-loaded with the key action. No unnecessary words; every part 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?
Given the complexity (3 params, no output schema, no annotations), the description is incomplete. It lacks information on return values, error scenarios, and behavioral guarantees needed for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds minimal context (e.g., 'in a single request'), but does not significantly enhance understanding beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'save' and the resource 'multiple Gmail attachments to Google Drive in a single request.' It effectively distinguishes from sibling tools like 'save_gmail_attachment_to_drive' (single) by specifying 'multiple' and 'in a single request.'
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 vs alternatives like 'bulk_save_gmail_attachments' or 'save_gmail_attachment_to_drive.' It lacks prerequisites, exclusions, or context for selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy_drive_fileB
Create a copy of a file in Google Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| file_id | Yes | ID of the file to copy. | |
| new_name | No | New name for the copied file. If not specified, the original name will be used. | |
| parent_folder_id | No | ID of the parent folder for the copy. If not specified, the copy will be in the same folder as the original. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only says 'create a copy' but does not disclose behavioral traits like permission preservation, file size limits, or whether comments/revisions are copied.
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?
Very concise, single sentence, no fluff. However, the brevity sacrifices useful information that would help the 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?
For a file copy operation with no output schema, the description is incomplete. It lacks details on return value, error conditions, permission requirements, and how the copy behaves regarding ownership or sharing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description adds no additional meaning beyond the schema descriptions, which already explain each parameter 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?
Description clearly states 'Create a copy of a file in Google Drive', which is a specific verb+resource. It distinguishes from sibling tools like delete, move, rename.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. With many Drive sibling tools (e.g., move, rename), the description should indicate scenarios for copying vs other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_calendar_eventB
Create a new event in a specified calendar.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| calendar_id | Yes | The ID of the calendar to add the event to (use 'primary' for the primary calendar). | |
| summary | Yes | The title or summary of the event. | |
| start_datetime | Yes | Start date/time in ISO 8601 format (e.g., '2024-04-15T10:00:00Z' or '2024-04-15' for all-day). | |
| end_datetime | Yes | End date/time in ISO 8601 format (e.g., '2024-04-15T11:00:00Z' or '2024-04-16' for all-day). | |
| description | No | Optional description or details for the event. | |
| location | No | Optional location for the event. | |
| attendees | No | Optional list of attendee email addresses. | |
| timezone | No | IANA timezone name (e.g., 'America/Los_Angeles'). Defaults to UTC if omitted. | |
| transparency | No | Event visibility: 'transparent' (show as free) or 'opaque' (show as busy). | |
| reminders | No | Reminder config, e.g. {"useDefault": false, "overrides": []} to disable all reminders. | |
| color_id | No | Google Calendar color ID (1-11). | |
| recurrence | No | List of RRULE strings, e.g. ["RRULE:FREQ=WEEKLY;BYDAY=MO"]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavioral traits. Only says 'create' but does not mention permissions, side effects, or success response. Lacks details on event creation 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?
One sentence, no unnecessary words or repetition. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has many parameters and no output schema. Description is minimal and does not explain return values, confirmation, or constraints like timezone handling. Incomplete given 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?
Schema coverage is 100%, so baseline is 3. Description does not add extra meaning beyond parameter names and schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (create), resource (calendar event), and context (specified calendar). Distinguishes from sibling tools like update_calendar_event and delete_calendar_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 on when to use this tool vs alternatives like update_calendar_event. Does not mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_drive_folderB
Create a new folder in Google Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| folder_name | Yes | Name of the folder to create. | |
| parent_folder_id | No | ID of the parent folder. If not specified, folder will be created in the Drive root. |
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 fails to mention whether creation is idempotent, what happens if a folder with the same name exists, or any permission requirements. The description is too minimal to convey behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no extraneous words. While it could benefit from additional context, it is efficiently structured and front-loaded. Every word earns its place, though more detail would improve utility without sacrificing 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?
The tool has three parameters, no output schema, and moderate complexity. The description does not mention the return value (e.g., folder ID), error conditions, or side effects. Given the lack of output schema and annotations, the description is insufficient for complete understanding of the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters with descriptions, achieving 100% schema coverage. The tool description does not add meaningful information beyond what the schema already provides, so a baseline of 3 is appropriate. The user_id description has a trailing 'Choose from: ' but no enumeration, which is a minor gap but schema still explains it.
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 the resource ('a new folder in Google Drive'), distinguishing it from sibling tools like delete_drive_folder or rename_drive_folder. The verb and object are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 creating files or using existing folders. It does not specify prerequisites or exclusion criteria, leaving the agent to infer context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_gmail_draftC
Create a draft email in Gmail.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| to | Yes | Email address of the recipient. | |
| subject | Yes | Subject line of the email. | |
| body | Yes | Body content of the email. | |
| cc | No | Optional list of email addresses to CC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fails to disclose important behaviors like that the email is only saved as a draft (not sent), required permissions, or any side effects. The single sentence does not add transparency beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, one sentence with no fluff. However, it could be slightly more structured to include key details. Still, it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 5 parameters (4 required) and no output schema, the description is insufficient. It does not explain what the tool returns or any post-creation behavior. A more complete description would include return value or draft status.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add any meaning beyond the schema; each parameter already has a description in the schema. No additional 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 a draft email') and the resource ('in Gmail'). It is specific and distinct from siblings like 'create_gmail_reply' or 'delete_gmail_draft', though it does not explicitly differentiate.
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 (e.g., 'create_gmail_reply' for replies, or 'send email' if immediate sending is intended). The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_gmail_replyC
Create a reply to an existing Gmail email message.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| original_message_id | Yes | The ID of the original email message to reply to. | |
| reply_body | Yes | The body text of the reply. | |
| send | No | If True, sends the reply immediately. If False, saves as draft. | |
| cc | No | Optional list of email addresses to CC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only says 'Create a reply' but does not mention that the tool can either send immediately or save as draft based on the 'send' parameter. It also does not describe side effects (e.g., modifying sent mail) or authentication requirements. The behavioral transparency is poor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the key purpose. It is concise and to the point, with no unnecessary words. However, it could be restructured or supplemented with a brief example of usage.
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 there is no output schema, the description should clarify what the tool returns (e.g., the ID of the created reply/draft). It also lacks information about error handling or limitations. The tool has 5 parameters and some complexity (send/draft), but the description provides no completeness beyond the basic purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter having a description. The tool description does not add any additional meaning beyond what is already in the schema. The baseline of 3 is appropriate since the schema already provides adequate parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'reply to an existing Gmail email message'. It specifies the scope (reply to existing message) but does not explicitly differentiate from the sibling tool 'create_gmail_draft', which might create a new draft or a reply draft. The ambiguity reduces clarity slightly.
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 (e.g., 'create_gmail_draft' vs 'send' parameter). There are no mentioned prerequisites like having the original message ID. The description offers no context for selection among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_calendar_eventC
Delete an event from a calendar.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| calendar_id | Yes | The ID of the calendar containing the event (use 'primary' for the primary calendar). | |
| event_id | Yes | The unique ID of the event to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It states 'Delete an event' but does not explain whether the deletion is permanent, reversible, or what happens to attendees. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one sentence, but it could be more informative without being verbose. It is not overly long, but it lacks structure and depth, making it lean toward underspecification rather than effective 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 has three required parameters and sibling tools for related actions, the description is incomplete. It does not mention what happens after deletion (e.g., no return value), nor does it provide any usage context. The simplicity of the operation does not excuse the lack of basic behavioral information.
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 already describes all three parameters (user_id, calendar_id, event_id) with clear descriptions. The tool description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate given 100% 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 'an event from a calendar', which distinguishes it from sibling tools like 'create_calendar_event' or 'update_calendar_event'. However, it does not specify the scope (e.g., permanent vs. trash), which would enhance clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. For example, it does not mention that deletion is irreversible or that the event must exist. No context about prerequisites or consequences is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_drive_fileC
Delete a file from Google Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| file_id | Yes | ID of the file to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'Delete' without explaining permanence, authorization needs, or effects on shared files. Minimal behavioral disclosure for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no redundant information. Efficient and to the point.
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 too minimal. It fails to clarify key aspects like permanence, required permissions, or distinction from trash operations. Incomplete for a deletion 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 coverage is 100%, so the description adds no extra meaning beyond what the schema already provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a file from Google Drive,' specifying the verb and resource. It distinguishes from siblings like trash_drive_file and untrash_drive_file by implying permanent removal, though not explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like trash_drive_file or delete_drive_folder. No prerequisites or context provided for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_drive_folderB
Delete a folder from Google Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| folder_id | Yes | ID of the folder to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It fails to disclose whether deletion is permanent or reversible, and does not mention cascading effects on folder contents or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundant information. However, it may be too brief, missing critical behavioral context, but still earns points for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description provides minimal context. Does not differentiate from siblings or explain return values or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds no extra meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (folder from Google Drive), distinguishing it from siblings like delete_drive_file and trash_drive_folder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as trash_drive_folder. Does not mention prerequisites or context for permanent deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_gmail_draftB
Delete a draft email from Gmail.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| draft_id | Yes | The unique ID of the draft to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the core action without disclosing behavioral traits like whether deletion is permanent, reversible, or requires specific permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that efficiently conveys the tool's purpose with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with no output schema and no annotations, the description is minimally adequate but lacks details on success/failure outcomes or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described in the schema. The description adds no extra meaning beyond what the schema already provides, so baseline 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 clearly states the action (delete), resource (draft email), and context (Gmail), distinguishing it from sibling tools like create_gmail_draft or modify tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over alternatives, such as trashing or modifying drafts. The description provides no context about prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_drive_fileA
Download the content of a Google Drive file by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| file_id | Yes | The unique ID of the Google Drive file to download. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description should disclose behavioral details. It only states the action without mentioning size limits, authentication needs, or whether it triggers downloads client-side vs server-side.
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?
Single sentence, no fluff, perfectly concise for the simple action described.
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?
While the tool is simple, the description omits details about return format (binary data), error handling, and potential size limits. It is minimally viable but not complete for an agent to handle all scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear param descriptions. The tool description adds no extra meaning beyond the schema, meeting baseline but not improving 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 tool downloads a Google Drive file by ID, with a specific verb and resource. It distinguishes from sibling 'get_drive_file' which likely retrieves metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use vs alternatives like get_drive_file or copy_drive_file. The description implies usage for downloading content, but lacks when-not-to-use or prerequisite context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_drive_fileB
Get metadata for a specific Google Drive file by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| file_id | Yes | The unique ID of the Google Drive file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full burden. It states 'Get metadata' but does not explicitly confirm it is read-only, nor does it disclose any behavioral traits like permissions required, error cases, or side effects. Minimal disclosure beyond the obvious action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, no waste. Clearly front-loaded with the action and resource. 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?
No output schema, so description should explain what metadata is returned (e.g., name, type, size). It does not. Also lacks prerequisites like file existence or access rights. Incomplete for a get 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?
Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema: 'by its ID' mirrors the file_id parameter, and user_id is described as email in both. No added value beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', resource 'metadata for a specific Google Drive file', and method 'by its ID'. It distinguishes from siblings like 'list_drive_files' (list) and 'download_drive_file' (download).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. For example, it does not mention that 'download_drive_file' should be used for content retrieval. The description implies usage for metadata retrieval but provides no exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_email_detailsB
Get the full details of a specific Gmail email by its ID, including body and attachment metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| email_id | Yes | The unique ID of the Gmail email message. | |
| body_offset | No | Starting position for body text (0-based). Use with body_limit for pagination. | |
| body_limit | No | Maximum number of characters to return for body text. Default 5000. Use 0 to exclude body entirely. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully reveal behavioral traits. It states that body and attachment metadata are included but omits other fields (headers, labels, etc.), error handling, auth requirements, or performance characteristics.
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?
A single sentence that efficiently conveys the tool's purpose. No superfluous words, but slightly more detail (e.g., return format) could fit without bloat.
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?
No output schema is provided, so the description must specify the return format. It mentions 'full details' but does not list what fields are included (headers, labels, etc.), leaving ambiguity for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with clear descriptions for each parameter (user_id, email_id, body_offset, body_limit). The description adds context about body and attachments but does not enhance parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), identifies the resource ('full details of a specific Gmail email'), and mentions key outputs ('body and attachment metadata'), clearly differentiating from sibling tools like 'query_gmail_emails' or 'bulk_get_gmail_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 (e.g., 'bulk_get_gmail_emails' for multiple emails, 'query_gmail_emails' for search). No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gmail_labelsA
List all available Gmail labels for the user.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides minimal behavioral detail; it states the tool lists labels but does not disclose whether it is read-only, response format, or potential error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence efficiently communicates core purpose with no extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-param tool without output schema, the description is adequate but does not specify return value structure (e.g., label IDs and names), limiting completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (parameter has description), so baseline is 3; the tool description adds no parameter info beyond the schema, but the schema's description is incomplete ('Choose from: '), yet this dimension focuses on the tool description's addition.
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 all available Gmail labels for the user' uses a specific verb (list) and resource (Gmail labels) with clear scope, effectively distinguishing it from sibling tools which focus on messages, drafts, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives; while no competing label tools exist, the description omits context such as prerequisites (e.g., authentication) or cases where modifying labels might be needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_calendar_eventsB
List events from a specific calendar within a given time range.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| calendar_id | Yes | The ID of the calendar to query (use 'primary' for the primary calendar). | |
| start_time | Yes | Start time in ISO 8601 format (e.g., '2024-04-15T00:00:00Z'). | |
| end_time | Yes | End time in ISO 8601 format (e.g., '2024-04-16T00:00:00Z'). | |
| max_results | No | Maximum number of events (1-2500, default 100) | |
| query | No | Optional text query to filter events. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits like read-only nature, pagination, or ordering. The description is insufficient for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no unnecessary words, but it could be slightly expanded to include key details without becoming verbose.
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?
No output schema, and description lacks details on return format, event ordering, or handling of large result sets. For a listing tool with 6 parameters, 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 schema already documents parameters. The description does not add significant meaning beyond what the schema provides, meeting baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists events from a specific calendar within a time range, using specific verb and resource. It distinguishes from sibling tools that create, update, or delete events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, such as query_gmail_emails or list_calendars. No context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_calendarsB
List all calendars the user has access to.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account to use. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It merely says 'list all calendars' without mentioning any side effects, authorization needs, rate limits, or what happens if no calendars exist. The description is too minimal to inform an agent about behavioral outcomes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words. It is front-loaded with the action and resource, making it efficient 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 there is no output schema, the description should indicate what the response contains (e.g., list of calendar names, IDs, colors). It fails to provide this context, leaving the agent uncertain about the return format. This is inadequate for a simple list 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 coverage is 100% with a clear parameter description in the schema ('The EMAIL of the Google account to use'). The tool description adds no additional meaning beyond what the schema already provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('list') and resource ('calendars') with clear scope ('the user has access to'), distinguishing it from sibling tools like 'list_calendar_events' which list events, not calendars.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. While the purpose is clear, there are no explicit hints about prerequisites, when it's appropriate, or when to choose another tool among the many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_drive_filesB
List files in the user's Google Drive with optional filtering by search query.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| query | No | Drive search query (e.g., 'name contains "report"', 'mimeType="application/pdf"') | |
| limit | No | Maximum number of files (1-1000, default 100) | |
| order_by | No | Sort order (e.g., 'name', 'modifiedTime desc') - default is 'modifiedTime desc' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description lacks behavioral details such as default behavior, permissions, rate limits, or response format. Only states basic listing functionality.
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?
Single sentence, 14 words, front-loaded with essential action and resource. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple listing tool but lacks details on pagination, ordering defaults, and return structure. No output schema, so description should compensate, but it does not.
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 covers 100% of parameters, so baseline is 3. Description does not add meaningful information beyond what is in the schema, such as explaining interaction between 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?
Clear verb 'list', specific resource 'files in user's Google Drive', and mentions optional filtering. Distinguishes from sibling tools like list_drive_folders and get_drive_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like list_drive_folders or search tools. Optional filtering is mentioned but no exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_drive_foldersB
List folders in the user's Google Drive with optional filtering.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| query | No | Additional search query to combine with folder filter (e.g., 'name contains "reports"') | |
| limit | No | Maximum number of folders (1-1000, default 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is very brief and does not disclose behavioral traits beyond the basic action. With no annotations provided, the description should cover aspects like recursion (top-level only or nested), shared folders, rate limits, or authentication requirements. None are mentioned.
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 short sentence, which is concise. However, given the lack of annotations and multiple parameters, it could be expanded to include more context without becoming verbose. Still, it is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description omits important context such as what the return value looks like (list of folder objects or just IDs), pagination behavior (despite a limit parameter), and how to handle potential errors. With no output schema, the description should provide more detail for full utility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for all three parameters (user_id, query, limit). The description adds no extra meaning beyond the schema; 'optional filtering' is a vague restatement of the query parameter. Baseline 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 clearly states the action ('List'), the resource ('folders'), and the scope ('in the user's Google Drive'). It also mentions optional filtering, which hints at the query parameter. This distinguishes it from sibling tools like list_drive_files (which lists all files) and create/delete folder tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it does not state that to list all files (including non-folders), one should use list_drive_files instead. The agent must infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_gmail_message_readB
Mark a Gmail message as read.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| message_id | Yes | The ID of the Gmail message to mark as read. |
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 only states the action without mentioning side effects, error conditions, permissions, or idempotency, offering minimal transparency beyond the basic 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 sentence with no wasted words, efficiently 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?
For a simple mutation tool with no output schema and high schema coverage, the description is adequate but missing behavioral context like error scenarios or return values. Given no annotations, it could provide more completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. The tool description adds no additional meaning beyond the schema. Baseline 3 is appropriate as the schema already documents the parameters 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 'Mark a Gmail message as read' uses a specific verb ('mark') and resource ('Gmail message as read'), clearly distinguishing it from sibling tools like archive_gmail_message which moves messages out of the inbox.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as modifying labels or archiving. The description does not specify prerequisites or context, leaving the agent without explicit usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modify_gmail_messageB
Modify labels on a Gmail message (add or remove labels).
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| message_id | Yes | The ID of the Gmail message to modify. | |
| add_label_ids | No | Label IDs to add to the message. | |
| remove_label_ids | No | Label IDs to remove from the message. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states the basic action without disclosing side effects (e.g., whether labels must exist, sync behavior, error cases). For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence that front-loads the purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no output schema, and no annotations, the description is too minimal. It lacks context about how user_id must be an email, how to obtain label IDs, or any prerequisites. Completeness is low.
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?
All four parameters have descriptions in the schema (100% coverage). The description adds no extra meaning beyond what the schema already provides for user_id, message_id, add_label_ids, and remove_label_ids.
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 'modify' and the specific resource 'labels on a Gmail message', with explicit mention of add or remove actions. This distinguishes it from sibling tools like archive (adds a system label) or batch_modify (multiple messages).
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 guidelines are provided about when to use this tool versus alternatives like batch_modify_gmail_messages or archive_gmail_message. There is no mention of prerequisites, such as needing to retrieve label IDs first via get_gmail_labels.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_drive_fileB
Move a file to a different folder in Google Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| file_id | Yes | ID of the file to move. | |
| new_parent_id | Yes | ID of the destination folder. | |
| remove_previous_parents | No | Whether to remove the file from its current folders. If False, the file will be in multiple folders. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states the basic action, omitting important behavioral details like whether the file is removed from previous parents (though hinted by a parameter), permissions required, or side effects. The description is too minimal for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the key action and resource. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (moving a file), the description is minimally adequate. However, it lacks details on return values (no output schema), error scenarios, and behavioral nuances that would be helpful for an AI agent.
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 baseline is 3. The description adds no parameter information beyond what the schema provides. The schema already clearly describes each parameter.
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 (move) and resource (file) with destination (different folder). It distinguishes from sibling tools like copy_drive_file and move_drive_folder, which operate on different resources or actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as copy_drive_file (copy vs move) or move_drive_folder (moving folders instead of files). The description does not specify prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_drive_folderB
Move a folder to a different location in Google Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| folder_id | Yes | ID of the folder to move. | |
| new_parent_id | Yes | ID of the destination folder. | |
| remove_previous_parents | No | Whether to remove the folder from its current parent. If False, the folder will be in multiple locations. |
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 does not disclose behavioral traits such as permission requirements, reversibility, or the effect of the 'remove_previous_parents' parameter. The minimal description leaves significant behavior undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence of nine words. Every word is meaningful, and there is no wasted text. It is appropriately concise for a straightforward operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite good schema coverage, the description lacks essential context: no output schema is specified, no prerequisites (e.g., how to obtain folder IDs), no error conditions, and no explanation of the dual-parenting behavior controlled by 'remove_previous_parents'. The tool is only partially documented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage with clear descriptions for each parameter (user_id, folder_id, new_parent_id, remove_previous_parents). The tool description adds no extra meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Move a folder to a different location in Google Drive' uses a specific verb ('Move') and clearly identifies the resource ('folder') and the action. It differentiates from sibling tool 'move_drive_file' by specifying 'folder', making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'move_drive_file' for files, nor does it mention prerequisites (e.g., needing folder IDs). No when-not-to-use or context for choosing this action is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_gmail_emailsB
Query Gmail emails based on an optional search query. Returns emails in reverse chronological order (newest first).
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| query | No | Gmail search query (e.g., 'is:unread', 'from:example@gmail.com') | |
| max_results | No | Maximum number of emails (1-500, default 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the ordering (reverse chronological) but does not explicitly state that the tool is read-only (non-destructive) or mention any other behaviors like pagination or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action, and no wasted words. The structure efficiently conveys the essential purpose and ordering detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple query tool but lacks context on pagination, how to select the user_id (only partially described in schema), and does not mention that it returns metadata (no output schema). The absence of annotations leaves some 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 all parameters (user_id, query, max_results). The description adds no new parameter information beyond 'optional search query', achieving only the baseline 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 clearly states the tool queries Gmail emails with an optional search query and specifies reverse chronological order. However, it does not differentiate from siblings like bulk_get_gmail_emails or get_email_details, which may also retrieve emails but by different criteria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as bulk_get_gmail_emails or get_email_details. The context for choosing this tool is implied by the name but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_drive_fileC
Rename a file in Google Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| file_id | Yes | ID of the file to rename. | |
| new_name | Yes | New name for the file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behaviors, but it only states the basic action. No details on permissions, side effects, or allowed characters for new_name.
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?
Extremely concise single sentence with no fluff, but at the cost of missing useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple rename tool with full schema coverage, the description is minimally adequate, but lacks completeness in terms of usage context and behavioral details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with adequate descriptions. The tool description adds no further semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (rename) and resource (file in Google Drive), but does not differentiate from sibling tools like rename_drive_folder or move_drive_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_drive_folderB
Rename a folder in Google Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| folder_id | Yes | ID of the folder to rename. | |
| new_name | Yes | New name for the folder. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only states 'rename', implying modification without detailing permissions, effects (e.g., whether child items are affected), or irreversibility. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no fluff, but it omits essential details. While concise, it sacrifices completeness, resulting in an average score.
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?
No output schema, no annotations, and no return value explanation. For a mutation tool with three required parameters, the description fails to cover permissions, error handling, or confirmation of success.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with all parameters described. The description adds no additional parameter meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Rename' and the resource 'a folder in Google Drive'. It effectively distinguishes from sibling tools like rename_drive_file (file vs folder) and move_drive_folder (rename vs move).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. For example, it doesn't specify that it only works for folders, not files, or mention prerequisites like folder ownership.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_gmail_attachment_to_driveB
Save a Gmail attachment to Google Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| message_id | Yes | The ID of the Gmail message containing the attachment. | |
| part_id | Yes | The part ID of the attachment to save (e.g., '1', '0.1'). This is more stable than attachment_id and should be preferred. | |
| folder_id | No | Optional Google Drive folder ID to save to. If not provided, saves to root. | |
| rename | No | Optional new filename for the attachment. If not provided, uses original filename. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It fails to mention permissions needed, whether the email is modified, if files are overwritten, or any side effects. The description is too brief for a cross-service 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?
One sentence with zero wasted words. It is front-loaded and appropriately sized for a simple action, though it could benefit from more detail.
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 5 parameters, no output schema, and no annotations, the description is insufficient. It does not explain return values, error handling, or confirm the operation. More context is needed for a tool that integrates two services.
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 parameters. The tool description does not add extra meaning beyond what's in the schema, so the baseline 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 'Save a Gmail attachment to Google Drive' clearly states the verb (save) and resources (Gmail attachment, Google Drive), distinguishing it from siblings like bulk_save_gmail_attachments and download_drive_file.
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, no prerequisites (e.g., need to have already fetched the message), and no exclusions. It simply states what it does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trash_drive_fileA
Move a file to Google Drive trash (soft delete).
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| file_id | Yes | ID of the file to move to trash. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present, so description carries full burden. It discloses the key behavioral trait (soft delete), implying reversibility, but does not mention authorization, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 11 words, no fluff, perfectly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two string parameters and no output schema, the description covers all needed context: what it does, that it's a soft delete, and implicitly the parameters are clear from schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds no further meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (move to trash) and resource (file), with explicit mention of 'soft delete' which distinguishes it from permanent deletion siblings like delete_drive_file.
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?
Usage is implied by describing the operation as soft delete, but no explicit guidance on when to use this vs alternatives (e.g., delete_drive_file, untrash_drive_file) is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trash_drive_folderB
Move a folder to Google Drive trash (soft delete).
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| folder_id | Yes | ID of the folder to move to trash. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It mentions 'soft delete' but lacks details on reversibility, permissions needed, or impact on shared folders. More context is needed for a mutation action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It front-loads the action and resource. However, for a simple tool it is acceptable, but structure could be improved slightly.
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 simple API (2 required params, no output schema), the description provides minimal context. It does not explain post-trash behavior, recovery options, or prerequisites. Adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters. The description does not add extra meaning beyond the schema, which already explains the parameters adequately. Baseline 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 clearly states the verb 'Move' and the resource 'folder to Google Drive trash (soft delete)'. It distinguishes from siblings like 'delete_drive_folder' which implies hard delete, and 'trash_drive_file' which targets 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 implies usage for soft-deleting folders, but does not provide explicit when-to-use or alternatives. Sibling tools like 'delete_drive_folder' and 'untrash_drive_file' exist but no guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
untrash_drive_fileB
Restore a file from Google Drive trash.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| file_id | Yes | ID of the file to restore from trash. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the basic action. It does not disclose behavioral traits such as whether the file is restored to its original location, permission requirements, or limitations (e.g., permanent deletion).
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 short sentence that is efficient and front-loaded. It could include more useful details without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no output schema, the description is adequate but lacks details about return values, failure cases, or prerequisites. It is sufficient for a basic 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 coverage is 100% and the input schema already describes both parameters. The description adds no extra meaning beyond the schema, meeting the baseline but not exceeding it.
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 (restore) and the resource (file from Google Drive trash), distinguishing it from the sibling tool 'trash_drive_file' which does the opposite.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when recovering a deleted file but provides no explicit when-not-to-use or alternative tools. The context of sibling tools offers some inference, but lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_calendar_eventA
Update an existing event in a calendar. Only provided fields will be updated.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| calendar_id | Yes | The ID of the calendar containing the event (use 'primary' for the primary calendar). | |
| event_id | Yes | The unique ID of the event to update. | |
| summary | No | New title/summary of the event. | |
| start_time | No | New start time in RFC3339 format (e.g., '2024-01-15T09:00:00-05:00'). | |
| end_time | No | New end time in RFC3339 format (e.g., '2024-01-15T10:00:00-05:00'). | |
| location | No | New location of the event. | |
| description | No | New description of the event. | |
| attendees | No | New list of attendee email addresses. This replaces the existing attendees. | |
| timezone | No | Timezone for the event (e.g., 'America/New_York', 'Asia/Tokyo'). | |
| transparency | No | Event visibility: 'transparent' (show as free) or 'opaque' (show as busy). | |
| reminders | No | Reminder config, e.g. {"useDefault": false, "overrides": []} to disable all reminders. | |
| color_id | No | Google Calendar color ID (1-11). | |
| recurrence | No | List of RRULE strings, e.g. ["RRULE:FREQ=WEEKLY;BYDAY=MO"]. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that only provided fields are updated, which is a key behavioral trait. However, it does not mention other important behaviors like replacement of attendees or reminders, though those are covered in parameter descriptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately conveys the tool's purpose and a key behavior (partial update). No superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 14 parameters and no output schema, the description is minimal. It covers the core update behavior but lacks information about return values or potential side effects. The schema descriptions are thorough, but the tool description alone is somewhat incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since schema description coverage is 100%, the baseline is 3. The tool description does not add parameter-specific semantics beyond the general partial update statement; the schema already documents each parameter thoroughly.
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 the resource 'an existing event in a calendar', which is specific and distinct from sibling tools like create_calendar_event or delete_calendar_event. The partial update behavior is also noted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to modify an existing event, but does not explicitly state when to use over alternatives or exclude certain cases. No mention of prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_drive_fileC
Upload a file to Google Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The EMAIL of the Google account. Choose from: | |
| file_path | Yes | Local path to the file to upload. | |
| parent_folder_id | No | ID of the parent folder. If not specified, file will be uploaded to the Drive root. | |
| mime_type | No | MIME type of the file. If not specified, it will be guessed from the file extension. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full behavioral burden. Only states 'Upload a file' but omits critical details: overwrite behavior, authentication requirements, return value, synchronicity. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise (one sentence) but at the cost of substance. Could be restructured to include key behavioral info without losing conciseness. Earns its place as a statement of purpose but not much more.
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?
No output schema, so description should explain return value (e.g., file ID). Does not mention that upload requires local file path, or that parent_folder_id and mime_type are optional. Incomplete for a 4-parameter tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with adequate descriptions for all 4 parameters. Description 'Upload a file to Google Drive.' adds no additional semantic value beyond schema. Baseline 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?
Clear verb and resource: 'Upload a file to Google Drive.' Distinct from siblings like copy, delete, download, and even save_gmail_attachment_to_drive which handles email attachments not local files. Could be more explicit about 'local file upload' but adequate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. No mention of prerequisites, when not to use, or comparisons with other upload-like tools (e.g., bulk_save_gmail_attachments_to_drive). Single sentence with no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
35 tool updates
v1.1.0- First observed
archive_gmail_message - First observed
batch_modify_gmail_messages - First observed
bulk_get_gmail_emails - First observed
bulk_save_gmail_attachments - First observed
bulk_save_gmail_attachments_to_drive - First observed
copy_drive_file - First observed
create_calendar_event - First observed
create_drive_folder - First observed
create_gmail_draft - First observed
create_gmail_reply - First observed
delete_calendar_event - First observed
delete_drive_file - First observed
delete_drive_folder - First observed
delete_gmail_draft - First observed
download_drive_file - First observed
get_drive_file - First observed
get_email_details - First observed
get_gmail_labels - First observed
list_calendar_events - First observed
list_calendars - First observed
list_drive_files - First observed
list_drive_folders - First observed
mark_gmail_message_read - First observed
modify_gmail_message - First observed
move_drive_file - First observed
move_drive_folder - First observed
query_gmail_emails - First observed
rename_drive_file - First observed
rename_drive_folder - First observed
save_gmail_attachment_to_drive - First observed
trash_drive_file - First observed
trash_drive_folder - First observed
untrash_drive_file - First observed
update_calendar_event - First observed
upload_drive_file
TDQS
Each tool targets a specific action and resource, with clear differentiation between single/batch operations and across services (Gmail, Drive, Calendar).
Tools follow a consistent 'verb_service_noun' pattern, with occasional prefixes like 'batch_' or 'bulk_' that are uniformly applied.
With 35 tools covering three major Google services, the count is well-scoped; each tool serves a distinct purpose without unnecessary duplication.
While Drive and Calendar coverage is thorough, Gmail lacks a send email tool, and there is no tool to manage labels beyond modifying messages, leaving notable gaps for core email workflows.
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
A MCP server for Gmail that lets you search, read, and draft emails and replies.
MCP server for Nylas — read email, calendars, events and contacts, and send email or create events.
A MCP server that works with Google Calendar to manage event listing, reading, and updates.
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Gmail and Google Calendar using the MCP protocol, supporting multiple Google accounts, email management, and calendar operations through natural language.3632MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that seamlessly interacts with your Google Calendar, Gmail, Drive and so on.30MIT
- AlicenseNot gradedqualityDmaintenanceMCP server to interact with Google Gmail and Calendar APIs. Supports multiple accounts, email search and drafting, and calendar event management.MIT
- AlicenseNot gradedqualityAmaintenanceLocal MCP server for reading/sending email via Gmail and managing Google Calendar events, enabling an AI agent to handle email and calendar operations through natural language.MIT
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/tumf/fastmcp-gsuite'
If you have feedback or need assistance with the MCP directory API, please join our Discord server