最近kimi的额度重置了,然后想着,反正额度放着也是浪费,把 Smailr(https://smailr.com)的邮件服务做成了mcp。装完之后,Claude Desktop、Cursor、Cherry Studio、Cline 这些客户端就能直接用自然语言操作邮箱了,比如:
- “列出我收件箱最新的 5 封邮件”
- “用 hello@我的域名 给 [email protected] 发封邮件”
- “我的存储配额用了多少?”
目前实现了 23 个工具,基本覆盖了 Smailr 的全部 API:邮箱增删改查、邮件列表/详情/搜索/发送、附件上传、联系人、文件夹、标签,还有收信规则、签名、配额、统计这些只读接口。
最省事的地方是登录:不需要手动去设置页创建 API key,内置了 NodeLoc OAuth 直接登录。跑一句:
npx smailr-mcp auth
它会自动打开浏览器走 NodeLoc 授权,授权完成后把地址栏的 URL 贴回终端(样例地址格式:smailr.com/app/oauth/callback/nodeloc?code=xxxxxxxx&state=xxxxxx…)(),就自动帮你创建一把 scoped API key,并把可直接粘贴的 MCP 客户端配置打印出来。全程不用碰设置页,登录、建 key、配置一气呵成。
其他几个设计上的考虑:
- 本地优先:服务器以 stdio 方式跑在你自己的电脑上,API key 不经过任何第三方
- 依赖极少:只用了官方的 @modelcontextprotocol/sdk 和 zod,代码很薄,想改也好改
使用方式:
npx -y smailr-mcp
然后在 MCP 客户端里加配置(README 里有完整 JSON)。
已知限制也如实说:Smailr没定义响应 schema,所以工具输出是原始 JSON 透传;联系人/文件夹/标签只支持列表和创建(smailr就没有更新/删除接口);没有 webhook 推送,新邮件需要轮询 list_mails。
MIT 协议,欢迎 star / issue / PR。
特别感谢 @runoneall 提供灵感
P.S. 正在开发与nodeloc有关的mcp,敬请期待
注:
点击授权之后出现这个是正常现象,只需要将此时地址栏的网址:形如smailr.com/app/oauth/callback/nodeloc?code=xxxxxxxx&state=xxxx… 贴回你的客户端就可以了
