Skip to main content
Glama

gsuite-mcp

npm version Coverage

Comprehensive Google Workspace MCP server with Gmail, Drive, Calendar, and Contacts integration

npm: https://www.npmjs.com/package/@west10tech/gsuite-mcp

This MCP server includes the following integrations:

Available Tools

This MCP server provides 26 tools across 4 integrations:

GoogleGmail Tools

  • google-gmail_list_messages: List messages in user's mailbox with optional filtering

  • google-gmail_get_message: Get a specific message by ID

  • google-gmail_send_message: Send an email message. Requires message in RFC 2822 format encoded as base64url string

  • google-gmail_create_draft: Create a new draft message. IMPORTANT: Message must be an object with 'raw' field containing base64url-encoded RFC 2822 formatted message.

  • google-gmail_delete_message: PERMANENTLY delete a message - IMMEDIATE and IRREVERSIBLE. WARNING: Use trash_message instead for normal email deletion. Only use this for sensitive data that must be immediately destroyed. Bypasses trash completely. REQUIRES https://mail.google.com/ scope. Returns 204 No Content with empty body on success.

  • google-gmail_modify_message: Modify labels on a message (add/remove labels, mark read/unread)

  • google-gmail_search_messages: search_messages endpoint for google-gmail

GoogleDrive Tools

  • google-drive_list_files: List files in Google Drive with optional search query and filtering

  • google-drive_get_file: Get file metadata by ID

  • google-drive_update_file: Update file metadata

  • google-drive_delete_file: Permanently delete a file. Returns 204 No Content with empty body on success.

  • google-drive_search_files: Advanced file search with complex query syntax

  • google-drive_create_file: create_file endpoint for google-drive

  • google-drive_share_file: share_file endpoint for google-drive

GoogleCalendar Tools

  • google-calendar_list_events: Returns events on the specified calendar

  • google-calendar_get_event: Returns an event

  • google-calendar_create_event: Creates an event

  • google-calendar_update_event: Updates an event

  • google-calendar_delete_event: Deletes an event. Returns 204 No Content with empty body on success.

  • google-calendar_list_calendars: Returns the calendars on the user's calendar list

GoogleContacts Tools

  • google-contacts_create_contact: Create a new contact with specified fields

  • google-contacts_update_contact: Update an existing contact. IMPORTANT: Include the 'etag' field in the request body to prevent conflicts. Get the current etag by first calling get_contact or from a previous create/update response.

  • google-contacts_delete_contact: Delete a contact permanently

  • google-contacts_search_contacts: Search across all contacts with text query

  • google-contacts_list_contacts: list_contacts endpoint for google-contacts

  • google-contacts_get_contact: get_contact endpoint for google-contacts

Related MCP server: Google Workspace MCP Server

Installation

npm install @west10tech/gsuite-mcp

Environment Setup

Create a .env file with the following variables:

GOOGLE_CLIENT_ID=your_google_client_id_here
GOOGLE_CLIENT_SECRET=your_google_client_secret_here
GOOGLE_OAUTH_CREDENTIALS=your_google_oauth_credentials_here
GOOGLE_REDIRECT_URI=your_google_redirect_uri_here

Usage

Running the server

# Development mode
npm run dev

# Production mode
npm run build && npm start

Using with Claude Desktop

Add this to your Claude Desktop configuration:

{
  "mcpServers": {
    "gsuite": {
      "command": "npx",
      "args": ["@west10tech/gsuite-mcp"],
      "env": {
        "GOOGLE_CLIENT_ID": "your_google_client_id_here",
        "GOOGLE_CLIENT_SECRET": "your_google_client_secret_here",
        "GOOGLE_OAUTH_CREDENTIALS": "your_google_oauth_credentials_here",
        "GOOGLE_REDIRECT_URI": "your_google_redirect_uri_here"
      }
    }
  }
}

Instructions for Fetching API Keys/Tokens

  • COMING SOON

Advanced Features

Request Cancellation

This MCP server supports request cancellation according to the MCP cancellation specification. Clients can cancel in-progress requests by sending a notifications/cancelled message with the request ID.

When a request is cancelled:

  • The server immediately stops processing the request

  • Any ongoing API calls are aborted

  • Resources are cleaned up

  • No response is sent for the cancelled request

Progress Notifications

The server supports progress notifications for long-running operations according to the MCP progress specification.

To receive progress updates:

  1. Include a progressToken in your request metadata

  2. The server will send notifications/progress messages with:

    • Current progress value

    • Total value (when known)

    • Human-readable status messages

Progress is reported for:

  • Multi-step operations

  • Batch processing

  • Long-running API calls

  • File uploads/downloads

Example progress notification:

