Skip to main content
Glama
dhananjay7777

Google Docs + Gmail MCP Server

README.md
# ๐Ÿš€ 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

1. Run the MCP server:
   uvicorn server:app --reload

2. Call tools via API:
   POST /append_to_doc
   POST /create_email_draft

3. 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

1. Go to Google Cloud Console
2. Create a new project
3. Enable:

   * Google Docs API
   * Gmail API
4. Configure OAuth Consent Screen
5. Create OAuth Credentials (Desktop App)
6. Download `credentials.json`
7. 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:

```json
{
  "doc_id": "YOUR_DOC_ID",
  "content": "Hello from MCP ๐Ÿš€"
}
```

---

### Create Email Draft

Endpoint: `POST /create_email_draft`

Example:

```json
{
  "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

Maintenance

ActivityMaintained
ResponsivenessNo issues