Skip to main content
Glama
aakashlokhande99

Gmail MCP Server

Gmail MCP Server

Dieses Projekt implementiert einen Model Context Protocol (MCP) Server, der die Interaktion mit Gmail-Konten über IMAP und SMTP ermöglicht. Es bietet Werkzeuge zum Durchsuchen von E-Mails, Abrufen von Inhalten, Verwalten von Labels (Erstellen, Löschen, Umbenennen, Anwenden, Entfernen) sowie zum Senden und Weiterleiten von E-Mails.

Funktionen

  • E-Mail-Suche: Durchsuchen Sie E-Mails nach Datumsbereich, Stichwort oder roher Gmail-Abfragezeichenfolge. Unterstützt die Suche in bestimmten Ordnern (Posteingang, Gesendet) und die Begrenzung der Ergebnisse. Verwendet die X-GM-RAW-Erweiterung von Gmail für effiziente Posteingangssuche (z. B. Filtern nach category:primary).

  • E-Mail-Inhalt abrufen: Rufen Sie den vollständigen Inhalt (Kopfzeilen, Textkörper, Anhänge) einer bestimmten E-Mail anhand ihrer Sequenz-ID ab.

  • Label-Verwaltung (CRUD):

    • Alle verfügbaren Gmail-Labels (Ordner) auflisten.

    • Neue benutzerdefinierte Labels erstellen.

    • Vorhandene benutzerdefinierte Labels umbenennen.

    • Vorhandene benutzerdefinierte Labels löschen (Systemlabels können nicht gelöscht werden).

    • Labels auf einzelne E-Mails anwenden.

    • Labels von einzelnen E-Mails entfernen.

  • Stapeloperationen:

    • Labels gleichzeitig auf mehrere E-Mails anwenden (mithilfe von Sequenz-IDs).

    • Labels gleichzeitig von mehreren E-Mails entfernen (mithilfe von Sequenz-IDs).

    • Mehrere E-Mails in ein bestimmtes Label/einen bestimmten Ordner verschieben.

  • E-Mail senden: Neue E-Mails senden (erfordert SMTP-Konfiguration).

  • E-Mail weiterleiten: Vorhandene E-Mails inklusive Anhängen weiterleiten (erfordert SMTP-Konfiguration).

  • Tägliche E-Mail-Anzahl: Anzahl der pro Tag innerhalb eines bestimmten Datumsbereichs empfangenen E-Mails zählen.

Related MCP server: Gmail MCP Server

Projektstruktur

.
├── .gitignore         # Specifies intentionally untracked files that Git should ignore
├── .python-version    # Specifies Python version (used by pyenv)
├── LICENSE            # Project license file
├── pyproject.toml     # Python project configuration (dependencies, build system)
├── README.md          # This file
├── task_list.md       # Tracks development progress
├── uv.lock            # Lock file for uv package manager
├── src/
│   └── email_client/
│       ├── __init__.py
│       ├── config.py        # Handles loading configuration from environment variables (.env)
│       ├── handlers.py      # Implements the logic for handling MCP tool calls
│       ├── imap_client.py   # Contains functions for interacting with IMAP server
│       ├── server.py        # Main MCP server script using @modelcontextprotocol/sdk
│       ├── smtp_client.py   # Contains functions for interacting with SMTP server
│       ├── tool_definitions.py # Defines the available MCP tools and their schemas
│       └── utils.py         # Utility functions (e.g., email parsing, date formatting)
└── ... (other potential files like test scripts, helper scripts)