{
  "method": "notifications/progress",
  "params": {
    "progressToken": "operation-123",
    "progress": 45,
    "total": 100,
    "message": "Processing item 45 of 100..."
  }
}

Available Tools

26 tools
google-calendar_create_eventC

Creates an event

Inputs: end (required), start (required), summary (required), calendarId (required), +7 more.

google-calendar_delete_eventA

Deletes an event. Returns 204 No Content with empty body on success.

Inputs: eventId (required), calendarId (required), sendUpdates, sendNotifications.

google-calendar_get_eventC

Returns an event

Inputs: eventId (required), calendarId (required), timeZone.

google-calendar_list_calendarsB

Returns the calendars on the user's calendar list

Inputs: pageToken, maxResults, showHidden, showDeleted, +1 more.

google-calendar_list_eventsC

Returns events on the specified calendar

Inputs: calendarId (required), q, orderBy, timeMax, +6 more.

google-calendar_update_eventC

Updates an event

Inputs: end (required), start (required), eventId (required), calendarId (required), +6 more.

google-contacts_create_contactB

Create a new contact with specified fields

Inputs: personFields (required), urls, names, sources, +6 more.

google-contacts_delete_contactB

Delete a contact permanently

Inputs: resourceName (required).

google-contacts_get_contactC

get_contact endpoint for google-contacts

Inputs: no named parameters.

google-contacts_list_contactsC

list_contacts endpoint for google-contacts

Inputs: no named parameters.

google-contacts_search_contactsA

Search across all contacts with text query

Inputs: query (required), sources, pageSize, readMask.

google-contacts_update_contactA

Update an existing contact. IMPORTANT: Include the 'etag' field in the request body to prevent conflicts. Get the current etag by first calling get_contact or from a previous create/update response.

Inputs: etag (required), updatePersonFields (required), person.resourceName (required), urls, +9 more.

google-drive_create_fileD

create_file endpoint for google-drive

Inputs: no named parameters.

google-drive_delete_fileA

Permanently delete a file. Returns 204 No Content with empty body on success.

Inputs: fileId (required), supportsAllDrives.

google-drive_get_fileC

Get file metadata by ID

Inputs: fileId (required), fields, acknowledgeAbuse, supportsAllDrives.

google-drive_list_filesC

List files in Google Drive with optional search query and filtering

Inputs: q, fields, spaces, corpora, +8 more.

google-drive_search_filesB

Advanced file search with complex query syntax

Inputs: q (required), fields, orderBy, pageSize, +3 more.

google-drive_share_fileD

share_file endpoint for google-drive

Inputs: no named parameters.

google-drive_update_fileC

Update file metadata

Inputs: fileId (required), name, fields, parents, +4 more.

google-gmail_create_draftB

Create a new draft message. IMPORTANT: Message must be an object with 'raw' field containing base64url-encoded RFC 2822 formatted message.

Inputs: message (required), userId.

google-gmail_delete_messageA

PERMANENTLY delete a message - IMMEDIATE and IRREVERSIBLE. WARNING: Use trash_message instead for normal email deletion. Only use this for sensitive data that must be immediately destroyed. Bypasses trash completely. REQUIRES https://mail.google.com/ scope. Returns 204 No Content with empty body on success.

Inputs: id (required), userId.

google-gmail_get_messageB

Get a specific message by ID

Inputs: id (required), format, userId, metadataHeaders.

google-gmail_list_messagesC

List messages in user's mailbox with optional filtering

Inputs: q, userId, labelIds, pageToken, +2 more.

google-gmail_modify_messageB

Modify labels on a message (add/remove labels, mark read/unread)

Inputs: id (required), userId, addLabelIds, removeLabelIds.

google-gmail_search_messagesD

search_messages endpoint for google-gmail

Inputs: no named parameters.

google-gmail_send_messageB

Send an email message. Requires message in RFC 2822 format encoded as base64url string

Inputs: raw (required), userId.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 26 tools

    Disambiguation5/5

    Each tool targets a distinct action within its service (e.g., create, delete, get, list, update, search), and the service prefix clearly groups them. There is no ambiguity between tools like list and search because their descriptions specify different use cases.

    Naming Consistency5/5

    All tool names follow a consistent pattern: service-toolname_verb_noun (e.g., google-calendar_create_event). Naming is fully uniform with underscores and no mixed conventions.

    Tool Count4/5

    With 26 tools spanning four Google services, the count is on the higher side but still reasonable. Each service has a well-scoped set of operations (6–8 tools), and no tool feels redundant.

    Completeness4/5

    Calendar, Contacts, and Gmail cover CRUD operations plus search/list; Drive adds sharing. Minor gaps exist (e.g., no calendar update, no trash for Gmail), but these do not significantly impair common workflows.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers