Google MCP Server
A server enabling appending text to Google Docs and creating Gmail drafts via OAuth 2.0 with manual approval.
README
Google MCP Server
A Python-based FastAPI server that provides tools for appending text to Google Docs and creating Gmail drafts. It uses Google OAuth 2.0 for authentication and includes a manual approval step in the terminal before performing actions.
Prerequisites
- Python 3.8+
- A Google Cloud Platform (GCP) project.
Setup Instructions
1. Configure Google Cloud
- Go to the Google Cloud Console.
- Create a new project (or select an existing one).
- Navigate to APIs & Services > Library.
- Search for and enable the Google Docs API.
- Search for and enable the Gmail API.
- Navigate to APIs & Services > OAuth consent screen.
- Choose "External" (or "Internal" if you have a Google Workspace).
- Fill out the required App information.
- Add the following scopes:
https://www.googleapis.com/auth/documentshttps://www.googleapis.com/auth/gmail.compose
- Add yourself as a Test User.
- Navigate to APIs & Services > Credentials.
- Click Create Credentials > OAuth client ID.
- Application type: Desktop app.
- Name: Google MCP Server (or whatever you prefer).
- Click Create, then click Download JSON.
- Rename the downloaded file to
credentials.jsonand place it in the root directory of this project (google-mcp-server/).
2. Install Dependencies
pip install -r requirements.txt
3. Run the Server
uvicorn server:app --reload
On the first run, when an endpoint is hit, a browser window will open asking you to authenticate with your Google account. After successful login, a token.json file will be generated locally. Subsequent runs will use this token directly.
Usage
The server runs on http://127.0.0.1:8000.
Endpoints
POST /append_to_doc
Appends content to a Google Doc. Payload:
{
"doc_id": "YOUR_GOOGLE_DOC_ID",
"content": "Text to append"
}
POST /create_email_draft
Creates a draft in Gmail. Payload:
{
"to": "recipient@example.com",
"subject": "Hello",
"body": "This is a draft email body."
}
Manual Approval
Whenever an endpoint is invoked, the terminal running the server will prompt:
Action: append_to_doc
Payload: {'doc_id': '...', 'content': '...'}
Approve? (y/n):
You must type y to allow the action to proceed.
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
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.