lite-google-workspace-mcp

lite-google-workspace-mcp

Lightweight MCP server for Gmail and Google Calendar, enabling email and calendar management via natural language with per-account processes.

Category
Visit Server

README

lite-google-workspace-mcp

Lightweight MCP server for Gmail and Google Calendar. Each Google account runs as an independent process on its own port.

How it works

Claude Code  --HTTP-->  lite-google-workspace-mcp (port 8001)  --Google API-->  account-A@gmail.com
             --HTTP-->  lite-google-workspace-mcp (port 8002)  --Google API-->  account-B@umd.edu
  • One process per Google account, each listening on a separate port
  • OAuth tokens stored locally at ~/.config/lite-google-workspace-mcp/tokens/<account>.json
  • Token refresh handled automatically via google-auth
  • 21 tools exposed per account: Gmail (search, read, send, draft, labels, filters) + Calendar (events, free/busy, OOO, focus time)

Prerequisites

  1. A GCP project with Gmail API and Google Calendar API enabled
  2. An OAuth 2.0 credential (Web application type) with redirect URI http://localhost:8000/oauth2callback
  3. Download the credential JSON and save it as ~/.config/lite-google-workspace-mcp/client_secret.json

Install

git clone https://github.com/WhymustIhaveaname/lite-google-workspace-mcp.git
cd lite-google-workspace-mcp
uv sync

First-time setup

1. Configure ports

Create ~/.config/lite-google-workspace-mcp/config.toml:

[accounts.myaccount]
port = 8001

[accounts.work]
port = 8002
allowed_recipients = ["boss@company.com", "team@company.com"]

The account name is just a label you choose. It maps to a token file and a port.

allowed_recipients is optional. When set, send_gmail_message and draft_gmail_message will only allow sending to the listed addresses (checked against to/cc/bcc, case-insensitive). Omit it to allow sending to anyone.

2. Authorize accounts

uv run lite-google-workspace-mcp auth myaccount

This prints an OAuth URL and opens your browser. Sign in with the Google account you want to link, grant permissions (you can skip some scopes if you want), and the token is saved locally.

Repeat for each account.

3. Start the server

Manual:

uv run lite-google-workspace-mcp serve --account myaccount

With systemd (recommended):

cp contrib/lite-google-workspace-mcp@.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now lite-google-workspace-mcp@myaccount

4. Connect to Claude Code

claude mcp add --scope user --transport http lite-gmail-myaccount http://localhost:8001/mcp

Re-authorization

If a token expires or you want to change granted scopes:

# Stop the service first (auth uses port 8000 which must be free)
systemctl --user stop lite-google-workspace-mcp@myaccount

# Re-authorize
uv run lite-google-workspace-mcp auth myaccount

# Restart
systemctl --user start lite-google-workspace-mcp@myaccount

Tools

Gmail (13 tools)

Tool Description
search_gmail_messages Search by Gmail query syntax
get_gmail_message_content Read a single message
get_gmail_messages_content_batch Read multiple messages
get_gmail_thread_content Read an entire thread
get_gmail_threads_content_batch Read multiple threads
get_gmail_attachment_content Download attachment
send_gmail_message Send (plain text or HTML, with attachments)
draft_gmail_message Create a draft
list_gmail_labels List all labels
manage_gmail_label Create/update/delete labels
list_gmail_filters List all filters
manage_gmail_filter Create/delete filters
modify_gmail_message_labels Add/remove labels on a message
batch_modify_gmail_message_labels Bulk label modification

Calendar (8 tools)

Tool Description
list_calendars List all calendars
get_events Query events by time range
manage_event Create/update/delete events
manage_out_of_office Create/update/delete OOO blocks
manage_focus_time Create/update/delete focus time
query_freebusy Check availability
create_calendar Create a new calendar

Development

uv sync --extra dev
uv run pytest
uv run ruff check src/

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured