Skip to main content

A resilient MCP server built with fastMCP for sending emails through Gmail's SMTP server using AI agents via stdio transport

Project description

Gmail MCP Server

A resilient MCP (Model Context Protocol) server built with fastMCP for sending emails through Gmail's SMTP server using AI agents. This server uses stdio transport for seamless integration with MCP clients.

PyPI version Python 3.10+ License: MIT

Features

  • Send emails via Gmail SMTP
  • Fetch recent emails from Gmail folders
  • Handle email attachments (from URLs, local files, or pre-staged files)
  • stdio transport for MCP client integration

Gmail App Password Setup

To use this MCP server, you'll need to create a Gmail App Password:

  1. Go to your Google Account settings
  2. Select Security from the navigation panel
  3. Under "How you sign in to Google," select 2-Step Verification
  4. At the bottom, select App passwords
  5. Select the app and device you want to generate the app password for
  6. Select Generate
  7. Follow the instructions to enter the app password on your device
  8. Select Done

Use this app password as your SMTP_PASSWORD in the configuration.

Configuration Options

Environment Variables

  • SMTP_USERNAME: Your Gmail email address
  • SMTP_PASSWORD: Your Gmail app password (not your regular password)

Server Configuration

  • Transport: stdio for MCP client integration
  • Protocol: MCP (Model Context Protocol)

Installation

Option 1: Direct Installation with pip

Install the package from PyPI:

pip install rickjang-gmail-mcp-server

Then set up your Gmail credentials as environment variables:

export SMTP_USERNAME="your-email@gmail.com"
export SMTP_PASSWORD="your-app-password"

Run the server:

rickjang-gmail-mcp-server

Option 2: MCP Server Configuration with uv (Recommended)

Add the following to your MCP client configuration (e.g., Claude Desktop):

{
  "mcpServers": {
    "gmail-mcp": {
      "command": "uv",
      "args": [
        "tool", 
        "run", 
        "rickjang-gmail-mcp-server"
      ],
      "env": {
        "SMTP_USERNAME": "your-email@gmail.com",
        "SMTP_PASSWORD": "your-gmail-app-password"
      }
    }
  }
}

This method automatically installs the package using uv and sets the environment variables directly in the configuration.

Claude Desktop Configuration

For Claude Desktop, add this to your claude_desktop_config.json file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "gmail-mcp": {
      "command": "uv",
      "args": [
        "tool", 
        "run", 
        "rickjang-gmail-mcp-server"
      ],
      "env": {
        "SMTP_USERNAME": "jyjang@uengine.org",
        "SMTP_PASSWORD": "your-gmail-app-password"
      }
    }
  }
}

After adding this configuration, restart Claude Desktop to load the MCP server.

Local Development

  1. Clone the repository:

    git clone https://github.com/rickjang/Gmail-mcp-server.git
    cd Gmail-mcp-server
    
  2. Install in development mode:

    pip install -e .
    
  3. Set environment variables and run:

    export SMTP_USERNAME="your-email@gmail.com"
    export SMTP_PASSWORD="your-app-password"
    rickjang-gmail-mcp-server
    

Available Tools

This MCP server provides the following tools:

send_email_tool

Send emails via Gmail SMTP with optional attachments.

Parameters:

  • recipient (string): Email address to send to
  • subject (string): Email subject
  • body (string): Email body text
  • attachment_path (string, optional): Direct file path for attachment
  • attachment_url (string, optional): URL to download attachment from
  • attachment_name (string, optional): Filename for attachment

fetch_recent_emails

Fetch recent emails from a Gmail folder.

Parameters:

  • folder (string, optional): Email folder to fetch from (default: "INBOX")
  • limit (integer, optional): Maximum number of emails to fetch (default: 10)

Testing

Test the server locally:

# Basic functionality test
python test_local.py

# stdio transport test
python test_stdio.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rickjang_gmail_mcp_server-1.1.0.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rickjang_gmail_mcp_server-1.1.0-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file rickjang_gmail_mcp_server-1.1.0.tar.gz.

File metadata

File hashes

Hashes for rickjang_gmail_mcp_server-1.1.0.tar.gz
Algorithm Hash digest
SHA256 1c7b10873b5b2ea0e7f64b6c49b02f76f17664e0f6a8f968c27715ad12686ab8
MD5 8636634c897393ba00010e05632e42b0
BLAKE2b-256 83ce68c3cd87ab101ae91fa3af62015123914c5f42be6445e18d67b25e3a4fc3

See more details on using hashes here.

File details

Details for the file rickjang_gmail_mcp_server-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for rickjang_gmail_mcp_server-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7aec32f64c56ec901fd6d2511982ed39f442c05309d7b6a07c8551d10631402c
MD5 9673590240a3990b80cb9427cb0e02e0
BLAKE2b-256 288ce2b4f14d3d2b1460d78d82ffc74aca69c343028246fd98ae853b13ec191b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page