Google Meet & Calendar MCP Server
A production-ready Model Context Protocol (MCP) server for Google Meet and Google Calendar. Connect any AI agent to Google Calendar & Meet — create meetings with Meet links, manage events, browse calendars, access recordings, transcripts, and participant data.
This is an independent, generalized MCP server. It is not tied to any specific project and can be connected to any AI agent that supports MCP (Claude Desktop, Cursor, WorkOS, or custom agents).
Features
- 📅 Calendar Events: Create, read, update, delete, and list events
- 🎥 Meetings: Create Google Meet meetings with auto-generated links
- 👥 Attendees: Add attendees to events
- 📋 Calendars: List all accessible calendars
- 🎬 Recordings: List and download meeting recordings (Meet REST API v2)
- 📝 Transcripts: Access meeting transcripts (Meet REST API v2)
- 👤 Participants: View meeting participant history (Meet REST API v2)
- 📊 Conference Records: Browse past meeting records
Installation
Recommended — no pre-install required (uses uv):
# uv manages a temporary isolated environment automatically
uvx --from workos-gmeet-mcp-server gmeet-mcp-server
Or install permanently with pip:
pip install workos-gmeet-mcp-server
Or install from source:
git clone https://github.com/workos/workos-gmeet-mcp-server
cd workos-gmeet-mcp-server
pip install -e .
Quick Start
export GOOGLE_CLIENT_ID="your-client-id.apps.googleusercontent.com"
export GOOGLE_CLIENT_SECRET="GOCSPX-your-secret"
export GOOGLE_REFRESH_TOKEN="1//your-refresh-token"
# Recommended: run via uvx (no install needed)
uvx --from workos-gmeet-mcp-server gmeet-mcp-server
# Or if installed via pip
gmeet-mcp-server
# Or run as a Python module
python -m gmeet_mcp_server
Configuration
Environment Variables
| Variable | Required | Description |
|---|---|---|
GOOGLE_CLIENT_ID |
✅ Yes | OAuth2 Client ID from Google Cloud Console |
GOOGLE_CLIENT_SECRET |
✅ Yes | OAuth2 Client Secret |
GOOGLE_REFRESH_TOKEN |
✅ Yes | OAuth2 Refresh Token (generated once, used to auto-refresh access tokens) |
Getting Google OAuth2 Credentials
1. Create a Google Cloud Project
- Go to Google Cloud Console
- Create a new project (or select existing)
- Enable these APIs under APIs & Services → Library:
- Google Calendar API
- Google Meet REST API (for recordings/transcripts)
- Google Drive API (for downloading recordings)
2. Configure OAuth Consent Screen
- Go to APIs & Services → OAuth consent screen
- Choose External user type
- Fill in app name and email
- Add scopes:
https://www.googleapis.com/auth/calendarhttps://www.googleapis.com/auth/meetings.space.readonlyhttps://www.googleapis.com/auth/drive.readonly
3. Create OAuth2 Credentials
- Go to APIs & Services → Credentials
- Click Create Credentials → OAuth client ID
- Application type: Desktop app
- Note down the Client ID and Client Secret
4. Generate a Refresh Token
Option A — Using Google OAuth Playground:
- Go to OAuth 2.0 Playground
- Click ⚙️ Settings → check Use your own OAuth credentials → enter your Client ID & Secret
- In Step 1, add scopes:
https://www.googleapis.com/auth/calendarhttps://www.googleapis.com/auth/meetings.space.readonlyhttps://www.googleapis.com/auth/drive.readonly
- Click Authorize APIs → sign in → grant access
- In Step 2, click Exchange authorization code for tokens
- Copy the Refresh Token
Option B — Using the included helper script:
python MCP_servers/get_google_token.py \
--client-id "YOUR_CLIENT_ID" \
--client-secret "YOUR_CLIENT_SECRET"
Connecting to AI Agents
Note: Use
uvx --from workos-gmeet-mcp-server gmeet-mcp-serverin all configs below. The--fromflag is needed because the PyPI package name (workos-gmeet-mcp-server) differs from the CLI entry point (gmeet-mcp-server). You must have uv installed (brew install uvon macOS).
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"gmeet": {
"command": "uvx",
"args": ["--from", "workos-gmeet-mcp-server", "gmeet-mcp-server"],
"env": {
"GOOGLE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
"GOOGLE_CLIENT_SECRET": "GOCSPX-your-secret",
"GOOGLE_REFRESH_TOKEN": "1//your-refresh-token"
}
}
}
}
Alternative — if you have installed via
pip install workos-gmeet-mcp-serverand prefer not to use uvx, use the full absolute path to the binary instead:{ "command": "/path/to/your/bin/gmeet-mcp-server" }Find the path with:
which gmeet-mcp-server
Cursor
Edit ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):
{
"mcpServers": {
"gmeet": {
"command": "uvx",
"args": ["--from", "workos-gmeet-mcp-server", "gmeet-mcp-server"],
"env": {
"GOOGLE_CLIENT_ID": "your-client-id.apps.googleusercontent.com",
"GOOGLE_CLIENT_SECRET": "GOCSPX-your-secret",
"GOOGLE_REFRESH_TOKEN": "1//your-refresh-token"
}
}
}
}
VS Code (GitHub Copilot / MCP extension)
Edit .vscode/mcp.json in your project:
{
"servers": {
"gmeet": {
"type": "stdio",
"command": "uvx",
"args": ["--from", "workos-gmeet-mcp-server", "gmeet-mcp-server"],
"env": {
"GOOGLE_CLIENT_ID": "${input:googleClientId}",
"GOOGLE_CLIENT_SECRET": "${input:googleClientSecret}",
"GOOGLE_REFRESH_TOKEN": "${input:googleRefreshToken}"
}
}
},
"inputs": [
{
"id": "googleClientId",
"type": "promptString",
"description": "Google OAuth2 Client ID"
},
{
"id": "googleClientSecret",
"type": "promptString",
"description": "Google OAuth2 Client Secret",
"password": true
},
{
"id": "googleRefreshToken",
"type": "promptString",
"description": "Google OAuth2 Refresh Token",
"password": true
}
]
}
WorkOS / Custom Agents
Add to .mcp.json in your project root:
{
"mcpServers": {
"gmeet": {
"transport": "stdio",
"command": "uvx",
"args": ["--from", "workos-gmeet-mcp-server", "gmeet-mcp-server"],
"env": {
"GOOGLE_CLIENT_ID": "${GOOGLE_CLIENT_ID}",
"GOOGLE_CLIENT_SECRET": "${GOOGLE_CLIENT_SECRET}",
"GOOGLE_REFRESH_TOKEN": "${GOOGLE_REFRESH_TOKEN}"
}
}
}
}
Available Tools (14)
Calendar Events
| Tool | Description |
|---|---|
gmeet_list_events |
List upcoming calendar events |
gmeet_create_event |
Create a calendar event (no Meet link) |
gmeet_get_event |
Get details of a specific event |
gmeet_update_event |
Update an existing event |
gmeet_delete_event |
Delete a calendar event |
Meetings
| Tool | Description |
|---|---|
gmeet_create_meeting |
Create a calendar event WITH a Google Meet link |
gmeet_add_attendee |
Add an attendee to an existing event |
Calendars
| Tool | Description |
|---|---|
gmeet_list_calendars |
List all accessible calendars |
Recordings & Transcripts (Meet REST API v2)
| Tool | Description |
|---|---|
gmeet_list_conference_records |
Browse past meeting records |
gmeet_get_meeting_participants |
View participant history for a meeting |
gmeet_list_recordings |
List recordings for a meeting |
gmeet_list_transcripts |
List transcripts for a meeting |
gmeet_download_recording |
Download a meeting recording via Google Drive |
gmeet_get_transcript_content |
Get transcript text content via Google Docs |
Development
git clone https://github.com/workos/workos-gmeet-mcp-server
cd workos-gmeet-mcp-server
pip install -e .
# Run tests
pytest
# Run the server locally
GOOGLE_CLIENT_ID=... GOOGLE_CLIENT_SECRET=... GOOGLE_REFRESH_TOKEN=... python -m gmeet_mcp_server
Publishing
To PyPI
pip install build twine
rm -rf dist/ build/ src/*.egg-info
python -m build
pip install "packaging>=24.2" # required for Metadata 2.4 support in twine
twine check dist/* # validate before uploading
twine upload dist/*
To MCP Registry
mcp-publisher login github
mcp-publisher publish
License
MIT — see LICENSE for details.
Release files for workos-gmeet-mcp-server 2.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| workos_gmeet_mcp_server-2.0.1.tar.gz | 17.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| workos_gmeet_mcp_server-2.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 34.6 kB
Release files / workos_gmeet_mcp_server-2.0.1.tar.gz
| Download URL | workos_gmeet_mcp_server-2.0.1.tar.gz |
|---|---|
| Size | 17.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8307655fe51ec611c2392f7b36454b66340047b750e8f3754d6e8a846ac11f6c
|
|
BLAKE2b-256 checksum How to use checksums |
d283a6a6f420ac9f1714ca05127fce0f65d57238f4852b21fa1ba664a22c02a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.2
|
Release files / workos_gmeet_mcp_server-2.0.1-py3-none-any.whl
| Download URL | workos_gmeet_mcp_server-2.0.1-py3-none-any.whl |
|---|---|
| Size | 16.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6bdbef1d2e21eb8bd45f9f6f8d1103b7c00fc544c6043eda9708f2ec2c3dfef1
|
|
BLAKE2b-256 checksum How to use checksums |
e2d1dc643a01f62b79b1d3bb682e74b220e2d746722d46fc5bb8bc1a1a92eed2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.2
|