MCP (Model Context Protocol) server for Claude Desktop that provides access to Google Sheets, Gmail, and Google Calendar.
Overview
MCP (Model Context Protocol) server for Claude Desktop that provides access to Google Sheets, Gmail, and Google Calendar. - : - : Read, write, append, and get sheet info - : List, search, get details, and send emails - : List, create, update, delete, and get event details - Python 3.8 or higher - Google Cloud Project with APIs enabled: - Google Sheets API - Gmail API - Google Calendar API - OAuth 2.0 credentials (credentials.json) - Claude Desktop installed 1. Download credentials.json from Google Cloud Console 2. Place credentials.json in the project root directory 3. Run the setup script to authenticate: 4. Follow the prompts to authorize access to your Google account 5. The script will create tokens.json with your access tokens : spreadsheetId and calendarId are optional - you can specify them per tool call. Example: C:\Users\YourName\AppData\Roaming\Claude\claude_desktop_config.json Open the config file (create it if it doesn't exist) and add:
README
Google Services MCP Server
MCP (Model Context Protocol) server for Claude Desktop that provides access to Google Sheets, Gmail, and Google Calendar.
Features
- 13 MCP Tools:
- Google Sheets (4 tools): Read, write, append, and get sheet info
- Gmail (4 tools): List, search, get details, and send emails
- Google Calendar (5 tools): List, create, update, delete, and get event details
Prerequisites
- Python 3.8 or higher
- Google Cloud Project with APIs enabled:
- Google Sheets API
- Gmail API
- Google Calendar API
- OAuth 2.0 credentials (
credentials.json) - Claude Desktop installed
Installation
1. Clone and Install Dependencies
# Navigate to project directory
cd mcplatestv1
# Install dependencies
pip install -r requirements.txt
2. Setup Google OAuth
- Download
credentials.jsonfrom Google Cloud Console - Place
credentials.jsonin the project root directory - Run the setup script to authenticate:
python src/setup.py
- Follow the prompts to authorize access to your Google account
- The script will create
tokens.jsonwith your access tokens
3. Configure Your Services
Edit config.json:
{
"google": {
"clientId": "your-client-id",
"clientSecret": "your-client-secret",
"redirectUri": "http://localhost",
"spreadsheetId": "your-spreadsheet-id",
"calendarId": "primary"
}
}
Note: spreadsheetId and calendarId are optional - you can specify them per tool call.
Claude Desktop Setup
Step 1: Find Claude Desktop Config File
Windows:
%APPDATA%\Claude\claude_desktop_config.json
Example: C:\Users\YourName\AppData\Roaming\Claude\claude_desktop_config.json
Mac:
~/Library/Application Support/Claude/claude_desktop_config.json
Linux:
~/.config/Claude/claude_desktop_config.json
Step 2: Edit Config File
Open the config file (create it if it doesn’t exist) and add:
{
"mcpServers": {
"google-services": {
"command": "python",
"args": [
"D:\\mcplatestv1\\src\\mcp_server.py"
],
"env": {}
}
}
}
Important:
- Update the path to match your actual project location
- On Windows, use double backslashes (
\\) in the path - On Mac/Linux, use forward slashes (
/)
Step 3: Restart Claude Desktop
Completely quit and restart Claude Desktop for the changes to take effect.
Step 4: Verify Connection
After restarting:
- Claude Desktop will automatically start the MCP server
- All 13 tools should be available
- Test by asking Claude: “What tools do you have access to?”
Usage
Once connected, you can ask Claude to:
- Read from Sheets: “Read the data from Sheet1!A1:B10”
- Write to Sheets: “Write these values to my spreadsheet: [[‘Name’, ‘Age’], [‘John’, ‘30’]]”
- List Emails: “Show me my last 10 emails”
- Send Email: “Send an email to [email protected] with subject ‘Hello’ and body ‘Test message’”
- Create Events: “Create a calendar event for tomorrow at 2pm titled ‘Meeting’”
Available Tools
Google Sheets
read_sheet- Read data from a rangewrite_sheet- Write data to a rangeappend_sheet- Append data to a sheetget_sheet_info- Get spreadsheet information
Gmail
list_emails- List emails from inboxget_email_detail- Get detailed email informationsend_email- Send an emailsearch_emails- Search emails with a query
Google Calendar
list_calendar_events- List upcoming eventscreate_calendar_event- Create a new eventupdate_calendar_event- Update an existing eventdelete_calendar_event- Delete an eventget_calendar_event- Get event details
Troubleshooting
Server Won’t Start
-
Check Python path: Make sure Python is in your system PATH
- Test: Open terminal and type
python --version - If not found, use full path:
"C:\\Python\\python.exe"
- Test: Open terminal and type
-
Check file path: Verify the path to
mcp_server.pyis correct- Use absolute path in config file
- Windows:
D:\\mcplatestv1\\src\\mcp_server.py - Mac/Linux:
/path/to/mcplatestv1/src/mcp_server.py
-
Check dependencies: Make sure all packages are installed
pip install -r requirements.txt
Tools Not Appearing
-
Check Claude Desktop logs:
- Look for error messages in Claude Desktop console
- Check if server process is running
-
Verify authentication:
- Make sure
tokens.jsonexists and is valid - Re-run
python src/setup.pyif needed
- Make sure
-
Restart Claude Desktop:
- Completely quit (not just close window)
- Restart and check again
Authentication Errors
- Re-authenticate: Run
python src/setup.pyagain - Check credentials: Verify
credentials.jsonis valid - Check scopes: Ensure all required APIs are enabled in Google Cloud Console
Project Structure
mcplatestv1/
├── src/
│ ├── mcp_server.py # Main MCP server (stdio protocol)
│ ├── google_auth.py # Google OAuth handling
│ ├── google_sheets.py # Google Sheets functions
│ ├── google_gmail.py # Gmail functions
│ ├── google_calendar.py # Calendar functions
│ ├── agent.py # Automatic decision logic
│ └── setup.py # Initial setup script
├── config.json # Configuration (your credentials)
├── config.example.json # Configuration template
├── credentials.json # Google OAuth credentials (download from Cloud Console)
├── tokens.json # OAuth tokens (generated by setup.py)
├── requirements.txt # Python dependencies
├── claude_desktop_config.json # Example Claude Desktop config
└── README.md # This file
License
This project is for personal use. Make sure to keep your credentials.json and config.json files secure and never commit them to version control.
Install
This server does not publish a one-line install command.
Open the repository installation guide New to MCP? Start with the mcpskill.org guide →Configuration
{
"mcpServers": {
"google-services": {
"command": "python",
"args": [
"D:\\mcplatestv1\\src\\mcp_server.py"
],
"env": {}
}
}
}