mcpField
M
ms-outlook-teams-assistant

ms-outlook-teams-assistant

github.com/abhinavjp生産性046 回インストール39 週間前に更新
リポジトリ

ms-outlook-teams-assistant について

Outlook Desktop の利用者向けに、返信が必要と思われるメッセージを見つけ、リマインダーの作成やメール返信の下書きを行うスキルです。自動送信はせず、Telegram への通知に対応し、Teams の追跡は任意です。

主な機能

  1. 01返信が必要と思われる最近のメールを検出
  2. 02任意で Teams チャットをスキャン
  3. 03Telegram 向けリマインダーを生成
  4. 04指定された文体でメールを下書き
  5. 05リマインダーの解除や延期

活用シーン

  1. 01返信が必要な最近の Outlook メッセージを確認
  2. 02Telegram でフォローアップ通知を受け取る
  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 Desktop):過去 7 日間のメッセージから、返信が必要と思われるものを見つけ、対応済みとして解除されるまでリマインドします。
  • メール返信の下書き作成:ユーザーのトーンに関するルール(会話調、簡潔、丁寧、平易な英語、短く、重複を減らす、エムダッシュを避ける)に沿った簡潔な下書きを作成します。
  • Teams の追跡(任意):Microsoft Graph が設定され、テナントポリシーで許可されている場合、返信が必要と思われる最近の Teams チャットメッセージを追跡し、同様にリマインドします。

安全性に関するデフォルト設定

  • メールや Teams メッセージを自動送信しないでください。
  • Outlook に下書きを作成するか、承認を得るために Telegram に下書きを貼り付けます。
  • リマインドはデフォルトで Telegram に送信します。Teams への送信は、明示的に有効にした場合にのみ行います。

セットアップ(一度のみ)

A) Outlook Desktop の自動化(推奨)
  1. Outlook Desktop がインストールされ、サインイン済みであることを確認します。
  2. Python の依存関係をインストールします(このマシンで実行する前に確認してください)。
    • pip install pywin32
  3. 設定ファイルを作成します。
    • references/config.example.json を references/config.json にコピーし、必要事項を入力します。
    • 重要:個人 ID が含まれている場合は、references/config.json をコミットしないでください。
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 日以内であること
  • 明らかな一斉配信元からのメッセージではないこと
  • ユーザーが To: に含まれているスレッド(CC のみではない)を優先するか、件名/本文に直接の依頼が含まれていること
  • ユーザーが返信していないメッセージを優先する(可能な範囲で判定)

出力:

  • 対応が必要な項目の一覧。件名、送信者、受信日時、フラグが付けられた理由が含まれます。

続いて:

  • --mode telegram の場合、箇条書きの項目を含む簡潔なリマインドメッセージを 1 件送信します。
2) 項目を解除/スヌーズする

このスキルでは、リマインドが繰り返されないよう、ローカルの状態ファイルを使用します。

  • 解除:メッセージの internetMessageId(または代替として件名+タイムスタンプ)を解除済みリストに追加します。
  • スヌーズ:snoozeUntil のタイムスタンプを保存します。

scripts/state.py のヘルパーを使用するか、必要に応じて JSON を直接編集します。

3) メールの返信を下書きする(Outlook)

scripts/draft_reply.py を使用します。

4) リマインドを生成する(送信なし)

scripts/scan_all.py を使用してスキャン結果のキャッシュを更新し、その後 scripts/remind.py を使用して Telegram に貼り付けられるリマインドメッセージを生成します(送信はしません)。 以下の条件が適用されます。

  • 1:1 の Teams → needsReply=true の場合にリマインド
  • グループの Teams → mentionedMe=true かつ needsReply=true の場合にリマインド
  • Outlook → フラグが付いた項目をリマインド

出力が空でない場合、エージェントはその内容を Telegram に送信します。

入力:

  • メッセージの EntryID(推奨)、または件名と最近の期間で検索します。

動作:

  • スレッドと主要なメタデータを抽出します(可能な範囲で)。
  • 下書きを 2 種類生成します。
    • 短文(2~5 文)
    • 通常(5~10 文)
  • references/writing-style.md のトーンルールを適用します。

出力:

  • 下書きを標準出力に表示します。
  • --create-draft が設定されている場合は、オプションで Outlook に返信の下書きを作成します(送信はしません)。

ユーザーから追加の情報が必要な場合

推測できないことだけを尋ねてください。

  • どのメールに返信するか(件名/送信者/日時)
  • ユーザーの意図(同意/辞退/情報の確認/スケジュールの確認)
  • 制約事項(期限、添付ファイル、名前)

質問は必要最小限にしてください(一度に最大 3 件)。

コメント