AVA
README.md
# AVA MCP Server – Gmail Draft Tool
This project implements a minimal Model Context Protocol (MCP) server named **AVA**, exposing a single tool: `write_email_draft`.
The tool creates **Gmail drafts** from structured input, allowing AI agents like Claude to generate email content safely — without sending anything. This enables reviewable automation for follow-ups, summaries, or outreach.
It integrates with the Gmail API using OAuth2 authentication, ensuring secure access and user control. The server responds with metadata including the draft ID, making it ideal for real-world AI workflows.
---
## Architecture Overview
Claude AI → MCP Tool Call → AVA Server → Gmail API → Draft Created
```plaintext
┌────────────────────────────┐
│ Claude AI │
│ (MCP client) │
└────────────┬───────────────┘
│ Tool Call: write_email_draft
▼
┌────────────────────────────┐
│ MCP Server (AVA) │
│ mcp-server-draft.py │
│ └── gmail.py │
│ └── .env config │
└────────────┬───────────────┘
│ Uses credentials from .env
▼
┌────────────────────────────┐
│ Gmail API (OAuth2 Auth) │
│ via Google Cloud Console │
│ Project: ava-mcp-475222 │
└────────────┬───────────────┘
│ Creates draft
▼
┌────────────────────────────┐
│ Gmail Draft Created │
│ │
└────────────────────────────┘
```
- **Claude AI**: Sends structured tool calls via MCP
- **AVA Server**: Receives calls, loads credentials from `.env`, and handles logic via `gmail.py`
- **Google Cloud Console**: Hosts OAuth2 credentials (`credentials.json`)
- **Gmail API**: Creates draft and returns metadata
---
## Features
- MCP-compliant server using `FastMCP`
- Gmail API integration via OAuth2
- Secure credential handling via `.env`
- Compatible with Claude and MCP Inspector
---
## Project Structure
```
mcp-email-draft/
├── .env # Gmail credentials and sender email
├── mcp-server-draft.py # MCP server exposing the tool
├── gmail.py # Gmail API logic
├── pyproject.toml # Project metadata and dependencies
├── credentials.json # OAuth2 client credentials
├── token.json # Gmail API token
├── README.md # Documentation
```
---
## Setup Instructions
### 1. Create project folder
```bash
cd C:/Users/carll/Desktop
mkdir mcp-email-draft
cd mcp-email-draft
```
### 2. Install [uv](https://docs.astral.sh/uv/getting-started/installation/)
```bash
curl -Ls https://astral.sh/uv/install.sh | sh
```
### 3. Install dependencies
```bash
uv pip install -r pyproject.toml
```
Or manually:
```bash
uv pip install google-api-python-client google-auth-oauthlib python-dotenv mcp[cli]
```
---
## Gmail API Setup
1. Go to [Google Cloud Console](https://console.cloud.google.com/auth/audience?project=ava-mcp-475222)
2. Create OAuth credentials for a desktop app
3. Download `credentials.json` and place it in the project root
4. Run the server once to trigger OAuth flow and generate `token.json`
---
## .env File
```env
USER_EMAIL=carlloswattsnogueira@gmail.com
GOOGLE_CREDENTIALS_PATH=C:/Users/carll/Desktop/mcp-email-draft/credentials.json
GOOGLE_TOKEN_PATH=C:/Users/carll/Desktop/mcp-email-draft/token.json
```
---
## Claude Integration
Go to [Claude Connectors](https://claude.ai/settings/connectors) and use:
```json
{
"mcpServers": {
"AVA": {
"command": "C:/Users/carll/.local/bin/uv.exe",
"args": [
"--directory",
"C:/Users/carll/Desktop/mcp-email-draft",
"run",
"mcp-server-draft.py"
]
}
}
}
```
---
## Usage Example
```json
{
"recipient_email": "carllos@example.com",
"subject": "Follow-up on our meeting",
"body": "Hi Carllos, thank you again for your time today. Looking forward to the next steps!"
}
```
Claude will return the Gmail draft ID and metadata.
Next: Using Discord
---
## License
This project is for demonstration and evaluation purposes only.
No affiliation with Google or Anthropic.
```
TDQS
C2.8/5.0
Scored across 1 tool
Disambiguation5/5
With only one tool, there is no possibility of confusion or overlap. The purpose is uniquely defined.
Naming Consistency5/5
The single tool name 'write_email_draft' follows a clear verb_noun pattern, demonstrating internal consistency.
Tool Count3/5
A single tool is borderline; while it performs a concrete task, the server feels overly thin for anything beyond a very narrow use case.
Completeness2/5
The tool only creates a draft with no support for listing, updating, deleting, or sending, leaving significant gaps in email management.
Maintenance
ActivityInactive
ResponsivenessNo issues