google-workspace-alias-mcp
Provides tools for sending emails with send-as alias support, managing drafts, labels, attachments, and email templates with variables, as well as listing, searching, and modifying emails.
Provides tools for creating, updating, listing, searching, and deleting events, checking free/busy availability across calendars, and managing recurring events.
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-alias-mcp send email to client@example.com from alias hello@mycompany.com about project update"
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 Alias MCP
A Model Context Protocol (MCP) server for Google Workspace integration with send-as alias support, email templates, and scheduled send. This server enables AI assistants to manage Gmail and Google Calendar through natural language interactions.
Why google-workspace-alias-mcp?
Unique: Only MCP with send-as alias support
Unified: Gmail + Calendar in one package
Full Featured: 28 tools with complete API coverage
✨ Why This MCP?
Feature | This MCP | Gmail MCP (Original) |
Send-As Alias Support | ✅ Dynamic discovery | ❌ Not supported |
Email Templates | ✅ With variables | ❌ Not supported |
Scheduled Send | ✅ Built-in | ❌ Not supported |
Gmail + Calendar | ✅ Unified | ❌ Gmail only |
Multi-Account | ✅ Planned | ❌ Not supported |
Free/Busy Check | ✅ Built-in | ❌ Not supported |
Related MCP server: Google Workspace MCP Server
🚀 Features
Gmail
✅ Send emails - with subject, content, attachments, and recipients
✅ Send-As Alias Support - dynamic discovery of all configured aliases
✅ Email templates - save and reuse templates with variables
✅ Scheduled send - schedule emails for later delivery
✅ Draft emails - create drafts without sending
✅ Read emails - get full email content with enhanced attachment display
✅ List emails - view inbox, sent, or custom labels
✅ Search emails - using Gmail search syntax
✅ Modify emails - mark read/unread, move to labels/folders
✅ Delete emails - permanent deletion
✅ Download attachments - save attachments to local filesystem
✅ Label management - create, update, delete labels
✅ Batch operations - process multiple emails efficiently
✅ Full attachment support - send and receive file attachments
✅ HTML emails - multipart messages with both HTML and plain text
✅ International characters - full support in subject and content
Google Calendar
✅ Create events - with title, time, description, location, attendees
✅ Get event - retrieve event details by ID
✅ List events - view events within specified time range
✅ Update events - modify existing events
✅ Delete events - remove events
✅ Search events - find events by query
✅ Free/Busy check - check availability across calendars
✅ Multi-calendar support - work with multiple calendars
✅ Recurring events - support for repeating events
📦 Installation
Using npm (Recommended)
npm install -g google-workspace-alias-mcpManual Installation
git clone https://github.com/johndelapena168/google-workspace-alias-mcp.git
cd google-workspace-mcp
npm install⚙️ Setup
1. Create Google Cloud Project
Go to Google Cloud Console
Create a new project or select existing one
Enable the following APIs:
Gmail API
Google Calendar API
2. Create OAuth 2.0 Credentials
Go to "APIs & Services" > "Credentials"
Click "Create Credentials" > "OAuth client ID"
Select "Desktop app" as application type
Give it a name (e.g., "Google Workspace MCP")
Click "Create"
Download the JSON file
Rename it to
gcp-oauth.keys.json
3. Authenticate
Place your gcp-oauth.keys.json in one of these locations:
~/.google-workspace-mcp/(recommended)Current directory
Then run:
npx google-workspace-alias-mcp authThis will:
Open your browser for Google authentication
Ask for permission to access Gmail and Calendar
Save credentials locally for future use
🔧 Configuration
Claude Desktop
Add to your Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"google-workspace": {
"command": "npx",
"args": ["google-workspace-alias-mcp"]
}
}
}Cursor
Add to your Cursor settings:
{
"mcpServers": {
"google-workspace": {
"command": "npx",
"args": ["google-workspace-alias-mcp"]
}
}
}Qoder
The MCP will be automatically detected when installed globally.
📖 Usage Examples
Send Email with Alias
{
"tool": "send_email",
"arguments": {
"to": ["client@example.com"],
"subject": "Project Update",
"body": "Hi,\n\nHere's the latest update on the project.\n\nBest regards",
"from": "hello@nexteraofai.com"
}
}List Available Aliases
{
"tool": "list_aliases",
"arguments": {}
}List Email Templates
{
"tool": "list_templates",
"arguments": {}
}Send Email Using Template
{
"tool": "send_template_email",
"arguments": {
"template": "meeting-followup",
"to": ["client@example.com"],
"variables": {
"name": "John",
"meeting_name": "Project Review",
"summary": "Discussed project timeline and milestones",
"next_steps": "1. Finalize requirements\n2. Start development",
"sender_name": "John Dela Pena"
},
"from": "hello@nexteraofai.com"
}
}Create Custom Template
{
"tool": "create_template",
"arguments": {
"name": "weekly-report",
"displayName": "Weekly Report",
"subject": "Weekly Report: {{week_date}}",
"body": "Hi {{name}},\n\nHere's the weekly report for {{week_date}}:\n\n{{report_content}}\n\nBest regards,\n{{sender_name}}"
}
}Schedule Email for Later
{
"tool": "send_scheduled_email",
"arguments": {
"to": ["team@example.com"],
"subject": "Weekly Update",
"body": "Here's the weekly project update...",
"scheduledTime": "2026-07-15T09:00:00",
"from": "hello@nexteraofai.com"
}
}Create Calendar Event
{
"tool": "create_event",
"arguments": {
"summary": "Project Kickoff Meeting",
"description": "Initial meeting to discuss project scope and timeline",
"location": "Zoom Meeting",
"start": "2026-07-15T14:00:00",
"end": "2026-07-15T15:00:00",
"attendees": ["john@example.com", "jane@example.com"],
"reminders": [
{ "method": "email", "minutes": 60 },
{ "method": "popup", "minutes": 10 }
]
}
}Search Events
{
"tool": "search_events",
"arguments": {
"query": "meeting",
"timeMin": "2026-07-01T00:00:00Z",
"timeMax": "2026-07-31T23:59:59Z",
"maxResults": 20
}
}Check Free/Busy
{
"tool": "get_freebusy",
"arguments": {
"timeMin": "2026-07-15T09:00:00Z",
"timeMax": "2026-07-15T17:00:00Z",
"calendars": ["primary", "work@example.com"]
}
}Get Event by ID
{
"tool": "get_event",
"arguments": {
"calendarId": "primary",
"eventId": "abc123def456"
}
}List Emails in Inbox
{
"tool": "list_emails",
"arguments": {
"labelIds": ["INBOX"],
"maxResults": 10
}
}Mark Email as Read
{
"tool": "modify_email",
"arguments": {
"messageId": "18a1b2c3d4e5f6789",
"removeLabelIds": ["UNREAD"]
}
}Move Email to Label
{
"tool": "modify_email",
"arguments": {
"messageId": "18a1b2c3d4e5f6789",
"addLabelIds": ["Label_123"],
"removeLabelIds": ["INBOX"]
}
}Download Attachment
{
"tool": "download_attachment",
"arguments": {
"messageId": "18a1b2c3d4e5f6789",
"attachmentId": "ANGjdJ8z7_OQ",
"savePath": "C:/Users/Downloads"
}
}Create New Label
{
"tool": "create_label",
"arguments": {
"name": "Client Projects",
"messageListVisibility": "show",
"labelListVisibility": "labelShow"
}
}Batch Delete Emails
{
"tool": "batch_delete_emails",
"arguments": {
"messageIds": ["msg1", "msg2", "msg3"]
}
}🎯 Unique Selling Points
1. Dynamic Alias Support
No other MCP server supports Gmail send-as aliases. This MCP automatically discovers all configured aliases and lets you send from any of them.
2. Email Templates
Save frequently used email templates with variables:
"Use meeting-followup template for {{name}}"3. Scheduled Send
Schedule emails for later delivery:
{
"scheduledTime": "2026-07-15T09:00:00"
}4. Unified Workspace
Gmail + Calendar in one MCP server. No need to install separate servers.
🔐 Security
OAuth credentials are stored locally in
~/.google-workspace-mcp/Tokens are automatically refreshed when expired
No data is sent to third-party servers
Full control over permissions
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Development Setup
git clone https://github.com/johndelapena168/google-workspace-alias-mcp.git
cd google-workspace-mcp
npm install
npm start📝 License
MIT License - see LICENSE file
🙏 Acknowledgments
Inspired by Gmail-MCP-Server by GongRzhe
Built with Model Context Protocol SDK
Uses Google APIs
📧 Contact
GitHub: @johndelapena168
Email: hello@nexteraofai.com
⭐ Support
If you find this MCP useful, please give it a star on GitHub!
Available Tools
29 toolsauthenticateA
Authenticate with Google Workspace (opens browser for OAuth consent). Run this first before using other tools.
Inputs: no named parameters.
batch_delete_emailsB
Permanently delete multiple emails
Inputs: messageIds (required).
batch_modify_emailsB
Modify labels for multiple emails at once
Inputs: messageIds (required), addLabelIds, removeLabelIds.
create_eventC
Create a calendar event
Inputs: end (required), start (required), summary (required), location, +4 more.
create_labelB
Create a new Gmail label
Inputs: name (required), labelListVisibility, messageListVisibility.
create_templateB
Create a new email template with variables (use {{variable}} syntax)
Inputs: body (required), name (required), subject (required), displayName (required).
delete_emailA
Permanently delete an email
Inputs: messageId (required).
delete_eventC
Delete a calendar event
Inputs: eventId (required), calendarId.
delete_labelC
Delete a Gmail label
Inputs: id (required).
download_attachmentB
Download an email attachment to local filesystem
Inputs: messageId (required), attachmentId (required), filename, savePath.
draft_emailC
Create a draft email
Inputs: to (required), body (required), subject (required), cc, +4 more.
get_eventB
Get event details by event ID
Inputs: eventId (required), calendarId.
get_freebusyC
Check free/busy status for calendars
Inputs: timeMax (required), timeMin (required), calendars.
get_templateC
Get a specific template by name
Inputs: name (required).
list_aliasesA
List all available send-as email aliases for the authenticated Gmail account
Inputs: no named parameters.
list_calendarsB
List all calendars
Inputs: no named parameters.
list_email_labelsA
List all Gmail labels
Inputs: no named parameters.
list_emailsC
List emails in inbox, sent, or specific label
Inputs: query, labelIds, maxResults.
list_eventsC
List events from a calendar
Inputs: timeMax, timeMin, calendarId, maxResults.
list_templatesA
List all available email templates
Inputs: no named parameters.
modify_emailB
Add or remove labels from an email (mark read/unread, move to folder, archive, etc.)
Inputs: messageId (required), addLabelIds, removeLabelIds.
read_emailB
Read an email by message ID
Inputs: messageId (required).
search_emailsB
Search emails using Gmail search syntax
Inputs: query (required), maxResults.
search_eventsC
Search calendar events
Inputs: query (required), timeMax, timeMin, calendarId, +1 more.
send_emailA
Send an email with optional alias support
Inputs: to (required), body (required), subject (required), cc, +5 more.
send_scheduled_emailB
Schedule an email to be sent at a specific time
Inputs: to (required), body (required), subject (required), scheduledTime (required), +5 more.
send_template_emailC
Send an email using a template with variables
Inputs: to (required), template (required), variables (required), cc, +2 more.
update_eventC
Update an existing calendar event
Inputs: eventId (required), end, start, summary, +4 more.
update_labelB
Update an existing Gmail label
Inputs: id (required), name, labelListVisibility, messageListVisibility.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 29 tools
Each tool targets a distinct resource and action: email operations (send, read, delete, modify, batch, labels, attachments, aliases, templates) and calendar operations (list, create, get, update, delete, search, freebusy). No overlapping purposes.
All tools follow a consistent verb_noun pattern (e.g., create_event, delete_email, list_aliases). The only exception is 'authenticate' which is a setup verb, acceptable for a single bootstrap tool.
29 tools is on the high side but reasonable given the coverage of Gmail, Calendar, and templates. Each tool has a clear purpose, though the scope might be slightly broad for a server focused on aliases.
Core CRUD operations are covered for emails, labels, events, and templates. However, alias management is limited to listing; creation or deletion of aliases is missing, which is a notable gap given the server name.
Maintenance
Related MCP Connectors
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.
Gmail, Outlook, Drive, OneDrive and calendars for AI agents. Many accounts, one endpoint, audit log.
Email inboxes and calendars for AI agents: send, receive, search, draft and schedule.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA Model Context Protocol server that enables AI assistants to interact with Gmail services, supporting email operations, draft management, and calendar functionality through Google API integration.128 npm2MIT
- 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 gradedqualityDmaintenanceA Model Context Protocol server that enables AI assistants to manage Gmail through natural language interactions with features like sending emails, searching, and label management.16,748 npmMIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server for Gmail that lets AI assistants read, send, search, label, and filter Gmail through natural language, with OAuth2 auto-authentication and full attachment support.128 npm3MIT