MCP server
by ai-zerolab
Connect your free email services or Mailchimp for seamless automation. Manage emails efficiently with IMAP and SMTP supp
Connects to email accounts via IMAP and SMTP to send, receive, list, and manage emails programmatically. Supports multiple email providers and attachment downloads.
Email Server is a community-built MCP server published by ai-zerolab that provides AI assistants with tools and capabilities via the Model Context Protocol. Connect your free email services or Mailchimp for seamless automation. Manage emails efficiently with IMAP and SMTP supp It is categorized under communication. This server exposes 7 tools that AI clients can invoke during conversations and coding sessions.
You can install Email Server in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
BSD-3-Clause
Email Server is released under the BSD-3-Clause license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Automate multi-step workflows combining AI and external tools
Example
Research → Summarize → Create document → Send notification
Complete complex tasks end-to-end without manual steps
Share your MCP server with the developer community
I recommend Email Server for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
We evaluated Email Server against two servers with overlapping tools; this profile had the clearer scope statement.
Strong directory entry: Email Server surfaces stars and publisher context so we could sanity-check maintenance before adopting.
According to our notes, Email Server benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
Email Server is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
Email Server reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
Useful MCP listing: Email Server is the kind of server we cite when onboarding engineers to host + tool permissions.
According to our notes, Email Server benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
Email Server reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
Email Server has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
showing 1-10 of 66
IMAP and SMTP via MCP Server
We recommend using uv to manage your environment.
Try uvx mcp-email-server@latest ui to config, and use following configuration for mcp client:
{
"mcpServers": {
"zerolib-email": {
"command": "uvx",
"args": ["mcp-email-server@latest", "stdio"]
}
}
}
This package is available on PyPI, so you can install it using pip install mcp-email-server
After that, configure your email server using the ui: mcp-email-server ui
You can also configure the email server using environment variables, which is particularly useful for CI/CD environments like Jenkins. zerolib-email supports both UI configuration (via TOML file) and environment variables, with environment variables taking precedence.
{
"mcpServers": {
"zerolib-email": {
"command": "uvx",
"args": ["mcp-email-server@latest", "stdio"],
"env": {
"MCP_EMAIL_SERVER_ACCOUNT_NAME": "work",
"MCP_EMAIL_SERVER_FULL_NAME": "John Doe",
"MCP_EMAIL_SERVER_EMAIL_ADDRESS": "john@example.com",
"MCP_EMAIL_SERVER_USER_NAME": "john@example.com",
"MCP_EMAIL_SERVER_PASSWORD": "your_password",
"MCP_EMAIL_SERVER_IMAP_HOST": "imap.gmail.com",
"MCP_EMAIL_SERVER_IMAP_PORT": "993",
"MCP_EMAIL_SERVER_SMTP_HOST": "smtp.gmail.com",
"MCP_EMAIL_SERVER_SMTP_PORT": "465"
}
}
}
}
| Variable | Description | Default | Required |
|---|---|---|---|
MCP_EMAIL_SERVER_ACCOUNT_NAME | Account identifier | "default" | No |
MCP_EMAIL_SERVER_FULL_NAME | Display name | Email prefix | No |
MCP_EMAIL_SERVER_EMAIL_ADDRESS | Email address | - | Yes |
MCP_EMAIL_SERVER_USER_NAME | Login username | Same as email | No |
MCP_EMAIL_SERVER_PASSWORD | Email password | - | Yes |
MCP_EMAIL_SERVER_IMAP_HOST | IMAP server host | - | Yes |
MCP_EMAIL_SERVER_IMAP_PORT | IMAP server port | 993 | No |
MCP_EMAIL_SERVER_IMAP_SSL | Enable IMAP SSL | true | No |
MCP_EMAIL_SERVER_IMAP_VERIFY_SSL | Verify IMAP SSL certificates (disable for self-signed) | true | No |
MCP_EMAIL_SERVER_SMTP_HOST | SMTP server host | - | Yes |
MCP_EMAIL_SERVER_SMTP_PORT | SMTP server port | 465 | No |
MCP_EMAIL_SERVER_SMTP_SSL | Enable SMTP SSL | true | No |
MCP_EMAIL_SERVER_SMTP_START_SSL | Enable STARTTLS | false | No |
MCP_EMAIL_SERVER_SMTP_VERIFY_SSL | Verify SSL certificates (disable for self-signed) | true | No |
MCP_EMAIL_SERVER_ENABLE_ATTACHMENT_DOWNLOAD | Enable attachment download | false | No |
MCP_EMAIL_SERVER_SAVE_TO_SENT | Save sent emails to IMAP Sent folder | true | No |
MCP_EMAIL_SERVER_SENT_FOLDER_NAME | Custom Sent folder name (auto-detect if not set) | - | No |
By default, downloading email attachments is disabled for security reasons. To enable this feature, you can either:
Option 1: Environment Variable
{
"mcpServers": {
"zerolib-email": {
"command": "uvx",
"args": ["mcp-email-server@latest", "stdio"],
"env": {
"MCP_EMAIL_SERVER_ENABLE_ATTACHMENT_DOWNLOAD": "true"
}
}
}
}
Option 2: TOML Configuration
Add enable_attachment_download = true to your TOML configuration file (~/.config/zerolib/mcp_email_server/config.toml):
enable_attachment_download = true
[[emails]]
# ... your email configuration
Once enabled, you can use the download_attachment tool to save email attachments to a specified path.
By default, sent emails are automatically saved to your IMAP Sent folder. This ensures that emails sent via the MCP server appear in your email client (Thunderbird, webmail, etc.).
The server auto-detects common Sent folder names: Sent, INBOX.Sent, Sent Items, Sent Mail, [Gmail]/Sent Mail.
To specify a custom Sent folder name (useful for providers with non-standard folder names):
Option 1: Environment Variable
{
"mcpServers": {
"zerolib-email": {
"command": "uvx",
"args": ["mcp-email-server@latest", "stdio"],
"env": {
"MCP_EMAIL_SERVER_SENT_FOLDER_NAME": "INBOX.Sent"
}
}
}
}
Option 2: TOML Configuration
[[emails]]
account_name = "work"
save_to_sent = true
sent_folder_name = "INBOX.Sent"
# ... rest of your email configuration
To disable saving to Sent folder, set MCP_EMAIL_SERVER_SAVE_TO_SENT=false or save_to_sent = false in your TOML config.
If you're using a local mail server with self-signed certificates (like ProtonMail Bridge), you'll need to disable SSL certificate verification:
{
"mcpServers": {
"zerolib-email": {
"command": "uvx",
"args": ["mcp-email-server@latest", "stdio"],
"env": {
"MCP_EMAIL_SERVER_IMAP_VERIFY_SSL": "false",
"MCP_EMAIL_SERVER_SMTP_VERIFY_SSL": "false"
}
}
}
}
Or in TOML configuration:
[[emails]]
account_name = "protonmail"
# ... other settings ...
[emails.incoming]
verify_ssl = false
[emails.outgoing]
verify_ssl = false
For separate IMAP/SMTP credentials, you can also use:
MCP_EMAIL_SERVER_IMAP_USER_NAME / MCP_EMAIL_SERVER_IMAP_PASSWORDMCP_EMAIL_SERVER_SMTP_USER_NAME / MCP_EMAIL_SERVER_SMTP_PASSWORDThen you can try it in Claude Desktop. If you want to intergrate it with other mcp client, run $which mcp-email-server for the path and configure it in your client like:
{
"mcpServers": {
"zerolib-email": {
"command": "{{ ENTRYPOINT }}",
"args": ["stdio"]
}
}
}
If docker is avaliable, you can try use docker image, but you may need to config it in your client using tools via MCP. The default config path is ~/.config/zerolib/mcp_email_server/config.toml
{
"mcpServers": {
"zerolib-email": {
"command": "docker",
"args": ["run", "-it", "ghcr.io/ai-zerolab/mcp-email-server:latest"]
}
}
}
To install Email Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @ai-zerolab/mcp-email-server --client claude
To reply to an email with proper threading (so it appears in the same conversation in email clients):
message_id:emails = await get_emails_content(account_name="work", email_ids=["123"])
original = emails.emails[0]
in_reply_to and references:await send_email(
account_name="work",
recipients=[original.sender],
subject=f"Re: {original.subject}",
body="Thank you for your email...",
in_reply_to=original.message_id,
references=original.message_id,
)
The in_reply_to parameter sets the In-Reply-To header, and references sets the References header. Both are used by email clients to thread conversations properly.
This project is managed using uv.
Try make install to install the virtual environment and install the pre-commit hooks.
Use uv run mcp-email-server for local development.
PYPI_TOKEN by visitinPrerequisites
Time Estimate
15-60 minutes depending on server complexity
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
Compatibility
✓ Use when
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
✗ Avoid when
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.