A simple mcp server that lets your AI agent send emails and attach files through SMTP.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"email-mcp-server": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
An MCP (Model Context Protocol) server that lets your AI assistant send emails via SMTP.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in communication
An MCP server that securely interfaces with your iMessage database via the Model Context Protocol (MCP), allowing LLMs to query and analyze iMessage conversations. It includes robust phone number validation, attachment processing, contact management, group chat handling, and full support for sending and receiving messages.
Asynchronous coordination layer for AI coding agents: identities, inboxes, searchable threads, and advisory file leases over FastMCP + Git + SQLite
MCP server for Kaseya Autotask PSA — 39 tools for companies, tickets, projects, time entries, and more
Email & SMS infrastructure for AI agents — send and receive real email and text messages programmatically
MCP Security Weekly
Get CVE alerts and security updates for Email Mcp Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
An MCP (Model Context Protocol) server that lets your AI assistant send emails via SMTP.
send_simple_email — Send a quick email (text or HTML); accepts optional smtp_configsend_custom_email — Full control: CC/BCC, attachments; accepts optional smtp_configtest_smtp_connection — Verify your SMTP settings before sending; accepts optional smtp_config# Install uv if you don't have it
curl -LsSf https://astral.sh/uv/install.sh | sh
cd email-mcp-server
uv sync --extra dev
Configure SMTP (see next section), then run:
# stdio transport (for MCP clients)
uv run python -m email_mcp_server.server
# Streamable HTTP transport (port 8000)
uv run python -m email_mcp_server.server --http
Run tests:
uv run pytest
You can configure SMTP credentials in two ways — use one or both.
Copy the example and fill in your credentials:
cp env.example .env
# Required
SMTP_HOST=smtp.gmail.com
SMTP_USER=your-email@gmail.com
SMTP_PASS=your-app-password
SMTP_FROM=your-email@gmail.com
# Optional (defaults shown)
# SMTP_PORT=587
# SMTP_SECURE=false
Alternatively, pass them via the client's env block (see Client Configuration below).
Pass smtp_config directly in any tool call — environment variables are ignored for that call:
{
"smtp_config": {
"host": "smtp.gmail.com",
"port": 587,
"secure": false,
"username": "your-email@gmail.com",
"password": "your-app-password",
"from_email": "your-email@gmail.com"
}
}
| Field | Type | Description |
|---|---|---|
host | string | SMTP server hostname |
port | integer | SMTP server port (usually 587) |
secure | boolean | Use SSL/TLS (false for STARTTLS) |
username | string | Auth username |
password | string | Auth password |
from_email | string | Sender email address |
# stdio
claude mcp add email-server -- uv --directory /absolute/path/to/email-mcp-server run python -m email_mcp_server.server
# streamable HTTP (start the server first with --http)
claude mcp add --transport http email-server http://localhost:8000/mcp
Use the generic example below and adjust the top-level key and config file path for your client:
{
"<top-level-key>": {
"email-server": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/email-mcp-server", "run", "python", "-m", "email_mcp_server.server"],
"env": {
"SMTP_HOST": "smtp.gmail.com",
"SMTP_PORT": "587",
"SMTP_SECURE": "false",
"SMTP_USER": "your-email@gmail.com",
"SMTP_FROM": "your-email@gmail.com",
"SMTP_PASS": "your-app-password"
}
}
}
}
| Client | Config file path | Top-level key | Notes |
|---|---|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json | mcpServers | Windows: %APPDATA%\Claude\... |
| Cursor | ~/.cursor/mcp.json | mcpServers | Or .cursor/mcp.json (project) |
| VS Code | .vscode/mcp.json | servers | Add "type": "stdio" inside the server entry |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | mcpServers | |
| Zed | ~/.config/zed/settings.json | context_servers |
Start the server with uv run python -m email_mcp_server.server --http, then:
| Client | Config |
|---|---|
| Claude Code | claude mcp add --transport http email-server http://localhost:8000/mcp |
| Claude Desktop | { "type": "http", "url": "http://localhost:8000/mcp" } |
| Cursor | { "url": "http://localhost:8000/mcp" } |
| VS Code | { "type": "http", "url": "http://localhost:8000/mcp" } |
| Windsurf | `{ |