{"id":28092535,"url":"https://github.com/vakharwalad23/google-mcp-remote","last_synced_at":"2025-10-28T05:08:04.966Z","repository":{"id":288585291,"uuid":"968097802","full_name":"vakharwalad23/google-mcp-remote","owner":"vakharwalad23","description":"Collection of Google-native tools (e.g., Gmail, Calendar) for the MCP","archived":false,"fork":false,"pushed_at":"2025-04-27T10:44:00.000Z","size":69,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-13T13:19:33.051Z","etag":null,"topics":["agents","cloudflare","cloudflare-workers","durable-objects","google","google-api","mcp","mcp-server","modelcontextprotocol"],"latest_commit_sha":null,"homepage":"","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/vakharwalad23.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}},"created_at":"2025-04-17T13:59:03.000Z","updated_at":"2025-04-27T10:44:04.000Z","dependencies_parsed_at":"2025-05-13T13:19:34.123Z","dependency_job_id":"ab9c9e00-792a-4f00-a30e-d900b16ca6be","html_url":"https://github.com/vakharwalad23/google-mcp-remote","commit_stats":null,"previous_names":["vakharwalad23/google-mcp-remote"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vakharwalad23/google-mcp-remote","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vakharwalad23%2Fgoogle-mcp-remote","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vakharwalad23%2Fgoogle-mcp-remote/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vakharwalad23%2Fgoogle-mcp-remote/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vakharwalad23%2Fgoogle-mcp-remote/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vakharwalad23","download_url":"https://codeload.github.com/vakharwalad23/google-mcp-remote/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vakharwalad23%2Fgoogle-mcp-remote/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281386589,"owners_count":26492014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"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":["agents","cloudflare","cloudflare-workers","durable-objects","google","google-api","mcp","mcp-server","modelcontextprotocol"],"created_at":"2025-05-13T13:19:30.567Z","updated_at":"2025-10-28T05:08:04.961Z","avatar_url":"https://github.com/vakharwalad23.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![MseeP.ai Security Assessment Badge](https://mseep.net/pr/vakharwalad23-google-mcp-remote-badge.png)](https://mseep.ai/app/vakharwalad23-google-mcp-remote)\n\n# Google MCP Remote\n[![Verified on MseeP](https://mseep.ai/badge.svg)](https://mseep.ai/app/fd4f5a90-36d2-47b4-b06b-d8bde98a35ce)\n\u003c/br\u003e\nA [Cloudflare Workers-based MCP server](https://blog.cloudflare.com/remote-model-context-protocol-servers-mcp/) implementation that provides Google API tools (Gmail, Calendar, Drive, etc.) for the [Model Context Protocol](https://modelcontextprotocol.com/docs/mcp-protocol), designed to integrate seamlessly with AI clients like Claude or Cursor.\n\n\u003e ⚠️ **SECURITY WARNING**: Do not use someone else's deployed instance of this server as it requires access to your Google account and personal data. Always deploy your own instance to maintain control over your data and API access.\n\n## Features\n\n- **Gmail**:\n  - Send emails with multiple recipients (to, cc, bcc) and HTML content\n  - List emails with custom queries, labels, and result limits\n  - Read specific emails by ID\n  - Manage labels (add, remove, list)\n  - Draft and delete emails\n- **Calendar**:\n  - List calendars and set a default calendar\n  - Create events with details (summary, start/end time, attendees, etc.)\n  - List upcoming events with customizable filters\n  - Update or delete existing events\n  - Find free time slots for scheduling\n- **Drive**:\n  - Filter files with search queries\n  - Sort by modification date or other criteria\n  - View detailed file metadata\n  - Read file content (text, docs, spreadsheets)\n  - Create new files with specified content\n  - Update existing files\n  - Delete files (trash or permanent)\n  - Share files with specific permissions\n- **Tasks**:\n  - View all task lists\n  - Create new task lists\n  - Delete existing task lists\n  - List tasks with filters\n  - View task details\n  - Create tasks with title, notes, and due dates\n  - Update task properties\n  - Mark tasks as complete\n  - Delete tasks\n- **YouTube**:\n  - Search for videos with customizable parameters\n  - Get detailed information about specific videos\n- **Contacts**:\n  - List and search contacts from Google Contacts\n  - Get detailed information about specific contacts\n\n## Deployment Instructions\n\n### Prerequisites\n\n1. **Google Cloud Project**:\n\n   - Create a project in the [Google Cloud Console](https://console.cloud.google.com/)\n   - Set up OAuth 2.0 credentials (Client ID and Client Secret)\n   - Enable the APIs you need (Gmail, Calendar, Drive, Tasks, YouTube, People/Contacts)\n   - Add authorized JavaScript origins and redirect URIs for your Cloudflare Worker\n   - Redirect URI should be in the format:\n\n     ```\n     Deployed URL + /callback\n      https://your-project.your-username.workers.dev/callback\n\n     For local testing:\n      http://localhost:8788/callback\n     ```\n\n2. **Cloudflare Account**:\n   - Sign up for a [Cloudflare account](https://dash.cloudflare.com/sign-up) if you don't have one\n   - Install Wrangler CLI: `bun install -g wrangler`\n   - Authenticate with Cloudflare: `wrangler login`\n\n### Deployment Steps\n\n1. **Clone the repository**:\n\n   ```bash\n   git clone https://github.com/vakharwalad23/google-mcp-remote.git\n   cd google-mcp-remote\n   ```\n\n2. **Install dependencies**:\n\n   ```bash\n   bun install\n   ```\n\n3. **Configure secrets**:\n   Set your Google OAuth credentials as secrets in Cloudflare:\n\n   ```bash\n   wrangler secret put GOOGLE_OAUTH_CLIENT_ID\n   wrangler secret put GOOGLE_OAUTH_CLIENT_SECRET\n   wrangler secret put COOKIE_ENCRYPTION_KEY\n   ```\n\n   (For the COOKIE_ENCRYPTION_KEY, generate a random string to secure cookies)\n\n4. **Create a KV namespace**:\n\n   ```bash\n   wrangler kv:namespace create OAUTH_KV\n   ```\n\n   Then update your wrangler.jsonc with the ID from the output\n\n5. **Deploy to Cloudflare Workers**:\n\n   ```bash\n   bun run deploy\n   ```\n\n6. **Note your deployment URL**:\n   After deployment, Wrangler will provide a URL like: `https://your-project.your-username.workers.dev`\n\n## Usage with AI Clients\n\nOnce deployed, configure your AI client (Claude, Cursor, etc.) to use your MCP server.\n\n### Claude Configuration\n\nEdit your `claude_desktop_config.json` or for cursor `mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"google-mcp-remote\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"mcp-remote\",\n        \"https://your-project.your-username.workers.dev/sse\"\n      ]\n    }\n  }\n}\n```\n\n### Example Commands\n\nYou can now ask Claude to perform tasks using your Google account:\n\n```\nSend an email to jane.doe@example.com with the subject \"Meeting Notes\" and body \"Here are the notes from today.\"\n```\n\n```\nList my upcoming calendar events for the next 3 days.\n```\n\n```\nCreate a calendar event titled \"Team Sync\" tomorrow at 10 AM for 1 hour.\n```\n\n```\nSearch YouTube for recent videos about machine learning.\n```\n\n## Alternative Usage Methods\n\n### Using with Cloudflare AI Playground\n\nYou can test the MCP server online using [Cloudflare AI Playground](https://playground.ai.cloudflare.com/):\n\n1. Open Cloudflare AI Playground\n2. Enter your MCP server URL with the `/sse` path:\n   ```\n   https://your-project.your-username.workers.dev/sse\n   ```\n3. Start interacting with your Google services through the playground interface\n\n### Offline Testing with MCP Inspector\n\nFor local development and testing without deploying to Cloudflare:\n\n1. **Create a `.dev.vars` file** in your project root with the necessary environment variables:\n\n   ```\n   GOOGLE_OAUTH_CLIENT_ID=\"your-client-id\"\n   GOOGLE_OAUTH_CLIENT_SECRET=\"your-client-secret\"\n   COOKIE_ENCRYPTION_KEY=\"your-random-encryption-key\"\n   ```\n\n2. **Use Bun**:\n\n   ```bash\n   # Install dependencies\n   bun install\n\n   # Run local development server\n   bun run dev\n   ```\n\n3. **Test with MCP Inspector**:\n   ```bash\n   bunx @modelcontextprotocol/inspector@latest\n   ```\n   This launches a local interface to test your MCP server functionality\n\n## OAuth Authorization\n\nThe first time you use the server with an AI client, you'll need to authorize access to your Google account:\n\n1. The server will display an approval dialog\n2. Approve the MCP client access to your server\n3. Follow the Google OAuth flow to grant API access\n4. After authorization, you'll be redirected back to your AI client\n\n## Local Development\n\nTo run the server locally:\n\n```bash\nbun install\nbun run dev\n```\n\nThis will start a local development server, typically at http://localhost:8788\n\n## Troubleshooting\n\n- **OAuth Issues**: Ensure your Google Cloud project has the correct redirect URIs set\n- **API Permissions**: Check that you've enabled all required APIs in Google Cloud Console\n- **Token Expiration**: If you encounter authentication errors, try clearing the KV storage and re-authenticating\n\nThank you for using Google MCP Remote! If you have any questions or suggestions, feel free to open an issue or contribute to the project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvakharwalad23%2Fgoogle-mcp-remote","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvakharwalad23%2Fgoogle-mcp-remote","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvakharwalad23%2Fgoogle-mcp-remote/lists"}