AI AGENT FACTORYAIエージェント工場見学 ACTIVE

Notion のタスクを毎朝 Slack に送る——Claude Managed Agents × MCP を1本まるごと作りながら学ぶ

「設定はできた。で、実際に何が動くの?」——このモヤモヤを解消するために、この記事ではひとつのシナリオを最初から最後まで追います。毎朝 Notion の「今週のタスク」データベースを参照して、その日の未完了タスクを Slack の #daily-standup チャンネルに一覧投稿するエージェントを、Claude Managed Agents と MCP で作る流れです。MCP を接続した瞬間・エージェントが自律的に判断した場面・初回で詰まるポイント——それぞれで何が起きているかを追いながら進むので、「できること」の実感と「仕組みの理解」が同時に身につきます。


図解:全体の繋がりをまず把握する

graph LR
    U[ユーザー\nClaude Console で設定] --> A
    A[Claude Managed Agents\nコア エンジン]
    A --> B[Notion MCP サーバー\nタスク読み取り]
    A --> C[Slack MCP サーバー\nメッセージ送信]
    B --> D[Notion\n今週のタスク DB]
    C --> E[Slack\n#daily-standup]
    style A fill:#f0f4ff,stroke:#4f6ef7

エージェントは中央のコアとして動き、MCP サーバーという「手足」を通じて Notion や Slack を操作します。ユーザーが実際に触るのは左端の設定画面だけ。「人間が設定する部分」と「エージェントが自律的に動く部分」の分担がこの図でひと目でわかります。


Claude Managed Agents とは——「マネージド」って何のことか

通常の Messages API は「リクエストを送って、回答を受け取る」1回のやり取りで完結します。一方 Claude Managed Agents は「タスクを渡して、エージェントが途中の判断を自律的にこなし、完了まで実行する」 仕組みです。

Messages APIManaged Agents
実行の単位1問1答複数ステップのタスク完遂
外部ツール呼び出し自分でコードを書く必要ありMCP を設定すれば自動
実行環境ユーザー側のサーバーClaude が管理するサンドボックス
主な用途チャット・単発処理定期タスク・マルチステップ自動化

「マネージド(Managed)」とは、エージェントの実行基盤を Anthropic 側が管理する、という意味です。自分でサーバーを用意しなくても、動かす環境が最初から整っています。

公式発表(2026年6月18日)によると、Cloudflare・Daytona・Modal・Vercel などのインフラ上で自社データを扱う自己ホスト型サンドボックスもパブリックベータで利用可能になっています。社内データを外部に出せない場合に使える選択肢として用意されています。

出典:claude.com/blog/claude-managed-agents-updatesVentureBeat — Claude agents can finally connect to enterprise APIs without leaking credentials

MCP とは——エージェントの「手足」を繋ぐ仕組み

MCP(Model Context Protocol)は Anthropic が提唱したオープンな接続規格です。「AI エージェントが外部ツールやデータを呼び出すための共通言語」と捉えるとわかりやすいでしょう。

HTTP がブラウザとサーバーを繋ぐ共通ルールであるように、MCP は AI エージェントと外部サービスを繋ぐ共通ルールです。

AI エージェント ←—— MCP ——→ Notion / Slack / Google Calendar / GitHub ...

Managed Agents 環境での MCP のポイントは2点です:

  1. コードを書かずに UI 操作だけで接続できる(Claude Console からの設定)
  2. 認証情報(API キー・OAuth トークン)をエージェント本体に直接渡さない——MCP サーバーが仲介するため、認証情報の管理とエージェントの実行が分離され、セキュリティ上のリスクが下がります

公式発表(2026年6月)では、Asana・Atlassian・Canva・Figma・Linear・Supabase などの公式プロバイダとの MCP 連携に対応していることが確認されています。Notion・Slack については、各社が公開している MCP サーバーを追加設定することで接続できます(現在の対応状況や手順は各サービスの公式ドキュメントで確認してください)。


今回作るシナリオの全体像

やりたいこと: 毎朝 Notion の「今週のタスク」データベースから「未完了」ステータスのタスクを取得し、Slack の #daily-standup チャンネルに一覧投稿する。

使うもの:

  • Claude Managed Agents(実行エンジン)
  • Notion MCP サーバー(Notion が公開している MCP サーバー)
  • Slack MCP サーバー(Slack が公開している MCP サーバー)
  • Claude Console(設定・実行の管理画面)

エージェントが担うのは「Notion からデータを取ってきて、整形して、Slack に投稿する」という3ステップです。人間がやることは最初の接続設定プロンプトで指示を書くことだけ。日々の実行はエージェントが自律的に処理します。


Claude Console でセットアップする

準備:アカウントとプランの確認

Claude Console は claude.ai からアクセスします。Managed Agents の利用可否とプランの条件については、現時点では公式の料金・プランページで確認することをおすすめします(パブリックベータ段階のため、条件が変わる可能性があります)。

エージェントを作成する

Console にログイン後、「Agents」セクションで新しいエージェントを作成します(表示ラベルはアップデートで変わる場合があります)。

エージェント名の例: Morning Task Reporter

System Prompt(システムプロンプト)の例:

あなたは毎日のタスク管理アシスタントです。
以下の手順でタスクをレポートしてください:

1. Notion の「今週のタスク」データベースを検索する
2. ステータスが「未完了」のタスクを全件取得する
3. タスク名・担当者・期限をリスト形式に整形する
4. Slack の #daily-standup チャンネルに以下の形式で投稿する

投稿形式:
📋 *本日のタスク({日付})*
• タスク名(担当:〇〇 / 期限:〇〇)
・・・

タスクが0件の場合は「本日の未完了タスクはありません ✅」と投稿すること。
出力は Slack のマークダウン形式(*太字*、`コード`)に合わせること。

ポイント: システムプロンプトに出力形式の具体例を1つ書いておくと、メッセージのフォーマットがブレません。Slack は通常 Markdown と記法が異なる(例:太字 ではなく *太字*)ため、明示しておくことをおすすめします。


MCP サーバーを接続する(Notion・Slack)

エージェント設定画面の「Tools」または「MCP Connections」セクションから MCP サーバーを追加します。

Notion MCP の接続

  1. 「Add MCP Server」(または類似の追加ボタン)を選択
  2. Notion の MCP サーバーエンドポイントを入力
  3. Notion 側でインテグレーションを作成し、API キーを取得して設定
  4. 接続するワークスペースを選択

Notion 側の準備(必須):

  • Notion の「設定とメンバー」→「インテグレーション」から新しいインテグレーションを作成
  • 対象のデータベース(今週のタスク)を開き、右上「・・・」→「接続を追加」でインテグレーションを追加
  • この「接続を追加」を忘れるのが最多の詰まりポイントです(後述)

Slack MCP の接続

  1. 同様に「Add MCP Server」から Slack の MCP を追加
  2. Slack App の OAuth Bot Token(xoxb- から始まる文字列)を設定
  3. Bot が投稿するチャンネルへのアクセス権を確認

Slack App の作成が必要な場合:

  • api.slack.com/apps から「Create New App」
  • OAuth Scopes で chat:write を追加
  • ワークスペースにインストールして Bot Token を取得

実行してみる——エージェントが自律判断した瞬間

エージェントを「Run」すると、以下のフローで動作します。

flowchart TD
    A[エージェント起動] --> B{Notion MCP に接続できるか?}
    B -- 接続成功 --> C[データベースを検索]
    B -- 接続失敗 --> X[エラーログ出力\n認証を確認]
    C --> D[未完了タスクを取得]
    D --> E{タスクは存在するか?}
    E -- 1件以上あり --> F[Slack 用メッセージに整形]
    E -- 0件 --> G[「未完了タスクなし」メッセージを生成]
    F --> H[Slack MCP に接続して投稿]
    G --> H
    H --> I[完了ログ出力]
    style B fill:#fff3cd,stroke:#ffc107
    style E fill:#fff3cd,stroke:#ffc107

黄色のひし形(分岐点)がエージェントが自律判断している場所です。「タスクが0件だったら別のメッセージを送る」という条件分岐を、人間はプロンプトに一言書いただけ——コードで if 文を書いていません。これが「自律的な判断」の実体です。

実行ログを見ると、エージェントが Notion に何を問い合わせ、どんなデータを受け取り、どう整形して Slack に投稿したかのステップが確認できます。最初に実行した時にこのログを見ると、「エージェントが何を考えて動いているか」が一気に具体的になります。


初回実行で詰まるポイントと対処

詰まり1:Notion MCP が認証エラーになる

症状: 401 Unauthorized または「integration not found」のエラーが出る。

原因と対処: 対象のデータベースやページにインテグレーションを「共有(接続を追加)」していないことが最多原因です。Notion のデータベースを開き、右上「・・・」→「接続を追加」からインテグレーション名を選択してください。API キーは先頭の secret_ も含めてすべてコピーします。

詰まり2:Slack への投稿が届かない

症状: エラーログが出ないのに Slack チャンネルに何も届かない。

原因と対処: Bot Token の OAuth スコープ不足が主な原因です。Slack App の設定で chat:write が付与されているか確認してください。また、Bot をチャンネルのメンバーとして追加する必要があります。チャンネル上で /invite @BotName を実行するか、チャンネルの設定からメンバーを追加してください。プライベートチャンネルの場合は追加の権限設定が必要です。

詰まり3:投稿フォーマットがばらつく

症状: Slack に届くメッセージのレイアウトが毎回違う。

原因と対処: システムプロンプトの出力形式指示が曖昧なときに起きます。「この形式で投稿してください」の後ろに出力例を1つ丸ごと書くのが最も効果的です。加えて「Slack のマークダウン形式に従う」と明示すると安定します。

詰まり4:接続は成功しているのにデータが空になる

症状: 接続成功のログは出るが、取得結果が0件になる。

原因と対処: フィルター条件(「未完了」)がデータベースの実際のプロパティ名・値と一致していない場合に起きます。Notion のプロパティ名は日本語の場合もあります(例:「ステータス」「未着手」など)。システムプロンプトに「まずデータベースの全件を取得してプロパティ構造を確認してから絞り込む」と書くと、エージェントが自分でプロパティ名を確認してから検索するようになります。


完成後にできること——拡張シナリオ3例

今回作ったエージェントの構造(システムプロンプトで指示 + MCP で外部ツールを接続)を理解すれば、MCP サーバーを差し替えるだけで応用できます。

拡張案1:Google カレンダー連携で「今日の予定 + タスク」を一覧化 Google Calendar MCP を追加すれば、「今日の会議スケジュール+未完了タスク」をセットにした朝の確認レポートエージェントに発展させられます。

拡張案2:GitHub Issue の更新を Slack に通知 GitHub MCP を使えば、担当 Issue のコメント追加や PR のレビュー待ち状態を定期的に Slack へ通知する開発者向けアシスタントが作れます。コードレビューの見落としが減ります。

拡張案3:週次レポートの自動生成 Notion のタスクデータを週ごとに集計して「完了率・積み残しタスクのまとめ」を自動生成するエージェントも同じ構造で作れます。毎週の進捗報告やクライアントへの業務報告の下書きとして活用すると、大幅な時短になります。


まとめ:「できること」の正体

Claude Managed Agents × MCP の「できること」を一言でいえば、「AI エージェントが複数の外部サービスをまたいで、人間のかわりに判断しながら仕事を完了させること」です。

今回のシナリオで確認できたポイントをまとめます:

  • コードなしで外部サービスと接続できる(Claude Console の UI 操作のみ)
  • エージェントが条件分岐を自律的に処理する(「タスク0件なら別のメッセージ」などを自動判断)
  • 認証情報が分離されるため安全に外部ツールを呼べる(MCP サーバーが仲介)
  • プロンプトを変えるだけで別の用途に転用できる(Notion→Slack の構造を維持したまま対象データや投稿先を差し替える)

次の一歩は、実際に Claude Console でエージェントを1つ作ってみることです。最初から完成形を目指さなくていい——システムプロンプトに「Notion のタスクを1件取得してタイトルを返す」とだけ書いても、エージェントが外部データを取ってくる体験が得られます。その体験が「できること」の実感に直結します。

公式ブログ(claude.com/blog/claude-managed-agents-updates)に最新の設定例と対応プロバイダが随時更新されているので、始める前に確認することをおすすめします。本記事の手順はパブリックベータ時点(2026年6月)の情報を元にしており、UI や仕様は変更される場合があります。

← 攻略ガイド一覧へ