mcpField
M
ms-outlook-teams-assistant

ms-outlook-teams-assistant

github.com/abhinavjp生产力046 次安装39 周前更新
代码仓库

关于 ms-outlook-teams-assistant

面向 Outlook Desktop 用户的邮件与 Teams 跟进技能,可筛查待回复消息、生成提醒并起草邮件回复。默认不自动发送消息,提醒可发往 Telegram;Teams 跟踪为可选功能。

主要功能

  1. 01筛查近期可能待回复邮件
  2. 02可选扫描 Teams 聊天消息
  3. 03生成 Telegram 提醒内容
  4. 04创建符合语气要求的邮件草稿
  5. 05支持关闭或延后提醒

适用场景

  1. 01整理近期需要回复的 Outlook 邮件
  2. 02通过 Telegram 接收待办消息提醒
  3. 03为指定邮件生成简短或常规回复草稿

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/abhinavjp/ms-outlook-teams-assistant --skill ms-outlook-teams-assistant

安装后在 Claude Code 中输入/ms-outlook-teams-assistant确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
references/
teams-graph-setup.md
config.example.json
writing-style.md
scripts/
remind.py
state.py
draft_reply.py
dismiss.py
scan_outlook.py
scan_all.py
teams_scan.py

详细介绍

MS Outlook + Teams 助手(桌面优先)

此技能的功能

  • 收件箱提醒(Outlook 桌面版):查找过去 7 天内可能需要回复的邮件,并持续发送提醒,直到用户将其忽略。
  • 起草邮件回复:生成简洁的草稿,符合用户的语气规则(对话式、精简、礼貌;使用简单英语;篇幅短;减少冗余;避免使用 em dash)。
  • Teams 跟踪(可选):如果已配置 Microsoft Graph 且租户策略允许,则跟踪近期可能需要回复的 Teams 聊天消息,并以类似方式发送提醒。

安全默认设置

  • 不要自动发送邮件或 Teams 消息。
  • 在 Outlook 中创建草稿,或将草稿粘贴到 Telegram 以供批准。
  • 对于提醒:默认发送到 Telegram;只有在明确启用时才发送到 Teams。

设置(一次性)

A) Outlook 桌面版自动化(推荐)
  1. 确保已安装 Outlook 桌面版并登录。
  2. 安装 Python 依赖项(在此设备上安装前请先征求同意):
    • pip install pywin32
  3. 创建配置文件:
    • 复制 references/config.example.json → references/config.json 并填写内容。
    • 重要:如果 references/config.json 包含个人 ID,请勿提交该文件。
B) 通过 Graph 使用 Teams(可选)

仅当你可以创建 Entra ID 应用注册并授予权限时才进行。

  • 复制 references/config.example.json → references/config.json 并填写 teams.tenantId、teams.clientId 和 teams.scopes。
  • 然后运行 scripts/teams_scan.py 一次,完成设备代码登录。

参见 references/teams-graph-setup.md。

核心工作流

1) 扫描并提醒(Outlook)

使用 scripts/scan_outlook.py。

1b) 扫描 Teams(Graph)

使用 scripts/teams_scan.py。

参数:

  • --days 7(默认值)

首次运行时会显示设备代码登录消息(按提示操作一次即可)。

参数:

  • --days 7(默认值)
  • --mode report|telegram(默认值:report)
  • --max-items 200

启发式规则(可在配置中编辑):

  • 在最近 N 天内
  • 排除明显的群发来源
  • 优先选择用户位于收件人:(而非仅抄送)或主题/正文中包含直接请求的会话
  • 优先选择用户尚未回复的消息(尽力判断)

输出:

  • 可执行事项列表,包含:主题、发件人、接收时间、标记原因。

然后:

  • 如果使用 --mode telegram,则发送一条简洁的提醒消息,其中包含项目符号列表。
2) 忽略 / 延后处理某个事项

此技能使用本地状态文件,以避免循环提醒。

  • 忽略:将消息的 internetMessageId(或主题 + 时间戳备用值)添加到忽略列表。
  • 延后处理:保存一个 snoozeUntil 时间戳。

使用 scripts/state.py 辅助函数(或在需要时直接编辑 JSON)。

3) 起草邮件回复(Outlook)

使用 scripts/draft_reply.py。

4) 生成提醒(不发送)

使用 scripts/scan_all.py 更新缓存的扫描结果,然后使用 scripts/remind.py 生成可直接用于 Telegram 的提醒消息(此脚本不会发送)。 它采用以下规则:

  • 一对一 Teams → 当 needsReply=true 时提醒
  • 群组 Teams → 当 mentionedMe=true 且 needsReply=true 时提醒
  • Outlook → 提醒已标记的事项

如果输出非空,Agent 应将其发送到 Telegram。

输入:

  • 消息的 EntryID(首选),或按主题 + 最近时间范围搜索。

行为:

  • 提取会话(尽力而为)和关键元数据。
  • 生成 2 份草稿:
    • 简短版(2–5 句)
    • 普通版(5–10 句)
  • 应用 references/writing-style.md 中的语气规则。

输出:

  • 将草稿打印到标准输出。
  • 如果设置了 --create-draft,则可选择创建 Outlook 回复草稿(不发送)。

需要向用户了解更多信息时

仅询问无法推断的信息:

  • 要回复哪封邮件(主题 / 发件人 / 时间)
  • 用户的意图(同意 / 拒绝 / 询问信息 / 确认时间安排)
  • 任何限制(截止日期、附件、姓名)

问题应尽量精简(每次最多 3 个)。

评论

支持 Markdown