mcp_gmail_autosend
Enables sending emails via Gmail API, checking thread replies, and listing sent emails, all logged locally in SQLite.
README
mcp_gmail_autosend
Serveur MCP (Model Context Protocol) qui permet à un client MCP (Claude Desktop, Claude Code, etc.) d'envoyer des emails via l'API Gmail, avec pièce jointe PDF optionnelle, suivi des réponses de thread, et journalisation locale dans SQLite.
Fonctionnalités
Le serveur expose 3 outils MCP :
| Outil | Description |
|---|---|
send_email(to, subject, body, pdf_path="") |
Envoie un email via l'API Gmail, avec pièce jointe PDF optionnelle. |
check_reply(thread_id) |
Vérifie si un thread Gmail a reçu une réponse. |
list_sent_emails(limit=20) |
Liste les derniers emails envoyés, depuis le log SQLite local. |
Chaque envoi est journalisé dans mail_log.db (créé automatiquement au premier lancement) : destinataire, sujet, date, statut, thread_id, message_id.
Prérequis
- Python 3.10+
- Un compte Google avec accès à Google Cloud Console
- Un client MCP (Claude Desktop, Claude Code...)
Installation
1. Cloner le dépôt
git clone https://github.com/<votre-utilisateur>/mcp_gmail_autosend.git
cd mcp_gmail_autosend
2. Installer les dépendances
python3 -m venv venv
source venv/bin/activate # Windows : venv\Scripts\activate
pip install -r requirements.txt
3. Créer les identifiants OAuth Google
- Rendez-vous sur Google Cloud Console.
- Créez un projet (ou réutilisez-en un existant).
- Activez l'API Gmail : APIs & Services → Library → Gmail API → Enable.
- Configurez l'écran de consentement OAuth (OAuth consent screen) en mode External (ou Internal si vous avez un Workspace), type d'utilisateur test suffisant pour un usage personnel.
- Créez des identifiants : APIs & Services → Credentials → Create Credentials → OAuth client ID → Application type: Desktop app.
- Téléchargez le fichier JSON généré, renommez-le
credentials.jsonet placez-le à la racine du projet.
⚠️
credentials.jsoncontient unclient_secret. Il est listé dans.gitignoreet ne doit jamais être commité ni partagé.
4. Générer le token d'accès
python setup_oauth.py
Cela ouvre une fenêtre de navigateur pour vous authentifier avec votre compte Google et autoriser les scopes demandés (gmail.send, gmail.readonly). Un fichier token.json est créé à la racine — il contient votre token d'accès et votre refresh token, il ne doit jamais être commité non plus (déjà exclu via .gitignore).
Le token se rafraîchit automatiquement lors des appels suivants, tant que le refresh token reste valide.
5. Configurer votre client MCP
Copiez l'exemple fourni et adaptez le chemin :
cp claude_desktop_config.example.json claude_desktop_config.json
Éditez claude_desktop_config.json et remplacez le chemin par le chemin absolu réel vers server.py sur votre machine :
{
"mcpServers": {
"gmail-mcp": {
"command": "python",
"args": ["/chemin/absolu/vers/mcp_gmail_autosend/server.py"],
"env": {}
}
}
}
Puis fusionnez ce bloc mcpServers dans le fichier de config de votre client :
- Claude Desktop :
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) ou%APPDATA%\Claude\claude_desktop_config.json(Windows) ou~/.config/Claude/claude_desktop_config.json(Linux). - Claude Code :
claude mcp add gmail-mcp -- python /chemin/absolu/vers/server.py
Redémarrez votre client MCP.
Utilisation
Une fois le serveur connecté, demandez simplement à Claude :
- « Envoie un email à alice@example.com avec pour sujet "Compte-rendu" et joins le PDF
/home/user/rapport.pdf» - « Est-ce que j'ai reçu une réponse sur le thread
<thread_id>? » - « Liste mes 10 derniers emails envoyés »
Structure du projet
mcp_gmail_autosend/
├── server.py # Serveur MCP (outils send_email, check_reply, list_sent_emails)
├── setup_oauth.py # Script à lancer une fois pour générer token.json
├── requirements.txt # Dépendances Python
├── claude_desktop_config.example.json # Exemple de config client MCP (à copier/adapter)
├── credentials.json # (non versionné) identifiants OAuth Google
├── token.json # (non versionné) token d'accès Gmail
└── mail_log.db # (non versionné) log SQLite des emails envoyés
Sécurité
credentials.jsonettoken.jsondonnent accès à l'envoi d'emails depuis votre compte Gmail. Ils sont exclus via.gitignore— vérifiez toujoursgit statusavant un commit pour vous assurer qu'ils n'y apparaissent pas.- Le scope
gmail.readonlypermet la lecture de threads (utilisé uniquement pourcheck_reply) ; il n'y a pas d'accès en écriture/suppression au-delà de l'envoi. mail_log.dbcontient l'historique des destinataires et sujets envoyés : elle aussi est exclue du dépôt.- Si vous pensez qu'un token a fuité, révoquez l'accès immédiatement depuis myaccount.google.com/permissions, puis relancez
setup_oauth.py.
Licence
Non spécifiée — ajoutez une licence (MIT, Apache-2.0...) si vous comptez rendre ce dépôt public et réutilisable par d'autres.
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.