mcp_gmail_autosend

mcp_gmail_autosend

Enables sending emails via Gmail API, checking thread replies, and listing sent emails, all logged locally in SQLite.

Category
Visit Server

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

  1. Rendez-vous sur Google Cloud Console.
  2. Créez un projet (ou réutilisez-en un existant).
  3. Activez l'API Gmail : APIs & Services → Library → Gmail API → Enable.
  4. 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.
  5. Créez des identifiants : APIs & Services → Credentials → Create Credentials → OAuth client ID → Application type: Desktop app.
  6. Téléchargez le fichier JSON généré, renommez-le credentials.json et placez-le à la racine du projet.

⚠️ credentials.json contient un client_secret. Il est listé dans .gitignore et 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.json et token.json donnent accès à l'envoi d'emails depuis votre compte Gmail. Ils sont exclus via .gitignore — vérifiez toujours git status avant un commit pour vous assurer qu'ils n'y apparaissent pas.
  • Le scope gmail.readonly permet la lecture de threads (utilisé uniquement pour check_reply) ; il n'y a pas d'accès en écriture/suppression au-delà de l'envoi.
  • mail_log.db contient 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured