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
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
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/code
Note 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.json
file 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.modify
https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/gmail.send
Save the credentials to
token.json
Display 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.json
For Claude desktop app:
~/Library/Application Support/Claude/claude_desktop_config.json
Add this to the
mcpServers
object:{ "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.
local-only server
The server can only run on the client's local machine because it depends on local resources.
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.
Related MCP Servers
- -securityAlicense-qualityEnables interaction with Gmail and Google Calendar using the MCP protocol, supporting multiple Google accounts, email management, and calendar operations through natural language.Last updated -13MIT License
- -securityAlicense-qualityMCP 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.Last updated -60GPL 3.0
- AsecurityAlicenseAqualityA Model Context Protocol server that provides tools for interacting with Gmail and Calendar APIs, enabling programmatic management of emails and calendar events.Last updated -825MIT License
- -securityAlicense-qualityAn MCP server that enables Gmail integration, allowing users to manage emails (send, receive, read, trash, mark as read) directly through MCP clients like Claude Desktop.Last updated -MIT License