連携ガイド
X(旧Twitter)をAIエージェントに安全に連携する|権限・承認・監査の設計
X(旧Twitter)をAIエージェントにつなぐと、エゴサーチ、投稿案の下書き、反応の分析を自動化できます。便利な一方で、ツイートの投稿や削除は公開アカウントに即座に反映される操作です。連携の前に権限設計を決めておくべきです。
X(旧Twitter)連携でまず起きる問題
X(旧Twitter)をそのままAIエージェントに渡すと、典型的に次の問題が起きます。
- アクセストークンの散在:プロンプトやローカルのMCP設定に置いた認証情報は、漏れたときにX(旧Twitter)の操作が丸ごと露出します。
- 読み取りと書き込みが同じ扱い:参照も更新も、エージェントから見れば同じ「ツール呼び出し」です。区別がなければ、AIは同じ気軽さで実行します。
- 公開アカウントへの即時反映:ツイート投稿は公開され、削除しても魚拓が残りうる取り返しづらい操作です。
読み取りは自由に、書き込みは承認制に
実務的な原則はシンプルです。参照系は自由に、更新系は人間の承認を経てから。X(旧Twitter)の操作をこの2種類に仕分けます。
- 自由に実行してよい(読み取り):ツイート・ユーザー・自分の情報の参照、最近の検索、ユーザーのツイート取得。分析や下書きはここで完結します。
- 承認を挟む(書き込み):ツイートの投稿、ツイートの削除。いずれも公開アカウントに即反映されます。
こうしておけば、AIエージェントは分析や下書きまで一人で走り切り、外部や本番に効く操作の直前だけ担当者が確認する、という運用になります。
生のアクセストークンをエージェントに渡さない
もう一つの要点は認証情報の置き場所です。X(旧Twitter)のアクセストークンをエージェントのランタイムやプロンプトに置くのは避けます。 認証情報はサーバー側に暗号化して保管し、エージェントにはスコープ付きの権限トークンを1つだけ渡す。 こうすれば、あるワーカーのトークンが漏れても、失効はそのワーカーの範囲に限定でき、X(旧Twitter)本体の認証情報を作り直す必要はありません。
すべての操作を監査ログに残す
X(旧Twitter) を扱う以上、「誰が・どのワーカーで・何をしたか」を後から追えることは必須です。 承認された操作もブロックされた操作も、ワーカー・ロール・ツール・接続・リクエスト・結果まで記録しておけば、 後からの調査や説明責任にそのまま使えます。
Grantryでの実現方法
Grantryは、AIエージェントと業務ツールの間に入る権限レイヤーです。 X(旧Twitter)を含むMCP対応のサービスに対して、ワーカーごとにスコープ付きトークンを1つ発行し、 読み取りは自由に、ツイート投稿などの書き込みは承認ゲート越しに、そして全コールを監査ログに残します。 Claude CodeやCodexなどのMCPクライアントを、ワーカートークン付きでGrantryのエンドポイントに向けるだけで、 エージェント側のコード変更なしに始められます。
よくある質問
AIエージェントにX(旧Twitter)のアクセストークンを直接渡しても大丈夫ですか?
推奨しません。プロンプトやローカルのMCP設定に置いたアクセストークンは、X(旧Twitter)でできる操作すべて(例:ツイートの投稿)を許す常時オファーになります。アクセストークンはサーバー側に暗号化して保管し、エージェントにはスコープ付きの権限トークンを1つだけ渡す設計が安全です。
X(旧Twitter)のツイートの投稿をAIに自動実行させても問題ないですか?
ツイートの投稿は影響が大きい、または戻せない書き込みです。ツイートの検索などの読み取り・分析は自由に実行させ、ツイートの投稿は人間の承認を経てから実行する承認ゲートを挟むのが実務的です。
AIに投稿案の下書きだけさせて、投稿は人が承認できますか?
できます。検索・分析・投稿案の下書きまでをAIに任せ、実際のツイート投稿や削除は承認ゲートに載せます。公開に効く操作の直前だけ人が確認する運用になり、炎上リスクを下げられます。