Google Workspace MCP Server
Google Workspace MCP Server
A Model Context Protocol (MCP) server that exposes standardized tools for AI agents to interact with Google Workspace (Gmail and Google Docs).
This server is designed to run in a cloud environment (like Render) using HTTP and Server-Sent Events (SSE) for client-server communication.
Features
Gmail: Draft and send emails securely.
Google Docs: Append structured content to documents.
Generic & Extensible: Exposes strongly-typed tools via the MCP protocol.
Cloud-Ready: SSE transport allows remote AI agents to connect seamlessly.
Setup
Google Cloud Configuration:
Create a project in Google Cloud Console.
Enable the Gmail API and Google Docs API.
Create an OAuth 2.0 Client ID for a Web Application or Desktop App.
Note the Client ID and Client Secret.
Environment Variables: In your Render Dashboard (or local
.envfile), configure the following:GOOGLE_CLIENT_ID=your-client-id GOOGLE_CLIENT_SECRET=your-client-secret GOOGLE_REDIRECT_URI=http://localhost:3000/oauth2callback TOKEN_STORAGE_PATH=.tokens.json LOG_LEVEL=info GOOGLE_OAUTH_TOKENS={"access_token":"...","refresh_token":"..."} # Provide this in productionInstall Dependencies:
npm installAuthentication: Before deploying to production, generate the initial OAuth tokens locally. You can then stringify the
.tokens.jsonfile content and set it as theGOOGLE_OAUTH_TOKENSenvironment variable in Render.Deploy to Render:
Connect your GitHub repository to Render as a Web Service.
Render will automatically use the
render.yamlblueprint to runnpm run buildandnpm start.Ensure the
GOOGLE_OAUTH_TOKENSand Google API credentials are set in the Render Environment Variables tab.
Connecting to the Server: Once deployed, connect your MCP Client (like an AI agent) to the SSE endpoint:
https://<your-render-app-url>/sse
Development
Run locally using:
npm run devRun tests with npm run test (using Vitest).