はじめに
この記事の下書きは、記事の中で使っている Claude Cowork に書かせています。構成の指示、事実確認、手直しは自分でやりました。画面はすべてダミーデータで、人名・チャネル名・案件は架空です。
Teams の通知、全部は追えていません。
チャットもチャネルも、通知は来ます。でも会議の合間に流し見して「後で返そう」と思ったものが、夕方には頭から消えています。翌朝、相手から「あの件どうなりました?」と来て思い出す。そういうことが月に何回かありました。
欲しかったのはこういうものです。
- 動きのあった会話を要約して一覧にする
- それを 「返さないといけないもの」と「読めばいいもの」に分ける
- 返すものは、返信の下書きまで AI に書いてもらう
これを Claude Cowork で作りました。ほぼ会話だけで、コードは自分では書いていません。この記事は、Cowork のどの仕組みを、どう組み合わせて実現したかの記録です。
Claude Cowork とは
Claude Cowork は、Claude Code と同じエージェントの仕組みを、ターミナルを開かずに使えるようにしたものです。Claude Desktop のほか、Web やモバイルからも使えます。処理は Anthropic 側のクラウドで動くので、自分の PC を閉じていても続きます。対応プランは Pro / Max / Team / Enterprise です。
「チャットで質問に答えてもらう」のとは性格が違います。目的を渡すと、ファイルを読み、外部サービスを叩き、途中で確認を挟みながら、成果物ができるまで動き続けます。
一般的に何ができるか
公式ドキュメントに載っている機能を、大きく 5 つに分けて並べます。
1. 自分の PC のファイルとアプリを扱う
- 接続したフォルダのファイルを読み書きする。アップロードは不要で、成果物もフォルダに直接置かれる
- PC を「リンク」しておけば、クラウドで動いているセッションからも、Desktop アプリ経由で PC 上のフォルダに手が届く
- Excel(数式付き)、PowerPoint、Word のような形式でファイルを作る
- 許可を出せば、デスクトップアプリをクリック・入力して操作する(コンピュータ操作。macOS / Windows、Pro / Max)
2. Web を見る・操作する
- Cowork 組み込みのブラウザで、サイトを開いて読み、クリックや入力をする。自分が普段使うブラウザとは独立している
- Chrome 拡張(Claude in Chrome)を使えば、今開いているページ、今ログインしているアカウントのままで操作させられる
3. 外部サービスとつなぐ
- コネクタで Microsoft 365、Google Workspace、GitHub などに接続する。読める範囲は自分の権限の範囲。組織によっては管理者の同意が要る
- MCP のカスタムコネクタも追加できる
4. 時間と場所から切り離す
- スケジュールタスク:毎時・毎日・平日・毎週などの間隔で、決めた指示をクラウドで自動実行する。PC が閉じていても動く
- スマホから指示を投げて、Desktop 側で作業させて、結果を受け取る(Pro / Max の一部)
- 長時間かかるタスクをタイムアウトなしで走らせる。複数のサブエージェントに分けて並列で進めることもある
5. 成果物を残す・共有する
- アーティファクト:ダッシュボード、トラッカー、参照ページのような「使い続けるもの」を Web ページとして公開する。既定は非公開で、組織内に共有できる。ページ自体がデータを保存したり、コネクタを呼んだり、Claude に問い合わせたりできる
- プロジェクト:関連するタスクを 1 つの箱にまとめて、指示・ファイル・文脈・メモリを共有する
- プラグインとスキル:職種別のプラグイン(営業、法務、財務など)や、自分たちの手順を書いたスキルを入れて、毎回同じ品質で動かす
公式ドキュメントはこちらです。
- Get started with Claude Cowork
- Use Claude Cowork on web, desktop, and mobile
- Claude Cowork architecture overview
今回使ったもの
上の 5 つのうち、今回のケースで使ったのは「3. 外部サービス」「4. 時間から切り離す」「5. 成果物を残す」の 3 分類、機能としては 4 つです。PC のファイルもブラウザ操作も使っていません。
| 使った機能 | 何に使ったか | 公式ドキュメント |
|---|---|---|
| Microsoft 365 コネクタ | Teams のチャットとチャネルを読む | Connect to Microsoft 365 |
| スケジュールタスク | 平日の決まった時刻に、Teams を読んでデータを更新する | Schedule recurring tasks |
| アーティファクト | TODO ボードの画面そのもの。固定 URL で毎日開く | Use artifacts in Claude Cowork |
| アーティファクトの実行時機能 | ページからのデータ保存、Claude への問い合わせ、コネクタ呼び出し | (上と同じ記事内) |
コネクタは管理者の設定が要ります。Microsoft 365 コネクタは組織の Entra 管理者が一度同意を出す必要があり、読める範囲は「自分が Microsoft 365 で見られるもの」に限られます。この記事の環境では読み取り専用でした(後述しますが、これが設計を左右しました)。
作ったもの
こういう画面です。
Teams で動きのあった会話が、3 つに仕分けされて並びます。
- 要対応 — 自分の返事や判断で止まっているもの。「次の一手」が 1 行付きます
- 目を通す — 自分の作業の前提が変わるもの。方針決定、仕様変更、リスク共有
- 参考 — 読むだけでよいもの。リリース連絡、日程案内
各項目にはチェックボックスがあって、対応済みにすると消えます。「対応済みも表示」で戻せます。元メッセージへのリンクもあるので、Teams を開くのは 1 クリックです。
そして要対応の項目には「返信を下書き」ボタンがあります。
押すと、その会話の実際のやりとり(チャネルならスレッドの親と返信、チャットならその 1 通の全文)を Teams から読み、それを材料に Claude が返信の本文を書きます。テキストエリアでそのまま直せて、コピーして Teams に貼る、という運用です。
「もっと短く」「日程を 3 つ提案して」といった指示を添えて書き直すこともできます。
監視するチャネルは、ページの中で選べます。
チャネルごとに「返信まで読むか」を切り替えられます。この設定もページの中に保存され、次の巡回から効きます。
全体の構成
先に全体像を置いておきます。
ポイントは 3 つです。
- タスクは 2 本に分かれている。理由はレート制限です(後述)
- タスクはページ(HTML)を作り直さない。データベースに新着を書くだけで、ページはそれを購読して勝手に更新される
- 返信の下書きはページから直接。押した人の資格情報で Teams を読み、Claude に書かせる
最初からこの形だったわけではありません。ここから、どう頼んでどう変わっていったかを書きます。
どうやったか
自分が書いたのは指示と判断だけで、コードもプロンプトも Cowork が書いています。ここでは、Cowork のどの仕組みを、どう組み合わせたかに絞って書きます。
最初の一言
ms 365 のコネクタを利用して、朝の 10 時に未読の内容の要約をまとめて可視化するようなことはできる?
いきなり作り始めず、対象(メール/チャット/チャネル/予定)と出力形式(固定 URL のダッシュボード/毎朝チャットに投稿/1 回だけ試す)を聞かれました。Teams のチャットとチャネル、固定 URL のダッシュボードを選びました。
このとき Cowork はコネクタの権限も確認していて、「読み取り系のみなので送信はできません」と先に伝えてきました。
v1:アーティファクト × スケジュールタスク
最初の版は、2 つの仕組みの組み合わせです。
アーティファクトは、Cowork が書いた HTML を claude.ai 上でホスティングする仕組みです。固定の URL が付き、既定は非公開。同じファイルを再公開すると同じ URL の中身が入れ替わります。
スケジュールタスクは、書いておいたプロンプトを決まった時刻にクラウドで実行する仕組みです。実行のたびに新しい Cowork セッションが立ち上がり、コネクタも使えます。自分の PC が閉じていても動きます。
この 2 つを重ねると、こうなります。
平日 10 時にセッションが立ち上がり、Teams を読み、仕分けして HTML を作り、同じ URL のアーティファクトを上書きする。
ここまで 30 分。ブックマークを 1 つ開けば毎朝の要約が見える状態になりました。
v2:アーティファクトのデータベース
v1 を回してみると、Microsoft 側のレート制限(429)に当たりました。Cowork の分析で「チャットの走査は高く、チャネルの取得は安い」とわかったので、チャネルは毎時、チャットは朝夕 2 回にタスクを分けることにしました。
すると v1 の「毎回 HTML を作り直す」方式が邪魔になります。1 時間ごとに全部作り直すのは無駄で、2 本のタスクが同じページを上書きし合うのも危ない。
Cowork が提案してきたのは、アーティファクトのデータベースを使う形でした。
アーティファクトには、公式ドキュメントで「情報を保存できる」と書かれている機能があります。開発者向けの契約上は db という名前で、中身はアーティファクト 1 つにつき 1 つ付く JSON ドキュメントストアです。
- ページ側の JavaScript は
claude.use("db")でストアを受け取り、collection("items").onSnapshot(...)のように購読する。誰かが書き込むと、開いているページに変更がリアルタイムで届く - Cowork 側(スケジュールタスク)は、同じストアをツールから直接読み書きできる
- どちらも同じパス(
items/<メッセージID>のようなコレクション/ドキュメント)を見ている
つまり、ページは一度公開したら HTML は固定。タスクは HTML に触らず、データだけを書く。ページはそれを購読して勝手に描き変わる。 2 本のタスクが同時に動いても、書く先はドキュメント単位なので衝突しません。
対応済みのチェックや監視チャネルの設定も、ページからこのストアに書いています。設定を変えると、次の巡回からタスクがそれを読んで動きます。バックエンドを 1 行も書かずに、状態を持つ Web アプリと、それを更新するバッチが成立しました。
ドキュメント ID を Teams のメッセージ ID にしてあるので、タスクは「既にあるものは書かない」だけで済み、対応済みのチェックが巡回で消えることもありません。ここは頼む前に Cowork が入れていました。
v3:アーティファクトから Claude とコネクタを呼ぶ
最後は「返信の下書き」です。これはアーティファクトの 2 つの実行時機能の組み合わせです。
Claude への問い合わせ(契約上の名前は sample)。公開したページの中から、そのまま Claude を呼べます。ページの JavaScript が claude.use("sample") で関数を受け取り、プロンプトを渡すと、生成中の文章が onText でストリーミングされてきます。この呼び出しには会話の記憶がないので、文脈・材料・文体・出力形式をすべてプロンプトに載せます。初回は閲覧者に同意のダイアログが出て、利用分は閲覧者のアカウントに付きます。
コネクタの呼び出し(契約上の名前は mcp)。ページから、閲覧者が claude.ai に繋いでいるコネクタを呼べます。ページ側は「このコネクタの、このツールを使う」とあらかじめ宣言しておき、実行時は閲覧者の資格情報で動きます。トークンがページに渡ることはありません。
「返信を下書き」ボタンを押したときの流れはこうです。
-
mcpで Microsoft 365 コネクタを呼び、そのスレッドの親投稿と返信(チャットならその 1 通の全文)を取る - 取れた本文と、保存済みの要約、文体の指定をまとめて
sampleに渡す - 返ってくる文章を
onTextでテキストエリアに流し込む - 書き終わったら
dbに保存する。次に開いたときも残っている
3 つの実行時機能が 1 つのボタンの中で繋がっています。サーバーはどこにもありません。 ページの JavaScript と、Cowork が読み書きするストアだけです。
Cowork はこれを書く前に、実行時機能の型定義を読み、ページから呼ぶことになる Teams 側のツールを実際に 1 回ずつ叩いて返り値の形を確認していました。動く根拠を先に取ってからコードにする、という進め方でした。



