核心用法
Outlook Skill 是一款基于 Microsoft Graph API 的命令行工具,专为需要通过脚本自动化管理 Outlook/Hotmail 邮件和日历的用户设计。核心功能覆盖四大场景:
邮件管理:支持收件箱浏览、未读邮件筛选、全文搜索、按发件人过滤;可标记已读/未读、添加重要标记、归档或删除邮件;支持发送新邮件及快速回复。
日程管理:查看今日/本周事件、创建快速会议、检查空闲时段、更新或删除日程安排。日期采用 ISO 8601 格式(YYYY-MM-DDTHH:MM),支持自动时区检测。
多账户架构:v1.4.0 引入多账户支持,通过 --account 参数或 OUTLOOK_ACCOUNT 环境变量切换个人/工作账户,凭证隔离存储于 ~/.outlook-mcp/<account>/。
Token 生命周期:OAuth2 访问令牌约 1 小时过期,提供 refresh/test/get 子命令管理令牌状态。
显著优点
- 官方 API 集成:基于 Microsoft Graph,非 IMAP/SMTP 旁路,合规性更强
- 自动化安装:单脚本完成 Azure App 注册、权限配置、授权全流程
- 多账户隔离:工作与生活账户完全分离,配置独立存储
- 输出结构化:JSON 格式便于下游管道处理,邮件自带序号索引
- 安全加固:v1.3.1 修复路径遍历漏洞,附件名经过
basename净化
潜在局限
- 依赖外部工具:强制要求 Azure CLI (
az) 和jq,增加部署复杂度 - 令牌管理负担:1 小时短时效令牌需手动刷新,无自动后台续期机制
- ID 截断设计:邮件 ID 仅显示末 20 字符,极端场景可能冲突
- 企业账户限制:Microsoft 365 工作账户需管理员 consent,部分企业禁用第三方 OAuth
- 仅限 Outlook:不支持 Gmail、iCloud 等其他邮件生态
适合人群
- 开发者/DevOps 工程师:需要将邮件状态集成到 CI/CD 或监控脚本
- 效率工具爱好者:偏好终端工作流,希望用脚本替代网页版 Outlook
- 多邮箱管理者:同时维护个人 Outlook 与工作 Microsoft 365 账户
常规风险
- 凭证本地存储:
client_secret和 refresh token 以chmod 600明文存于~/.outlook-mcp/,共享设备存在泄露风险 - Token 打印风险:
outlook-token.sh get直接向 stdout 输出 access token,可能被日志捕获 - 权限范围较宽:默认申请
Mail.ReadWrite+Calendars.ReadWrite,最小权限原则未严格执行 - Azure 配置复杂度:误操作可能导致 App Registration 权限过度授权或租户级安全配置暴露