Gmail-mcp-server
A resilient MCP server built with fastMCP for sending emails through Gmail’s SMTP server using AI agents.
Gmail MCP Server
This repository contains a resilient MCP server implementation using fastMCP. The server is designed to send emails via Gmail’s SMTP server and supports various methods for attaching files, including:
- Direct File Path: Attach files that exist on the local filesystem.
- URL-Based Attachments: Download files from a given URL and attach them.
- Pre-Staged Attachments: Use attachments stored in a designated directory.
The server is built with resilience in mind, featuring an increased timeout and graceful shutdown handling.
Features
- Gmail SMTP Integration: Sends emails using Gmail’s SMTP server with TLS. ( MAKE SURE YOU HAVE SETUP GMAIL SMTP ON YOUR ACCOUNT AND GENERATE APP password )
- Multiple Attachment Methods:
- Directly from a file path.
- By downloading from a public URL.
- Using pre-staged attachments stored locally.
- Resilient Design: Increased timeout and signal handling for graceful shutdown.
- Environment-Based Configuration: Securely manage your Gmail credentials using environment variables.
Requirements
- Python 3.x
- fastMCP (install via
pip install mcp
) - python-dotenv (install via
pip install python-dotenv
) - requests (install via
pip install requests
)
Setup
Clone the Repository:
git clone <remote-repository-URL> cd gmail-mcp-server
Set Up Environment Variables:
Create a .env
file in the root directory and add your Gmail SMTP credentials:
SMTP_USERNAME=your.email@gmail.com SMTP_PASSWORD=your_app_password
Note: If you use 2-Step Verification on your Gmail account, you must generate and use an App Password.
OPEN CLAUDE > SETTINGS > MCP > Configure > OPEN claude_desktop_config.json > Paste the file with your path below { “mcpServers”: { “gmail-mcp”: { “command”: “python”, “args”: [“PATH_TO_gmail_mcp.py”], “host”: “127.0.0.1”, “port”: 5000, “timeout”: 30000 } } }
(Optional) Prepare Attachment Directories:
For pre-staged attachments, create a directory named available_attachments
in the root.
The server will automatically create a temp_attachments
directory when downloading files from URLs.
Running the Server: To start the MCP server, run:
python server.py
The server will start on 127.0.0.1:5000 and can be accessed by your MCP clients or agents.
### Installing via Smithery
To install Gmail MCP Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@MaitreyaM/gmail-mcp-server):
```bash
npx -y @smithery/cli install @MaitreyaM/gmail-mcp-server --client claude
Usage Sending Emails
You can send emails using the send_email_tool with the following parameters:
recipient: Email address of the recipient. subject: Email subject. body: Email body text. attachment_path (optional): Direct file path to the attachment. attachment_url (optional): Public URL from which to download the attachment. attachment_name (optional): Filename to use for the attachment (required when using URL-based or pre-staged attachments). Example Scenarios:
Direct File Attachment:
json Copy { “recipient”: “friend@example.com”, “subject”: “Hello with attachment”, “body”: “Please see the attached document.”, “attachment_path”: “C:pathtodocument.pdf” }
URL-Based Attachment:
json Copy { “recipient”: “friend@example.com”, “subject”: “Hello with attachment”, “body”: “Please see the attached image.”, “attachment_url”: “https://example.com/image.png”, “attachment_name”: “image.png” } Pre-Staged Attachment:
Place your file in the available_attachments directory and reference it by name:
json Copy { “recipient”: “friend@example.com”, “subject”: “Hello with attachment”, “body”: “Please see the attached file.”, “attachment_name”: “document.pdf” } License: This project is licensed under the MIT License.
Contributing: Contributions are welcome! Feel free to open issues or submit pull requests.
Acknowledgments: Built with fastMCP. Inspired by resilient design patterns for server applications.
Gmail MCP Server
Project Details
- MaitreyaM/Gmail-mcp-server
- Last Updated: 4/16/2025
Recomended MCP Servers
esa の Model Context Protocol サーバー実装
An MCP server implementation that provides tools for interacting with the [Twitter/X API v2](https://docs.x.com/x-api/introduction).
Stream Brave Search (web & local) results via a Model Context Protocol (MCP) / Server-Sent Events (SSE) interface....
MCP Server to control govee lights
Financial Modeling Prep MCP Server
It's like v0 but in your Cursor/WindSurf/Cline. 21st dev Magic MCP server for working with your frontend like...
MCP Server integrating MCP Clients with Stability AI-powered image manipulation functionalities: generate, edit, upscale, and more.
Model Context Protocol (MCP) tool for search using the Tavily API
Pretty PowerShell that looks good and functions almost as good as Linux terminal
dedicated isolated environment for your AI agent