Step-by-step guide to set up the Google Workspace MCP server for daily briefings
From daily-briefingnpx claudepluginhub sureagentai/agentai-tcap-claude-marketplace --plugin daily-briefingThis skill uses the workspace's default tool permissions.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Details PluginEval's skill quality evaluation: 3 layers (static, LLM judge), 10 dimensions, rubrics, formulas, anti-patterns, badges. Use to interpret scores, improve triggering, calibrate thresholds.
This guide walks you through setting up the Daily Briefing skill that integrates Gmail, Google Calendar, and Google Chat with Claude Code.
Create the directory and copy these files:
mkdir -p ~/google-workspace-mcp
cd ~/google-workspace-mcp
You'll need these files (I can provide them or you can get them from me):
server.py - Main MCP serverauth.py - Google OAuth handlinggmail_tools.py - Gmail integrationcalendar_tools.py - Calendar integrationchat_tools.py - Google Chat integrationsetup_oauth.py - OAuth setup scriptrequirements.txt - Python dependenciescd ~/google-workspace-mcp
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
requirements.txt contents:
mcp>=1.0.0
google-auth>=2.23.0
google-auth-oauthlib>=1.1.0
google-auth-httplib2>=0.1.1
google-api-python-client>=2.108.0
python-dateutil>=2.8.2
In your project, go to APIs & Services → Library and enable:
Google Workspace MCPhttps://www.googleapis.com/auth/gmail.readonlyhttps://www.googleapis.com/auth/gmail.composehttps://www.googleapis.com/auth/calendar.readonlyhttps://www.googleapis.com/auth/chat.spaces.readonlyhttps://www.googleapis.com/auth/chat.messages.readonlyGoogle Workspace MCPmkdir -p ~/.google-workspace-mcp
mv ~/Downloads/client_secret_*.json ~/.google-workspace-mcp/credentials.json
Run the OAuth setup:
cd ~/google-workspace-mcp
source venv/bin/activate
python setup_oauth.py
This will:
~/.google-workspace-mcp/token.jsonclaude mcp add --scope user google-workspace -- \
~/google-workspace-mcp/venv/bin/python \
~/google-workspace-mcp/server.py
Edit ~/.claude.json and add to the mcpServers section:
{
"mcpServers": {
"google-workspace": {
"type": "stdio",
"command": "/Users/YOUR_USERNAME/google-workspace-mcp/venv/bin/python",
"args": ["/Users/YOUR_USERNAME/google-workspace-mcp/server.py"],
"env": {}
}
}
}
Note: Replace
YOUR_USERNAMEwith your actual username.
mkdir -p ~/.claude/skills/daily-briefing
Create ~/.claude/skills/daily-briefing/SKILL.md with the skill content (I can share my exact file with you).
For personalized email drafts, create ~/.google-workspace-mcp/style_profile.md:
# [Your Name] - Email Communication Style Profile
## Overview
- **Role**: [Your Title]
- **Email**: [your@email.com]
- **Tone**: [Professional but approachable / Formal / Casual]
## Greeting Patterns
- Primary: "Hi [FirstName],"
- For multiple: "Hi [Name1] and [Name2],"
## Common Phrases
- Gratitude: "Thanks" or "Thank you"
- Acknowledgment: "Got it" or "Sounds good!"
- Following up: "Following up on..."
## Things to AVOID
- [List phrases you don't use]
- Emojis (if applicable)
- Overly formal language
## Signature
[Your Name]
[Your Title]
claude
Type /mcp in Claude Code. You should see google-workspace listed.
Ask Claude: "Check my Google authentication status"
Type /daily-briefing to run the skill.
| Issue | Solution |
|---|---|
| "credentials.json not found" | Download OAuth credentials from Google Cloud Console |
| "Token expired" | Delete ~/.google-workspace-mcp/token.json and run python setup_oauth.py again |
| "Access blocked" during OAuth | Add your email as a test user in OAuth consent screen |
| Server not appearing | Check the path in config, ensure venv has dependencies |
| Chat not working | Ensure Google Chat API is enabled and chat scopes are added |
~/.google-workspace-mcp/
├── credentials.json # OAuth client credentials (from Google)
├── token.json # Your auth token (generated)
└── style_profile.md # Your communication style (optional)
~/google-workspace-mcp/
├── venv/ # Python virtual environment
├── server.py # Main MCP server
├── auth.py # OAuth handling
├── gmail_tools.py # Gmail functions
├── calendar_tools.py # Calendar functions
├── chat_tools.py # Chat functions
├── setup_oauth.py # OAuth setup script
└── requirements.txt # Dependencies
~/.claude/skills/daily-briefing/
└── SKILL.md # The skill definition
~/.claude.json # Claude Code config with MCP server
# 1. Set up Python environment
cd ~/google-workspace-mcp && python3 -m venv venv && source venv/bin/activate && pip install -r requirements.txt
# 2. Run OAuth setup (after placing credentials.json)
python setup_oauth.py
# 3. Add MCP server to Claude
claude mcp add --scope user google-workspace -- ~/google-workspace-mcp/venv/bin/python ~/google-workspace-mcp/server.py
# 4. Test it
claude
# Then type: /daily-briefing