MCP Gmail Google Docs Integration
Enables sending emails with support for To, CC, BCC, subject, and body (plain text or HTML) via the Gmail API.
Allows appending plain text content to an existing Google Document using the Google Docs API.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Gmail Google Docs Integrationsend an email to boss@company.com about the quarterly report"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Generic MCP Server for Gmail and Google Docs Integration
A generic Model Context Protocol (MCP) server that exposes Google Workspace capabilities as MCP tools. The server enables AI agents to interact with Gmail and Google Docs.
Features
Gmail: Send emails (To, CC, BCC, Subject, Body). Supports Plain Text and HTML.
Google Docs: Append plain text to an existing Google Document.
Related MCP server: Google Workspace MCP Server
Prerequisites
Node.js 18+ (if running locally)
Docker (if running via container)
Google Cloud Console Project
Enable Gmail API
Enable Google Docs API
Configure OAuth Consent Screen (add yourself as a Test User)
Create OAuth 2.0 Client IDs (Application Type: Web Application or Desktop)
Add
http://localhost:3000/oauth2callbackas an Authorized redirect URI (if Web Application).
Local Setup & Generating the Refresh Token
To run this server (either locally or on a platform like Railway), you need an OAuth Refresh Token.
Clone the repository and install dependencies:
npm installCopy the example environment file:
cp .env.example .envOpen
.envand add yourGOOGLE_CLIENT_IDandGOOGLE_CLIENT_SECRET.Run the token generation script:
npm run generate-tokensFollow the prompt, log in with your Google account, and grant permissions.
The script will automatically save your tokens into a
tokens.jsonfile in the root of the project. This file is loaded by the server when it runs.
Deployment
If you deploy this to a cloud environment (like Railway or Docker):
You must ensure the
tokens.jsonfile you generated locally is available to the container.If you are uploading code directly, DO NOT commit
tokens.jsonto a public repository. If it's a private repository, you can commit it.If you want to change the file name, set the
TOKEN_STORAGE_PATHenvironment variable.
Deployment (Railway)
This repository is optimized for deployment on Railway.
Push this repository to GitHub.
In Railway, create a new project from your GitHub repository.
In the Railway project settings, go to Variables and add:
GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETTOKEN_STORAGE_PATH(if you want to override the default 'tokens.json')GOOGLE_REDIRECT_URI(optional, defaults tohttp://localhost:3000/oauth2callback)
Railway will automatically detect the
package.json, install dependencies, run thebuildscript, and execute thestartscript using Nixpacks.Alternatively, Railway can build from the provided
Dockerfileif you configure it to use Docker.
Connecting an MCP Client
Once deployed or running locally, you can connect an MCP Client (like Claude Desktop) to it.
If running locally:
{
"mcpServers": {
"gmail-gdoc": {
"command": "node",
"args": ["/path/to/your/project/dist/index.js"]
}
}
}If deployed, you will likely connect via an SSE or HTTP transport (if you modify the transport layer) or through a remote execution bridge, depending on your agent's capabilities. Note: The current implementation uses standard input/output (stdio), which is ideal for local agent execution. For remote cloud execution, consider switching the transport to SSE in src/server.ts.
Available Tools
send_email
to: string[]cc?: string[]bcc?: string[]subject: stringbody: stringisHtml?: boolean
append_to_google_doc
documentId: stringcontent: string
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tusharikaT/MCP-gmail-gdoc'
If you have feedback or need assistance with the MCP directory API, please join our Discord server