Grok Botの仕組み講座(講師のためのエンジニア水準)

区分3 外とつながる仕組み★★★

No.05 連携アプリ(MCP)と鍵の置き場

ボットがGmailやSlackをどうやって操作するのか、そのための鍵がどこに置かれているのかを扱う単元です。「パスワードはAIに見えるのか」への答えの半分がここにあります。講義で一番時間を使う区分の入口なので、しっかりやります。
目次
  1. 第0章 前提知識
  2. 第1章 連携アプリは構造化された道
  3. 第2章 鍵はどこに置かれるか
  4. 第3章 足す・つなぐ
  5. 確認問題

第0章 前提知識

① MCP :AIの道具をサービスにつなぐ共通の約束事

MCP(Model Context Protocol)は、公式の言い方では「AIツールがサービスにつながる標準的な方法」です。 サービス側が MCP の口を用意すれば、どのAIも同じやり方で、そのサービスの機能を道具として呼べます。

この講座では、ボットがつなぐサービスを「連携アプリ」と呼びます。 公式は connected app・connector・plugin・MCP server と呼び分けていますが、受講生に話す時は連携アプリで統一して構いません。

② OAuth :他社のサービスに、自分の代わりの入場券を渡す仕組み

OAuth は、パスワードを渡さずに「このアプリに、私のGmailを触らせてよい」と許可する仕組みです。 許可すると、アプリは入場券(トークン)を受け取り、それを見せてGmailを使います。

この入場券が、今回の主役です。 どこに置かれるかで、安全の説明がほぼ決まります。

③ 似た言葉との違い

何のことか
連携アプリ 構造化された道。ボットがサービスの機能を直接呼ぶ
ブラウザ操作 ボットが計算機のブラウザでWebサイトを開いて操作する(No.06)
連携の裏口(connector backend) Cursor側で入場券を預かり、ボットの代わりに道具を呼ぶ裏方

後の第2章で、「連携の層」と「網の層」も分けます。

第1章 連携アプリは構造化された道

① Webを操作するより確実 必ず覚える

公式は、アプリを「サービスを操作する構造化された方法」と説明し、存在するならWebサイトをクリックして回るより確実だと書いています。 アプリが無いサービスや、アプリが出せない見た目の作業には、ブラウザを使います。

公式の例では、去年の領収書を探す場面で、ボットはGmailという連携アプリを直接使います。 メールを検索するために、GmailのWebサイトを開いてはいません。

連携アプリ   ボット ──道具の呼び出し──▶ Gmailの道具 ──▶ Gmail
ブラウザ操作 ボット ──画面を見てクリック──▶ GmailのWebサイト ──▶ Gmail

上の道は「道具の呼び出し」という決まった形で、下の道は画面の操作です。 アプリがあるなら、画面を回るよりアプリを使う。これが公式の考え方です。

② アプリはアカウントの権限以上にならず、アカウント全体で使える 必ず覚える

連携アプリは、あなたが認可したアカウントを使います。 そのアカウントがそのサービスで既にできることしかできません。権限を上げることも、共有設定を変えることもできません。

例を3つ挙げます。 Google スプレッドシートは、そのアカウントが編集できる表だけ読み書きできます。閲覧のみで共有された表は、閲覧のままです。 Slack は、連携したあなたのSlackユーザーとして投稿します。そのユーザーが投稿できるチャンネルにしか投稿できません。 Gmail は、連携した1つの郵便箱を検索・読み取り・下書き・送信し、ラベルを付けられます。

もう1つ大事なのは範囲です。 連携アプリはアカウント全体で、あなたのボット全員が使えます。 1体だけに限定する仕組みは、公式には書かれていません。 共有ボット(No.04)は、あなたのアカウントを使う前に確認を取ります。

③ 画面の操作は3つだけ

連携の流れは、実際の操作としては短いものです。

  1. サイドバーの「Connect apps」で探して追加する。ボットに「Linearを足して」と頼んでもよい
  2. 「Authorize」「Authenticate」が出たら、サービス側のログインを終える
  3. 一覧の「Installed」に出れば完了

ここで一点、勘違いしやすい所があります。 「Added」は、アプリが入っただけで、サインイン済みの意味ではありません。「Needs auth」「Disconnected」と出ていたら、認証をやり直します。

操作の細かい手順は使い方編に任せ、講義では「追加=認可の完了ではない」だけ話せば足ります。

第2章 鍵はどこに置かれるか

① 入場券は、ボットは受け取らず、計算機にも保存されない 必ず覚える

OAuth の入場券は、Cursor の連携の裏口(connector backend)に置かれます。 ボットは道具を呼ぶだけで、入場券そのものは受け取りません。計算機にも保存されません。

 クラウドの計算機    Cursorのサーバー       外のサービス
┌───────────┐    ┌───────────────┐    ┌──────────┐
│ ボット       │    │ 連携の裏口         │    │ Gmail など │
│ (モデルの判断)│─①─▶│ 入場券を預かる  ===②==▶│          │
│ 入場券は無い  │◀─④─│ 結果だけ返す    ◀=③===│          │
└───────────┘    └───────────────┘    └──────────┘
 ①「この道具をこの内容で」  ②入場券を添えて呼ぶ
 ③結果が返る           ④ボットには結果だけ渡る

この図は、Cursor のサーバーから届く遠くの連携アプリの通り道です。計算機の上でコマンド起動する MCP サーバーは別で、第3章①で触れます。

