Google Calendar and Meet MCP Server
Provides comprehensive calendar event management including listing calendars, creating/updating/deleting events, and managing guest permissions through Google Calendar API v3.
Utilizes Google Cloud Console for OAuth credential management, API enablement, and audit logging for enterprise deployments.
Enables advanced Google Meet space management, conference record tracking, participant monitoring, and artifact configuration (recording, transcription, smart notes) through Google Meet API v2.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Calendar and Meet MCP Servercreate a team meeting tomorrow at 2pm with auto-recording"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
š Google Meet MCP Server v3.0 - Production Ready
A production-ready enterprise Model Context Protocol (MCP) server for comprehensive Google Meet management through Google Calendar API v3 and Google Meet API v2. Features Docker containerization, Smithery deployment, direct token authentication, team security, and enterprise-grade TypeScript architecture with 23 fully validated tools.
šÆ Quick Start Options
šØ Smithery (Recommended)
Perfect for teams and individual users
One-click deployment with web interface
Automatic updates and health monitoring
š³ Docker
Production deployments with full containerization
Multi-stage builds optimized for size and security
Development and production configurations
āļø Manual Setup
Full control over installation and configuration
Development environments and custom deployments
Direct Node.js execution with TypeScript
š Manual Setup Guide
Related MCP server: Google Calendar MCP Server
š What's New in v3.0 - Production Ready Edition
šÆ NEW IN v3.0 - PRODUCTION FEATURES
š³ Docker Containerization
ā Multi-stage production builds - Optimized for size and security (<200MB)
ā Development and production configurations with Docker Compose
ā Health checks and monitoring - Container-native health endpoints
ā Security hardening - Non-root user, read-only filesystem
ā Volume management - Persistent data and credential handling
šØ Smithery Integration + Direct Token Auth
ā Direct token authentication - No file dependencies (CLIENT_ID, CLIENT_SECRET, REFRESH_TOKEN)
ā One-click deployment - Web interface for easy configuration
ā Backward compatibility - Still supports file-based OAuth credentials
ā Team-friendly setup - Individual credentials, shared project structure
ā Automatic health monitoring - Real-time server status and metrics
ā Cross-platform support - Windows, macOS, Linux compatibility
ā Configuration validation - Smart path handling and error detection
š”ļø Enhanced Security
ā Team security policies - Enterprise-grade credential management
ā Individual credential isolation - No shared secrets between users
ā Compliance monitoring - Automated security and rotation tracking
ā Audit logging - Google Cloud Console integration
ā Incident response - Documented procedures for security events
š Complete Documentation
ā User guides for all deployment methods - Smithery, Docker, Manual
ā Team onboarding procedures - Step-by-step for corporate environments
ā Troubleshooting and diagnostics - Common issues and automated solutions
ā Security best practices - Individual and team security policies
š Production Quality Metrics
Container Size: <200MB production image
Security Score: Non-root user, minimal attack surface
Documentation Coverage: 7 comprehensive guides (2000+ lines)
Deployment Options: 3 methods (Smithery, Docker, Manual)
Team Ready: Multi-user, enterprise security, compliance monitoring
šÆ Core Capabilities - Enhanced
Clear API Separation
š Google Calendar API v3 - Full calendar event management with guest permissions
š„ Google Meet API v2 (GA) - Space management, conference records, and participant tracking
Enterprise Features
š Auto-Transcription - Enable automatic meeting transcription
š§ Smart Notes - AI-generated meeting summaries with Gemini
š Attendance Reports - Generate detailed attendance tracking
š”ļø Meeting Moderation - Chat/presentation restrictions and controls
š Viewer Mode - Force participants to join as viewers by default
š¹ Auto-Recording - Enable automatic recording (manual activation required)
Advanced Space Management
šļø Google Meet Spaces - Direct space creation and configuration
š„ Participant Tracking - Access participant data and session information
š Access Controls - OPEN, TRUSTED, or RESTRICTED access types
āļø Artifact Configuration - Recording, transcription, and smart notes settings
š Installation & Deployment
šØ Smithery (Recommended for Teams)
Visit Smithery.ai
Click "Deploy Server"
Configure your Google credentials path
Start using in Claude Desktop
š Complete Smithery User Guide - Step-by-step for teams
š³ Docker (Recommended for Production)
# Quick start development
./scripts/docker-deploy.sh dev
# Production deployment
./scripts/docker-deploy.sh prod --backup --fresh
# View status
./scripts/docker-deploy.sh statusš Docker Deployment Guide - Complete containerization
āļø Manual Installation
# Clone the repository
git clone https://github.com/INSIDE-HAIR/google-meet-mcp-server.git
cd google-meet-mcp-server
# Install dependencies
npm install
# Setup OAuth credentials
npm run setupš Manual Setup Guide - Full control installation
š”ļø Security & Team Management
š Individual Security
Each user creates their own Google OAuth credentials
No shared credentials or tokens between team members
Secure file storage with proper permissions (chmod 600)
š Security Guide - Individual security practices
š„ Team Security
Comprehensive team onboarding procedures
Corporate Google Cloud project management
Credential rotation and compliance monitoring
š Team Security Guide - Enterprise team deployment
š§ Troubleshooting
Complete diagnostics and problem resolution
Common issues and solutions
Health check scripts and monitoring
š Troubleshooting Guide - Problem resolution
Usage
Development Mode (TypeScript with Hot Reload)
# Start server in development mode
npm run start
# Run setup in TypeScript mode
npm run setupProduction Mode (Compiled JavaScript)
# Build TypeScript to JavaScript
npm run build
# Run compiled server
npm run start:jsTesting
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Generate coverage report
npm run test:coverage
# Type checking only
npm run type-checkš ļø Available Tools (21 Total) - All Type-Safe & Validated
š Google Calendar API v3 Tools (6 tools)
1. calendar_v3_list_calendars ā
Validated
List all calendars available to the user.
Validation: No parameters required
2. calendar_v3_list_events ā
Validated
List upcoming calendar events with filtering options.
Validation: Date formats, max results (1-2500), calendar ID format
3. calendar_v3_get_event ā
Validated
Get detailed information about a specific calendar event.
Validation: Required event_id parameter
4. calendar_v3_create_event ā
Validated
Create a new calendar event with optional Google Meet conference.
Validation: Required fields, ISO date format, guest permissions, duration logic
Parameters:
summary(required): Event titlestart_time(required): ISO format start timeend_time(required): ISO format end timecreate_meet_conference(optional): Add Google Meetguest_can_invite_others(optional): Guest invitation permissionsguest_can_modify(optional): Guest modification permissionsguest_can_see_other_guests(optional): Guest visibility permissions
5. calendar_v3_update_event ā
Validated
Update an existing calendar event.
Validation: Required event_id, optional update fields, time validation
6. calendar_v3_delete_event ā
Validated
Delete a calendar event.
Validation: Required event_id parameter
š„ Google Meet API v2 Tools (15 tools)
7. meet_v2_create_space ā
Validated
Create a Google Meet space with advanced configuration.
Validation: Access type enum, boolean flags, restriction combinations
Parameters:
access_type: "OPEN" | "TRUSTED" | "RESTRICTED" (default: "TRUSTED")enable_recording: Enable automatic recording preparationenable_transcription: Enable automatic transcriptionmoderation_mode: "ON" | "OFF" meeting moderationchat_restriction: Chat permissions controlpresent_restriction: Presentation permissions control
8. meet_v2_get_space ā
Validated
Get details of a Google Meet space.
Validation: Space name format (spaces/{space_id})
9. meet_v2_update_space ā
Validated
Update configuration of a Google Meet space.
10. meet_v2_end_active_conference ā
Validated
End the active conference in a Google Meet space.
Validation: Space name format validation
11. meet_v2_list_conference_records ā
Validated
List conference records for historical meetings.
Validation: Filter format, page size limits (1-50)
12-21. Additional Meet API Tools ā All Validated
meet_v2_get_conference_record- Get specific conference detailsmeet_v2_list_recordings- List conference recordingsmeet_v2_get_recording- Get recording detailsmeet_v2_list_transcripts- List conference transcriptsmeet_v2_get_transcript- Get transcript detailsmeet_v2_list_transcript_entries- List transcript speech segmentsmeet_v2_get_participant- Get participant detailsmeet_v2_list_participants- List conference participantsmeet_v2_get_participant_session- Get session detailsmeet_v2_list_participant_sessions- List participant sessions
Validation Features:
Resource name format validation (conferenceRecords/{id}/recordings/{id})
Page size limits (1-1000 depending on endpoint)
Regex validation for all Google API resource identifiers
Smart defaults for pagination
MCP Configuration for Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"google-meet": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/google-meet-mcp-server/src/index.ts"],
"env": {
"G_OAUTH_CREDENTIALS": "/absolute/path/to/credentials.json"
},
"disabled": false
}
}
}Production Configuration (with compiled JS):
{
"mcpServers": {
"google-meet": {
"command": "node",
"args": ["/absolute/path/to/google-meet-mcp-server/build/index.js"],
"env": {
"G_OAUTH_CREDENTIALS": "/absolute/path/to/credentials.json"
},
"disabled": false
}
}
}šļø Enterprise Architecture
TypeScript Structure
google-meet-mcp-server/
āāā src/
ā āāā index.ts # Main MCP server (TypeScript)
ā āāā GoogleMeetAPI.ts # API wrapper (fully typed)
ā āāā setup.ts # OAuth setup (typed)
ā āāā types/ # Type system (921+ lines)
ā ā āāā google-apis.d.ts # Google API types
ā ā āāā mcp-server.d.ts # MCP-specific types
ā ā āāā utilities.d.ts # Branded types & helpers
ā ā āāā index.ts # Centralized exports
ā āāā validation/ # Zod schemas
ā ā āāā meetSchemas.ts # 6 validated tools
ā āāā errors/ # Error handling
ā āāā GoogleApiErrorHandler.ts
āāā test/ # Test suite (101 tests)
ā āāā setup.ts # Test utilities
ā āāā GoogleMeetAPI.test.ts # Unit tests
ā āāā integration.test.ts # Integration tests
ā āāā validation.test.ts # Validation tests
ā āāā simple.test.ts # Basic functionality
āāā build/ # Compiled JavaScript
āāā package.json # TypeScript + testing deps
āāā tsconfig.json # TypeScript configuration
āāā vitest.config.ts # Testing configurationType Safety Features
// Branded types for enhanced safety
type EventId = Brand<string, 'EventId'>;
type SpaceName = Brand<string, 'SpaceName'>;
// Complete API interfaces
interface GoogleMeetAPI {
createMeetSpace(config: SpaceConfigInput): Promise<MeetSpace>;
listCalendars(): Promise<ProcessedCalendar[]>;
createCalendarEvent(data: CreateEventInput): Promise<ProcessedEvent>;
}
// Zod validation with business logic
const CreateSpaceSchema = z.object({
access_type: z.enum(["OPEN", "TRUSTED", "RESTRICTED"]).default("TRUSTED"),
enable_recording: z.boolean().default(false)
}).refine((data) => {
// Custom business logic validation
if (data.enable_recording && data.access_type === "OPEN") {
throw new Error("Recording cannot be enabled for OPEN access meetings");
}
return true;
});Error Handling - Claude Desktop Optimized
The server provides context-aware error messages designed for AI assistance:
Google API Errors
š Access Denied
Problem: Your Google account doesn't have the required permissions.
Solution:
1. Run `npm run setup` to re-authenticate
2. Make sure you granted all requested permissions
3. For enterprise features, check you have Google Workspace Business+Enterprise Feature Errors
š¢ Enterprise Feature Required
Problem: This Meet feature requires Google Workspace Business Standard or higher.
Options:
- Use basic calendar events with Meet links instead
- Upgrade your Google Workspace plan
Alternative: Try `calendar_v3_create_event` with `create_meet_conference: true`Requirements
Technical Requirements
Node.js: 18+ (for TypeScript support)
TypeScript: 5+ (included in dependencies)
Google Account: Any Google account works for basic features
Feature Requirements
ā Basic Features: Works with any Google account
ā Calendar Integration: Google Calendar API enabled
š¢ Enterprise Features: Google Workspace Business Standard or higher
š§ Smart Notes: Gemini Business/Enterprise license
š¹ Recording: Manual activation required during meetings
Development
TypeScript Development
# Development with hot reload
npm run start # tsx src/index.ts with watch
npm run setup # tsx src/setup.ts
# Type checking
npm run type-check # tsc --noEmit
# Testing
npm test # vitest run
npm run test:watch # vitest with watch mode
npm run test:coverage # coverage reportProduction Build
# Build TypeScript
npm run build # tsc to build/ directory
npm run clean # clean build directory
# Run compiled JavaScript
npm run start:js # node build/index.js
npm run setup:js # node build/setup.jsTesting Results
ā
Test Files: 5 passed (5)
ā
Tests: 101 passed (101)
ā
Duration: 2.61s
ā
TypeScript: 0 compilation errors
ā
Type Coverage: ~90% specific types
Test Categories:
- 28 GoogleMeetAPI unit tests
- 12 Integration workflow tests
- 35 Validation schema tests
- 16 Basic functionality tests
- 10 MCP server testsš§ Common Issues & Quick Fixes
šØ Server Won't Start
# Check credentials path and permissions
ls -la "/path/to/your/credentials.json"
chmod 600 "/path/to/your/credentials.json"
# Verify configuration
npx tsx scripts/health-check.jsš Authentication Failed
# Re-run OAuth setup
G_OAUTH_CREDENTIALS="/path/to/creds.json" npm run setup
# Check Google Cloud Console:
# 1. APIs enabled (Calendar + Meet)
# 2. OAuth consent screen configured
# 3. Scopes properly setš¤ Claude Desktop Issues
# Verify MCP configuration
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
# Restart Claude Desktop
# Check server status in Smithery (if using)š Complete Troubleshooting Guide - Detailed problem resolution
Enterprise Features Limitations
Google Meet API v2
Some advanced features require Google Workspace licenses
Recording cannot be started programmatically (requires manual activation)
Smart Notes require Gemini Business/Enterprise license
Participant data is only available for completed conferences
Implementation Notes
All 21 tools are fully implemented using official Google APIs
Advanced features use direct REST API calls to Google Meet API v2
Authentication and token management handled automatically
Complete TypeScript coverage with branded types for safety
š¤ Contributing
Development Requirements
ā TypeScript code with proper types (no 'any' types)
ā Tests pass (
npm test) - maintain 100% test success rateā Zod validation schemas for new tools
ā Error handling for new endpoints
ā Documentation updates for new features
ā Security review for credential handling
Contribution Process
Fork and clone the repository
Create feature branch from
mainImplement changes with tests and documentation
Run full test suite (
npm test)Update relevant guides in
docs/Submit pull request with detailed description
š License
ISC License - Free for commercial and personal use. See LICENSE file for details.
š Ready to supercharge your Google Meet workflow? Choose your deployment method above and get started in minutes!
š” Recommended: Start with Smithery deployment for the easiest setup experience.
š Support & Resources
š Documentation
Smithery User Guide - Team deployment with Smithery
Docker Deployment - Containerized production deployment
Manual Setup - Direct installation and configuration
Security Guide - Individual security best practices
Team Security - Enterprise team management
Troubleshooting - Problem diagnosis and resolution
š Getting Help
š GitHub Issues - Bug reports and feature requests
šØ Smithery Support - Platform-specific help
š MCP Documentation - Model Context Protocol resources
šÆ Quick Links
Repository: github.com/INSIDE-HAIR/google-meet-mcp-server
Smithery Page: smithery.ai/server/@inside-hair/google-meet-mcp-server
Docker Hub: ghcr.io/inside-hair/google-meet-mcp-server
Acknowledgments
Built with Model Context Protocol SDK
Powered by Google Calendar API and Google Meet API
Compatible with Claude Desktop and other MCP clients
Enterprise-grade TypeScript architecture
Comprehensive Zod validation system
Available Tools
24 toolscalendar_v3_create_eventB
[Calendar API v3] Create a new calendar event with Google Meet conference and guest permissions
| Name | Required | Description | Default |
|---|---|---|---|
| summary | Yes | Title of the event | |
| description | No | Description for the event (optional) | |
| location | No | Location for the event (optional) | |
| start_time | Yes | Start time in ISO format | |
| end_time | Yes | End time in ISO format | |
| time_zone | No | Time zone (default: UTC) | |
| attendees | No | List of email addresses for attendees (optional) | |
| create_meet_conference | No | Create Google Meet conference for this event (default: false) | |
| guest_can_invite_others | No | Allow guests to invite other people (default: true) | |
| guest_can_modify | No | Allow guests to modify the event (default: false) | |
| guest_can_see_other_guests | No | Allow guests to see other attendees (default: true) | |
| calendar_id | No | Calendar ID to create event in (default: 'primary') |
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 mentions 'Google Meet conference and guest permissions', which hints at behavioral aspects like conference creation and permission settings. However, it lacks details on critical behaviors: whether this requires authentication, what happens on failure, if it's idempotent, or the response format. For a mutation tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Create a new calendar event') and adds qualifying details ('with Google Meet conference and guest permissions'). There's no wasted verbiage, and it's appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 parameters, mutation operation) and lack of annotations and output schema, the description is incomplete. It doesn't cover behavioral traits like error handling, authentication needs, or return values, which are crucial for an agent to use this tool effectively. The description alone is inadequate for safe and correct 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 description coverage is 100%, so the schema fully documents all 12 parameters. The description adds minimal value beyond the schema by implying that parameters relate to 'Google Meet conference and guest permissions', but it doesn't explain parameter interactions or provide additional context. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Create a new calendar event') and distinguishes it from siblings by specifying 'with Google Meet conference and guest permissions'. It uses a precise verb ('Create') and identifies the resource ('calendar event'), making the purpose unambiguous and differentiated from other tools like calendar_v3_update_event or calendar_v3_delete_event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'Google Meet conference and guest permissions', suggesting this tool is for creating events with those features. However, it doesn't explicitly state when to use this vs. alternatives like calendar_v3_quick_add (for simpler events) or calendar_v3_update_event (for modifications). The guidance is present but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar_v3_delete_eventC
[Calendar API v3] Delete a calendar event
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | ID of the event to delete | |
| calendar_id | No | ID of the calendar containing the event (defaults to 'primary') | primary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool deletes an event, implying a destructive mutation, but fails to mention critical aspects like permissions required, whether deletion is permanent or reversible, rate limits, or error handling. This leaves significant gaps for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It front-loads the key information (API context and action) and is appropriately sized for a simple delete operation, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a destructive mutation with no annotations and no output schema), the description is incomplete. It lacks details on behavioral traits (e.g., permanence, auth needs), expected outcomes, or error cases, which are crucial for safe and effective use by 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?
The input schema has 100% description coverage, fully documenting both parameters (event_id and calendar_id with its default). The description adds no additional parameter information beyond what the schema provides, so it meets the baseline score of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('a calendar event'), with the API version context ('Calendar API v3') providing specificity. However, it doesn't distinguish this tool from its siblings like 'calendar_v3_move_event' or 'calendar_v3_update_event' in terms of purpose, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention prerequisites (e.g., needing an existing event ID) or compare to siblings like 'calendar_v3_move_event' for moving instead of deleting. The description lacks any context for usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar_v3_freebusy_queryC
[Calendar API v3] Query free/busy information for calendars
| Name | Required | Description | Default |
|---|---|---|---|
| calendar_ids | Yes | Array of calendar IDs to query | |
| time_min | Yes | Start time in ISO 8601 format (e.g., '2024-01-01T00:00:00Z') | |
| time_max | Yes | End time in ISO 8601 format (e.g., '2024-01-01T23:59:59Z') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but lacks behavioral details. It doesn't disclose whether this is a read-only operation, what permissions are required, how results are returned (e.g., format, pagination), or any rate limits. The description is minimal and doesn't compensate for the absence of 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?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and uses brackets to denote API version without unnecessary elaboration, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a tool that queries availability. It doesn't explain what the output looks like (e.g., busy slots, free times), error conditions, or behavioral traits like authentication needs. For a 3-parameter tool with full schema coverage but missing context, this is inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents parameters (calendar_ids, time_min, time_max). The description adds no additional meaning beyond implying these are used for querying, which is already clear from the schema. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Query free/busy information') and resource ('for calendars'), with the API version ('Calendar API v3') providing context. It distinguishes from siblings like calendar_v3_list_events by focusing on availability rather than event details, though it doesn't explicitly name alternatives.
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 is provided. The description doesn't mention prerequisites, such as needing calendar access, or compare it to siblings like calendar_v3_list_events for checking schedules. Usage is implied by the name but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar_v3_get_eventC
[Calendar API v3] Get details of a specific calendar event
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | ID of the calendar event to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only states the basic function ('Get details') without mentioning authentication requirements, rate limits, error responses, or what specific details are returned. For a read operation in a calendar API, this leaves significant gaps in understanding how the tool behaves in practice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) and front-loaded with the essential information. Every word serves a purpose: the API context, the action, and the resource. There's no wasted verbiage or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is insufficiently complete. While the purpose is clear, it doesn't explain what 'details' are returned, how authentication works, potential error cases, or performance characteristics. Given the complexity of calendar events and the lack of structured output documentation, more context would be helpful for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'event_id' clearly documented. The description doesn't add any parameter information beyond what the schema provides, but with complete schema coverage, the baseline score of 3 is appropriate. No additional semantics about event ID format or sources are mentioned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get details') and resource ('specific calendar event'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'calendar_v3_list_events' which also retrieves event information, though in a different format (list vs. single item). The API version context ('Calendar API v3') is helpful but not essential for purpose 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?
No guidance is provided about when to use this tool versus alternatives. The agent must infer from the name and description that this retrieves a single event by ID, while 'calendar_v3_list_events' retrieves multiple events, but this distinction isn't explicitly stated. There's no mention of prerequisites, error conditions, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar_v3_list_calendarsB
[Calendar API v3] List all calendars available to the user
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('List all calendars') but doesn't mention permissions, rate limits, pagination, or output format. This leaves significant gaps for a tool that likely interacts with user data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key information ('List all calendars available to the user'). There's no wasted text, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'available to the user' means (e.g., permissions), how results are returned, or behavioral traits like pagination. For a list operation in a calendar API, this leaves critical context missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, earning a baseline score of 4 for not adding unnecessary information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all calendars available to the user'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'calendar_v3_list_events', which might cause confusion about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'calendar_v3_list_events' or 'calendar_v3_freebusy_query'. The description lacks context about use cases, prerequisites, or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar_v3_list_eventsC
[Calendar API v3] List upcoming calendar events with Google Meet conferences
| Name | Required | Description | Default |
|---|---|---|---|
| max_results | No | Maximum number of results to return (default: 10) | |
| time_min | No | Start time in ISO format (default: now) | |
| time_max | No | End time in ISO format (optional) | |
| calendar_id | No | Calendar ID to list events from (default: 'primary') |
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 mentions 'List upcoming calendar events with Google Meet conferences', which implies a read-only operation, but does not disclose behavioral traits such as pagination, rate limits, authentication needs, or what happens if no events are found. The description is minimal and lacks critical operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. It avoids unnecessary words, but could be slightly more structured by explicitly mentioning it's for listing events (not creating or updating). Overall, it is appropriately concise with no wasted 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?
Given no annotations and no output schema, the description is incomplete for a tool with 4 parameters. It lacks details on behavioral aspects (e.g., pagination, error handling), does not explain the 'Google Meet conferences' filter, and provides no guidance on usage versus siblings. For a read operation in a complex API context, this leaves significant 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 fully documents all parameters (max_results, time_min, time_max, calendar_id) with descriptions and defaults. The description does not add any additional meaning or context beyond what the schema provides, such as explaining the 'Google Meet conferences' filter or parameter interactions. Baseline 3 is appropriate as the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('upcoming calendar events'), and specifies 'with Google Meet conferences' to indicate a key feature. However, it does not explicitly differentiate from siblings like 'calendar_v3_get_event' (single event) or 'calendar_v3_list_calendars' (list calendars), leaving some ambiguity in scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. The description mentions 'upcoming calendar events with Google Meet conferences', which implies a focus on events with conferences, but it does not state when to choose this over 'calendar_v3_list_calendars' or other event-related tools, nor does it 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.
calendar_v3_move_eventC
[Calendar API v3] Move a calendar event from one calendar to another
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | ID of the event to move | |
| source_calendar_id | Yes | ID of the calendar where the event currently exists | |
| destination_calendar_id | Yes | ID of the calendar to move the event to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool moves an event, implying a mutation operation, but doesn't disclose critical traits such as required permissions (e.g., write access to both calendars), side effects (e.g., notifications sent), error conditions (e.g., if calendars don't exist), or response format. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key action ('move a calendar event') and includes the API version context. There is no wasted verbiage or redundancy, making it highly concise and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation operation with 3 required parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like permissions, side effects, or error handling, nor does it explain return values. For a tool that modifies data, this leaves the agent with insufficient context to use it safely and effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters (event_id, source_calendar_id, destination_calendar_id) clearly documented in the input schema. The description adds no additional meaning beyond what the schema provides (e.g., no examples, format details, or constraints). According to the rules, when schema coverage is high (>80%), the baseline score is 3 even without param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('move') and resource ('calendar event'), specifying it's from one calendar to another. It distinguishes this tool from siblings like create_event, delete_event, or update_event by focusing on relocation rather than creation, deletion, or modification. However, it doesn't explicitly differentiate from all siblings (e.g., it's less clear how it differs from freebusy_query or quick_add in purpose).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing permissions on both calendars), exclusions (e.g., not for recurring events), or comparisons to siblings like update_event (which might handle calendar changes differently). Usage is implied only by the action described, with no explicit context or alternatives stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar_v3_quick_addB
[Calendar API v3] Create event using natural language
| Name | Required | Description | Default |
|---|---|---|---|
| calendar_id | No | Calendar ID to add event to (default: 'primary') | |
| text | Yes | Natural language description (e.g., 'Lunch with John tomorrow at 2pm') |
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 states this is a creation tool but doesn't mention permissions required, whether it's idempotent, error handling, or what happens on success. The description lacks crucial behavioral context for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - just 7 words total. It's front-loaded with the core functionality and every word earns its place. The bracketed API version context is minimal and useful.
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 creation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what gets returned, error conditions, or behavioral constraints. The natural language aspect is mentioned but not elaborated (e.g., parsing limitations, supported formats).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters. The description adds no additional parameter semantics beyond what's in the schema descriptions. The baseline of 3 is appropriate when the schema does all the work.
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's purpose: 'Create event using natural language' specifies the verb (create) and resource (event) with the unique natural language aspect. It distinguishes from sibling calendar_v3_create_event by mentioning natural language processing, though not explicitly naming the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through 'using natural language' and the text parameter example, suggesting this tool is for quick, informal event creation. However, it doesn't explicitly state when to use this vs. calendar_v3_create_event or provide any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar_v3_update_eventC
[Calendar API v3] Update an existing calendar event
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes | ID of the event to update | |
| summary | No | Updated title of the event (optional) | |
| description | No | Updated description for the event (optional) | |
| location | No | Updated location for the event (optional) | |
| start_time | No | Updated start time in ISO format (optional) | |
| end_time | No | Updated end time in ISO format (optional) | |
| time_zone | No | Updated time zone (optional) | |
| attendees | No | Updated list of email addresses for attendees (optional) | |
| guest_can_invite_others | No | Updated guest invite permission (optional) | |
| guest_can_modify | No | Updated guest modify permission (optional) | |
| guest_can_see_other_guests | No | Updated guest visibility permission (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but provides minimal behavioral information. It states it's an update operation but doesn't disclose what happens with partial updates, permission requirements, whether changes are reversible, rate limits, or error conditions. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence with zero wasted words. It's front-loaded with the essential information (API version and core action) and contains no 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 mutation tool with 11 parameters and no annotations or output schema, the description is insufficient. It doesn't explain what the tool returns, error handling, authentication requirements, or important behavioral aspects like partial updates. The context demands more completeness than provided.
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 11 parameters thoroughly. The description adds no additional parameter information beyond what's in the schema, maintaining the baseline score of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('an existing calendar event'), making the purpose unambiguous. It distinguishes from creation and deletion tools by specifying 'existing', but doesn't explicitly differentiate from similar update operations like 'move_event' or 'update_space'.
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 about when to use this tool versus alternatives. The description doesn't mention prerequisites (like needing event_id), when not to use it (e.g., for creating new events), or how it differs from sibling tools like 'move_event' or 'update_space'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meet_v2_create_spaceC
[Meet API v2 GA] Create a Google Meet space with advanced configuration
| Name | Required | Description | Default |
|---|---|---|---|
| access_type | No | Access type for the space (default: TRUSTED) | |
| enable_recording | No | Enable automatic recording (requires Google Workspace Business Standard+) | |
| enable_transcription | No | Enable automatic transcription (requires Google Workspace) | |
| enable_smart_notes | No | Enable automatic smart notes with Gemini (requires Gemini license) | |
| attendance_report | No | Enable attendance report generation | |
| moderation_mode | No | Enable moderation for the space (default: OFF) | |
| chat_restriction | No | Chat restriction level (default: NO_RESTRICTION) | |
| present_restriction | No | Presentation restriction level (default: NO_RESTRICTION) | |
| default_join_as_viewer | No | Join participants as viewers by default (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates a space but lacks critical details: whether this is a mutating operation (implied by 'Create'), what permissions or licenses are needed beyond the parameter hints, potential side effects (e.g., resource limits), or what the output looks like. The mention of 'advanced configuration' is vague and doesn't compensate for the missing behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key information: API version ('Meet API v2 GA'), action ('Create'), resource ('Google Meet space'), and scope ('with advanced configuration'). There's no wasted verbiage, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, creation operation) and lack of annotations and output schema, the description is insufficient. It doesn't address behavioral aspects like mutation effects, error conditions, or return values, leaving significant gaps for an agent to understand how to use the tool effectively in practice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with each parameter well-documented (e.g., defaults, requirements like 'requires Google Workspace'). The description adds no additional parameter semantics beyond the schema, so it meets the baseline of 3 where the schema does the heavy lifting. However, it doesn't explain how parameters interact or their overall impact on the created space.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('Google Meet space'), and specifies 'with advanced configuration' which hints at the tool's scope. However, it doesn't explicitly differentiate from sibling tools like 'meet_v2_update_space' or 'calendar_v3_create_event', which would require a more specific distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication requirements), compare it to other creation tools in the sibling list, or indicate scenarios where it's preferred over simpler options. This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meet_v2_end_active_conferenceC
[Meet API v2 GA] End the active conference in a Google Meet space
| Name | Required | Description | Default |
|---|---|---|---|
| space_name | Yes | Name of the space (spaces/{space_id}) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'End the active conference,' implying a destructive action, but fails to disclose critical behavioral traits like required permissions, whether the action is reversible, effects on participants, or error conditions. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key action ('End the active conference') and includes relevant context ('Meet API v2 GA'). There is no wasted verbiage, making it appropriately sized and well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity as a destructive operation with no annotations and no output schema, the description is incomplete. It lacks details on behavioral outcomes, error handling, or return values, which are crucial for safe invocation. The high schema coverage doesn't compensate for these gaps in a mutation context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'space_name' fully documented in the schema. The description adds no additional meaning beyond the schema, such as format examples or constraints. With high schema coverage, the baseline is 3, as the description doesn't compensate but also doesn't detract.
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 ('End') and target ('active conference in a Google Meet space'), specifying it's for the Meet API v2 GA. It distinguishes from siblings like meet_v2_get_conference_record or meet_v2_list_conference_records by focusing on termination rather than retrieval. However, it doesn't explicitly differentiate from other destructive tools like meet_v2_update_space, keeping it at a 4.
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 meet_v2_update_space for modifying a space instead of ending a conference, or prerequisites like needing an active conference. It lacks explicit when/when-not instructions or named alternatives, resulting in minimal usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meet_v2_get_conference_recordC
[Meet API v2 GA] Get details of a specific conference record
| Name | Required | Description | Default |
|---|---|---|---|
| conference_record_name | Yes | Name of the conference record (conferenceRecords/{record_id}) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a read-only operation ('Get details') but doesn't disclose error conditions, authentication needs, rate limits, or what 'details' include (e.g., metadata, participants, recordings). For a tool with zero annotation coverage, this is inadequate transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Get details'). However, the inclusion of '[Meet API v2 GA]' is redundant with the tool name prefix 'meet_v2_', slightly reducing conciseness, though it doesn't significantly impact readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool that retrieves data. It doesn't explain what 'details' entail (e.g., structure, fields, or links to related resources like participants), leaving the agent uncertain about the return value and overall tool behavior in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents the single parameter 'conference_record_name'. The description adds no additional parameter semantics beyond what's in the schema (e.g., format examples, validation rules, or how to obtain the name), resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get details') and resource ('specific conference record'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'meet_v2_list_conference_records' (which lists multiple records) or 'meet_v2_get_participant' (which gets participant details), leaving some ambiguity in sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a conference record name), contrast with list operations, or specify use cases like retrieving metadata for a known record, leaving the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meet_v2_get_participantC
[Meet API v2 GA] Get details of a specific participant
| Name | Required | Description | Default |
|---|---|---|---|
| participant_name | Yes | Name of the participant (conferenceRecords/{record_id}/participants/{participant_id}) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's a read operation ('Get details'), but doesn't cover aspects like authentication needs, rate limits, error handling, or what 'details' entail (e.g., participant metadata, status). This leaves significant gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the API version and core purpose. It avoids unnecessary words, though it could be slightly more informative without sacrificing brevity, such as hinting at the type of details returned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a participant retrieval tool with no annotations and no output schema, the description is insufficient. It lacks details on return values, error cases, or behavioral traits, making it incomplete for effective agent use without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'participant_name' fully documented in the schema. The description doesn't add any additional meaning beyond what the schema provides, such as format examples or usage notes, but the high schema coverage justifies the baseline score of 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 action ('Get details') and target ('a specific participant'), specifying it's for the Meet API v2 GA. However, it doesn't distinguish this tool from its sibling 'meet_v2_get_participant_session', which also retrieves participant-related data but for sessions, leaving some ambiguity in sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'meet_v2_list_participants' or 'meet_v2_get_participant_session'. The description implies usage for a specific participant but offers no context on prerequisites, error conditions, or comparative scenarios with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meet_v2_get_participant_sessionC
[Meet API v2 GA] Get details of a specific participant session
| Name | Required | Description | Default |
|---|---|---|---|
| participant_session_name | Yes | Name of the participant session (conferenceRecords/{record_id}/participants/{participant_id}/sessions/{session_id}) |
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 only states the action ('Get details') without mentioning permissions, rate limits, error conditions, or what the output entails. This is inadequate for a tool that likely involves data access.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key information ('Get details of a specific participant session') with no wasted words. The API version note is minimal and relevant.
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 insufficient. It doesn't explain what details are returned, potential errors, or how this fits into the broader Meet API workflow, leaving significant gaps for an agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the single parameter 'participant_session_name'. The description adds no additional meaning beyond what's in the schema, such as format examples or usage tips, resulting in the baseline score.
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 details') and resource ('specific participant session'), making the purpose unambiguous. However, it doesn't distinguish this tool from its sibling 'meet_v2_get_participant' or 'meet_v2_list_participant_sessions', which handle related participant data, so it falls short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'meet_v2_get_participant' or 'meet_v2_list_participant_sessions'. It lacks context about prerequisites or scenarios where this specific session detail retrieval is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meet_v2_get_recordingC
[Meet API v2 GA] Get details of a specific recording
| Name | Required | Description | Default |
|---|---|---|---|
| recording_name | Yes | Name of the recording (conferenceRecords/{record_id}/recordings/{recording_id}) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'Get details' but doesn't specify what details are returned, whether it's a read-only operation, any authentication needs, rate limits, or error conditions. This is inadequate for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It front-loads the key information ('Get details of a specific recording') and includes a version note ('Meet API v2 GA') that adds context without clutter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'details' are returned, the response format, or any behavioral aspects like error handling. For a tool with no structured output information, this leaves significant gaps 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?
The input schema has 100% description coverage, fully documenting the 'recording_name' parameter. The description adds no additional parameter information beyond what the schema provides, so it meets the baseline for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get details') and resource ('a specific recording'), making the purpose understandable. However, it doesn't distinguish this tool from sibling tools like 'meet_v2_get_conference_record' or 'meet_v2_get_transcript', which also retrieve specific Meet resources, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. For example, it doesn't mention when to choose this over 'meet_v2_list_recordings' for browsing or other 'get' tools for different resource types, leaving usage context implied at best.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meet_v2_get_spaceC
[Meet API v2 GA] Get details of a Google Meet space
| Name | Required | Description | Default |
|---|---|---|---|
| space_name | Yes | Name of the space (spaces/{space_id}) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states it 'Get details' but doesn't specify what details are returned, error conditions, authentication needs, rate limits, or whether it's idempotent. For a read operation without annotations, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads key information: API version, action, and resource. There is no wasted text, and it directly communicates the tool's purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a tool that retrieves details. It doesn't explain what 'details' include, return format, or potential errors. For a get operation in a complex API like Meet, more context is needed to understand the tool's full scope and 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?
Schema description coverage is 100%, with the parameter 'space_name' fully documented in the schema. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. Baseline score of 3 is appropriate since the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get details') and resource ('Google Meet space'), and specifies the API version ('Meet API v2 GA'). It distinguishes from siblings like meet_v2_create_space or meet_v2_update_space by focusing on retrieval rather than creation or modification. However, it doesn't explicitly differentiate from other get operations like meet_v2_get_conference_record or meet_v2_get_participant, which slightly reduces specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing space), exclusions, or comparisons to siblings like meet_v2_list_conference_records for bulk retrieval. Usage is implied by the verb 'Get,' but explicit context is lacking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meet_v2_get_transcriptC
[Meet API v2 GA] Get details of a specific transcript
| Name | Required | Description | Default |
|---|---|---|---|
| transcript_name | Yes | Name of the transcript (conferenceRecords/{record_id}/transcripts/{transcript_id}) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'Get details' but doesn't clarify what details are returned, if it's a read-only operation, potential errors, or any rate limits. This leaves significant gaps in understanding how the tool behaves beyond its 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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple tool, though it could be slightly more informative to improve completeness without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a transcript retrieval tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'details' include, how the transcript is formatted, or any behavioral aspects like error handling. This leaves the agent with incomplete context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'transcript_name' fully documented in the schema. The description doesn't add any extra meaning about parameters beyond what's in the schema, so it meets the baseline of 3 for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get details') and resource ('a specific transcript'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'meet_v2_list_transcripts' or 'meet_v2_list_transcript_entries', which would require a more specific distinction to earn a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention that this retrieves details for a single transcript identified by name, whereas 'meet_v2_list_transcripts' might be used to browse multiple transcripts. The description lacks any context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meet_v2_list_conference_recordsC
[Meet API v2 GA] List conference records for historical meetings
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Filter for conference records (e.g., space.name="spaces/{space_id}") | |
| page_size | No | Maximum number of results to return (default: 10, max: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'historical meetings' which adds some context about scope, but doesn't describe pagination behavior (implied by page_size parameter), authentication requirements, rate limits, error conditions, or what constitutes a conference record. The description is too sparse for a tool that presumably returns potentially sensitive meeting data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) and front-loaded with the key information. However, it's arguably too brief given the tool's purpose - a single sentence may not provide enough context for proper 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?
For a tool with no annotations, no output schema, and parameters that imply pagination and filtering capabilities, the description is inadequate. It doesn't explain what a conference record contains, how results are structured, or provide any examples of filter usage. The mention of 'historical meetings' is helpful but insufficient for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema. This meets the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('conference records for historical meetings'), and the API version context is helpful. However, it doesn't explicitly differentiate from sibling tools like 'meet_v2_list_participants' or 'meet_v2_list_recordings' which also list related resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention what distinguishes listing conference records from other list operations in the Meet API or when historical meetings would be relevant versus current ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meet_v2_list_participantsC
[Meet API v2 GA] List participants for a conference record
| Name | Required | Description | Default |
|---|---|---|---|
| conference_record_name | Yes | Name of the conference record (conferenceRecords/{record_id}) | |
| page_size | No | Maximum number of participants to return (default: 10, max: 100) |
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 mentions the API version ('Meet API v2 GA') but fails to describe key behaviors like pagination handling (implied by 'page_size'), rate limits, authentication requirements, or the format of returned data, which are critical for a list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('List participants'). It includes the API version as useful context without unnecessary elaboration, though it could be slightly more structured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a list operation with pagination, no annotations, and no output schema, the description is incomplete. It lacks details on return values, error handling, or behavioral constraints, leaving significant gaps for the agent to infer usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents both parameters. The description adds no additional semantic context beyond what's in the schema (e.g., it doesn't clarify the structure of 'conference_record_name' or usage of 'page_size'), resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('participants for a conference record'), making the purpose specific and understandable. However, it doesn't differentiate from sibling tools like 'meet_v2_list_participant_sessions' or 'meet_v2_get_participant', which would require explicit comparison to achieve a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't explain when to choose this over 'meet_v2_get_participant' for individual details or 'meet_v2_list_participant_sessions' for session-level data, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meet_v2_list_participant_sessionsC
[Meet API v2 GA] List sessions for a specific participant
| Name | Required | Description | Default |
|---|---|---|---|
| participant_name | Yes | Name of the participant (conferenceRecords/{record_id}/participants/{participant_id}) | |
| page_size | No | Maximum number of sessions to return (default: 10, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It doesn't disclose whether this is a read-only operation, pagination behavior (beyond the schema's page_size), rate limits, authentication needs, or what the output looks like (e.g., session details format). The description only repeats the tool's purpose without adding operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It front-loads the key information (API version, action, target) and avoids redundancy. Every part earns its place by clarifying scope and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and 2 parameters, the description is incomplete. It lacks behavioral details (e.g., read-only nature, pagination), output expectations, and usage guidelines. While the schema covers parameters well, the overall context for an AI agent to correctly invoke this tool is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters (participant_name format, page_size defaults/limits). The description adds no additional parameter semantics beyond what's in the schema, such as examples or edge cases. Baseline 3 is appropriate when the schema does all the work.
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 sessions') and target resource ('for a specific participant'), with the API version context ('Meet API v2 GA'). It distinguishes from sibling tools like 'meet_v2_list_participants' by focusing on sessions rather than participants themselves. However, it doesn't explicitly differentiate from 'meet_v2_get_participant_session' (singular vs. plural).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing a valid participant identifier), exclusions, or comparisons to sibling tools like 'meet_v2_get_participant_session' (single session) or 'meet_v2_list_participants' (list participants). Usage context is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meet_v2_list_recordingsC
[Meet API v2 GA] List recordings for a conference record
| Name | Required | Description | Default |
|---|---|---|---|
| conference_record_name | Yes | Name of the conference record (conferenceRecords/{record_id}) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions listing recordings but doesn't disclose behavioral traits like pagination, rate limits, authentication needs, error conditions, or what the output includes (e.g., format, metadata). For a list operation with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It front-loads the API version and core purpose ('List recordings for a conference record'), making it easy to scan. Every word earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a list tool. It lacks details on behavior (e.g., pagination, sorting), output format, error handling, and dependencies. While concise, it doesn't provide enough context for an agent to use it effectively beyond the basic parameter.
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 the single parameter 'conference_record_name' fully documented in the schema. The description adds no additional meaning beyond implying the parameter is required for the listing. Baseline 3 is appropriate as the schema does the heavy lifting, but no extra context (e.g., how to obtain the name) is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List recordings') and the target resource ('for a conference record'), with the API version context ('Meet API v2 GA'). It distinguishes from siblings like meet_v2_get_recording (singular) and meet_v2_list_transcripts (different resource). However, it doesn't explicitly differentiate from other list operations like meet_v2_list_participants, though the resource specificity helps.
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 is provided. The description doesn't mention prerequisites (e.g., needing a conference record from meet_v2_list_conference_records first), exclusions, or comparisons to other list tools. It assumes context but offers no explicit usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meet_v2_list_transcript_entriesC
[Meet API v2 GA] List transcript entries (individual speech segments)
| Name | Required | Description | Default |
|---|---|---|---|
| transcript_name | Yes | Name of the transcript (conferenceRecords/{record_id}/transcripts/{transcript_id}) | |
| page_size | No | Maximum number of entries to return (default: 100, max: 1000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the API version ('v2 GA') and that entries are 'individual speech segments', but doesn't describe pagination behavior (despite having a page_size parameter), rate limits, authentication requirements, error conditions, or what the output looks like. For a listing tool with no annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads key information (API version, action, resource). The bracketed API version note is slightly distracting but not wasteful. Every element serves a purpose, though it could be slightly more polished.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a listing operation with pagination behavior implied by the page_size parameter, the description is incomplete. It doesn't explain what the tool returns (structure of entries), how pagination works, or any behavioral constraints. For a tool that likely returns structured data, this leaves the agent with insufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters. The description doesn't add any parameter-specific information beyond what's in the schema (like format examples for transcript_name or typical page_size values). The baseline score of 3 reflects adequate coverage through the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('transcript entries') with additional context about the API version and that entries are 'individual speech segments'. It distinguishes from siblings like 'meet_v2_get_transcript' by specifying list vs get operations. However, it doesn't explicitly differentiate from 'meet_v2_list_transcripts' (which lists transcripts rather than entries).
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 about when to use this tool versus alternatives. The description doesn't mention prerequisites (like needing a transcript first), comparison to other listing tools, or typical use cases. The agent must infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meet_v2_list_transcriptsC
[Meet API v2 GA] List transcripts for a conference record
| Name | Required | Description | Default |
|---|---|---|---|
| conference_record_name | Yes | Name of the conference record (conferenceRecords/{record_id}) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't disclose if this is a read-only operation (implied by 'List'), pagination behavior, rate limits, authentication needs, or what the output contains (e.g., transcript IDs or summaries). The description only states the basic action without operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely conciseāa single sentence that front-loads the key action and resource. There is no wasted language, and it efficiently conveys the core purpose without unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a list operation with no output schema) and lack of annotations, the description is incomplete. It doesn't explain return values (e.g., list of transcript objects or IDs), error conditions, or behavioral traits like pagination. For a tool with no structured output documentation, more context is needed to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents the single parameter 'conference_record_name'. The description adds no additional parameter semantics beyond implying the tool lists transcripts for a given conference record, which is already clear from the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List transcripts') and the resource ('for a conference record'), with the API version context ('Meet API v2 GA'). It distinguishes from siblings like 'meet_v2_get_transcript' (singular retrieval) and 'meet_v2_list_transcript_entries' (list entries within a transcript). However, it doesn't specify scope (e.g., all transcripts vs. filtered), making it slightly less specific than a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a conference record name), exclusions, or comparisons to siblings like 'meet_v2_list_conference_records' (which might list records first). The description assumes context but offers no explicit usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meet_v2_update_spaceC
[Meet API v2 GA] Update configuration of a Google Meet space
| Name | Required | Description | Default |
|---|---|---|---|
| space_name | Yes | Name of the space (spaces/{space_id}) | |
| access_type | No | Updated access type for the space (optional) | |
| moderation_mode | No | Updated moderation mode (optional) | |
| chat_restriction | No | Updated chat restriction level (optional) | |
| present_restriction | No | Updated presentation restriction level (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states this is an update operation, implying mutation, but doesn't disclose behavioral traits like required permissions, whether changes are reversible, rate limits, or what happens to unspecified settings. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key information ('Update configuration of a Google Meet space') with version context. There's zero waste or redundancy, making it highly concise and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It lacks details on behavioral aspects (e.g., permissions, side effects), usage context, and output expectations. For a tool that modifies Google Meet spaces, more comprehensive guidance is needed to ensure safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters with descriptions and enums. The description adds no additional parameter semantics beyond what's in the schema, such as examples or constraints. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update configuration') and resource ('Google Meet space'), with specific version context ('Meet API v2 GA'). It distinguishes from siblings like 'meet_v2_get_space' (read) and 'meet_v2_create_space' (create), but doesn't explicitly differentiate from other update operations in the server.
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. It doesn't mention prerequisites (e.g., needing an existing space), when not to use it, or how it differs from similar tools like 'calendar_v3_update_event'. The description is purely functional without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
24 tool updates
v1.0.0- First observed
calendar_v3_create_event - First observed
calendar_v3_delete_event - First observed
calendar_v3_freebusy_query - First observed
calendar_v3_get_event - First observed
calendar_v3_list_calendars - First observed
calendar_v3_list_events - First observed
calendar_v3_move_event - First observed
calendar_v3_quick_add - First observed
calendar_v3_update_event - First observed
meet_v2_create_space - First observed
meet_v2_end_active_conference - First observed
meet_v2_get_conference_record - First observed
meet_v2_get_participant - First observed
meet_v2_get_participant_session - First observed
meet_v2_get_recording - First observed
meet_v2_get_space - First observed
meet_v2_get_transcript - First observed
meet_v2_list_conference_records - First observed
meet_v2_list_participant_sessions - First observed
meet_v2_list_participants - First observed
meet_v2_list_recordings - First observed
meet_v2_list_transcript_entries - First observed
meet_v2_list_transcripts - First observed
meet_v2_update_space
TDQS
Scored across 24 tools
Every tool has a clearly distinct purpose with no ambiguity. Calendar tools focus on event/calendar management (create, delete, get, list, update, move, quick_add, freebusy_query), while Meet tools focus on space/conference management and data retrieval (create_space, update_space, end_conference, get_* for various entities, list_* for various entities). The separation between Calendar and Meet domains is explicit, and within each domain, tools target specific resources and actions without overlap.
Tool names follow a highly consistent pattern throughout. All tools use a verb_noun format with a prefix indicating the API (calendar_v3_ or meet_v2_), followed by a descriptive action and resource (e.g., create_event, list_calendars, get_participant, update_space). There are no deviations in style or convention, making the naming predictable and easy to understand.
With 24 tools, the count is borderline heavy for a single server, though it covers two related domains (Calendar and Meet). While each tool appears purposeful, the high number might overwhelm agents or indicate over-specialization. A typical well-scoped server often has 3-15 tools, so 24 pushes into the upper limit of reasonable, leaning toward feeling heavy but not extreme.
The tool surface is complete with comprehensive CRUD/lifecycle coverage for both Calendar and Meet domains. Calendar tools cover all essential operations (create, read, update, delete, list, move, quick_add, freebusy_query), and Meet tools cover space management, conference control, and detailed data retrieval (participants, recordings, transcripts). There are no obvious gaps, and agents can handle full workflows without dead ends.
Maintenance
Related MCP Connectors
GDPR-compliant calendar access for AI assistants: read, create, edit, RSVP. Google, MS 365, Apple.
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
Schedule and manage Google Calendar events directly from your workspace. Check availability, viewā¦
Permissioned access to Gmail, Drive and Calendar via the user's own Google account
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables interaction with Google Calendar through OAuth2 authentication, supporting calendar and event management including creating, updating, deleting events with attendees, reminders, and search functionality.1-
- AlicenseNot gradedqualityCmaintenanceEnables management of Google Calendar events across multiple calendars with natural language support, including searching events, checking availability, creating/updating/deleting events, responding to invitations, and auto-generating Google Meet links.85 npm49MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to manage Google Calendar by listing, creating, updating, and deleting events. It also includes functionality to find available time slots for scheduling.-
- AlicenseNot gradedqualityDmaintenanceEnables calendar management through Google Calendar API with OAuth2 authentication, multi-account support, and features like event creation, availability checking, and attendee management.MIT