Google Services MCP Server
Provides comprehensive Gmail integration including sending emails, reading and searching messages, retrieving email details by ID, and managing Gmail labels
Provides access to Google Finance for stock search, market data, and financial news, plus Google Flights integration for airport search, flight pricing, and multi-city trip planning
Enables full calendar management including creating, reading, updating, and deleting events across multiple calendars, with support for event listing, filtering, and date range queries
Offers Google Maps and Places functionality including geocoding, places search, turn-by-turn directions, distance matrix calculations, and detailed place information retrieval
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Services MCP Servergeocode the address for 1600 Amphitheatre Parkway, Mountain View, CA"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google MCP Server
A comprehensive Model Context Protocol (MCP) server that provides access to Google services including Maps, Finance, Flights, Gmail, and Calendar through a unified API.
Features
🗺️ Google Maps & Places
Geocoding: Convert addresses to coordinates and vice versa
Places Search: Find businesses, landmarks, and points of interest
Directions: Get turn-by-turn directions between locations
Distance Matrix: Calculate travel time and distance between multiple points
Place Details: Get detailed information about specific places
📈 Google Finance
Stock Search: Search for stocks, indices, mutual funds, currencies, and futures
Market Data: Get current prices, movement, and market information
Financial News: Access top financial news related to securities
✈️ Google Flights
Airport Search: Find flights and airport information
Flight Pricing: Get flight prices and insights
Multi-city Trips: Support for complex multi-destination journeys
📧 Gmail
Send Emails: Send emails with subject, body, CC, and BCC
Read Emails: List and search emails with Gmail query syntax
Email Details: Get full email content by message ID
Label Management: Access Gmail labels and organization
📅 Google Calendar
Event Management: Create, read, update, and delete calendar events
Multi-Calendar Support: Work with multiple calendars (Personal, Work, Travel)
Event Listing: List events with filters and date ranges
Calendar Management: List and access different calendars
Related MCP server: MCP Google Workspace
Installation
Prerequisites
Node.js 18+
pnpm (recommended) or npm
Setup
Clone the repository:
git clone <repository-url> cd google-mcpInstall dependencies:
pnpm installBuild the project:
pnpm run build
MCP Client Integration
Install the server to your preferred MCP clients:
# Install to all MCP clients
pnpm run install-server
# Install to specific clients
pnpm run install-desktop # Claude Desktop
pnpm run install-cursor # Cursor IDE
pnpm run install-code # Claude Code
pnpm run install-mcp # Local .mcp.json onlyConfiguration
Environment Variables
Create a .env.local file in the project root with your Google API credentials:
GOOGLE_MAPS_API_KEY=your_google_maps_api_key
GOOGLE_CLIENT_ID=your_oauth_client_id
GOOGLE_CLIENT_SECRET=your_oauth_client_secret
GOOGLE_REFRESH_TOKEN=your_refresh_tokenGoogle API Setup
Google Maps API: Enable Maps, Places, and Directions APIs in Google Cloud Console
Gmail/Calendar: Set up OAuth 2.0 credentials and obtain refresh tokens
Finance/Flights: Uses Google's public APIs (no additional setup required)
Usage
Running the Server
# Start the compiled server
pnpm start
# Or run in development mode
node dist/index.jsAvailable Tools
Maps & Places
geocode- Convert address to coordinatesreverse-geocode- Convert coordinates to addressplaces-search- Search for places by text queryget-directions- Get directions between locationsdistance-matrix- Calculate distances between multiple pointsplace-details- Get detailed place information
Finance
finance-search- Search stocks, currencies, and financial instruments
Flights
airports-search- Search flights and airport information
Gmail
gmail-send-email- Send emailsgmail-read-emails- List/search emailsgmail-get-email- Get specific email by IDgmail-get-labels- List Gmail labels
Calendar
calendar-create-event- Create new eventscalendar-list-events- List events with filterscalendar-get-event- Get specific event detailscalendar-update-event- Update existing eventscalendar-delete-event- Delete eventscalendar-list-calendars- List available calendars
Development
Project Structure
src/
├── index.ts # Main MCP server implementation
├── maps.ts # Google Maps & Places functionality
├── finance.ts # Google Finance integration
├── airports.ts # Google Flights integration
├── gmail.ts # Gmail API integration
└── calendar.ts # Google Calendar integration
scripts/
└── update-config.js # MCP client configuration installer
dist/ # Compiled JavaScript outputKey Technologies
MCP SDK:
@modelcontextprotocol/sdkfor protocol implementationSchema Validation: Zod for runtime type checking
Google APIs: Official Google client libraries
TypeScript: Full type safety with ES2022 target
Transport: StdioServerTransport for MCP communication
Development Workflow
Make changes to TypeScript files in
src/Build:
pnpm run buildTest:
pnpm startInstall to clients:
pnpm run install-serverRestart MCP clients to load changes
Adding New Tools
Define Zod schema for parameters
Implement handler function
Register tool in
src/index.tsusingserver.tool()Build and reinstall to test
Architecture
This MCP server follows these design patterns:
Modular Design: Each Google service is in its own module
Schema Validation: All parameters validated with Zod schemas
Error Handling: Comprehensive error handling with meaningful messages
Type Safety: Full TypeScript coverage with strict mode
Transport Agnostic: Uses MCP's standard transport layer
License
[License information]
Contributing
[Contribution guidelines]
Available Tools
18 toolsairports-searchC
Search for airport and flight information using Google Flights
| Name | Required | Description | Default |
|---|---|---|---|
| departure_id | Yes | Departure airport code (e.g., 'CDG', 'AUS', 'LAX', 'SFO'). Use 3-letter IATA codes. | |
| arrival_id | Yes | Arrival airport code (e.g., 'NRT', 'LAX', 'JFK', 'LHR'). Use 3-letter IATA codes. | |
| outbound_date | No | Outbound date in YYYY-MM-DD format | |
| return_date | No | Return date in YYYY-MM-DD format for round-trip (REQUIRED when type=1) | |
| multi_city_json | No | JSON string for multi-city trips with multiple legs (required when type=3) | |
| type | No | Trip type: 1=Round-trip (requires return_date), 2=One-way (default), 3=Multi-city (requires multi_city_json). Use type=2 for one-way trips to avoid errors. | |
| max_best_flights | No | Maximum number of best flights to return | |
| max_other_flights | No | Maximum number of other flights to return | |
| include_price_insights | No | Include price insights and history | |
| include_airports | No | Include airport information | |
| summary_only | No | Return only essential flight information | |
| include_links | No | Include booking links for each flight (off by default) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions using Google Flights, implying external data, but doesn't disclose behavioral traits like rate limits, authentication needs, data freshness, or what happens with invalid inputs. For a 12-parameter tool with no annotations, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and appropriately sized for a search tool, with every word earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (12 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns (e.g., flight options, prices, details), error handling, or usage constraints. For a flight search tool with rich parameters, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional meaning beyond what's in the schema, such as explaining relationships between parameters or usage examples. 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 tool's purpose as searching for airport and flight information using Google Flights, which is specific (verb+resource). However, it doesn't distinguish this tool from potential flight search alternatives among the sibling tools, as none are flight-related, so differentiation isn't needed but the purpose is clear.
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. While there are no obvious flight-related siblings, it doesn't mention any context or prerequisites for usage, such as when flight searches are appropriate versus other travel tools like distance-matrix or get-directions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar-create-eventC
Create a new calendar event. Current time: 1/3/2026, 11:25:51 AM
| Name | Required | Description | Default |
|---|---|---|---|
| summary | Yes | Event title/summary | |
| description | No | Event description | |
| location | No | Event location | |
| startDateTime | Yes | Start date/time in ISO format (e.g., '2025-01-15T09:00:00-07:00') | |
| endDateTime | Yes | End date/time in ISO format (e.g., '2025-01-15T10:00:00-07:00') | |
| attendees | No | Array of attendee email addresses | |
| calendarId | No | Calendar ID - Available options: 'primary' (Primary Calendar) | primary |
| timeZone | No | Time zone - defaults to local time (UTC). Examples: 'America/New_York', 'Europe/London', 'Asia/Tokyo' |
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 the action ('Create a new calendar event') but fails to mention critical behavioral aspects: whether this requires authentication, what permissions are needed, if it's idempotent, what happens on failure, or what the response contains. The timestamp is irrelevant behavioral noise.
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 core purpose is stated in the first clause, but the timestamp ('Current time: 1/3/2026, 11:25:51 AM') adds unnecessary length without value. While brief, this irrelevant information prevents a higher score for true 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?
For a mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens after creation (e.g., returns event ID), error conditions, authentication requirements, or how it differs from sibling tools. The timestamp adds no relevant context for tool 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 8 parameters with clear descriptions, formats, and defaults. The description adds no parameter information beyond what's in the schema, meeting the baseline score of 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create') and resource ('new calendar event'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'calendar-update-event' beyond the basic action, and the timestamp inclusion ('Current time: 1/3/2026, 11:25:51 AM') is irrelevant clutter that doesn't enhance 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 on when to use this tool versus alternatives like 'calendar-update-event' or 'calendar-list-events'. The description lacks any context about prerequisites, appropriate scenarios, or exclusions, leaving the agent to infer usage solely from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar-delete-eventC
Delete a calendar event
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | Event ID | |
| calendarId | No | Calendar ID - Available options: 'primary' (Primary Calendar) | 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. While 'Delete' implies a destructive mutation, the description doesn't mention whether this is permanent, reversible, requires specific permissions, or what happens on success/failure. This is inadequate for a destructive operation 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 zero wasted words. It's appropriately sized for a simple operation and gets straight to the point without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after deletion, whether confirmation is needed, error conditions, or behavioral aspects. The description should provide more context given the tool's complexity and lack of structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so both parameters are documented in the schema. The description adds no additional parameter information beyond what's already in the schema (eventId and calendarId with default). 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 ('Delete') and resource ('a calendar event'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'calendar-update-event' or 'calendar-get-event' beyond the obvious action difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites (like needing an existing event), when not to use it, or how it differs from other calendar operations beyond the basic action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar-get-eventB
Get a specific calendar event by ID
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | Event ID | |
| calendarId | No | Calendar ID - Available options: 'primary' (Primary Calendar) | 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 of behavioral disclosure. It states the tool retrieves an event but doesn't mention whether this is a read-only operation, if it requires specific permissions, what happens if the event doesn't exist, or any rate limits. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get a specific calendar event by ID') with zero wasted words. It's appropriately sized for a simple retrieval tool, making it easy to parse and understand 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 low complexity (2 parameters, no output schema) and high schema coverage, the description is minimally adequate. However, with no annotations and no output schema, it fails to address behavioral aspects like error handling or return format. For a retrieval tool, more context on what 'Get' entails (e.g., data returned, permissions) would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with both parameters ('eventId' and 'calendarId') fully documented in the schema. The description adds no additional meaning beyond the schema, such as explaining parameter interactions or usage examples. 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 ('Get') and resource ('a specific calendar event by ID'), making the purpose immediately understandable. It distinguishes this tool from siblings like 'calendar-list-events' (which lists multiple events) by specifying retrieval of a single event. However, it doesn't explicitly mention the calendar resource itself, which could be slightly more specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need a specific event identified by ID, which differentiates it from 'calendar-list-events' for listing multiple events. However, it lacks explicit guidance on when to use this versus alternatives like 'calendar-update-event' or prerequisites such as needing an existing event ID. No exclusions or detailed context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar-list-calendarsB
List all available calendars
| Name | Required | Description | Default |
|---|---|---|---|
| maxResults | No | Maximum number of calendars to return |
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. 'List all available calendars' implies a read-only operation but doesn't specify whether this requires authentication, what 'available' means (e.g., accessible vs. all system calendars), or any rate limits. It provides minimal behavioral context beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple list operation and front-loads the core purpose immediately. Every word earns its place without redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one well-documented parameter and no output schema, the description is minimally adequate. However, it doesn't address what 'all available calendars' means in practice (e.g., personal vs. shared, access permissions) or what the return format looks like. Given the lack of annotations and output schema, more context about the listing behavior would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter information beyond what's already in the schema (which has 100% coverage). The schema fully documents the 'maxResults' parameter with type, range, default, and description. The description doesn't compensate or add semantic context, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all available calendars' clearly states the verb ('List') and resource ('calendars'), making the tool's purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'calendar-list-events', which might cause confusion about scope. The description is specific but lacks sibling 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. There's no mention of when to use 'calendar-list-calendars' versus 'calendar-list-events' or other calendar-related tools. The agent receives no contextual direction about appropriate use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar-list-eventsC
List calendar events with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| calendarId | No | Calendar ID - Available options: 'primary' (Primary Calendar) | primary |
| timeMin | No | Lower bound for event start time (ISO format) | |
| timeMax | No | Upper bound for event start time (ISO format) | |
| maxResults | No | Maximum number of events to return | |
| singleEvents | No | Whether to expand recurring events | |
| orderBy | No | Order of events | startTime |
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 it's a list operation with filters but doesn't mention pagination behavior, rate limits, authentication requirements, or what happens with large result sets. For a read operation with 6 parameters, this leaves significant gaps in understanding how the tool behaves beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core functionality without unnecessary words. It's appropriately sized for a list operation and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't address what the return format looks like, how results are structured, whether there's pagination for large result sets, or any error conditions. For a list operation with multiple filtering options, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'optional filters' which aligns with the schema's parameters, but adds no specific semantic meaning beyond what the 100% schema description coverage already provides. The schema thoroughly documents each parameter's purpose, format, defaults, and constraints, making the description's contribution minimal.
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 ('calendar events'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'calendar-list-calendars' beyond mentioning 'events' versus 'calendars', which is a minor distinction but not explicitly called out.
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 mentions 'optional filters' but provides no guidance on when to use this tool versus alternatives like 'calendar-get-event' for single events or 'calendar-list-calendars' for listing calendars. There's no explicit when/when-not context or prerequisite information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calendar-update-eventC
Update an existing calendar event
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | Event ID | |
| calendarId | No | Calendar ID - Available options: 'primary' (Primary Calendar) | primary |
| summary | No | Event title/summary | |
| description | No | Event description | |
| location | No | Event location | |
| startDateTime | No | Start date/time in ISO format | |
| endDateTime | No | End date/time in ISO format | |
| attendees | No | Array of attendee email addresses |
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. 'Update an existing calendar event' implies a mutation operation but doesn't specify required permissions, whether changes are reversible, rate limits, or what happens to unspecified fields. For a write tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without any wasted words. It's appropriately sized for a tool with comprehensive schema documentation and gets straight to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 8 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't address behavioral aspects like permissions, side effects, or response format that would help an agent use the tool correctly. The comprehensive schema helps but doesn't compensate for the lack of behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema. According to scoring rules, with high schema coverage (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('an existing calendar event'), making the purpose immediately understandable. It distinguishes itself from 'calendar-create-event' by specifying 'existing' rather than new events. However, it doesn't explicitly differentiate from 'calendar-get-event' or 'calendar-delete-event' beyond the verb choice.
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 'calendar-create-event' for new events or 'calendar-delete-event' for removal. It mentions 'existing calendar event' which implies prerequisite knowledge of the event ID, but doesn't state this explicitly or reference sibling tools for context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
distance-matrixC
Calculate travel distance and time between multiple origins and destinations
| Name | Required | Description | Default |
|---|---|---|---|
| origins | Yes | Array of origin locations | |
| destinations | Yes | Array of destination locations | |
| mode | No | Travel mode |
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 calculation but doesn't describe whether this is a read-only operation, what data sources it uses (e.g., real-time traffic), rate limits, authentication needs, or what happens with invalid inputs. This leaves significant behavioral gaps for a tool with potential external dependencies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded with the core purpose, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and parameters that likely interact with external services, the description is insufficient. It doesn't cover return values (e.g., matrix format, units), error conditions, or practical constraints like API limits, leaving the agent with incomplete context for reliable 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 description adds minimal semantic value beyond the input schema, which has 100% coverage with clear descriptions for all parameters. It implies the tool handles multiple origins and destinations but doesn't explain format expectations (e.g., addresses vs. coordinates), constraints (e.g., array size limits), or how the calculation works across combinations.
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 'calculate' and the resources 'travel distance and time between multiple origins and destinations', making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get-directions' or 'geocode', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get-directions' or 'geocode', nor does it mention prerequisites or exclusions. It simply states what the tool does without contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finance-searchA
Search for stocks, indices, mutual funds, currencies, and futures using Google Finance. Use format 'SYMBOL:EXCHANGE'. Stocks: 'AAPL:NASDAQ', 'TSLA:NASDAQ'. ETFs/Index funds: 'SPY:NYSEARCA', 'VTI:NYSEARCA', 'QQQ:NASDAQ', 'VOO:NYSEARCA'. Crypto: 'BTC-USD', 'ETH-USD'. Note: Query 'SPY' (no exchange) returns market overview with S&P 500 related ETFs.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Stock symbol with exchange in format 'SYMBOL:EXCHANGE'. Examples: 'AAPL:NASDAQ', 'TSLA:NASDAQ', 'MSFT:NASDAQ', 'GOOGL:NASDAQ', 'NVDA:NASDAQ' for stocks. For ETFs/Index funds: 'SPY:NYSEARCA', 'VTI:NYSEARCA', 'QQQ:NASDAQ', 'VOO:NYSEARCA'. For crypto: 'BTC-USD', 'ETH-USD'. Note: Just 'SPY' returns market overview with related ETFs in futures_chain. | |
| window | No | Time range for graph data | |
| async | No | Submit search asynchronously | |
| include_markets | No | Include market overview data | |
| include_discover | No | Include discover more section | |
| include_news | No | Include top news | |
| max_futures | No | Maximum number of futures chain items to return | |
| summary_only | No | Return only essential information (price, movement, news) | |
| max_news | No | Maximum number of news articles to return (1 = only top news from Google Finance, >1 = additional news from Brave Search) |
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 describes the search functionality and format requirements, and notes a specific behavior: 'Query 'SPY' (no exchange) returns market overview with S&P 500 related ETFs.' This adds useful context beyond basic functionality. However, it doesn't cover other behavioral aspects like rate limits, authentication needs, error conditions, or what the output looks like (since there's no output schema). The description provides some behavioral insight but leaves 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 appropriately sized and front-loaded: it starts with the core purpose, then provides format guidance and examples, and ends with a behavioral note. Every sentence earns its place by conveying essential information. It could be slightly more structured (e.g., bullet points for examples), but it's efficient and avoids redundancy. There's no wasted text, making it concise yet informative.
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 (9 parameters, no annotations, no output schema), the description is moderately complete. It covers the tool's purpose, usage format, and a key behavioral note, which helps an agent understand when to invoke it. However, without annotations or output schema, it lacks details on behavioral traits (e.g., side effects, performance) and return values. For a search tool with many parameters, the description provides a good foundation but leaves room for more context, especially regarding output.
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 9 parameters thoroughly. The description adds minimal parameter semantics: it explains the format for the 'q' parameter with examples and notes the special case for 'SPY'. However, it doesn't provide additional meaning for other parameters like 'window', 'async', or the boolean flags. Given the high schema coverage, the baseline is 3, and the description adds only marginal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search for stocks, indices, mutual funds, currencies, and futures using Google Finance.' It specifies the verb ('Search') and resources (multiple financial instruments), and distinguishes itself from sibling tools like airports-search or calendar tools by focusing on financial data. The description goes beyond the name 'finance-search' by detailing what types of assets can be searched.
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 clear context on when to use this tool: for searching financial instruments via Google Finance. It includes specific format guidance ('SYMBOL:EXCHANGE') and examples for different asset types. However, it doesn't explicitly state when NOT to use it or mention alternatives (though sibling tools are unrelated to finance, so this is less critical). The guidance is practical but lacks explicit exclusions or comparison to other finance tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geocodeC
Convert an address to coordinates
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The address to geocode |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal information. It states the transformation (address to coordinates) but doesn't mention accuracy, rate limits, error handling, authentication requirements, or what happens with ambiguous addresses. For a tool with zero annotation coverage, this is a significant gap in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single, clear sentence that directly states the tool's purpose. There's no wasted verbiage or unnecessary elaboration, making it efficiently front-loaded and easy to parse for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for effective tool use. It doesn't explain the return format (e.g., coordinates structure), error cases, or performance characteristics. While the purpose is clear, the missing behavioral and output details leave significant gaps for an agent relying solely on this description.
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 description doesn't add any parameter-specific information beyond what's already in the schema, which has 100% coverage and clearly documents the single 'address' parameter. The baseline score of 3 reflects adequate but minimal value addition, as the schema fully describes the parameter without needing supplemental explanation from 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 tool's function with a specific verb ('convert') and resource ('address to coordinates'), making the purpose immediately understandable. However, it doesn't explicitly distinguish this tool from its sibling 'reverse-geocode', which performs the opposite operation, leaving some ambiguity about 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 like 'reverse-geocode' (which converts coordinates to addresses) or 'places-search' (which might involve geocoding). There's no mention of prerequisites, limitations, or typical use cases, leaving the agent with insufficient context for optimal tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-directionsC
Get directions between two locations
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | Starting location (address or lat,lng) | |
| destination | Yes | Ending location (address or lat,lng) | |
| mode | No | Travel mode |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal information. It doesn't mention whether this is a read-only operation, what kind of data is returned (e.g., route steps, duration, distance), error conditions, rate limits, or authentication requirements. The description states what the tool does but not how it 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 directly states the tool's purpose without any unnecessary words. It's appropriately sized for a simple tool and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the return value contains (e.g., route details, travel time), error handling, or any behavioral constraints. The agent would need to guess about the output format and operational characteristics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for all three parameters (origin, destination, mode with enum values). The description adds no additional parameter semantics beyond what's already in the schema, 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 verb ('Get') and resource ('directions between two locations'), making the purpose immediately understandable. It doesn't specifically differentiate from sibling tools like 'distance-matrix' or 'geocode', but the core function is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'distance-matrix' (which calculates distances/times between multiple points) or 'geocode' (which converts addresses to coordinates). There's no mention of prerequisites, limitations, or typical use cases beyond the basic function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail-get-emailC
Get a specific email by message ID
| Name | Required | Description | Default |
|---|---|---|---|
| messageId | Yes | Gmail message 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 operation but doesn't disclose authentication needs, rate limits, error handling, or what data is returned (e.g., full email content vs. metadata). For a tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero wasted words. It's front-loaded with the core purpose and appropriately sized for a simple retrieval tool, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'Get' returns (e.g., email body, headers, attachments) or behavioral aspects like permissions. For a tool interacting with a complex system like Gmail, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'messageId' well-documented in the schema. The description adds no additional parameter semantics beyond implying retrieval by ID, so it meets the baseline for high schema coverage without adding 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') and resource ('a specific email by message ID'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'gmail-read-emails' or 'gmail-get-labels', which would be needed for 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. It doesn't mention prerequisites (e.g., needing a valid message ID), contrast with 'gmail-read-emails' for listing emails, or specify error conditions. This leaves the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail-get-labelsB
Get all Gmail labels
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get all Gmail labels' implies a read-only operation, but it doesn't specify if this requires authentication, how many labels might be returned, whether it's paginated, or if it includes metadata like label colors. For a 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 'Get all Gmail labels' is a single, efficient sentence that front-loads the core purpose without unnecessary words. It earns its place by clearly stating what the tool does, 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 simplicity (0 parameters, no output schema), the description is minimal but adequate for basic understanding. However, it lacks context about authentication requirements, return format (e.g., list of label objects), or any limitations (e.g., rate limits). With no annotations to fill these gaps, the description is incomplete for 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?
The tool has 0 parameters, and schema description coverage is 100% (since there are no parameters to describe). The description doesn't need to add parameter semantics beyond what the schema provides. A baseline of 4 is appropriate as there are no parameters to document, and the description doesn't introduce any confusion about inputs.
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 'Get all Gmail labels' clearly states the action (get) and resource (Gmail labels). It distinguishes from siblings like 'gmail-get-email' and 'gmail-read-emails' by focusing specifically on labels rather than emails. However, it doesn't specify if this includes system labels or only user-created ones, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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), whether it's for listing labels before filtering emails, or how it relates to sibling tools like 'gmail-read-emails' that might also involve labels. This leaves the agent with minimal 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.
gmail-read-emailsC
Read/list emails from Gmail with optional search query
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Gmail search query (e.g., 'is:unread', 'from:example@gmail.com') | |
| maxResults | No | Maximum number of emails to return | |
| labelIds | No | Array of label IDs to filter by |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose whether this requires authentication, rate limits, pagination behavior, what data is returned (e.g., full emails vs summaries), or any side effects. 'Read/list' implies a safe operation but lacks confirmation of read-only nature or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core functionality with no wasted words. It's appropriately front-loaded with the main action and includes the key optional feature.
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 read operation with 3 parameters and no annotations or output schema, the description is insufficient. It doesn't explain what gets returned (email objects, metadata, etc.), authentication requirements, error conditions, or how results are structured. The agent would need to guess about the output format and behavioral details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters. The description adds no parameter-specific information beyond mentioning 'optional search query' which is already covered in the schema. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Read/list') and resource ('emails from Gmail') with the optional search functionality. It distinguishes from siblings like 'gmail-get-email' (singular retrieval) and 'gmail-send-email' (write operation), though it doesn't explicitly mention this differentiation in the text.
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 'gmail-get-email' (for single email retrieval) or 'gmail-get-labels' (for label management). It mentions optional search query but gives no context about when filtering is appropriate versus using other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gmail-send-emailC
Send an email using Gmail
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient email address | |
| subject | Yes | Email subject | |
| body | Yes | Email body content | |
| cc | No | CC email addresses (comma-separated) | |
| bcc | No | BCC email addresses (comma-separated) |
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 the action ('send an email') but doesn't cover critical traits: it doesn't mention authentication requirements, rate limits, whether emails are sent immediately or queued, error handling, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just four words ('Send an email using Gmail'), with zero wasted language. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place by conveying essential 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 this is a mutation tool (sending emails) with no annotations, no output schema, and 5 parameters, the description is incomplete. It doesn't address authentication, side effects, error cases, or return values. While the schema covers parameters well, the description fails to provide necessary context for safe and effective use, especially for a write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all parameters clearly documented in the input schema (e.g., 'to' as recipient email address). The description adds no parameter-specific information beyond what the schema provides. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description, which applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Send an email using Gmail' clearly states the action (send) and resource (email via Gmail), making the purpose immediately understandable. It distinguishes from sibling tools like gmail-get-email or gmail-read-emails by focusing on sending rather than retrieving. However, it doesn't specify if this is for single emails or batches, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication needs), when not to use it (e.g., for reading emails), or compare it to similar tools like calendar-create-event for scheduling communications. This leaves the agent without context for appropriate tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place-detailsC
Get detailed information about a specific place
| Name | Required | Description | Default |
|---|---|---|---|
| place_id | Yes | The Google Place 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 states 'Get detailed information', implying a read-only operation, but doesn't disclose behavioral traits like authentication needs, rate limits, error handling, or what 'detailed information' entails (e.g., format, fields). 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 with zero waste—'Get detailed information about a specific place'. It's front-loaded and appropriately sized for a simple tool, earning full marks for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a simple input schema, the description is incomplete. It doesn't explain what 'detailed information' includes (e.g., address, ratings, hours), return format, or error cases. For a tool with minimal structured data, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with 'place_id' documented as 'The Google Place ID'. The description adds no parameter-specific details beyond this, such as format examples or constraints. With high schema coverage, the baseline is 3, as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'detailed information about a specific place', making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'places-search' or 'geocode', which also retrieve place-related data, so it misses full sibling 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 such as 'places-search' (for broader queries) or 'geocode' (for address-based lookups). It lacks explicit context, prerequisites, or exclusions, leaving usage unclear relative to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
places-searchC
Search for places using text query
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query | |
| location | No | Bias results around this location (e.g., 'lat,lng') | |
| radius | No | Search radius in meters |
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 ('Search') but doesn't mention whether this is a read-only operation, potential rate limits, authentication needs, or what the output format looks like (e.g., list of places with basic info). For a search 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 directly states the tool's purpose without any fluff. It is appropriately sized and front-loaded, making it easy to parse quickly. Every word earns its place by conveying essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a search function with three parameters), lack of annotations, and no output schema, the description is insufficient. It doesn't explain what the search returns (e.g., types of places, fields included), error conditions, or usage constraints. For a tool with these contextual gaps, the description should provide more completeness to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with clear descriptions for all three parameters (query, location, radius). The description adds no additional semantic context beyond what the schema provides, such as examples of effective queries or how location biasing works in practice. This meets the baseline score when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Search') and resource ('places') with the method ('using text query'), making the purpose immediately understandable. It distinguishes from siblings like 'place-details' (which retrieves details for a specific place) and 'geocode' (which converts addresses to coordinates), though it doesn't explicitly mention these alternatives in the description itself.
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 'place-details' for detailed information about a specific place, 'geocode' for address-to-coordinate conversion, or 'airports-search' for specialized place searches. It also lacks context about prerequisites, such as when location or radius parameters are beneficial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reverse-geocodeC
Convert coordinates to an address
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | The latitude | |
| longitude | Yes | The longitude |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'convert' implies a read-only transformation, the description doesn't address important behavioral aspects like rate limits, accuracy expectations, data sources, error conditions, or what format the address will be returned in. It provides only the basic functional intent 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 directly states the tool's purpose with zero wasted words. It's perfectly front-loaded with the core functionality, making it immediately understandable without any unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a geocoding tool. It doesn't explain what kind of address format to expect, whether multiple results might be returned, accuracy considerations, or any error handling. For a coordinate-to-address conversion service, users need more context about the output and operational characteristics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage with clear parameter documentation, so the baseline is 3. The description doesn't add any parameter-specific information beyond what's already in the schema (latitude and longitude as coordinates to convert). No additional syntax, format requirements, or constraints are provided 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 tool's function as converting coordinates to an address, using specific verbs ('convert') and resources ('coordinates', 'address'). It distinguishes from the sibling 'geocode' tool which presumably does the opposite (address to coordinates), though this distinction isn't explicitly stated in the description itself.
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. While the sibling list includes 'geocode' (likely the inverse operation), the description doesn't mention this relationship or provide any context about appropriate use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
18 tool updates
v1.0.0- Changed
airports-search2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
calendar-create-event2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
calendar-delete-event2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
calendar-get-event2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
calendar-list-calendars2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
calendar-list-events2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
calendar-update-event2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
distance-matrix2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
finance-search2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
geocode2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
get-directions2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
gmail-get-email2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
gmail-get-labels2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
gmail-read-emails2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
gmail-send-email2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
place-details2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
places-search2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
reverse-geocode2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
18 tool updates
- First observed
airports-search - First observed
calendar-create-event - First observed
calendar-delete-event - First observed
calendar-get-event - First observed
calendar-list-calendars - First observed
calendar-list-events - First observed
calendar-update-event - First observed
distance-matrix - First observed
finance-search - First observed
geocode - First observed
get-directions - First observed
gmail-get-email - First observed
gmail-get-labels - First observed
gmail-read-emails - First observed
gmail-send-email - First observed
place-details - First observed
places-search - First observed
reverse-geocode
TDQS
Each tool has a clearly distinct purpose with no ambiguity. Tools are grouped by service (calendar, gmail, maps/geography, finance, flights) and each performs a specific action on a specific resource. For example, calendar tools handle events and calendars separately, while mapping tools cover geocoding, directions, and place searches without overlap.
Tool names follow a highly consistent service-action-resource pattern throughout. All tools use snake_case with clear prefixes (calendar-, gmail-, place-, etc.) followed by verb_noun combinations. This makes it easy to predict tool functionality and maintain readability across all 18 tools.
With 18 tools covering multiple Google services (Calendar, Gmail, Maps, Finance, Flights), the count is reasonable for the broad scope. It's slightly on the higher side but well-organized into logical groups. Each tool appears necessary for its domain, though some services have more coverage than others.
The tool set provides excellent coverage for the supported services with only minor gaps. Calendar and Gmail tools offer full CRUD operations, mapping tools cover essential geospatial functions, and finance/flights tools handle key queries. Minor gaps include no calendar event search beyond listing and no Gmail email deletion, but agents can work around these limitations effectively.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Permissioned access to Gmail, Drive and Calendar via the user's own Google account
Google Maps MCP Pack — geocoding, places, directions, distance matrix, elevation.
Multiple Google accounts (Gmail, Calendar, Drive, Contacts, Tasks) in one Claude connector.
1Provides tools for searching Google Workspace documentation and much more.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Google Calendar events and Gmail emails through natural language. Supports creating/listing calendar events with smart color coding, sending/reading emails, and advanced search capabilities across both services.-
- AlicenseNot gradedqualityDmaintenanceEnables comprehensive management of Google Calendar, Contacts, and Gmail through AI systems. Supports full CRUD operations including creating/updating/deleting events, managing contacts, sending emails, organizing with labels, and batch operations with OAuth2 authentication.109MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Google Sheets, Docs, and Drive to manage spreadsheets, documents, and files. It supports operations like reading and updating cell data, extracting text from documents, and searching or sharing files within Google Drive.MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Google Maps API for geocoding, place search, directions, distance matrices, and elevation data through natural language.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ricleedo/Google-Service-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server