ClaudePost

by ZilongXue
Verified
# 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 <p align="center"> <img src="assets/gif1.gif" width="800"/> </p> - 📧 Search emails by date range and keywords - 📅 View daily email statistics - 📝 Read full email content with threading support ### Email Composition and Sending <p align="center"> <img src="assets/gif2.gif" width="800"/> </p> - ✉️ 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: - Two-factor authentication enabled - [App-specific password](https://support.google.com/mail/answer/185833?hl=en) generated - Claude Desktop application ## Setup 1. Install uv: ```bash # 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: ```bash # 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: ```env EMAIL_ADDRESS=your.email@gmail.com 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](https://claude.ai/download). If you already have Claude for Desktop, make sure it's updated to the latest version. Open your Claude Desktop configuration file: ```bash # 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: ```json { "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 recruiting@linkedin.com 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 - "I want to send an email to john@example.com" - "Send a meeting confirmation to team@company.com" 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.