MCP ExplorerExplorer

Claude Post Email Management

@Zilong Xueon 12 days ago
80 MIT
FreeCommunity
Messaging
#Email Management#Natural Language Processing
ClaudePost enables seamless email management for Gmail, offering secure features like email search, reading, and sending.

Overview

What is Claude Post Email Management

ClaudePost is a Model Context Protocol (MCP) server that offers an intuitive interface for managing emails through natural language conversations with Claude. It allows users to seamlessly search, read, and send emails securely and efficiently, integrating with existing email services, particularly Gmail.

Use cases

Users can perform various email tasks such as searching for specific messages using keywords and date ranges, reading email content with threading, and sending emails with CC support. It is particularly useful for busy professionals looking to streamline their email management without needing to interact directly with email clients.

How to use

To use ClaudePost, install the necessary dependencies, set up the project environment, including creating a ‘.env’ file with email credentials, and configure Claude Desktop with the appropriate command-line arguments. Once set up, users can interact with their emails via natural language commands through the Claude Desktop application.

Key features

Key features include email search by date and keywords, daily email statistics, full email content reading with threading support, the ability to send emails with CC recipients, and secure handling through TLS. The server runs automatically through Claude Desktop, requiring no manual management.

Where to use

ClaudePost can be used wherever Claude Desktop is installed, making it suitable for office environments, remote work setups, and personal email management. Its integration with popular email providers like Gmail ensures broad applicability for diverse user needs.

Content

ClaudePost

A Model Context Protocol (MCP) server that provides a seamless email management interface through Claude. This integration allows you to handle emails directly through natural language conversations with Claude, supporting features like searching, reading, and sending emails securely.

Features & Demo

Email Search and Reading

  • 📧 Search emails by date range and keywords
  • 📅 View daily email statistics
  • 📝 Read full email content with threading support

Email Composition and Sending

  • ✉️ Send emails with CC recipients support
  • 🔒 Secure email handling with TLS

Prerequisites

  • Python 3.12 or higher
  • A Gmail account (or other email provider)
  • If using Gmail:
  • Claude Desktop application

Setup

  1. Install uv:

    # MacOS/Linux
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    # Remember to restart your terminal after installation
    
  2. Clone and set up the project:

    # Clone the repository
    git clone https://github.com/ZilongXue/claude-post.git
    cd claude-post
    
    # Create and activate virtual environment
    uv venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
    # Install dependencies
    uv pip install -e .
    
  3. Create a .env file in the project root:

    [email protected]
    EMAIL_PASSWORD=your-app-specific-password
    IMAP_SERVER=imap.gmail.com
    SMTP_SERVER=smtp.gmail.com
    SMTP_PORT=587
    
  4. Configure Claude Desktop:

    First, make sure you have Claude for Desktop installed. You can install the latest version here. If you already have Claude for Desktop, make sure it’s updated to the latest version.

    Open your Claude Desktop configuration file:

    # MacOS
    ~/Library/Application Support/Claude/claude_desktop_config.json
    
    # Create the file if it doesn't exist
    mkdir -p ~/Library/Application\ Support/Claude
    touch ~/Library/Application\ Support/Claude/claude_desktop_config.json
    

    Add the following configuration:

    {
      "mcpServers": {
        "email": {
          "command": "/Users/username/.local/bin/uv",
          "args": [
            "--directory",
            "/path/to/claude-post/src/email_client",
            "run",
            "email-client"
          ]
        }
      }
    }

    Replace /Users/username and /path/to/claude-post with your actual paths.

    After updating the configuration, restart Claude Desktop for the changes to take effect.

Running the Server

The server runs automatically through Claude Desktop:

  • The server will start when Claude launches if configured correctly
  • No manual server management needed
  • Server stops when Claude is closed

Usage Through Claude

You can interact with your emails using natural language commands. Here are some examples:

Search Emails

  • “Show me emails from last week”
  • “Find emails with subject containing ‘meeting’”
  • “Search for emails from [email protected] between 2024-01-01 and 2024-01-07”
  • “Search sent emails from last month”

Read Email Content

  • “Show me the content of email #12345”
  • “What’s the full message of the last email from HR?”

Email Statistics

  • “How many emails did I receive today?”
  • “Show me daily email counts for the past week”

Send Emails

Note: For security reasons, Claude will always show you the email details for confirmation before actually sending.

Project Structure

claude-post/
├── pyproject.toml
├── README.md
├── LICENSE
├── .env                    # Not included in repo
├── .python-version        # Python version specification
└── src/
    └── email_client/
        ├── __init__.py
        ├── __main__.py
        └── server.py       # Main implementation

Security Notes

  • Use app-specific passwords instead of your main account password
  • For Gmail users:
    1. Enable 2-Step Verification in your Google Account
    2. Generate an App Password for this application
    3. Use the App Password in your .env file

Logging

The application logs detailed information to email_client.log. Check this file for debugging information and error messages.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Tools

search-emails
Search emails within a date range and/or with specific keywords
get-email-content
Get the full content of a specific email by its ID
count-daily-emails
Count emails received for each day in a date range
send-email
CONFIRMATION STEP: Actually send the email after user confirms the details. Before calling this, first show the email details to the user for confirmation. Required fields: recipients (to), subject, and content. Optional: CC recipients.

Comments