Skip to main content
Glama
README.md10 kB
# Google Workspace MCP Server A comprehensive Model Context Protocol (MCP) server for Google Workspace integration with Claude Desktop. Provides 109 tools for Gmail, Calendar, Sheets, Docs, Drive, plus local storage and personal memory system. ## Features - **Gmail**: Read, send, reply, forward emails, manage drafts and labels - **Google Calendar**: List, create, update, delete events - **Google Sheets**: Create, read, write spreadsheets with formatting - **Google Docs**: Create and edit documents with formatting - **Google Drive**: Upload, download, share files and folders - **Local Storage**: Profile, job applications, contacts, skills, tasks - **Memory System**: Personal preferences, behaviors, goals, patterns --- ## Setup Guide ### Prerequisites - Python 3.10 or higher - Claude Desktop installed - Google Cloud project with APIs enabled ### Step 1: Clone or Download ```bash git clone <repository-url> cd google-mcp-server ``` ### Step 2: Install Dependencies ```bash pip install -r requirements.txt ``` Required packages: - `mcp>=0.9.0` - `google-api-python-client>=2.100.0` - `google-auth-httplib2>=0.2.0` - `google-auth-oauthlib>=1.2.0` - `python-dotenv>=1.0.0` - `requests>=2.31.0` ### Step 3: Set Up Google Cloud Project 1. Go to [Google Cloud Console](https://console.cloud.google.com) 2. Create a new project (or select existing) 3. Enable the following APIs: - Gmail API - Google Calendar API - Google Sheets API - Google Docs API - Google Drive API 4. Go to **APIs & Services > Credentials** 5. Click **Create Credentials > OAuth client ID** 6. Select **Desktop app** as application type 7. Download the JSON file 8. Rename it to `credentials.json` and place in the `google-mcp-server` folder ### Step 4: Authenticate with Google Run the authentication script: ```bash cd google-mcp-server python src/google_auth.py ``` This will: 1. Open a browser window for Google sign-in 2. Ask you to authorize the app 3. Create a `tokens.json` file with your access tokens ### Step 5: Set Up Database Folder (Optional) Create a centralized database folder for all your data: ```bash mkdir -p ~/Documents/pbdb/mcp mkdir -p ~/Documents/pbdb/analytics mkdir -p ~/Documents/pbdb/exports mkdir -p ~/Documents/pbdb/backups ``` The MCP server stores data in: - `~/Documents/pbdb/mcp/local_data.db` - Job tracking, contacts, skills - `~/Documents/pbdb/mcp/personal_memory.db` - Personal memory system ### Step 6: Configure Claude Desktop 1. Find your Claude Desktop config file: - **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` - **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` - **Linux**: `~/.config/Claude/claude_desktop_config.json` 2. Add the MCP server configuration: ```json { "mcpServers": { "google-workspace": { "command": "python", "args": [ "C:/path/to/google-mcp-server/src/mcp_server.py" ], "env": {}, "cwd": "C:/path/to/google-mcp-server" } } } ``` **Windows Example:** ```json { "mcpServers": { "google-workspace": { "command": "C:\\Users\\YourName\\miniconda3\\python.exe", "args": [ "C:\\Users\\YourName\\google-mcp-server\\src\\mcp_server.py" ], "env": {}, "cwd": "C:\\Users\\YourName\\google-mcp-server" } } } ``` **macOS/Linux Example:** ```json { "mcpServers": { "google-workspace": { "command": "/usr/bin/python3", "args": [ "/home/username/google-mcp-server/src/mcp_server.py" ], "env": {}, "cwd": "/home/username/google-mcp-server" } } } ``` ### Step 7: Restart Claude Desktop Close and reopen Claude Desktop. The MCP server will initialize automatically. ### Step 8: Verify Installation In Claude Desktop, try these commands: - "Show my recent emails" - "What events do I have on my calendar?" - "List my Google Drive files" - "What do you know about me?" --- ## Available Tools (109 Total) ### Gmail (21 tools) | Tool | Description | |------|-------------| | `list_emails` | List emails from inbox | | `get_email_detail` | Get full email content | | `send_email` | Send a new email | | `search_emails` | Search emails with query | | `create_draft` | Create a draft email | | `list_drafts` | List all drafts | | `update_draft` | Update a draft | | `send_draft` | Send a draft | | `delete_draft` | Delete a draft | | `reply_to_email` | Reply to an email | | `forward_email` | Forward an email | | `add_label` | Add label to email | | `remove_label` | Remove label from email | | `list_labels` | List all labels | | `mark_as_read` | Mark email as read | | `mark_as_unread` | Mark email as unread | | `trash_email` | Move to trash | | `archive_email` | Archive email | | `create_followup_draft` | Create job follow-up draft | | `create_thank_you_draft` | Create thank you draft | ### Calendar (5 tools) | Tool | Description | |------|-------------| | `list_calendar_events` | List upcoming events | | `create_calendar_event` | Create a new event | | `update_calendar_event` | Update an event | | `delete_calendar_event` | Delete an event | | `get_calendar_event` | Get event details | ### Sheets (11 tools) | Tool | Description | |------|-------------| | `create_spreadsheet` | Create new spreadsheet | | `read_sheet` | Read data from sheet | | `write_sheet` | Write data to sheet | | `append_sheet` | Append rows to sheet | | `get_sheet_info` | Get spreadsheet info | | `create_sheet_tab` | Create new tab | | `list_spreadsheets` | List all spreadsheets | | `format_cells` | Format cells | | `add_formula` | Add formula to cell | | `share_spreadsheet` | Share spreadsheet | | `create_job_tracker` | Create job tracker template | ### Docs (12 tools) | Tool | Description | |------|-------------| | `create_document` | Create new document | | `read_document` | Read document content | | `append_to_document` | Append text | | `format_document_text` | Format text | | `apply_paragraph_style` | Apply styles | | `insert_table` | Insert table | | `insert_bullet_list` | Insert bullet list | | `insert_numbered_list` | Insert numbered list | | `list_documents` | List all documents | | `share_document` | Share document | | `create_daily_report` | Create report template | ### Drive (17 tools) | Tool | Description | |------|-------------| | `list_files` | List files | | `list_folders` | List folders | | `create_folder` | Create folder | | `upload_file` | Upload file | | `download_file` | Download file | | `move_file` | Move file | | `copy_file` | Copy file | | `delete_file` | Delete file | | `search_files` | Search files | | `share_file` | Share with user | | `share_file_with_anyone` | Share with link | | `get_file_metadata` | Get file info | | `rename_file` | Rename file | | `get_storage_quota` | Get storage info | | `export_to_drive` | Export content | ### Local Storage (21 tools) | Tool | Description | |------|-------------| | `set_profile` | Set profile field | | `get_profile` | Get profile | | `get_full_profile` | Get complete profile | | `add_job_application` | Add job application | | `get_job_applications` | Get applications | | `update_job_application` | Update application | | `add_interview` | Add interview | | `get_interviews` | Get interviews | | `add_contact` | Add contact | | `get_contacts` | Get contacts | | `add_skill` | Add skill | | `get_skills` | Get skills | | `add_work_experience` | Add experience | | `get_work_experience` | Get experience | | `add_education` | Add education | | `get_education` | Get education | | `add_task` | Add task | | `get_tasks` | Get tasks | | `complete_task` | Complete task | | `add_note` | Add note | | `get_notes` | Get notes | | `get_job_search_summary` | Get job stats | ### Memory System (22 tools) | Tool | Description | |------|-------------| | `save_about_me` | Save user info | | `get_about_me` | Get user info | | `remember` | Remember anything | | `recall` | Recall memories | | `add_behavior` | Store behavior pattern | | `get_behaviors` | Get behaviors | | `add_preference` | Store preference | | `get_preferences` | Get preferences | | `add_goal` | Store goal | | `get_goals` | Get goals | | `add_work_style` | Store work style | | `get_work_style` | Get work style | | `add_fact` | Store fact | | `get_facts` | Get facts | | `add_decision` | Log decision | | `get_decisions` | Get decisions | | `add_interaction` | Log interaction | | `get_interactions` | Get interactions | | `add_learning` | Store learning | | `get_learnings` | Get learnings | | `get_everything_about_user` | Get all user data | | `search_memory` | Search memories | --- ## Project Structure ``` google-mcp-server/ ├── src/ │ ├── mcp_server.py # Main MCP server (109 tools) │ ├── google_auth.py # OAuth authentication │ ├── google_gmail.py # Gmail integration │ ├── google_calendar.py # Calendar integration │ ├── google_sheets.py # Sheets integration │ ├── google_docs.py # Docs integration │ ├── google_drive.py # Drive integration │ ├── local_storage.py # SQLite local storage │ └── memory_system.py # Personal memory system ├── credentials.json # OAuth credentials (create this) ├── tokens.json # Auth tokens (auto-generated) ├── config.json # Configuration ├── requirements.txt # Dependencies └── README.md ``` --- ## Troubleshooting ### Server not loading in Claude Desktop 1. Check the path in `claude_desktop_config.json` 2. Verify Python path is correct 3. Check logs at `%APPDATA%\Claude\logs\mcp-server-google-workspace.log` ### Authentication errors 1. Delete `tokens.json` and re-authenticate 2. Verify `credentials.json` is valid 3. Check that APIs are enabled in Google Cloud Console ### Database errors 1. Verify database folder exists at `~/Documents/pbdb/mcp/` 2. Check file permissions 3. Delete `.db` files to reset (data will be lost) --- ## License MIT License

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pbulbule13/google-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server