Skip to main content
Glama
ricleedo

Google Services MCP Server

by ricleedo

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

  1. Clone the repository:

    git clone <repository-url>
    cd google-mcp
  2. Install dependencies:

    pnpm install
  3. Build 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 only

Configuration

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_token

Google API Setup

  1. Google Maps API: Enable Maps, Places, and Directions APIs in Google Cloud Console

  2. Gmail/Calendar: Set up OAuth 2.0 credentials and obtain refresh tokens

  3. 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.js

Available Tools

Maps & Places

  • geocode - Convert address to coordinates

  • reverse-geocode - Convert coordinates to address

  • places-search - Search for places by text query

  • get-directions - Get directions between locations

  • distance-matrix - Calculate distances between multiple points

  • place-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 emails

  • gmail-read-emails - List/search emails

  • gmail-get-email - Get specific email by ID

  • gmail-get-labels - List Gmail labels

Calendar

  • calendar-create-event - Create new events

  • calendar-list-events - List events with filters

  • calendar-get-event - Get specific event details

  • calendar-update-event - Update existing events

  • calendar-delete-event - Delete events

  • calendar-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 output

Key Technologies

  • MCP SDK: @modelcontextprotocol/sdk for protocol implementation

  • Schema 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

  1. Make changes to TypeScript files in src/

  2. Build: pnpm run build

  3. Test: pnpm start

  4. Install to clients: pnpm run install-server

  5. Restart MCP clients to load changes

Adding New Tools

  1. Define Zod schema for parameters

  2. Implement handler function

  3. Register tool in src/index.ts using server.tool()

  4. 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 tools
calendar-create-eventC

Create a new calendar event. Current time: 1/3/2026, 11:25:51 AM

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryYesEvent title/summary
descriptionNoEvent description
locationNoEvent location
startDateTimeYesStart date/time in ISO format (e.g., '2025-01-15T09:00:00-07:00')
endDateTimeYesEnd date/time in ISO format (e.g., '2025-01-15T10:00:00-07:00')
attendeesNoArray of attendee email addresses
calendarIdNoCalendar ID - Available options: 'primary' (Primary Calendar)primary
timeZoneNoTime zone - defaults to local time (UTC). Examples: 'America/New_York', 'Europe/London', 'Asia/Tokyo'

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full 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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like '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

ParametersJSON Schema
NameRequiredDescriptionDefault
eventIdYesEvent ID
calendarIdNoCalendar ID - Available options: 'primary' (Primary Calendar)primary

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
eventIdYesEvent ID
calendarIdNoCalendar ID - Available options: 'primary' (Primary Calendar)primary

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

The description implies usage when you need 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

ParametersJSON Schema
NameRequiredDescriptionDefault
maxResultsNoMaximum number of calendars to return

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
calendarIdNoCalendar ID - Available options: 'primary' (Primary Calendar)primary
timeMinNoLower bound for event start time (ISO format)
timeMaxNoUpper bound for event start time (ISO format)
maxResultsNoMaximum number of events to return
singleEventsNoWhether to expand recurring events
orderByNoOrder of eventsstartTime

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
eventIdYesEvent ID
calendarIdNoCalendar ID - Available options: 'primary' (Primary Calendar)primary
summaryNoEvent title/summary
descriptionNoEvent description
locationNoEvent location
startDateTimeNoStart date/time in ISO format
endDateTimeNoEnd date/time in ISO format
attendeesNoArray of attendee email addresses

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives 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

ParametersJSON Schema
NameRequiredDescriptionDefault
originsYesArray of origin locations
destinationsYesArray of destination locations
modeNoTravel mode

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives 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.

geocodeC

Convert an address to coordinates

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesThe address to geocode

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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

The description clearly states the tool's function with a specific verb ('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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives 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

ParametersJSON Schema
NameRequiredDescriptionDefault
originYesStarting location (address or lat,lng)
destinationYesEnding location (address or lat,lng)
modeNoTravel mode

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives 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

ParametersJSON Schema
NameRequiredDescriptionDefault
messageIdYesGmail message ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It 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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It 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

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoGmail search query (e.g., 'is:unread', 'from:example@gmail.com')
maxResultsNoMaximum number of emails to return
labelIdsNoArray of label IDs to filter by

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives 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

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient email address
subjectYesEmail subject
bodyYesEmail body content
ccNoCC email addresses (comma-separated)
bccNoBCC email addresses (comma-separated)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It 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

ParametersJSON Schema
NameRequiredDescriptionDefault
place_idYesThe Google Place ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as '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.

reverse-geocodeC

Convert coordinates to an address

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesThe latitude
longitudeYesThe longitude

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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

The description clearly states the tool's function 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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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.

  1. 18 tool updatesv1.0.0
    • Changedairports-search2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedcalendar-create-event2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedcalendar-delete-event2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedcalendar-get-event2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedcalendar-list-calendars2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedcalendar-list-events2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedcalendar-update-event2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changeddistance-matrix2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedfinance-search2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedgeocode2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget-directions2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedgmail-get-email2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedgmail-get-labels2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedgmail-read-emails2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedgmail-send-email2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedplace-details2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedplaces-search2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedreverse-geocode2 fields changed
      • addedInput schema / $schema
        Added value: +"http://json-schema.org/draft-07/schema#"
      • addedInput schema / additionalProperties
        Added value: +false
  2. 18 tool updates
    • First observedairports-search
    • First observedcalendar-create-event
    • First observedcalendar-delete-event
    • First observedcalendar-get-event
    • First observedcalendar-list-calendars
    • First observedcalendar-list-events
    • First observedcalendar-update-event
    • First observeddistance-matrix
    • First observedfinance-search
    • First observedgeocode
    • First observedget-directions
    • First observedgmail-get-email
    • First observedgmail-get-labels
    • First observedgmail-read-emails
    • First observedgmail-send-email
    • First observedplace-details
    • First observedplaces-search
    • First observedreverse-geocode

TDQS

B3.4/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

Latest Blog Posts

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