{"id":50916398,"url":"https://github.com/quinnjr/google-mcp","last_synced_at":"2026-06-16T15:32:15.208Z","repository":{"id":329770232,"uuid":"1120615980","full_name":"quinnjr/google-mcp","owner":"quinnjr","description":"Model Context Protocol (MCP) server for Google Workspace - Calendar, Gmail, Drive, Docs, Sheets, Slides, Meet, Chat, Forms, YouTube, Tasks, and Contacts with OAuth 2.0 authentication","archived":false,"fork":false,"pushed_at":"2026-06-11T12:51:25.000Z","size":415,"stargazers_count":9,"open_issues_count":0,"forks_count":8,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-11T14:23:19.582Z","etag":null,"topics":["ai","claude","cursor","gmail","google","google-calendar","google-chat","google-docs","google-drive","google-meet","google-sheets","google-slides","google-workspace","llm","mcp","model-context-protocol","oauth2","typescript"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/quinnjr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-21T15:38:15.000Z","updated_at":"2026-06-11T12:51:31.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/quinnjr/google-mcp","commit_stats":null,"previous_names":["pegasusheavy/google-mcp","quinnjr/google-mcp"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/quinnjr/google-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quinnjr%2Fgoogle-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quinnjr%2Fgoogle-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quinnjr%2Fgoogle-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quinnjr%2Fgoogle-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quinnjr","download_url":"https://codeload.github.com/quinnjr/google-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quinnjr%2Fgoogle-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34412788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-16T02:00:06.860Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","claude","cursor","gmail","google","google-calendar","google-chat","google-docs","google-drive","google-meet","google-sheets","google-slides","google-workspace","llm","mcp","model-context-protocol","oauth2","typescript"],"created_at":"2026-06-16T15:32:15.042Z","updated_at":"2026-06-16T15:32:15.198Z","avatar_url":"https://github.com/quinnjr.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Google MCP Server\n\nA comprehensive Model Context Protocol (MCP) server for Google integration, providing access to Google Calendar, Docs, Sheets, Slides, Drive, Gmail, Contacts, YouTube, Tasks, Forms, Chat, and Meet.\n\n## Features\n\n### Google Forms\n- Create and manage Google Forms\n- Add questions (multiple choice, short answer, checkboxes, etc.)\n- Add page breaks, text items, images, and videos\n- List and retrieve form responses\n- Update form settings (quiz mode, etc.)\n\n### Google Chat\n- List, create, and manage Chat spaces\n- Send, update, and delete messages\n- Add and remove reactions\n- Manage space members\n- Thread support for conversations\n\n### Google Meet\n- Create meeting spaces with access controls\n- Schedule meetings via Calendar integration\n- Create instant meetings\n- List and access conference records\n- View participant information\n- Access meeting recordings and transcripts\n\n### Google Calendar\n- List calendars and events\n- Create, update, and delete events\n- Quick add events using natural language\n- Get today's events and upcoming events\n- Check free/busy availability\n\n### Google Gmail\n- Read, search, and list emails\n- Send emails and reply to threads\n- Mark as read/unread, trash messages\n- List labels and organize emails\n\n### Google Contacts (People API)\n- List, search, and manage contacts\n- Create, update, and delete contacts\n- List contact groups\n\n### Google Drive\n- List, search, and browse files and folders\n- Upload, download, copy, move, and delete files\n- Create folders\n- Rename files\n\n### Google Docs\n- Create new documents with optional initial content\n- Read document content\n- Insert and append text\n- Find and replace text\n- List all documents\n\n### Google Sheets\n- Create spreadsheets with multiple sheets\n- Read values from ranges\n- Update and append values\n- Clear ranges\n- Add and delete sheets\n- List all spreadsheets\n\n### Google Slides\n- Create and manage presentations\n- Add, delete, and duplicate slides\n- Add text boxes and images\n- Find and replace text\n- List all presentations\n\n### Google YouTube\n- Search videos, channels, and playlists\n- Get video and channel details\n- View and manage playlists\n- Get video comments\n- View subscriptions and liked videos\n- Rate videos\n\n### Google Tasks (Keep Alternative)\n- Manage task lists (similar to Keep categories)\n- Create, update, complete, and delete tasks\n- Tasks support notes/descriptions (similar to Keep notes)\n- Convenience \"notes\" tools that provide Keep-like functionality\n\n\u003e **Note:** Google Keep does not have an official public API. This server uses Google Tasks API as an alternative, which provides similar note-taking capabilities through tasks with descriptions.\n\n## Installation\n\n```bash\n# Clone the repository\ncd google-mcp\n\n# Install dependencies\npnpm install\n\n# Build the project\npnpm build\n```\n\n## Google Cloud Setup\n\nBefore using this server, you need to set up Google Cloud credentials:\n\n### 1. Create a Google Cloud Project\n\n1. Go to [Google Cloud Console](https://console.cloud.google.com/)\n2. Create a new project or select an existing one\n3. Enable the following APIs:\n   - Google Calendar API\n   - Google Docs API\n   - Google Sheets API\n   - Google Slides API\n   - Google Drive API\n   - Gmail API\n   - People API (Contacts)\n   - YouTube Data API v3\n   - Google Tasks API\n   - Google Forms API\n   - Google Chat API\n   - Google Meet REST API\n\n### 2. Create OAuth 2.0 Credentials\n\n1. Navigate to **APIs \u0026 Services \u003e Credentials**\n2. Click **Create Credentials \u003e OAuth client ID**\n3. Select **Desktop app** as the application type\n4. Download the JSON file\n\n### 3. Place Credentials File\n\nSave the downloaded JSON file as `credentials.json` at the appropriate location for your platform:\n\n**Linux:**\n```\n~/.config/google-mcp/credentials.json\n```\n(or `$XDG_CONFIG_HOME/google-mcp/credentials.json` if XDG_CONFIG_HOME is set)\n\n**macOS:**\n```\n~/Library/Application Support/google-mcp/credentials.json\n```\n\n**Windows:**\n```\n%APPDATA%\\google-mcp\\credentials.json\n```\n(typically `C:\\Users\\\u003cusername\u003e\\AppData\\Roaming\\google-mcp\\credentials.json`)\n\nThe file should look like:\n```json\n{\n  \"installed\": {\n    \"client_id\": \"YOUR_CLIENT_ID.apps.googleusercontent.com\",\n    \"project_id\": \"your-project-id\",\n    \"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\",\n    \"token_uri\": \"https://oauth2.googleapis.com/token\",\n    \"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\",\n    \"client_secret\": \"YOUR_CLIENT_SECRET\",\n    \"redirect_uris\": [\"http://localhost:3000/oauth2callback\"]\n  }\n}\n```\n\n## Usage with Cursor/Claude\n\nAdd to your MCP settings configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"google\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/google-mcp/dist/index.js\"]\n    }\n  }\n}\n```\n\nOr if running from the project directory:\n\n```json\n{\n  \"mcpServers\": {\n    \"google\": {\n      \"command\": \"npx\",\n      \"args\": [\"tsx\", \"/path/to/google-mcp/src/index.ts\"]\n    }\n  }\n}\n```\n\n## Authentication\n\nOn first use, call the `google_auth` tool to initiate OAuth authentication:\n\n1. The server will provide a URL to authenticate\n2. Open the URL in a browser and sign in with your Google account\n3. Grant the requested permissions\n4. Authentication will complete automatically\n\nTokens are stored locally and will be refreshed automatically:\n- **Linux:** `~/.local/share/google-mcp/tokens.json` (or `$XDG_DATA_HOME/google-mcp/`)\n- **macOS:** `~/Library/Application Support/google-mcp/tokens.json`\n- **Windows:** `%APPDATA%\\google-mcp\\tokens.json`\n\n## Available Tools\n\n### Authentication\n| Tool | Description |\n|------|-------------|\n| `google_auth` | Initiate OAuth authentication |\n| `google_auth_status` | Check authentication status |\n| `google_auth_code` | Manually set auth code |\n| `google_logout` | Log out and clear tokens |\n\n### Google Calendar\n| Tool | Description |\n|------|-------------|\n| `calendar_list` | List all calendars |\n| `calendar_get` | Get calendar details |\n| `calendar_list_events` | List events from calendar |\n| `calendar_get_event` | Get event details |\n| `calendar_create_event` | Create new event |\n| `calendar_update_event` | Update existing event |\n| `calendar_delete_event` | Delete an event |\n| `calendar_quick_add` | Add event via natural language |\n| `calendar_get_freebusy` | Check availability |\n| `calendar_today` | Get today's events |\n| `calendar_upcoming` | Get upcoming events |\n\n### Google Gmail\n| Tool | Description |\n|------|-------------|\n| `gmail_get_profile` | Get Gmail profile info |\n| `gmail_list_labels` | List Gmail labels |\n| `gmail_list_messages` | List emails |\n| `gmail_get_message` | Get specific email |\n| `gmail_send` | Send an email |\n| `gmail_reply` | Reply to an email |\n| `gmail_trash` | Move to trash |\n| `gmail_mark_read` | Mark as read |\n| `gmail_mark_unread` | Mark as unread |\n| `gmail_search` | Search emails |\n| `gmail_get_unread` | Get unread emails |\n| `gmail_get_thread` | Get email thread |\n\n### Google Contacts\n| Tool | Description |\n|------|-------------|\n| `contacts_list` | List contacts |\n| `contacts_get` | Get contact details |\n| `contacts_search` | Search contacts |\n| `contacts_create` | Create contact |\n| `contacts_delete` | Delete contact |\n| `contacts_list_groups` | List contact groups |\n\n### Google Drive\n| Tool | Description |\n|------|-------------|\n| `drive_list_files` | List files with filtering |\n| `drive_get_file` | Get file metadata |\n| `drive_download_file` | Download file content |\n| `drive_upload_file` | Upload a new file |\n| `drive_delete_file` | Delete a file |\n| `drive_create_folder` | Create a new folder |\n| `drive_search` | Search files by content |\n| `drive_move_file` | Move file to folder |\n| `drive_copy_file` | Copy a file |\n| `drive_rename_file` | Rename a file |\n\n### Google Docs\n| Tool | Description |\n|------|-------------|\n| `docs_create` | Create a new document |\n| `docs_read` | Read document content |\n| `docs_insert_text` | Insert text at position |\n| `docs_append_text` | Append text to end |\n| `docs_replace_text` | Find and replace text |\n| `docs_list` | List all documents |\n\n### Google Sheets\n| Tool | Description |\n|------|-------------|\n| `sheets_create` | Create spreadsheet |\n| `sheets_get` | Get spreadsheet info |\n| `sheets_read` | Read values from range |\n| `sheets_update` | Update values in range |\n| `sheets_append` | Append rows |\n| `sheets_clear` | Clear a range |\n| `sheets_add_sheet` | Add a new sheet |\n| `sheets_delete_sheet` | Delete a sheet |\n| `sheets_list` | List all spreadsheets |\n\n### Google Slides\n| Tool | Description |\n|------|-------------|\n| `slides_create` | Create presentation |\n| `slides_get` | Get presentation |\n| `slides_list` | List presentations |\n| `slides_add_slide` | Add a slide |\n| `slides_delete_slide` | Delete a slide |\n| `slides_add_text` | Add text box |\n| `slides_add_image` | Add image |\n| `slides_replace_text` | Find/replace text |\n| `slides_duplicate_slide` | Duplicate slide |\n\n### Google YouTube\n| Tool | Description |\n|------|-------------|\n| `youtube_search` | Search YouTube |\n| `youtube_get_video` | Get video details |\n| `youtube_get_channel` | Get channel details |\n| `youtube_get_my_channel` | Get your channel |\n| `youtube_list_playlists` | List your playlists |\n| `youtube_get_playlist_items` | Get playlist videos |\n| `youtube_get_video_comments` | Get video comments |\n| `youtube_list_subscriptions` | List subscriptions |\n| `youtube_list_liked_videos` | List liked videos |\n| `youtube_rate_video` | Like/dislike video |\n\n### Google Tasks\n| Tool | Description |\n|------|-------------|\n| `tasks_list_tasklists` | List task lists |\n| `tasks_create_tasklist` | Create task list |\n| `tasks_delete_tasklist` | Delete task list |\n| `tasks_list_tasks` | List tasks |\n| `tasks_create_task` | Create a task |\n| `tasks_update_task` | Update a task |\n| `tasks_delete_task` | Delete a task |\n| `tasks_complete_task` | Mark task complete |\n\n### Notes (Keep-like)\n| Tool | Description |\n|------|-------------|\n| `notes_create` | Create a quick note |\n| `notes_list` | List all notes |\n| `notes_update` | Update a note |\n| `notes_delete` | Delete a note |\n\n### Google Forms\n| Tool | Description |\n|------|-------------|\n| `forms_create` | Create a new form |\n| `forms_get` | Get form details |\n| `forms_update_info` | Update title/description |\n| `forms_add_question` | Add a question |\n| `forms_delete_item` | Delete form item |\n| `forms_list_responses` | List form responses |\n| `forms_get_response` | Get specific response |\n| `forms_add_page_break` | Add page break |\n| `forms_add_text` | Add text item |\n| `forms_add_image` | Add image |\n| `forms_add_video` | Add YouTube video |\n\n### Google Chat\n| Tool | Description |\n|------|-------------|\n| `chat_list_spaces` | List Chat spaces |\n| `chat_get_space` | Get space details |\n| `chat_create_space` | Create a space |\n| `chat_delete_space` | Delete a space |\n| `chat_list_messages` | List messages |\n| `chat_get_message` | Get message details |\n| `chat_send_message` | Send a message |\n| `chat_update_message` | Update a message |\n| `chat_delete_message` | Delete a message |\n| `chat_list_members` | List space members |\n| `chat_add_member` | Add a member |\n| `chat_remove_member` | Remove a member |\n| `chat_add_reaction` | Add emoji reaction |\n\n### Google Meet\n| Tool | Description |\n|------|-------------|\n| `meet_create_space` | Create meeting space |\n| `meet_get_space` | Get space details |\n| `meet_end_conference` | End active meeting |\n| `meet_schedule` | Schedule a meeting |\n| `meet_create_instant` | Create instant meeting |\n| `meet_get_by_event` | Get meeting from event |\n| `meet_list_upcoming` | List upcoming meetings |\n| `meet_list_conference_records` | List past meetings |\n| `meet_get_conference_record` | Get meeting record |\n| `meet_list_participants` | List participants |\n| `meet_list_recordings` | List recordings |\n| `meet_get_recording` | Get recording |\n| `meet_list_transcripts` | List transcripts |\n| `meet_get_transcript` | Get transcript |\n| `meet_list_transcript_entries` | Get transcript text |\n\n## Examples\n\n### Send an Email\n```\nUse gmail_send with to \"recipient@example.com\", subject \"Hello\", and body \"This is a test email.\"\n```\n\n### Create a Calendar Event\n```\nUse calendar_create_event with summary \"Team Meeting\", startDateTime \"2025-01-15T10:00:00-05:00\", and endDateTime \"2025-01-15T11:00:00-05:00\"\n```\n\n### Search YouTube\n```\nUse youtube_search with query \"MCP tutorial\" and type \"video\"\n```\n\n### Create a Google Doc\n```\nUse docs_create with title \"Meeting Notes\" and content \"# Weekly Meeting\\n\\nAttendees: ...\"\n```\n\n### Read a Spreadsheet\n```\nUse sheets_read with spreadsheetId \"abc123\" and range \"Sheet1!A1:D10\"\n```\n\n### Search Drive\n```\nUse drive_search with query \"quarterly report\"\n```\n\n### Create a Note\n```\nUse notes_create with title \"Shopping List\" and content \"- Milk\\n- Eggs\\n- Bread\"\n```\n\n### Create a Google Form\n```\nUse forms_create with title \"Customer Survey\" and description \"Help us improve our service\"\n```\n\n### Send a Chat Message\n```\nUse chat_send_message with spaceName \"spaces/AAAAA\" and text \"Hello team!\"\n```\n\n### Schedule a Google Meet\n```\nUse meet_schedule with summary \"Team Standup\", startTime \"2025-01-15T09:00:00-05:00\", and endTime \"2025-01-15T09:30:00-05:00\"\n```\n\n## Development\n\n```bash\n# Run in development mode with hot reload\npnpm dev\n\n# Build for production\npnpm build\n\n# Run tests\npnpm test\n```\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquinnjr%2Fgoogle-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquinnjr%2Fgoogle-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquinnjr%2Fgoogle-mcp/lists"}