74
/ 100
2 days ago
glama

Gmail + Google Docs MCP Server

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.

Is this your MCP?

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.

// key findings
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
🔐
You'll be asked for 3 credentials: GOOGLE_CLIENT_SECRET, MCP_AUTH_TOKEN, TOKEN_ENCRYPTION_KEY
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// required environment variables
This server reads these from process.env. You'll be asked to provide them before it can run.
configALLOWED_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).
configENABLE_DOCS_APPENDtrue If false, the docs_append_text tool is not registered at all
configENABLE_HTML_EMAILtrue If false, gmail_create_draft/gmail_send_email reject isHtml: true with an INVALID_INPUT error
configGOOGLE_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.
configGOOGLE_CLIENT_ID5. 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).
🔐 secretGOOGLE_CLIENT_SECRET5. 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).
configGOOGLE_REDIRECT_URIApplication type: Desktop app (accepts any loopback redirect URI, so below doesn't need to be pre-registered).
configGOOGLE_TOKEN_STORAGE_PATH./tokens.json Where the access/refresh token is stored (encrypted at rest); relative paths resolve from the project root
configLOG_LEVELinfo Structured (JSON) log verbosity written to stderr: trace\debug\info\warn\error\fatal
configMAX_ATTACHMENT_BYTES20971520 (20MB) Max size per email attachment
configMAX_CONFLICT_RETRIES3 Retry attempts for docs_append_text when a concurrent edit is detected
🔐 secretMCP_AUTH_TOKENPOST/GET/DELETE /mcp — the actual MCP endpoint (Streamable HTTP transport), gated by Authorization: Bearer <>.
configMCP_SERVER_NAMEgoogle-workspace-mcp-server Name this server reports over MCP
configMCP_TRANSPORTstdio "stdio" for local Cursor usage, or "http" to bind an HTTP server instead (for remote hosting)
configPORT8080 Port the HTTP transport binds to (0.0.0.0). Render (default 10000) or Railway injects this automatically — don't set it yourself there.
configRATE_LIMIT_PER_MINUTE60 Max calls allowed per tool per rolling 60s window before returning a RATE_LIMITED error
🔐 secretTOKEN_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
// full audit trail
The full breakdown of what we checked, the deductions that landed, the network hosts, the dependency advisories, and concrete fix guidance is available to verified publishers.
// improvement guidance — verified publishers only
We have 4 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Score](https://m8ven.ai/badge/mcp/rohinigowdaiah1111-mcp-server-1gfxnp)](https://m8ven.ai/mcp/rohinigowdaiah1111-mcp-server-1gfxnp)
commit: b2a7602ad5e855865910e9482b50afa3ee00b495
code hash: 72a326bfe2522ce4b92bb132630cdab4f5ec19f1ee6b74a20c2b5c0b91a965ba
verified: 7/30/2026, 8:58:18 AM
view raw JSON →
Gmail + Google Docs MCP Server · M8ven Trust Score | M8ven