电子邮件提醒MCP服务器📧
MCP(模型上下文协议)服务器,自动过滤垃圾邮件中的重要电子邮件,并显示需要您注意的内容。非常适合管理繁忙的收件箱!支持Gmail和Yandex邮件。
特性✨
- 多提供商支持:适用于Gmail和Yandex Mail
- 智能重要性评分:自动按紧急程度和重要性对电子邮件进行排名
- 垃圾邮件过滤:过滤掉促销邮件和电子报
- 垃圾邮件文件夹监控:检查收件箱和垃圾邮件文件夹中的重要电子邮件
- VIP发件人:优先处理来自重要域的电子邮件
- 快速总结:获取收件箱状态的即时概览
- 基于时间的过滤:查看过去N小时的电子邮件
- 标记为已读:直接从您的AI助手处理电子邮件
- 柏林门户警报:柏林门户电子邮件的特别提醒(蓝卡、临时蓝卡、重新登录选项)
设置🚀
1.安装依赖项
npm install2.获取Gmail API凭据
- 首选 谷歌云控制台
- 创建新项目(或选择现有项目)
- 启用Gmail API:
- 转到“API和服务”>“库” - 搜索“Gmail API” - 点击“启用”
- 配置OAuth同意屏幕(如果尚未完成):
- 转到“API和服务”>“OAuth同意屏幕” - 选择“外部”(除非您有谷歌工作区) - 填写应用程序名称、用户支持电子邮件、开发人员电子邮件 - 添加作用域: - https://www.googleapis.com/auth/gmail.readonly -阅读电子邮件 - https://www.googleapis.com/auth/gmail.modify -修改电子邮件(标记为已读)
- 创建凭据:
- 转到“API和服务”>“凭据” - 点击“创建凭据”>“OAuth客户端ID” - 选择“桌面应用程序”作为应用程序类型 - 下载凭据JSON文件
- 将下载的文件另存为
src/credentials.json
- 构建过程将自动将其复制到 dist/credentials.json
所需范围:
gmail.readonly-用于阅读/获取电子邮件gmail.modify-用于将电子邮件标记为已读并添加标签
3.建设项目
npm run build4.配置MCP客户端
将此添加到您的MCP设置文件中(例如,Claude Desktop配置):
适用于macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 对于Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"email-reminder": {
"command": "node",
"args": ["/absolute/path/to/email-reminder-mcp/dist/index.js"]
}
}
}5.使用Gmail进行身份验证
重要: 在使用MCP服务器之前,您必须运行身份验证脚本。MCP服务器以非交互模式运行,无法以交互方式处理OAuth流。
运行身份验证脚本:
npm run auth这将:
- 显示Gmail授权URL
- 在浏览器中打开该URL(或复制/粘贴)
- 使用您的Google帐户登录并授权该应用程序
- 授权后,您将被重定向到以下URL
http://localhost/?code=4/0AeanS0... - 复制代码部分(之后的所有内容
code=)从该URL - 出现提示时将其粘贴回终端
- 脚本将创建
token.json供将来使用
注: 曾经 token.json 存在,除非令牌过期,否则您不需要再次运行此脚本。
6.使用Yandex Mail进行身份验证(可选)
要连接您的Yandex电子邮件帐户:
- 在Yandex邮件中启用IMAP:
- 首选https://mail.yandex.com/ - 点击设置(齿轮图标)>“所有设置” - 导航到“电子邮件客户端” - 启用“通过imap从imap.yandex.com服务器” - 保存您的更改
- 创建应用程序密码:
- 首选https://id.yandex.com/ - 导航到“安全”>“应用程序密码” - 点击“创建应用密码” - 选择“邮件”作为应用程序类型 - 复制生成的密码(您只能看到一次!)
- 运行Yandex身份验证脚本:
npm run auth:yandex这将提示您:
- 您的Yandex电子邮件地址
- 您的应用程序密码(不是常规密码)
脚本将创建 dist/yandex-token.json 以备将来使用。
注: 您可以同时使用Gmail和Yandex,也可以只使用其中一个。
用法💡
配置后,您可以在AI助手中使用这些命令:
获取重要电子邮件
Show me my important emails from the last 24 hours获取电子邮件摘要
Give me a summary of my unread emails将电子邮件标记为已处理
Mark email [email_id] as read添加VIP域名
Add example.com to my VIP senders查看柏林门户网站电子邮件
通过克劳德桌面:
用自然语言问克劳德:
Check for Berlin portal emails about my blue card或
Have you received any emails from Berlin portal about my temporary blue card application?或
Check my emails for anything related to blue card, temporary blue card, or re-entry options from Berlin克劳德将自动呼叫 check_berlin_portal_emails 工具并向您展示:
- 找到的所有与柏林门户网站/蓝卡相关的电子邮件
- 它们在哪个文件夹中(收件箱或垃圾邮件)
- 相关性得分
- 电子邮件片段
它搜索什么:
- 柏林门户网域(berlin.de,service.berlin.de,einwanderung.berlin.de)
- 关键词: 蓝卡, 蓝卡, 临时, 重新入境, 重新入境, 入境, 签证, 签证, 居留许可, 停留
- 检查收件箱和垃圾邮件文件夹(重要电子邮件有时会变成垃圾邮件!)
- 默认时间范围:过去7天(168小时)
可用工具🛠️
get_important_emails
获取并过滤重要的未读电子邮件。
参数:
hours_back(数字):回顾时间(默认值:24)min_importance(数字):最小重要性分数0-100(默认值:30)max_results(number):返回的最大电子邮件数(默认值:10)
get_email_summary
按类别快速查看收件箱状态。
参数:
hours_back(数字):回顾时间(默认值:24)
mark_email_handled
将电子邮件标记为已读。
参数:
email_id(string):要标记的电子邮件ID
add_vip_domain
将域添加到VIP列表以获得更高的优先级。
参数:
domain(string):域名如“company.com”
get_vip_domains
列出所有已配置的VIP域。
check_berlin_portal_emails
查看柏林门户网站关于蓝卡、临时蓝卡或重新入境选项的电子邮件。检查收件箱和垃圾邮件文件夹。
参数:
hours_back(数字):回顾时间(默认值:168=7天)
特殊功能:
- 搜索柏林门户域名(Berlin.de、service.Berlin.de等)
- 寻找关键词:蓝卡、布莱恩卡丁车、临时、重新进入、重新进入等。
- 检查收件箱和垃圾邮件文件夹
- 为柏林门户网站相关电子邮件提供相关性评分
它如何衡量重要性📊
服务器使用多个因素对电子邮件进行评分(0-100):
高优先级指标 (+分):
- 关键词:“紧急”、“尽快”、“截止日期”、“需要采取的行动”
- VIP发件人域(+20)
- 直接电子邮件与CC(+10)
- 最近的电子邮件(如果\ = {
urgent: 10, important: 8, // Add your own keywords... };
### 添加垃圾邮件指示器
编辑 `SPAM_INDICATORS` 数组:
const SPAM_INDICATORS = [ "unsubscribe", "promotional", // Add more spam indicators... ];
## 示例提示📝
以下是您可以复制并粘贴到Claude Desktop的现成提示:
### 快速电子邮件检查
What important emails do I have?
Show me my important emails from the last 24 hours
Check my emails from the last 8 hours
What emails need my attention today?
### 电子邮件摘要
Give me a summary of my unread emails
How's my inbox looking?
What's my email status?
Show me a breakdown of my emails by importance
### 柏林门户网站和蓝卡
Check for Berlin portal emails about my blue card
Have you received any emails from Berlin portal about my temporary blue card application?
Check my emails for anything related to blue card, temporary blue card, or re-entry options from Berlin
Search for Berlin portal emails from the last 2 weeks
### 电子邮件管理
Add example.com to my VIP senders
What are my VIP domains?
Mark email [email_id] as read
### 高级查询
Show me only urgent emails (importance score above 70)
What emails came in overnight?
Check emails from the last 12 hours with importance above 50, max 5 emails
Show me emails from client domains only, last 24 hours
## 交互示例💬
**示例1:早上电子邮件检查**
User: What important emails came in overnight? Assistant: [Calls get_important_emails with hours_back: 8] Found 3 important emails:
- [Score: 85] From: boss@company.com - "URGENT: Q4 Report needed"
- [Score: 72] From: client@important.com - "Meeting tomorrow at 10am"
- [Score: 45] From: hr@company.com - "Benefits enrollment deadline"
**示例2:快速总结**
User: How's my inbox looking? Assistant: [Calls get_email_summary] You have:
- ⚠️ 2 urgent emails
- 5 important emails
- 12 normal emails
- 8 likely spam
Recommendation: You have 2 urgent emails that need attention!
**示例3:柏林门户警报**
User: Check for any emails about my blue card from Berlin portal Assistant: [Calls check_berlin_portal_emails with hours_back: 168] 🚨 ALERT: Found 1 email(s) related to Berlin portal/blue card! Found 1 Berlin portal related email(s) in last 168 hours:
- [Relevance: 95] From: service@berlin.de - "Temporary Blue Card with Re-entry Option"
Folder: SPAM Snippet: "Your application for a temporary blue card has been approved..."
## 故障排除🔧
### 身份验证问题
**Gmail:“找不到token.json”或“需要身份验证”**
- 跑 `npm run auth` 生成令牌文件
- 确保您已完成OAuth流程并粘贴了代码
**Yandex:“未找到Yandex-token.json”或“需要身份验证”**
- 跑 `npm run auth:yandex` 生成令牌文件
- 确保在Yandex帐户设置中启用了IMAP
- 使用应用程序密码,而不是常规密码
**“令牌过期”或“凭据无效”**
- 删除 `token.json`
- 跑 `npm run auth` 再次进行身份验证
**“无法从stdin读取代码”**
- 如果您尝试直接通过MCP服务器进行身份验证,则会发生这种情况
- 始终使用 `npm run auth` 用于身份验证,而不是MCP服务器
### 没有电子邮件显示
- 检查你的 `hours_back` 参数
- 降低 `min_importance` 阈值
- 验证Gmail API是否已在Google云控制台中启用
### 权限错误
确保您的OAuth同意屏幕配置正确,并包含所需的范围。
## 安全说明🔒
- 凭据存储在本地 `credentials.json` 和 `token.json`
- 切勿将这些文件提交到版本控制
- 这 `.gitignore` 默认情况下,文件将它们排除在外
- 令牌过期并需要重新验证
## 发展🔨
Watch mode for development
npm run dev
Build production version
npm run build
Run directly
npm start
## 许可证
麻省理工学院
## 贡献
请随时打开问题或提交PR以进行改进!