Skip to main content
Glama
google-workspace-alias-mcp

google-workspace-alias-mcp

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

npm install -g google-workspace-alias-mcp

Manual Installation

git clone https://github.com/johndelapena168/google-workspace-alias-mcp.git
cd google-workspace-mcp
npm install

⚙️ Setup

1. Create Google Cloud Project

  1. Go to Google Cloud Console

  2. Create a new project or select existing one

  3. Enable the following APIs:

    • Gmail API

    • Google Calendar API

2. Create OAuth 2.0 Credentials

  1. Go to "APIs & Services" > "Credentials"

  2. Click "Create Credentials" > "OAuth client ID"

  3. Select "Desktop app" as application type

  4. Give it a name (e.g., "Google Workspace MCP")

  5. Click "Create"

  6. Download the JSON file

  7. 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 auth

This will:

  1. Open your browser for Google authentication

  2. Ask for permission to access Gmail and Calendar

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

📧 Contact

⭐ Support

If you find this MCP useful, please give it a star on GitHub!

Available Tools

29 tools
authenticateA

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

    B3.4/5.0

    Scored across 29 tools

    Disambiguation5/5

    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.

    Naming Consistency5/5

    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.

    Tool Count4/5

    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.

    Completeness4/5

    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

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      F
      maintenance
      A 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 npm
      2
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A 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 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A 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 npm
      3
      MIT