trackmcp
Back to directory
epaproditus

google-workspace-mcp-server

View on GitHub

A Model Context Protocol server for Google Workspace integration (Gmail and Calendar)

26 stars JavaScriptAI & Machine Learning Updated Oct 18, 2025

Documentation

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 filtering
  • `search_emails`: Advanced email search with Gmail query syntax
  • `send_email`: Send new emails with support for CC and BCC
  • `modify_email`: Modify email labels (archive, trash, mark read/unread)

Calendar Tools

  • `list_events`: List upcoming calendar events with date range filtering
  • `create_event`: Create new calendar events with attendees
  • `update_event`: Update existing calendar events
  • `delete_event`: Delete calendar events

Prerequisites

1. Node.js: Install Node.js version 14 or higher

2. Google Cloud Console Setup:

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

    2. Search for and enable "Gmail API"

    3. Search for and enable "Google Calendar API"

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

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

      3. Choose "Web application"

      4. Set "Authorized redirect URIs" to include: `http://localhost:4100/code`

      5. Note down the Client ID and Client Secret

      Setup Instructions

      1. Clone and Install:

      bash
      git clone https://github.com/epaproditus/google-workspace-mcp-server.git
         cd google-workspace-mcp-server
         npm install

      2. Create OAuth Credentials:

      Create a `credentials.json` file in the root directory:

      json
      {
             "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"
             }
         }

      3. Get Refresh Token:

      bash
      node get-refresh-token.js

      This will:

        4. Configure MCP Settings:

        Add the server configuration to your MCP settings file:

          Add this to the `mcpServers` object:

          json
          {
               "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"
                   }
                 }
               }
             }

          5. Build and Run:

          bash
          npm run build

          Usage Examples

          Gmail Operations

          1. List Recent Emails:

          json
          {
               "maxResults": 5,
               "query": "is:unread"
             }

          2. Search Emails:

          json
          {
               "query": "from:example@gmail.com has:attachment",
               "maxResults": 10
             }

          3. Send Email:

          json
          {
               "to": "recipient@example.com",
               "subject": "Hello",
               "body": "Message content",
               "cc": "cc@example.com",
               "bcc": "bcc@example.com"
             }

          4. Modify Email:

          json
          {
               "id": "message_id",
               "addLabels": ["UNREAD"],
               "removeLabels": ["INBOX"]
             }

          Calendar Operations

          1. List Events:

          json
          {
               "maxResults": 10,
               "timeMin": "2024-01-01T00:00:00Z",
               "timeMax": "2024-12-31T23:59:59Z"
             }

          2. Create Event:

          json
          {
               "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"]
             }

          3. Update Event:

          json
          {
               "eventId": "event_id",
               "summary": "Updated Meeting Title",
               "location": "Virtual",
               "start": "2024-01-24T11:00:00Z",
               "end": "2024-01-24T12:00:00Z"
             }

          4. Delete Event:

          json
          {
               "eventId": "event_id"
             }

          Troubleshooting

          1. Authentication Issues:

            2. API Errors:

              License

              This project is licensed under the MIT License.

              Frequently asked questions

              What is google-workspace-mcp-server?

              google-workspace-mcp-server is A Model Context Protocol server for Google Workspace integration (Gmail and Calendar)

              How do I install google-workspace-mcp-server?

              Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

              Is google-workspace-mcp-server open source?

              Yes, it is hosted on GitHub at https://github.com/epaproditus/google-workspace-mcp-server and has 26 stars.

              Related MCP tools

              Run your own MCP server? See who uses it and what to fix.

              Measure it with TrackMCP