Einrichtung

  1. Repository klonen (falls zutreffend):

    git clone https://github.com/david-strejc/gmail-mcp-server.git
    cd gmail-mcp-server
  2. Abhängigkeiten installieren: Dieses Projekt verwendet uv für die Paketverwaltung.

    # Ensure uv is installed (e.g., pip install uv)
    uv venv  # Create virtual environment (.venv)
    uv sync  # Install dependencies from pyproject.toml and uv.lock
    source .venv/bin/activate # Activate the virtual environment

    (Falls Sie uv nicht verwenden, erstellen Sie eine virtuelle Umgebung und installieren Sie die Abhängigkeiten mit pip install -r requirements.txt, sofern eine requirements.txt erstellt wird).

  3. Umgebungsvariablen konfigurieren: Erstellen Sie eine .env-Datei im Projektstammverzeichnis und fügen Sie Ihre Gmail-Anmeldedaten und Servereinstellungen hinzu:

    # .env file
    GMAIL_EMAIL=your_email@gmail.com
    GMAIL_PASSWORD=your_app_password # Use an App Password if 2FA is enabled
    GMAIL_IMAP_SERVER=imap.gmail.com
    GMAIL_SMTP_SERVER=smtp.gmail.com
    GMAIL_SMTP_PORT=587 # Or 465 for SSL
    • Wichtig: Für Gmail müssen Sie bei aktivierter Zwei-Faktor-Authentifizierung unbedingt ein "App-Passwort" generieren und verwenden. Standardkennwörter funktionieren nicht. Siehe Googles Dokumentation zu App-Passwörtern.

    • Stellen Sie sicher, dass "Weniger sichere App-Zugriffe" aktiviert ist, falls Sie keine Zwei-Faktor-Authentifizierung verwenden (dies wird jedoch generell nicht empfohlen).

Ausführen des MCP-Servers

Aktivieren Sie die virtuelle Umgebung und führen Sie das Serverskript aus:

source .venv/bin/activate
python src/email_client/server.py

Der Server startet und lauscht auf MCP-Anfragen über Standardeingabe/-ausgabe.

Integration mit einem MCP-Client (z. B. Cline)

Fügen Sie die Serverkonfiguration zur Einstellungsdatei Ihres MCP-Clients hinzu (z. B. cline_mcp_settings.json oder claude_desktop_config.json).

Beispieleintrag für cline_mcp_settings.json:

{
  "mcpServers": {
    "gmail": {
      "command": "/path/to/your/project/gmail-mcp-server/.venv/bin/python",
      "args": ["/path/to/your/project/gmail-mcp-server/src/email_client/server.py"],
      "env": {}, // Environment variables are loaded from .env by the script
      "enabled": true, // Set to true to enable
      "autoApprove": [] // Configure auto-approval if desired
    }
    // ... other servers
  }
}
  • Ersetzen Sie /path/to/your/project/gmail-mcp-server durch den tatsächlichen absoluten Pfad zu diesem Projektverzeichnis.

  • Stellen Sie sicher, dass der command auf die Python-Datei in der virtuellen Umgebung des Projekts verweist (.venv/bin/python).

Sobald die Konfiguration abgeschlossen und der Client aktiviert ist, verbindet sich der Client mit dem Server und die definierten Werkzeuge werden verfügbar.

Verfügbare Werkzeuge (Zusammenfassung)

  • search-emails: E-Mails durchsuchen.

  • get-email-content: Vollständige E-Mail-Details abrufen.

  • count-daily-emails: Tägliche E-Mail-Anzahl zählen.

  • list-labels: Alle Labels/Ordner auflisten.

  • create-label: Ein neues Label erstellen.

  • rename-label: Ein vorhandenes Label umbenennen.

  • delete-label: Ein Label löschen.

  • apply-label: Ein Label auf eine E-Mail anwenden.

  • remove-label: Ein Label von einer E-Mail entfernen.

  • apply-label-batch: Ein Label auf mehrere E-Mails anwenden.

  • remove-label-batch: Ein Label von mehreren E-Mails entfernen.

  • move-email: Eine einzelne E-Mail in ein Label verschieben.

  • move-email-batch: Mehrere E-Mails in ein Label verschieben.

  • send-email: Eine neue E-Mail senden.

  • forward-email: Eine vorhandene E-Mail weiterleiten.

Detaillierte Eingabeschemata für jedes Werkzeug finden Sie in src/email_client/tool_definitions.py.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Gmail through the Gmail API to read, send, and manage emails. Supports multiple Gmail accounts with real-time monitoring and advanced features for email search and attachment handling.
    17
    Apache 2.0
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI assistants to interact with Gmail accounts through IMAP/SMTP, supporting reading, sending, replying to emails, managing threads, downloading attachments, and searching with Gmail syntax using simple app password authentication.

Latest Blog Posts

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/aakashlokhande99/Gmail_MCP_Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server