https://github.com/vakharwalad23/google-mcp-remote
Collection of Google-native tools (e.g., Gmail, Calendar) for the MCP
https://github.com/vakharwalad23/google-mcp-remote
agents cloudflare cloudflare-workers durable-objects google google-api mcp mcp-server modelcontextprotocol
Last synced: 8 months ago
JSON representation
Collection of Google-native tools (e.g., Gmail, Calendar) for the MCP
- Host: GitHub
- URL: https://github.com/vakharwalad23/google-mcp-remote
- Owner: vakharwalad23
- License: mit
- Created: 2025-04-17T13:59:03.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-27T10:44:00.000Z (about 1 year ago)
- Last Synced: 2025-05-13T13:19:33.051Z (about 1 year ago)
- Topics: agents, cloudflare, cloudflare-workers, durable-objects, google, google-api, mcp, mcp-server, modelcontextprotocol
- Language: TypeScript
- Homepage:
- Size: 67.4 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://mseep.ai/app/vakharwalad23-google-mcp-remote)
# Google MCP Remote
[](https://mseep.ai/app/fd4f5a90-36d2-47b4-b06b-d8bde98a35ce)
A [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.
> ⚠️ **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.
## Features
- **Gmail**:
- Send emails with multiple recipients (to, cc, bcc) and HTML content
- List emails with custom queries, labels, and result limits
- Read specific emails by ID
- Manage labels (add, remove, list)
- Draft and delete emails
- **Calendar**:
- List calendars and set a default calendar
- Create events with details (summary, start/end time, attendees, etc.)
- List upcoming events with customizable filters
- Update or delete existing events
- Find free time slots for scheduling
- **Drive**:
- Filter files with search queries
- Sort by modification date or other criteria
- View detailed file metadata
- Read file content (text, docs, spreadsheets)
- Create new files with specified content
- Update existing files
- Delete files (trash or permanent)
- Share files with specific permissions
- **Tasks**:
- View all task lists
- Create new task lists
- Delete existing task lists
- List tasks with filters
- View task details
- Create tasks with title, notes, and due dates
- Update task properties
- Mark tasks as complete
- Delete tasks
- **YouTube**:
- Search for videos with customizable parameters
- Get detailed information about specific videos
- **Contacts**:
- List and search contacts from Google Contacts
- Get detailed information about specific contacts
## Deployment Instructions
### Prerequisites
1. **Google Cloud Project**:
- Create a project in the [Google Cloud Console](https://console.cloud.google.com/)
- Set up OAuth 2.0 credentials (Client ID and Client Secret)
- Enable the APIs you need (Gmail, Calendar, Drive, Tasks, YouTube, People/Contacts)
- Add authorized JavaScript origins and redirect URIs for your Cloudflare Worker
- Redirect URI should be in the format:
```
Deployed URL + /callback
https://your-project.your-username.workers.dev/callback
For local testing:
http://localhost:8788/callback
```
2. **Cloudflare Account**:
- Sign up for a [Cloudflare account](https://dash.cloudflare.com/sign-up) if you don't have one
- Install Wrangler CLI: `bun install -g wrangler`
- Authenticate with Cloudflare: `wrangler login`
### Deployment Steps
1. **Clone the repository**:
```bash
git clone https://github.com/vakharwalad23/google-mcp-remote.git
cd google-mcp-remote
```
2. **Install dependencies**:
```bash
bun install
```
3. **Configure secrets**:
Set your Google OAuth credentials as secrets in Cloudflare:
```bash
wrangler secret put GOOGLE_OAUTH_CLIENT_ID
wrangler secret put GOOGLE_OAUTH_CLIENT_SECRET
wrangler secret put COOKIE_ENCRYPTION_KEY
```
(For the COOKIE_ENCRYPTION_KEY, generate a random string to secure cookies)
4. **Create a KV namespace**:
```bash
wrangler kv:namespace create OAUTH_KV
```
Then update your wrangler.jsonc with the ID from the output
5. **Deploy to Cloudflare Workers**:
```bash
bun run deploy
```
6. **Note your deployment URL**:
After deployment, Wrangler will provide a URL like: `https://your-project.your-username.workers.dev`
## Usage with AI Clients
Once deployed, configure your AI client (Claude, Cursor, etc.) to use your MCP server.
### Claude Configuration
Edit your `claude_desktop_config.json` or for cursor `mcp.json`:
```json
{
"mcpServers": {
"google-mcp-remote": {
"command": "npx",
"args": [
"mcp-remote",
"https://your-project.your-username.workers.dev/sse"
]
}
}
}
```
### Example Commands
You can now ask Claude to perform tasks using your Google account:
```
Send an email to jane.doe@example.com with the subject "Meeting Notes" and body "Here are the notes from today."
```
```
List my upcoming calendar events for the next 3 days.
```
```
Create a calendar event titled "Team Sync" tomorrow at 10 AM for 1 hour.
```
```
Search YouTube for recent videos about machine learning.
```
## Alternative Usage Methods
### Using with Cloudflare AI Playground
You can test the MCP server online using [Cloudflare AI Playground](https://playground.ai.cloudflare.com/):
1. Open Cloudflare AI Playground
2. Enter your MCP server URL with the `/sse` path:
```
https://your-project.your-username.workers.dev/sse
```
3. Start interacting with your Google services through the playground interface
### Offline Testing with MCP Inspector
For local development and testing without deploying to Cloudflare:
1. **Create a `.dev.vars` file** in your project root with the necessary environment variables:
```
GOOGLE_OAUTH_CLIENT_ID="your-client-id"
GOOGLE_OAUTH_CLIENT_SECRET="your-client-secret"
COOKIE_ENCRYPTION_KEY="your-random-encryption-key"
```
2. **Use Bun**:
```bash
# Install dependencies
bun install
# Run local development server
bun run dev
```
3. **Test with MCP Inspector**:
```bash
bunx @modelcontextprotocol/inspector@latest
```
This launches a local interface to test your MCP server functionality
## OAuth Authorization
The first time you use the server with an AI client, you'll need to authorize access to your Google account:
1. The server will display an approval dialog
2. Approve the MCP client access to your server
3. Follow the Google OAuth flow to grant API access
4. After authorization, you'll be redirected back to your AI client
## Local Development
To run the server locally:
```bash
bun install
bun run dev
```
This will start a local development server, typically at http://localhost:8788
## Troubleshooting
- **OAuth Issues**: Ensure your Google Cloud project has the correct redirect URIs set
- **API Permissions**: Check that you've enabled all required APIs in Google Cloud Console
- **Token Expiration**: If you encounter authentication errors, try clearing the KV storage and re-authenticating
Thank you for using Google MCP Remote! If you have any questions or suggestions, feel free to open an issue or contribute to the project.