Google Docs + Gmail MCP Server
Enables AI tools to append content to Google Docs and create Gmail drafts with human-in-the-loop approval.
README
๐ Google Docs + Gmail MCP Server
A lightweight MCP-style server that integrates with Google Docs and Gmail.
This project demonstrates how to build structured AI tool interfaces with approval gating, inspired by the Model Context Protocol (MCP).
โจ Features
- ๐ Append structured content to Google Docs
- ๐ง Create Gmail drafts
- ๐ OAuth-based Google authentication
- ๐ง MCP-style tool interface
- โ Human-in-the-loop approval before execution
- ๐งฉ Modular and extensible design
How to Use in Your Project
-
Run the MCP server: uvicorn server:app --reload
-
Call tools via API: POST /append_to_doc POST /create_email_draft
-
Integrate with your AI workflow:
- Generate content using LLM
- Send output to these endpoints
๐ Project Structure
google-mcp-server/
โโโ server.py
โโโ auth.py
โโโ docs_tool.py
โโโ gmail_tool.py
โโโ requirements.txt
โโโ credentials.json (not committed)
โโโ token.json (not committed)
โโโ README.md
โ๏ธ Setup
1. Clone the repository
git clone <your-repo-url>
cd google-mcp-server
2. Create virtual environment
python3 -m venv venv
source venv/bin/activate
3. Install dependencies
pip install -r requirements.txt
4. ๐ Google API Setup
-
Go to Google Cloud Console
-
Create a new project
-
Enable:
- Google Docs API
- Gmail API
-
Configure OAuth Consent Screen
-
Create OAuth Credentials (Desktop App)
-
Download
credentials.json -
Place it in project root
5. ๐ Run OAuth
python3 auth.py
- Opens browser for login
- Generates token.json
6. โถ๏ธ Run Server
uvicorn server:app --reload
Open:
http://127.0.0.1:8000/docs
๐งช How to Test
Append to Google Doc
Endpoint: POST /append_to_doc
Example:
{
"doc_id": "YOUR_DOC_ID",
"content": "Hello from MCP ๐"
}
Create Email Draft
Endpoint: POST /create_email_draft
Example:
{
"to": "test@example.com",
"subject": "Test Draft",
"body": "This is a test email"
}
๐ Workflow
Request โ Approval โ Tool Execution โ Response
- Every action requires manual approval
- Ensures safe and controlled execution
โ ๏ธ Important Notes
Do NOT commit:
- credentials.json
- token.json
Approval is CLI-based (terminal input) Designed for local development
โ ๏ธ Approval Flow
Every action requires manual approval in terminal:
ACTION: append_to_doc
PAYLOAD: {...}
Approve? (y/n):
Type:
y
๐ง MCP Design
This project demonstrates:
- Structured tool calls
- Separation of generation and execution
- Human approval before tool execution
โ Notes
- No emails are sent automatically (draft only)
- Google Doc must have edit access
- Token is stored locally
๐ License
Apache License
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.