Skip to main content
Glama

Google Workspace MCP Server

Docker License: MIT

Comprehensive Model Context Protocol (MCP) server providing unified access to all major Google Workspace APIs through a single interface.

Features

Supported Google Services

  • Gmail: Read, send, search emails, manage labels

  • Google Drive: List, create, delete, share files and folders

  • Google Sheets: Create, read, update spreadsheets

  • Google Calendar: Manage events and calendars

  • Google Docs: Create and edit documents

  • Google Forms: Create forms, add questions, read responses

  • Google Chat: Send messages and manage spaces

Key Capabilities

  • Unified Authentication: Single OAuth 2.0 flow for all services

  • Comprehensive API Coverage: 25+ tools across 7 Google services

  • Docker-Based: Easy deployment with credential persistence

  • Production-Ready: Secure credential handling and error management

Related MCP server: google-connections-mcp

Quick Start

Prerequisites

  1. Google Cloud Project with enabled APIs:

    • Gmail API

    • Google Drive API

    • Google Sheets API

    • Google Calendar API

    • Google Docs API

    • Google Forms API

    • Google Chat API

  2. OAuth 2.0 Credentials:

Installation via Docker

# Pull the image
docker pull pauljeyasinghph/google-workspace-mcp:latest

# Run the container
docker run -i --rm \
  -v $(pwd)/credentials:/data/credentials \
  -v $(pwd)/client_secret.json:/data/credentials/client_secret.json:ro \
  pauljeyasinghph/google-workspace-mcp:latest

Configuration in Claude Desktop

Add to ~/.config/claude/config.json:

{
  "mcpServers": {
    "google-workspace": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "/path/to/credentials:/data/credentials",
        "-v",
        "/path/to/client_secret.json:/data/credentials/client_secret.json:ro",
        "pauljeyasinghph/google-workspace-mcp:latest"
      ]
    }
  }
}

Available Tools

Gmail Tools

  • gmail_list_messages - List emails with filters

  • gmail_get_message - Get specific email

  • gmail_send_message - Send email

  • gmail_search_messages - Search emails

Google Chat Tools

  • chat_list_spaces - List Chat spaces

  • chat_send_message - Send message to space

  • chat_list_messages - List messages in space

Google Sheets Tools

  • sheets_create_spreadsheet - Create new spreadsheet

  • sheets_get_values - Read cell values

  • sheets_update_values - Update cells

  • sheets_append_values - Append rows

Google Drive Tools

  • drive_list_files - List files/folders

  • drive_create_folder - Create folder

  • drive_delete_file - Delete file

  • drive_share_file - Share with users

Google Forms Tools

  • forms_create_form - Create new form

  • forms_add_question - Add question

  • forms_get_responses - Get form responses

Google Calendar Tools

  • calendar_list_events - List events

  • calendar_create_event - Create event

  • calendar_delete_event - Delete event

Google Docs Tools

  • docs_create_document - Create document

  • docs_get_document - Get document content

  • docs_insert_text - Insert text

  • docs_append_text - Append text

Authentication Flow

  1. First Run: Opens browser for OAuth consent

  2. Token Storage: Saves tokens to mounted volume

  3. Auto-Refresh: Automatically refreshes expired tokens

  4. Persistent: Tokens survive container restarts

Security Best Practices

  1. Never commit credentials to version control

  2. Use read-only mounts for client_secret.json

  3. Restrict OAuth scopes to minimum required

  4. Rotate credentials periodically

  5. Monitor API usage in Google Cloud Console

Building from Source

# Clone the repository
git clone https://github.com/PaulJeyasinghph/google-workspace-mcp.git
cd google-workspace-mcp

# Build the Docker image
docker build -t google-workspace-mcp .

# Run locally
docker run -i --rm \
  -v $(pwd)/credentials:/data/credentials \
  -v $(pwd)/client_secret.json:/data/credentials/client_secret.json:ro \
  google-workspace-mcp

Usage Examples

Send an Email

{
  "tool": "gmail_send_message",
  "arguments": {
    "to": "example@gmail.com",
    "subject": "Test Email",
    "body": "This is a test email sent via MCP."
  }
}

Create a Spreadsheet

{
  "tool": "sheets_create_spreadsheet",
  "arguments": {
    "title": "Q1 Budget",
    "sheet_names": ["Revenue", "Expenses"]
  }
}

Schedule a Meeting

{
  "tool": "calendar_create_event",
  "arguments": {
    "summary": "Team Sync",
    "start_time": "2024-03-20T10:00:00Z",
    "end_time": "2024-03-20T11:00:00Z",
    "attendees": ["team@example.com"]
  }
}

Troubleshooting

Authentication Errors

  • Verify all required APIs are enabled

  • Check OAuth consent screen configuration

  • Ensure credentials file is properly mounted

Permission Denied

  • Confirm OAuth scopes in credentials

  • Check Google Workspace admin settings

  • Verify user has necessary permissions

Container Issues

  • Check volume mount paths

  • Verify credentials directory permissions

  • Review Docker logs for errors

Development

Project Structure

google-workspace-mcp/
├── src/
│   ├── server.py          # Main MCP server
│   ├── auth.py            # OAuth handler
│   ├── gmail.py           # Gmail tools
│   ├── chat.py            # Chat tools
│   ├── sheets.py          # Sheets tools
│   ├── drive.py           # Drive tools
│   ├── forms.py           # Forms tools
│   ├── calendar.py        # Calendar tools
│   └── docs.py            # Docs tools
├── Dockerfile             # Multi-stage build
├── requirements.txt       # Python dependencies
├── server.yaml           # Docker registry config
├── tools.json            # Tool definitions
└── README.md             # This file

Running Tests

# Install dev dependencies
pip install -r requirements.txt pytest

# Run tests
pytest tests/

Contributing

Contributions are welcome! Please:

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests

  5. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Acknowledgments

Roadmap

  • Add Google Meet integration

  • Support service account authentication

  • Add batch operation support

  • Implement webhook listeners

  • Add Google Admin SDK tools

  • Support Google Workspace for Education


Made with ❤️ for the MCP community

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/PaulJeyasinghph/google-workspace-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server