MCP Email Service

MCP Email Service

A Model Context Protocol service for comprehensive email management that supports multiple email providers, with complete functionality for viewing, organizing, and batch processing emails.

Category
访问服务器

Tools

list_emails

List emails from inbox

get_unread_count

Get count of unread emails

check_connection

Check connection

get_email_detail

Get detailed content of a specific email

mark_email_read

Mark an email as read

move_email_to_trash

Move an email to trash folder

batch_move_to_trash

Move multiple emails to trash folder in batch

batch_delete_emails

Permanently delete multiple emails in batch

batch_mark_read

Mark multiple emails as read in batch

delete_email

Delete an email permanently

README

MCP Email Service

一个基于MCP (Model Context Protocol) 的邮件管理服务,支持多邮箱提供商的完整邮件管理功能。目前已完美支持163邮箱,其他邮箱提供商正在开发中。

✨ 核心功能

  • 📧 邮件管理: 查看、详情、标记已读、删除、移动到垃圾箱
  • 🔄 批量操作: 批量标记已读、批量删除、批量移动到垃圾箱
  • 📊 统计信息: 未读邮件数量、邮箱状态检查
  • 🔧 技术突破: 解决各种邮箱提供商的技术限制 (如163邮箱IMAP "Unsafe Login")
  • 🎯 MCP集成: 完美集成MCP协议客户端,支持10个MCP工具

🚀 快速开始

1. 环境要求

  • Python 3.11+
  • UV包管理器

2. 安装UV (如果尚未安装)

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# 或使用 Homebrew (macOS)
brew install uv

3. 克隆项目

git clone <your-repo-url>
cd mcp-email-service

4. 项目初始化

# 创建虚拟环境并安装依赖
uv sync

# 验证安装
uv run python --version

5. 邮箱配置

当前支持的邮箱提供商:

  • 163邮箱 - 完全支持
  • 🔄 Gmail - 开发中
  • 🔄 Outlook - 开发中
  • 🔄 QQ邮箱 - 开发中

5.1 配置163邮箱 (当前支持)

  1. 登录163邮箱: 访问 https://mail.163.com
  2. 进入设置: 点击右上角设置 → POP3/SMTP/IMAP
  3. 开启IMAP服务: 开启 IMAP/SMTP 服务
  4. 获取授权码: 完成手机验证后获取授权码

⚠️ 重要: 授权码不是邮箱密码!是专门用于第三方客户端的授权码。

5.2 配置环境变量

# 复制配置模板
cp .env.example .env

# 编辑配置文件
# 在 .env 文件中设置:
EMAIL_PROVIDER=163                    # 邮箱提供商 (目前支持: 163)
EMAIL_ADDRESS=your_email@163.com      # 你的邮箱地址
EMAIL_PASSWORD=your_authorization_code  # 163邮箱授权码

注意: 其他邮箱提供商的配置方式正在开发中,敬请期待!

6. 测试运行

# 测试MCP服务
uv run python src/main.py

# 在另一个终端测试功能
uv run python -c "
import asyncio
import sys
sys.path.append('src')
from main import handle_call_tool

async def test():
    result = await handle_call_tool('check_connection', {})
    print(result[0]['text'])

asyncio.run(test())
"

成功显示类似信息表示配置正确:

✅ 连接成功!
📬 总邮件: 1423
🔴 未读邮件: 16

🔧 MCP客户端集成

在MCP客户端配置文件中添加以下配置:

{
    "mcpServers": {
        "mcp-email-service": {
            "command": "/Users/leo/github.com/mcp-email-service/run.sh",
            "args": []
        }
    }
}

启动脚本说明:

  • run.sh: 简单的启动脚本,包含以下功能:
    • 自动切换到项目目录
    • 使用UV运行Python服务 (uv run python src/main.py)
    • 确保在正确的环境中启动MCP服务

只需修改配置中的路径为你的实际项目路径,重启MCP客户端即可使用!

📋 可用的MCP工具

基础功能 (4个)

  • check_connection - 检查邮箱连接状态
  • list_emails - 获取邮件列表 (默认50封)
  • get_unread_count - 获取未读邮件数量
  • get_email_detail - 获取邮件详细内容

单个操作 (3个)

  • mark_email_read - 标记邮件为已读
  • delete_email - 永久删除邮件
  • move_email_to_trash - 移动邮件到垃圾箱

批量操作 (3个)

  • batch_mark_read - 批量标记已读
  • batch_delete_emails - 批量删除
  • batch_move_to_trash - 批量移动到垃圾箱

💡 使用示例

在MCP客户端中可以这样使用:

# 查看未读邮件数量
get_unread_count

# 获取最新10封邮件
list_emails with limit=10

# 获取所有未读邮件
list_emails with unread_only=true

# 查看特定邮件详情
get_email_detail with email_id="1423"

# 批量标记邮件为已读
batch_mark_read with email_ids=["1423", "1422", "1421"]

# 批量移动到垃圾箱
batch_move_to_trash with email_ids=["1420", "1419"]

🔧 技术特性

核心技术:多提供商适配架构

针对不同邮箱提供商的技术特点,实现相应的解决方案。

163邮箱的IMAP ID解决方案: 通过实现RFC 2971 IMAP ID扩展,完美解决163邮箱的"Unsafe Login"限制:

def send_imap_id(mail):
    """Send IMAP ID to solve 163 email 'Unsafe Login' issue"""
    id_args = [
        "name", "Mozilla Thunderbird",
        "version", "91.0", 
        "vendor", "Mozilla",
        "support-url", "https://support.mozilla.org/"
    ]
    # 在登录前后发送ID信息确保兼容性

特性亮点

  • 🛡️ 完善的错误处理和批量操作失败恢复
  • 🚀 默认获取50封邮件,提升用户体验
  • 🌍 智能MIME解码,支持多语言邮件
  • ⚡ 批量操作优化,减少网络连接次数

🐛 常见问题

Q: "❌ 邮箱登录失败"

A: 对于163邮箱,检查以下几点:

  1. 确认已开启IMAP服务
  2. 使用授权码而非邮箱密码
  3. 重新生成授权码
  4. 确认邮箱地址正确

对于其他邮箱: 请等待相应提供商的支持更新

Q: "❌ 连接超时"

A: 检查网络连接和防火墙设置

Q: MCP客户端中看不到邮件工具

A:

  1. 检查配置文件JSON格式是否正确
  2. 确认路径是否正确
  3. 重启MCP客户端

🎯 开发路线图

🔄 正在开发

  • [ ] Gmail支持 - OAuth2认证和API集成
  • [ ] Outlook支持 - Microsoft Graph API集成
  • [ ] QQ邮箱支持 - 腾讯邮箱服务集成

📋 计划功能

  • [ ] 邮件搜索功能 (按关键词、发件人、日期范围)
  • [ ] 邮件发送功能 (支持附件)
  • [ ] 邮件文件夹管理 (创建、删除、移动)
  • [ ] 邮件附件处理 (下载、预览)
  • [ ] 邮件模板系统
  • [ ] 邮件规则和过滤器

🚀 长期规划

  • [ ] 企业邮箱支持 (Exchange, POP3等)
  • [ ] 多账户管理
  • [ ] 邮件备份和导出功能

📄 许可证

MIT License


注意: 请不要将包含敏感信息的.env文件提交到版本控制系统中。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选