Google MCP Server
Allows creating email drafts via the Gmail API.
Allows appending content to Google Docs documents via the 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., "@Google MCP ServerCreate a draft email to boss@company.com about Q3 results"
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.
Google MCP Server
A Python FastAPI server that integrates with Google Docs and Gmail. It exposes tool-style HTTP endpoints with a terminal approval step before any action runs.
Features
Endpoint | Description |
| Append text to a Google Doc |
| Create a Gmail draft |
| Health check |
Before each action executes, the server prints the action name and payload to the terminal and prompts:
Approve? (y/n)The request is only processed if you type y.
Related MCP server: Google MCP Server
Prerequisites
Python 3.10+
A Google Cloud project with Google Docs API and Gmail API enabled
OAuth 2.0 Desktop credentials downloaded as
credentials.json
Google Cloud Setup
Go to Google Cloud Console.
Create a project (or select an existing one).
Enable these APIs:
Go to APIs & Services → Credentials.
Click Create Credentials → OAuth client ID.
Choose Desktop app as the application type.
Download the JSON file and save it as
credentials.jsonin this directory.
Installation
cd google-mcp-server
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate
pip install -r requirements.txtPlace your downloaded credentials.json in the project root (same folder as server.py).
First-Time Authentication
Local development
On the first API call, a browser window opens for Google OAuth login. After you approve access, a token.json file is created automatically. Subsequent runs reuse this token (refreshing it when expired).
Railway / production (GOOGLE_TOKEN_JSON)
Railway requires a token with a refresh_token. Generate it locally:
# Revoke old access first if re-authenticating:
# https://myaccount.google.com/permissions
python authenticate.pyCopy the entire token.json contents into Railway variable GOOGLE_TOKEN_JSON, then redeploy.
GET /health reports has_refresh_token and google_token_usable so WeeklyPulse can fail fast before long runs.
Do not commit credentials.json or token.json. They are listed in .gitignore.
Running the Server
python server.pyThe server starts at http://localhost:8000.
Interactive API docs: http://localhost:8000/docs
Usage Examples
Append to a Google Doc
Find the document ID in the URL:
https://docs.google.com/document/d/DOCUMENT_ID/editcurl -X POST http://localhost:8000/append_to_doc \
-H "Content-Type: application/json" \
-d "{\"doc_id\": \"YOUR_DOC_ID\", \"content\": \"\\nHello from MCP server!\"}"Switch to the terminal where the server is running and type y when prompted.
Create a Gmail Draft
curl -X POST http://localhost:8000/create_email_draft \
-H "Content-Type: application/json" \
-d "{\"to\": \"recipient@example.com\", \"subject\": \"Test Draft\", \"body\": \"Hello from the MCP server.\"}"Approve with y in the server terminal.
Project Structure
google-mcp-server/
├── server.py # FastAPI app with tool endpoints
├── auth.py # Google OAuth authentication
├── docs_tool.py # Google Docs tool (append content)
├── gmail_tool.py # Gmail tool (create draft)
├── requirements.txt # Dependencies
├── README.md # This file
├── credentials.json # (not committed) OAuth client secrets
└── token.json # (not committed) Saved access tokenOAuth Scopes
https://www.googleapis.com/auth/documents— read and edit Google Docshttps://www.googleapis.com/auth/gmail.compose— create and manage Gmail drafts
Troubleshooting
Issue | Fix |
| Download OAuth credentials from Google Cloud Console |
| Enable Docs and Gmail APIs in your GCP project |
| Delete |
| Run |
Approval prompt not visible | Run the server in a foreground terminal, not as a background service |
This server cannot be installed
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/Sahithi191127/MCPServer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server