Google Services MCP Server
by sumit-1492
README.md
# 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
```bash
# Navigate to project directory
cd mcplatestv1
# Install dependencies
pip install -r requirements.txt
```
### 2. Setup Google OAuth
1. Download `credentials.json` from [Google Cloud Console](https://console.cloud.google.com/)
2. Place `credentials.json` in the project root directory
3. Run the setup script to authenticate:
```bash
python src/setup.py
```
4. Follow the prompts to authorize access to your Google account
5. The script will create `tokens.json` with your access tokens
### 3. Configure Your Services
Edit `config.json`:
```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:
```json
{
"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:
1. Claude Desktop will automatically start the MCP server
2. All 13 tools should be available
3. 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 john@example.com 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 range
- `write_sheet` - Write data to a range
- `append_sheet` - Append data to a sheet
- `get_sheet_info` - Get spreadsheet information
### Gmail
- `list_emails` - List emails from inbox
- `get_email_detail` - Get detailed email information
- `send_email` - Send an email
- `search_emails` - Search emails with a query
### Google Calendar
- `list_calendar_events` - List upcoming events
- `create_calendar_event` - Create a new event
- `update_calendar_event` - Update an existing event
- `delete_calendar_event` - Delete an event
- `get_calendar_event` - Get event details
## Troubleshooting
### Server Won't Start
1. **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"`
2. **Check file path**: Verify the path to `mcp_server.py` is correct
- Use absolute path in config file
- Windows: `D:\\mcplatestv1\\src\\mcp_server.py`
- Mac/Linux: `/path/to/mcplatestv1/src/mcp_server.py`
3. **Check dependencies**: Make sure all packages are installed
```bash
pip install -r requirements.txt
```
### Tools Not Appearing
1. **Check Claude Desktop logs**:
- Look for error messages in Claude Desktop console
- Check if server process is running
2. **Verify authentication**:
- Make sure `tokens.json` exists and is valid
- Re-run `python src/setup.py` if needed
3. **Restart Claude Desktop**:
- Completely quit (not just close window)
- Restart and check again
### Authentication Errors
1. **Re-authenticate**: Run `python src/setup.py` again
2. **Check credentials**: Verify `credentials.json` is valid
3. **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.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues