x-mahar/mail-mcpServer
If you are the rightful owner of mail-mcpServer and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Email MCP Server is a minimal, production-ready server that facilitates email sending via Mailjet's API using the Model Context Protocol (MCP) over Server-Sent Events (SSE).
Email MCP Server
A minimal, production-ready MCP (Model Context Protocol) server that enables Claude Desktop to send emails via Mailjet's API over Server-Sent Events (SSE).
🚀 Quick Start
1. Deploy the Server
Local Development:
# Clone and setup
git clone <your-repo>
cd email-mcp-server
pip install -r requirements.txt
# Configure environment
cp .env.example .env
# Edit .env with your API tokens
# Run server
python main.py
# Server runs on http://localhost:8000
Production Deploy (Railway/Render/Vercel):
- Fork this repository
- Connect to your hosting platform
- Set environment variables:
VALID_API_TOKENS=your-secure-tokens-here
HOST=0.0.0.0
PORT=8000
2. Get Your API Token
Visit your deployed server at https://your-domain.com
and get a valid API token from the VALID_API_TOKENS
environment variable.
3. Configure Claude Desktop
Add this to your Claude Desktop MCP configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"email-sender": {
"transport": {
"type": "sse",
"url": "https://your-domain.com/sse?api_token=your-api-token"
}
}
}
}
4. Get Mailjet Credentials
- Sign up at Mailjet.com (free tier available)
- Go to Account Settings → API Keys
- Copy your API Key and Secret Key
5. Send Emails with Claude
Now you can ask Claude to send emails:
"Send an email to john@example.com with the subject 'Meeting Follow-up' saying 'Thanks for the great discussion today. Let's schedule a follow-up for next week.'"
Claude will ask for your Mailjet credentials the first time.
🛡️ Security Features
- API Token Authentication: Each request requires a valid token
- User-Provided Credentials: Server never stores user email credentials
- Input Validation: Email format validation and error handling
- CORS Protection: Configurable origin restrictions
📡 API Endpoints
GET /
- Server status and informationGET /sse?api_token=TOKEN
- SSE endpoint for MCP protocolPOST /mcp?api_token=TOKEN
- Direct MCP message handling (debugging)
🔧 Environment Variables
HOST=0.0.0.0 # Server host
PORT=8000 # Server port
VALID_API_TOKENS=token1,token2 # Comma-separated valid tokens
📝 Usage Examples
Basic Email:
Send email to user@domain.com saying "Hello World"
With HTML:
Send a professional email to client@company.com with subject "Proposal" including both plain text and HTML formatting
Multiple Recipients (coming soon): Currently supports single emails only. Bulk email functionality planned for v2.
🚨 Troubleshooting
Common Issues:
- "Invalid API token" - Check your token in the SSE URL
- "Invalid Mailjet credentials" - Verify your API key and secret
- "Invalid email format" - Ensure email addresses are properly formatted
- Connection timeouts - Check your server deployment status
🏗️ Architecture
- FastAPI - Modern Python web framework
- SSE Transport - Real-time MCP protocol communication
- Mailjet API - Reliable email delivery service
- In-Memory Auth - Simple token validation (no database required)
📄 License
MIT License - feel free to use in your own projects!
🤝 Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
For major changes, please open an issue first to discuss the proposed changes.