だから「ボットは入場券の値そのものを手にしない」と説明できます。 ただし、ボットが連携アプリでできることは、あなたがそのアカウントでできることまでです。入場券を見せなくても、道具を呼ぶ力は残ります。そこで止める候補になるのが、No.08 の Auto Review です(通す・承認を求める・拒否のどれかを判定します)。

公式の言い方では、ボットには自分のアカウントも資格情報もなく、あなたとして動くだけです。 例外は、チームが管理する連携アプリです。 これはチームやサービスアカウント(team/service-account)の資格情報を使えることがあります。

② アプリをブロックしても、Webサイトは開ける 必ず覚える

管理者が連携アプリを禁止すると、アプリは「Disabled by team admin」と出ます。 ところが、アプリを止めても、そのサービスのWebサイトまでは止まりません。公式のFAQにも、ブラウザからは届き続けると書かれています。

理由は、2つが別の層だからです。 連携の層(連携アプリの方針。公式は connector policy)は、MCP サーバーを許可するか禁止するかを決めます。 網の層(Network Controls)は、計算機がどこへ通信できるかを決めます。Webサイトの道を閉じるには、Network Controls が必要で、これは Enterprise 限定です。

連携の層:ボット ─▶ 連携アプリ ─▶ サービス    (連携アプリの方針で止める)
網の層 :ボット ─▶ ブラウザ   ─▶ サービスのWebサイト (Network Controlsで止める)

講義では、「玄関(アプリ)を閉めても、窓(ブラウザ)は別の鍵が要る」と言うと伝わります。

③ 管理者は止められるが、押しつけられない

連携アプリの方針(connector policy)は、Grok Bot 専用の一覧ではなく、チームの Cursor のものを引き継ぎます。 許可された連携アプリは、そのメンバーのボット全員が使えます。禁止されたものは「Disabled by team admin」と出ます。

管理者が連携アプリをメンバーに配って、強制したり最初からオンにしたりすることはできません。許可と禁止だけです。 MCP の許可リストそのものも Enterprise 限定です。

○ 関係する単元:No.11(管理者の制御の層)。網の制御と MCP サーバーの扱い(Apply to MCP servers)はそこで見ます
○ よくある勘違い:「アプリを禁止したから、Gmailには一切届かない」→ Webサイトの道は別の層

第3章 足す・つなぐ

① 一覧に無いアプリは、ボットが MCP サーバーを足せる

アプリが一覧に無ければ、ボットに「そのMCPサーバーをつないで」と頼めます。 追加の方法は、URLを指定するか、計算機で動くコマンドを指定するかです。コマンドで起動したサーバーは、他のボットにも使えます。 なお、鍵と通り道は種類で分かれます。 鍵は Cursor 側にあり、遠くの(remote の)MCP サーバーは Cursor のサーバーから届きます。 例外は計算機上でコマンド起動する MCP サーバーで、こちらは計算機から外へ出ます(公式:計算機で動くコマンド型のサーバーには、網の制御がそのまま効く)。

私設ネットワークのサーバーと、私設の認証局を使うサーバーは、足す前にあなたの承認を求められます。 APIはあるがMCPサーバーが無いサービスには、公式のマーケットプレイスにある tinkabot が使えます。 tinkabot は、APIを連携アプリ(公式は plugin)に包んでテストします。 公開するのは、あなたが言った時だけです。

② Xは、読むだけなら接続しなくてよい

ボットは、Xの公開されている内容を、アカウントを接続しなくても検索・読み取りできます。 できるのは、投稿を探す・リンクの投稿を開く・アカウントの投稿や言及を読むことです。 引用や再投稿を調べることと、話題やトレンドを見ることもできます。

読むだけで、あなたとしてのサインインはしません。 DM・ブックマーク・ホームのタイムライン・誰がいいねしたかを使うには、「Connect apps」からXの連携アプリ(公式は X plugin)を足して、Xでサインインします。そのXの連携アプリには、X API のクレジットが必要です。

③ 会社のGoogleで止まる時は「Grok」

会社のGoogleアカウントで連携が止まる時があります。 Grok Bot が Google にサインインする時の名義は、Cursor ではなく「Grok」です。

「Your admin needs to review Grok」と出たら、そのGoogle Workspaceでは Grok がまだ承認されていません。管理者が Google 管理コンソールで、アプリ「Grok」を「Trusted」にします。この Google 側の承認は、Cursor 側の「Disabled by team admin」を解除しません(公式に書かれているのはこの向きだけです)。

連携アプリは、Webを操作するより確実な、構造化された道。OAuth の入場券は Cursor の連携の裏口にあり、ボットは受け取らず計算機にも保存されない。アプリはアカウント全体で、あなたの権限以上にならない。アプリを禁止しても、Webサイトは別の層で開ける。

確認問題

問1 「ボットにGmailを連携したら、パスワードやトークンがボットに渡るんですよね?」と聞かれました。仕組みからの答えは?

問2 管理者が Gmail の連携アプリを禁止しました。それでもボットがGmailのWebサイトを開けるのはなぜ?

問3 連携したSlackアプリで、ボットが投稿できる範囲は?

問4 受講生が「Xの公開投稿を調べさせたいのですが、Xのアカウント連携は必須ですか」と聞いてきました。答えは?

出典:https://docs.x.ai/grok-bot/computer-and-apps / https://docs.x.ai/grok-bot/how-grok-bot-works / https://docs.x.ai/grok-bot/security / https://docs.x.ai/grok-bot/teams-and-enterprises / https://docs.x.ai/grok-bot/security-faq 。内容は2026年11月時点の公式。