An MCP server that provides tools for drafting and sending Gmail emails, as well as creating and appending to Google Docs, using OAuth 2.0 authentication.
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find.
Install from
M8ven verifies MCPs across every public registry — install directly from whichever one you prefer.
process.env. You'll be asked to provide them before it can run.ALLOWED_GOOGLE_ACCOUNTS— _(unset, i.e. any account)_ Comma-separated email allowlist. Not yet enforced — see the NOTE comment in src/auth.ts for what's needed to wire it up (requires the openid/userinfo.email scopes).ENABLE_DOCS_APPEND— true If false, the docs_append_text tool is not registered at allENABLE_HTML_EMAIL— true If false, gmail_create_draft/gmail_send_email reject isHtml: true with an INVALID_INPUT errorGOOGLE_APPLICATION_CREDENTIALS— _(unset)_ Path to a service-account key file. Not yet used — reserved for a future service-account auth mode; see the NOTE comment in src/auth.ts.GOOGLE_CLIENT_ID— 5. Copy .env.example to .env and fill in and GOOGLE_CLIENT_SECRET from that OAuth client (adjust GOOGLE_REDIRECT_URI too if you want a different local port/path).GOOGLE_CLIENT_SECRET— 5. Copy .env.example to .env and fill in GOOGLE_CLIENT_ID and from that OAuth client (adjust GOOGLE_REDIRECT_URI too if you want a different local port/path).GOOGLE_REDIRECT_URI— Application type: Desktop app (accepts any loopback redirect URI, so below doesn't need to be pre-registered).GOOGLE_TOKEN_STORAGE_PATH— ./tokens.json Where the access/refresh token is stored (encrypted at rest); relative paths resolve from the project rootLOG_LEVEL— info Structured (JSON) log verbosity written to stderr: trace\debug\info\warn\error\fatalMAX_ATTACHMENT_BYTES— 20971520 (20MB) Max size per email attachmentMAX_CONFLICT_RETRIES— 3 Retry attempts for docs_append_text when a concurrent edit is detectedMCP_AUTH_TOKEN— POST/GET/DELETE /mcp — the actual MCP endpoint (Streamable HTTP transport), gated by Authorization: Bearer <>.MCP_SERVER_NAME— google-workspace-mcp-server Name this server reports over MCPMCP_TRANSPORT— stdio "stdio" for local Cursor usage, or "http" to bind an HTTP server instead (for remote hosting)PORT— 8080 Port the HTTP transport binds to (0.0.0.0). Render (default 10000) or Railway injects this automatically — don't set it yourself there.RATE_LIMIT_PER_MINUTE— 60 Max calls allowed per tool per rolling 60s window before returning a RATE_LIMITED errorTOKEN_ENCRYPTION_KEY— _(auto-generated)_ Base64, 32-byte key used to encrypt the token storage file at rest; if unset, a random key is generated once into .token.key[](https://m8ven.ai/mcp/rohinigowdaiah1111-mcp-server-1gfxnp)