Google Workspace MCP Server
The Google Workspace MCP Server allows you to programmatically manage Gmail and Google Calendar.
Gmail Operations:
List and search emails with filtering options and Gmail query syntax
Send emails with CC and BCC support
Modify email labels (archive, trash, mark read/unread)
Calendar Operations:
List upcoming events with date range filtering
Create new events with attendees
Update existing events
Delete events
Allows listing, searching, sending, and modifying emails using the Gmail API
Allows listing, creating, updating, and deleting calendar events using the Google Calendar API
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Workspace MCP Server list my upcoming meetings for this week"
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 Workspace MCP Server
A Model Context Protocol (MCP) server that provides tools for interacting with Gmail and Calendar APIs. This server enables you to manage your emails and calendar events programmatically through the MCP interface.
Features
Gmail Tools
list_emails: List recent emails from your inbox with optional filteringsearch_emails: Advanced email search with Gmail query syntaxsend_email: Send new emails with support for CC and BCCmodify_email: Modify email labels (archive, trash, mark read/unread)
Calendar Tools
list_events: List upcoming calendar events with date range filteringcreate_event: Create new calendar events with attendeesupdate_event: Update existing calendar eventsdelete_event: Delete calendar events
Related MCP server: Google Workspace MCP Server
Prerequisites
Node.js: Install Node.js version 14 or higher
Google Cloud Console Setup:
Go to Google Cloud Console
Create a new project or select an existing one
Enable the Gmail API and Google Calendar API:
Go to "APIs & Services" > "Library"
Search for and enable "Gmail API"
Search for and enable "Google Calendar API"
Set up OAuth 2.0 credentials:
Go to "APIs & Services" > "Credentials"
Click "Create Credentials" > "OAuth client ID"
Choose "Web application"
Set "Authorized redirect URIs" to include:
http://localhost:4100/codeNote down the Client ID and Client Secret
Setup Instructions
Clone and Install:
git clone https://github.com/epaproditus/google-workspace-mcp-server.git cd google-workspace-mcp-server npm installCreate OAuth Credentials: Create a
credentials.jsonfile in the root directory:{ "web": { "client_id": "YOUR_CLIENT_ID", "client_secret": "YOUR_CLIENT_SECRET", "redirect_uris": ["http://localhost:4100/code"], "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token" } }Get Refresh Token:
node get-refresh-token.jsThis will:
Open your browser for Google OAuth authentication
Request the following permissions:
https://www.googleapis.com/auth/gmail.modifyhttps://www.googleapis.com/auth/calendarhttps://www.googleapis.com/auth/gmail.send
Save the credentials to
token.jsonDisplay the refresh token in the console
Configure MCP Settings: Add the server configuration to your MCP settings file:
For VSCode Claude extension:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonFor Claude desktop app:
~/Library/Application Support/Claude/claude_desktop_config.json
Add this to the
mcpServersobject:{ "mcpServers": { "google-workspace": { "command": "node", "args": ["/path/to/google-workspace-server/build/index.js"], "env": { "GOOGLE_CLIENT_ID": "your_client_id", "GOOGLE_CLIENT_SECRET": "your_client_secret", "GOOGLE_REFRESH_TOKEN": "your_refresh_token" } } } }Build and Run:
npm run build
Usage Examples
Gmail Operations
List Recent Emails:
{ "maxResults": 5, "query": "is:unread" }Search Emails:
{ "query": "from:example@gmail.com has:attachment", "maxResults": 10 }Send Email:
{ "to": "recipient@example.com", "subject": "Hello", "body": "Message content", "cc": "cc@example.com", "bcc": "bcc@example.com" }Modify Email:
{ "id": "message_id", "addLabels": ["UNREAD"], "removeLabels": ["INBOX"] }
Calendar Operations
List Events:
{ "maxResults": 10, "timeMin": "2024-01-01T00:00:00Z", "timeMax": "2024-12-31T23:59:59Z" }Create Event:
{ "summary": "Team Meeting", "location": "Conference Room", "description": "Weekly sync-up", "start": "2024-01-24T10:00:00Z", "end": "2024-01-24T11:00:00Z", "attendees": ["colleague@example.com"] }Update Event:
{ "eventId": "event_id", "summary": "Updated Meeting Title", "location": "Virtual", "start": "2024-01-24T11:00:00Z", "end": "2024-01-24T12:00:00Z" }Delete Event:
{ "eventId": "event_id" }
Troubleshooting
Authentication Issues:
Ensure all required OAuth scopes are granted
Verify client ID and secret are correct
Check if refresh token is valid
API Errors:
Check Google Cloud Console for API quotas and limits
Ensure APIs are enabled for your project
Verify request parameters match the required format
License
This project is licensed under the MIT License.
Available Tools
8 toolscreate_eventC
Create a new calendar event
Inputs: end (required), start (required), summary (required), location, +2 more.
delete_eventB
Delete a calendar event
Inputs: eventId (required).
list_emailsB
List recent emails from Gmail inbox
Inputs: query, maxResults.
list_eventsC
List upcoming calendar events
Inputs: timeMax, timeMin, maxResults.
modify_emailA
Modify email labels (archive, trash, mark read/unread)
Inputs: id (required), addLabels, removeLabels.
search_emailsC
Search emails with advanced query
Inputs: query (required), maxResults.
send_emailC
Send a new email
Inputs: to (required), body (required), subject (required), cc, +1 more.
update_eventB
Update an existing calendar event
Inputs: eventId (required), end, start, summary, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Tools are clearly separated into two domains: calendar (create/delete/list/update events) and email (list/search/send/modify labels). No overlapping purposes, making it easy for an agent to select the correct tool.
All tool names follow an excellent verb_noun pattern (e.g., create_event, list_emails). There is no mixing of conventions or inconsistent verb styles.
With 8 tools, the set is well-scoped for covering two major Google Workspace services. Neither too few nor too many, each tool serves a distinct purpose.
Calendar operations are complete (CRUD). Email operations cover list, search, send, and label modification, but are missing permanent deletion and the ability to fetch detailed content of a single email. Still, core workflows are well-covered.
Maintenance
Related MCP Connectors
A MCP server for Gmail that lets you search, read, and draft emails and replies.
MCP server for Nylas — read email, calendars, events and contacts, and send email or create events.
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server that integrates with Gmail to enable sending, reading, and managing emails through tools like send-email, trash-email, get-unread-emails, and read-email.73GPL 3.0
- AlicenseAqualityDmaintenanceA Model Context Protocol server that provides tools for interacting with Gmail and Calendar APIs, enabling programmatic management of emails and calendar events.827MIT
- AlicenseNot gradedqualityDmaintenanceMCP server to interact with Google Gmail and Calendar APIs. Supports multiple accounts, email search and drafting, and calendar event management.MIT
- AlicenseBqualityDmaintenanceMCP server for interacting with Google Gmail and Calendar via natural language, supporting multiple accounts.359MIT