ms-outlook-teams-assistant について
Outlook Desktop の利用者向けに、返信が必要と思われるメッセージを見つけ、リマインダーの作成やメール返信の下書きを行うスキルです。自動送信はせず、Telegram への通知に対応し、Teams の追跡は任意です。
主な機能
- 01返信が必要と思われる最近のメールを検出
- 02任意で Teams チャットをスキャン
- 03Telegram 向けリマインダーを生成
- 04指定された文体でメールを下書き
- 05リマインダーの解除や延期
活用シーン
- 01返信が必要な最近の Outlook メッセージを確認
- 02Telegram でフォローアップ通知を受け取る
- 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.mdreferences/teams-graph-setup.mdconfig.example.jsonwriting-style.mdscripts/remind.pystate.pydraft_reply.pydismiss.pyscan_outlook.pyscan_all.pyteams_scan.py詳細
MS Outlook + Teams アシスタント(デスクトップ優先)
このスキルでできること
- 受信トレイのリマインド(Outlook Desktop):過去 7 日間のメッセージから、返信が必要と思われるものを見つけ、対応済みとして解除されるまでリマインドします。
- メール返信の下書き作成:ユーザーのトーンに関するルール(会話調、簡潔、丁寧、平易な英語、短く、重複を減らす、エムダッシュを避ける)に沿った簡潔な下書きを作成します。
- Teams の追跡(任意):Microsoft Graph が設定され、テナントポリシーで許可されている場合、返信が必要と思われる最近の Teams チャットメッセージを追跡し、同様にリマインドします。
安全性に関するデフォルト設定
- メールや Teams メッセージを自動送信しないでください。
- Outlook に下書きを作成するか、承認を得るために Telegram に下書きを貼り付けます。
- リマインドはデフォルトで Telegram に送信します。Teams への送信は、明示的に有効にした場合にのみ行います。
セットアップ(一度のみ)
A) Outlook Desktop の自動化(推奨)
- Outlook Desktop がインストールされ、サインイン済みであることを確認します。
- Python の依存関係をインストールします(このマシンで実行する前に確認してください)。
pip install pywin32
- 設定ファイルを作成します。
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 件)。