最終更新:2026年9月(公式ドキュメントの確認日:2026年9月15日)
結論:X Ads MCP は、X(旧Twitter)が公式に提供しているリモート MCP サーバーです。エンドポイント https://ads-api.x.com/mcp に MCP クライアントをつなぐだけで、X 広告アカウントの読み取り・分析・キャンペーン作成を自然言語で扱えます。2026年9月15日時点の公式ドキュメントに載っているツールは 74本です。
この記事の要点(2026年9月15日時点)
- ツールは74本。公開当時を報じた記事の時点では23本だったので、1か月足らずで3倍以上に増えています。増えたのはオーディエンス・クリエイティブ・コンバージョン計測まわりで、「Writes」カテゴリは10本のまま変わっていません
- 書き込みは既定で安全。キャンペーンと line item は必ず
PAUSEDで作られ、明示的に activate するまで1円も使いません。認証は利用者本人の OAuth 2.0 トークンなので、その人が見られる広告アカウントしかエージェントからは見えません - 法人で使うなら読み取り専用から。スコープを
ads.readとoffline.accessの2つだけにすれば、分析はできて変更はできない状態で始められます。offline.accessを外すとトークンは約2時間で失効します
対象読者:X 広告を自社または受託で運用している担当者、社内で AI エージェントに与える権限の範囲を決める情報システム・マーケティング責任者。
読了後にできること:読み取り専用スコープで X Ads MCP をクライアント1つにつなぎ、「先週のキャンペーン成績を表で出して」と自然言語で聞けるところまで。
X 広告の管理画面を開かずに「先週のキャンペーン成績を表で出して」と書くだけでレポートが返ってくる。それを X が公式に用意したのが X Ads MCP です。エンドポイントは https://ads-api.x.com/mcp の1本だけで、Ads API 用のクライアントコードを自分で書く必要はありません。
この記事を書いている時点で、日本語で読める X Ads MCP の解説はほとんどが「23ツール」のまま止まっています。公開直後に海外メディアが報じた数字がそのまま引用され続けているからです。ところが公式ドキュメントを開くと、ツール数はすでに74本。カテゴリも4つから9つに増えています。何が増えて何が増えていないのかは、権限設計をする人にとって一番知りたいところのはずです。
私は X(@SuguruKun_ai)をフォロワー約10万人の規模で運用している立場ですが、この記事には自社の広告運用の実測値は一切書きません。書くのは、公式ドキュメントで確認できる事実と、それを法人が使うときの運用設計だけです。数字を作らない代わりに、ツール一覧・スコープ・接続手順は原典と1対1で照合しています。
順番に、X Ads MCP とは何か、74本の中身、接続手順、そして「広告アカウントに AI をつなぐ」ことの承認線をどう引くかまで見ていきます。
X Ads MCPとは|X公式のリモートMCPサーバー
X Ads MCP は、X の API ゲートウェイに組み込まれたリモート MCP(Model Context Protocol)サーバーです。MCP は LLM エージェントと外部ツールをつなぐためのオープン標準なので、Grok でも Claude Code でも、MCP SDK で自作したエージェントでも、対応クライアントであれば接続してすぐに X Ads のツールを使えます。エージェントがキャンペーンデータを読み、分析を回し、キャンペーンを作って管理する。API の配管はすべて MCP クライアント側が面倒を見ます(出典:X Ads MCP 公式ドキュメント)。

公式ドキュメントが挙げている利点は4つです。ひとつ、専用の Ads API クライアントコードが不要(URL を1本指定すればツールは自動で見つかる)。ふたつ、アカウント→資金支払い手段→キャンペーン→line item→ターゲティングという連鎖を、モデルが1回の平易な指示から自分でつないでくれる。みっつ、パフォーマンス統計やリーチ推定を会話で引ける。よっつ、利用者本人のトークンが見える範囲を決め、すべての書き込みが停止状態から始まる。
基本仕様(2026年9月15日時点)
| 項目 | 内容 |
|---|---|
| 提供元 | X(公式・docs.x.com 上のドキュメント) |
| 種別 | リモート MCP サーバー(Streamable HTTP トランスポート) |
| エンドポイント | https://ads-api.x.com/mcp |
| 通信方式 | 全リクエストが HTTP POST の JSON-RPC、応答は SSE でフレーミングされる |
| ツール数 | 74本(公式ドキュメント記載・2026年9月15日確認) |
| バックエンド | X Ads API のメジャーバージョン /12(74ルート) |
| 認証 | 利用者本人の OAuth 2.0 トークン。PKCE S256。Native App(パブリッククライアント)はクライアントシークレット不要 |
| スコープ | ads.read/ads.write/offline.access(常に付ける)/media.write(任意) |
| 対応クライアント | Grok(web)、Grok Build(CLI)、Claude Code、MCP SDK で作った自作エージェント |
| 書き込みの既定 | キャンペーンと line item は常に PAUSED で作成される |
| 料金 | Ads MCP 自体の料金に関する記載は公式ドキュメントにない(2026年9月15日時点)。X API/Ads API 側の条件に従う |
公開時は23ツール、いまは74ツール
X Ads MCP が公開されたのは2026年8月下旬です。Social Media Today は2026年8月23日付で、PPC Land は同年8月24日の公開として報じています。PPC Land の記事によれば、当時のツールは23本で、内訳はアカウント・読み取り9本、分析2本、ターゲティング検索2本、書き込み10本の4カテゴリでした。
それが2026年9月15日時点の公式ドキュメントでは74本・9カテゴリになっています。ここで注目したいのは、書き込み(Writes)カテゴリだけが10本のまま動いていないことです。増えた51本は、オーディエンス、クリエイティブとメディア、ウェブコンバージョン計測、アプリイベント、アプリリストといった周辺領域で、キャンペーンそのものを作る・動かす権限は最初から同じ10本に固定されています。
この設計は、広告アカウントに AI をつなぐかどうかを判断する人にとって重要な材料です。「ツールが3倍になった=AI が勝手にできることが3倍になった」ではありません。配信を左右する動作の入口は増えていないからです。
なお、Grok を CLI から使う Grok Build については Grok Build と Claude Code・Codex の違いで整理しています。MCP クライアント側の設定そのものに慣れていない場合は、Claude Code の MCP 連携ガイドを先に読んでおくと、この記事の接続手順がそのまま通ります。
74ツールの内訳|カテゴリ別一覧と「書き込み」の実態
公式ドキュメントの Server Capabilities に載っている9カテゴリを、本数つきで整理します。本数はドキュメント記載のツール名を数えたもので、合計は74本です。
| カテゴリ | 本数 | 何ができるか |
|---|---|---|
| Accounts & Reads | 12 | 広告アカウント・キャンペーン・line item・配信面・資金支払い手段・プロモ投稿・アカウント投稿・稼働中エンティティの一覧と個別取得 |
| Analytics | 2 | アカウント単位の統計取得(get_account_stats)とキャンペーンのリーチ取得(get_campaign_reach) |
| Targeting | 5 | 興味関心・地域の検索、設定済みターゲティング条件の一覧と個別取得、オーディエンス規模の推定 |
| Audiences | 10 | カスタムオーディエンスの作成・更新・削除、配信除外リスト(do not reach)の作成・削除とユーザーの一括投入 |
| Creatives & Media | 17 | カード、メディアライブラリ、アカウントメディア、メディアクリエイティブの管理と投稿プレビューの取得 |
| Conversion Tracking (web) | 5 | ウェブイベントタグ(サイト側のピクセル)の一覧・取得・作成・更新・削除 |
| App Events & Tracking Tags | 9 | アプリイベントタグとトラッキングタグの管理 |
| App Lists | 4 | アプリリストの一覧・取得・作成・削除 |
| Writes | 10 | キャンペーンと line item の作成・更新・有効化、ターゲティング条件の追加と削除、広告用投稿の作成とプロモート |
API リファレンスを見ると、この74ツールは /12 配下の74ルートに1対1で対応しています(出典:X Ads MCP API Reference)。たとえば list_ads_accounts は GET /12/accounts、create_campaign は POST /12/accounts/:account_id/campaigns です。どのツールが裏でどのエンドポイントを叩くかが全部公開されているので、社内のセキュリティレビューに出すときはこのリファレンスをそのまま添付すれば話が早いです。
Writes カテゴリの10本(全部)
配信と課金に直接効くのはこの10本です。名前を全部把握しておくと、承認フローを設計するときに迷いません。
| ツール名 | 動作 | 課金への影響 |
|---|---|---|
create_campaign | キャンペーンを作成 | 必ず PAUSED で作られる。課金されない |
update_campaign | キャンペーンを更新(entity_status=PAUSED で停止もこれ) | 停止操作に使う |
activate_campaign | キャンペーンを有効化 | ここから配信対象になる |
create_line_item | line item を作成。予算・配信スケジュール・ペーシングは line item 側で設定する | 必ず PAUSED で作られる |
update_line_item | line item を更新。稼働中の line item を止める唯一の方法 | 停止操作に使う |
activate_line_item | line item を有効化 | ここから消化が始まる |
add_targeting_criterion | ターゲティング条件を追加 | 配信対象が変わる |
remove_targeting | ターゲティング条件を削除 | 配信対象が変わる |
create_ad_post | 広告用の投稿(nullcast)を作成 | タイムラインには出ない広告専用投稿 |
promote_post | 既存投稿をプロモート | 広告として配信する対象に加える |
「Writes は10本」を安心材料にしない
ここが誤解されやすいところです。カテゴリ名が Writes のツールは10本ですが、アカウントの状態を変える動詞を持つツールは10本では済みません。公開されている74本のツール名を動詞で分類すると、list/get/search/estimate で始まる取得系が40本、create/update/delete/activate/add/remove/promote/batch で始まる変更系が34本です(公式ドキュメントのツール一覧を動詞で分類・2026年9月15日時点)。
内訳は create が12本、delete が10本、update が6本、activate が2本、add/remove/promote/batch が各1本。つまり Audiences や Creatives、Conversion Tracking のカテゴリにも、カスタムオーディエンスを消す・ウェブイベントタグを書き換える・メディアライブラリの項目を削除するといった破壊的な操作が含まれています。計測タグを消されたら、その日の成果計測は復旧するまで戻りません。
では読み取り専用にしたいときはどうするか。公式ドキュメントの答えは明快で、ads.write を外すことです。ドキュメントには「閲覧と分析はできるが作成も変更もできない読み取り専用エージェントにするには ads.write を省く。書き込み系ツールは認可エラーで失敗する」と書かれています。カテゴリ名を目で数えるのではなく、スコープで落とすのが正しいやり方です。
media.write が必要になる4つのツール
media.write は、メディアをアップロードする場合と、メディアライブラリの書き込み系ツール(create_media_library_item/update_media_library_item/delete_media_library_item/delete_account_media)を使う場合にだけ必要です。メディアを読むだけ、キャンペーンを管理するだけなら不要なので、既定では付けないのが正解です。
接続手順|X Developer Consoleの設定からGrok・Claude Codeまで
接続は2段階です。X 側でアプリを用意し、クライアント側でそのクライアント ID とスコープを指定する。以下は公式ドキュメントの Get Started セクションの内容を、日本語で順に並べたものです。

ステップ1:X Developer Console でアプリを登録する
X Developer Console で新しいアプリを作る(既存アプリの再利用も可)。アプリ設定で次を有効にします。
- App Permissions:Read and Write
- Type of app:Native App(パブリッククライアント)。機密クライアント(Web App/Automated App or Bot)も Grok Build と手動のトークン発行では
client_secret_basic経由で動きますが、client_secret_postは X が拒否します - Website URL:
http://x.com - Callback URI / Redirect URL:使うクライアントに応じて下表を登録
| クライアント | 登録するコールバック |
|---|---|
| Grok(web) | https://grok.com/connectors-oauth-exchange-code/ |
| Grok Build(CLI) | http://127.0.0.1:8080/callback(localhost ではなく 127.0.0.1 であること) |
| Claude Code | http://localhost:8080/callback |
| 手動でトークンを発行する場合 | http://localhost:8080/callback |
続いて Keys and tokens から OAuth 2.0 Client ID をコピーします。コンソールの別の場所に出ている数字だけのアプリ ID ではなく、TzNHbE5X…6MTpjaQ のような長い文字列のほうです。Native App にクライアントシークレットはありません(PKCE のみ)。
最後に Project Access の MANAGE をクリックして Ads Project を選びます。これでそのアプリ ID に Ads API アクセスが有効化されます。加えて、X ユーザー自身が少なくとも1つの広告アカウントにアクセスできる必要があります。MCP から見えるのは「その人がアクセスできるアカウント」だけなので、ads.x.com を開いて紐づきを確認しておきます。
ここが最大の落とし穴:OAuth grant は (アプリ, ユーザー) につき1つ
コールバックは複数登録できますが、X は (アプリ, ユーザー) の組み合わせにつき有効な OAuth grant を1つしか保持しません。2つ目のクライアントからサインインすると、1つ目のクライアントのトークンは失効します。公式ドキュメントも「実務上は1クライアントにつき1アプリ。複数を同時に動かしたいならクライアントごとにアプリを作る」と書いています。
これは法人利用で必ず踏む地雷です。担当者が Claude Code でつないだあと、別の日に Grok の web からも同じアプリでつないだ瞬間、前の接続が黙って死にます。「昨日まで動いていたのに急に401になった」の典型パターンがこれです。
ステップ2:スコープを決めてクライアントをつなぐ
スコープの意味は次のとおりです。
| スコープ | 付与されるもの | 法人での既定 |
|---|---|---|
ads.read | 読み取り系と分析系のツール | 付ける |
ads.write | キャンペーンとクリエイティブの書き込み系ツール | 最初は付けない |
offline.access | トークンの更新(リフレッシュ) | 常に付ける |
media.write | メディアのアップロードとメディアライブラリの書き込み | 必要になるまで付けない |
offline.access は必ず入れてください。X の OAuth 2.0 ドキュメントにも「Authorization Code Flow with PKCE で作ったアクセストークンは、offline.access スコープを使っていない限り既定で2時間しか有効でない」と明記されています(出典:OAuth 2.0 Authorization Code Flow with PKCE)。付け忘れると、リフレッシュ手段のないまま約2時間で切れます。
Grok Build(CLI)
~/.grok/config.toml に次を追記します。OAuth 系のキーは camelCase である必要があり、snake_case のキーは黙って無視されます。
[mcp_servers.ads-mcp]
url = "https://ads-api.x.com/mcp"
[mcp_servers.ads-mcp.oauth]
clientId = "YOUR_OAUTH2_CLIENT_ID"
callbackPort = 8080
scopes = ["ads.read", "ads.write", "offline.access"] # optional: "media.write"読み取り専用にするなら scopes から "ads.write" を外すだけです。設定したら grok を起動し、/mcps → ads-mcp を選択 → i を押してブラウザの同意画面を完了させれば接続完了。PKCE S256 が使われ、トークンは自動で更新されます。
Grok(web)
grok.com/connectors から New Connector → Custom を選び、Server URL に https://ads-api.x.com/mcp、Client ID に OAuth 2.0 Client ID の文字列を入れます。Client Secret は空欄、Token Auth Method は「none(PKCE only, recommended)」、自動検出されたエンドポイントはそのまま。
注意点として、Grok はサーバーのディスカバリ情報からスコープのチップを自動で埋めてきます。プリセットされたチップは全部削除して、ads.read・ads.write・offline.access(必要なら media.write)だけを残します。読み取り専用にしたいなら ads.read と offline.access の2つだけです。
Claude Code
Claude Code はパブリッククライアントが必須です(client_secret_post を送るため、機密クライアントだと X に拒否されます)。
claude mcp add x-ads https://ads-api.x.com/mcp \
--transport http \
--client-id YOUR_OAUTH2_CLIENT_ID \
--callback-port 8080追加したら Claude Code 内で /mcp を実行してサインインします。スコープを指定する CLI フラグはありません。既定ではサーバーが広告しているスコープを要求するので、読み取り専用に絞りたい場合は ~/.claude.json の該当サーバーのエントリに "oauth": { "scopes": "ads.read offline.access" }(半角スペース区切りの1つの文字列)を書きます。メディアライブラリの書き込みまで含めるなら "oauth": { "scopes": "ads.read ads.write media.write offline.access" } です。
静的トークンを使う方法もあります。
claude mcp add x-ads https://ads-api.x.com/mcp \
--transport http \
--header "Authorization: Bearer YOUR_ACCESS_TOKEN"Codex 側で MCP を設定する手順と比べたい場合は Codex の MCP セットアップガイドに設定ファイルの書き方をまとめています。クライアントごとに設定ファイルの流儀が違うだけで、考え方は同じです。
疎通確認とエラーの読み方
クライアントを入れる前に、トークンと接続だけ確かめたいときは tools/list を直接叩けます。成功すると、ドキュメントに載っている74本を含むツール一覧が返ってきます。
curl -s -X POST https://ads-api.x.com/mcp \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'| 返ってきたコード | 意味 | やること |
|---|---|---|
| 401 | トークンが無効か期限切れ | リフレッシュしてクライアント設定のヘッダーを更新する |
| 403 | アプリがまだ登録されていない | ステップ1に戻り、Project Access で Ads Project を選ぶ |
手動でトークンを発行した場合、リフレッシュトークンはローテーションします。返ってきた最新のものを必ず保存してください。古いものを使い回すと、あるタイミングから401が続きます。
法人で安全に始める運用設計|スコープ・トークン・承認線
ここからが本題です。X Ads MCP は技術的にはつなぐだけで動きますが、法人で使うなら決めておくことが6つあります。

1. そのトークンは誰のものか
認証は利用者本人の OAuth 2.0 トークンです。つまり MCP 経由の操作は、つないだ個人の権限そのままになります。運用担当者が異動・退職してアカウントの権限が外れれば、そのトークンで動いていた自動レポートも同時に止まります。逆に、強い権限を持つ人のトークンでつなげば、エージェントもその強さを受け継ぎます。
X Ads のアカウント側の権限は、Account administrator/Ad manager/Campaign analyst/Organic analyst/Creative Manager の5役割に分かれています(出典:Accessing Ads accounts)。スコープだけで絞るのではなく、アカウント権限とスコープの二重で絞るのが安全側の設計です。分析用途のエージェントなら、分析権限しかないユーザーのトークンで、かつ ads.read と offline.access だけ。これで二重に落ちます。
2. 1クライアント1アプリを最初から守る
前述のとおり、X は (アプリ, ユーザー) につき OAuth grant を1つしか持ちません。社内で Claude Code と Grok の両方を使う予定があるなら、最初から Developer Console 側でアプリを2つ作っておきます。後から分けるのは、片方が突然使えなくなってから気づくパターンになりがちです。
3. 最初のスコープは ads.read と offline.access だけ
読み取り専用で始めれば、どれだけプロンプトが暴れても広告費は1円も動きません。書き込み系ツールは認可エラーで失敗するだけです。この状態で、レポートの精度・エージェントがどのツールを選ぶか・自然言語の指示がどこで曖昧になるかを観察できます。
4. media.write は既定で付けない
メディアライブラリの削除は取り返しがつきません。クリエイティブのアップロードを AI にやらせる必然性が出てくるまで、このスコープは付けない。必要になったら、その時だけ付ける。
5. PAUSED → 人が activate、という承認線を文章にする
X Ads MCP の最大の安全装置は、キャンペーンと line item が必ず PAUSED で作られることです。activate_campaign と activate_line_item を呼ばない限り、配信も課金も始まりません。
ですから社内ルールは、「activate 系のツールは人が管理画面で操作する」の1行に集約できます。エージェントには下書きまでやらせて、配信の開始ボタンは人が押す。これが一番シンプルで、かつ破られにくい線です。
停止のしかたも押さえておきます。稼働中の line item を止める方法は update_line_item に entity_status=PAUSED を渡す1つだけ。キャンペーンの停止は update_campaign に entity_status=PAUSED です。緊急停止の手順書には、管理画面の操作と合わせてこのツール名も書いておくと、AI に止めさせる選択肢も残せます。
6. 変更の監査をどこで取るか
2026年9月15日時点の公式ドキュメントには、Ads MCP 専用の監査ログに関する記載はありません。したがって「誰がいつ何を変えたか」は、広告アカウント側の変更履歴と、MCP クライアント側のログ(Claude Code や Grok Build のセッションログ)の2か所で押さえることになります。
運用に落とすなら、次の3点を社内ルールに書いておきます。
【X Ads MCP 利用ルール(社内テンプレ)】
1. 接続アプリ
- クライアント1つにつき Developer Console のアプリを1つ用意する
- アプリ名に用途を書く(例: ads-mcp-claudecode-readonly)
2. スコープ
- 既定は ads.read + offline.access のみ
- ads.write を付ける場合は、対象アカウントと期間を申請して承認を得る
- media.write は原則付けない
3. 承認線
- activate_campaign / activate_line_item は人が実行する
- 日予算・入札額は人が決め、エージェントには提案までさせる
- 削除系(delete_*)の実行は禁止。必要な場合は管理画面で人が行う
4. 記録
- MCP クライアントのセッションログを保存する
- 広告アカウントの変更履歴と突き合わせて月1回レビューするMCP を業務システムに組み込むときの認証・権限・監査の考え方そのものは、MCP の本番運用ガイドで体系的にまとめています。X Ads に限らず、社内で MCP サーバーを増やしていく段階に入っているなら、そちらの承認設計とセットで読んでください。
自動化できること/人が判断すること
読み取り専用から始めて、どこまで任せるかを決めるための対応表です。判断の軸は「間違えたときに元に戻せるか」と「お金が動くか」の2つだけで十分です。

| 業務 | X Ads MCP に任せられる | 人が決める |
|---|---|---|
| 週次レポート | get_account_stats で数字を取り、指定した粒度の表にまとめる | どの指標を週次で見るかの定義 |
| 成績の深掘り | キャンペーン・line item 単位の比較、リーチの確認 | 「なぜ落ちたのか」の結論と次の打ち手 |
| ターゲティング候補調査 | 興味関心・地域の検索、オーディエンス規模の推定 | ブランド上使ってよい興味関心かどうかの判断 |
| 配信除外リスト | 除外リストの作成とユーザーの一括投入(ads.write が必要) | 除外の基準そのもの |
| キャンペーンの下書き | PAUSED のキャンペーンと line item を作り、条件を付ける | 目的(objective)と配信面の妥当性 |
| 予算・入札 | 入力された金額を line item に設定する | 金額そのもの(必ず人) |
| 配信開始 | — | activate は人が実行 |
| クリエイティブ | カードやメディアクリエイティブの一覧・プレビューの取得 | 最終的な表現の可否とレギュレーション確認 |
| 計測タグ | ウェブイベントタグの一覧取得(読み取り) | タグの作成・更新・削除は人の作業として残す |
広告そのものを AI でどう組み立てるかという上流の話は、AI広告の始め方で扱っています。X Ads MCP はあくまで「実行と計測の配管」なので、何を出すかの設計は別の話として持っておいたほうが事故が減ります。
この記事の内容、自社の業務でも回したい?
AI顧問(月次伴走)が、貴社の業務に合わせて導入から定着まで並走します。研修4,000名以上・支援100社以上の実績。まずは30分の壁打ちから。
そのまま投げられる指示文7つ
MCP クライアントにそのまま貼れる指示文です。読み取り専用(ads.read と offline.access)でも1から4は動きます。5以降は ads.write が必要です。
1. 接続確認とアカウント一覧
X Ads MCP に接続して、私がアクセスできる広告アカウントを一覧にしてください。
アカウントID・アカウント名・通貨・タイムゾーンを表にしてください。
取得できなかった項目は空欄にせず「取得不可」と書いてください。2. 先週のキャンペーン成績を表にする
広告アカウント(アカウントIDは 【ここにIDを貼る】)について、
先週(月曜〜日曜)のキャンペーン別の成績を表にしてください。
列: キャンペーン名 / 消化金額 / インプレッション / エンゲージメント / 主要コンバージョン
並び順: 消化金額の多い順
注意:
- 取得した期間を表の上に明記してください
- 数字は取得したAPIの値をそのまま使い、丸めないでください
- 不足している情報があれば、最初に質問してから作業を開始してください3. 落ちている配信を特定する
直近14日と、その前の14日を比較して、成績が落ちている line item を上から5つ挙げてください。
出力:
1. line item 名と ID
2. 何の指標が、どれだけ変化したか(前期間→今期間の実数)
3. 考えられる要因(データから言えることと、推測を分けて書く)
推測の部分には必ず「推測」と明記してください。
変更操作は行わず、読み取りだけで答えてください。4. ターゲティング候補を調べる
BtoBのSaaSを扱っています。日本国内向けに配信する前提で、
興味関心ターゲティングの候補を検索して10件挙げてください。
各候補について:
- ターゲティングの名称とID
- そのまま使う場合の想定オーディエンス規模(推定できる範囲で)
- ブランド上のリスクがありそうなら指摘
推定できない項目は「推定不可」と書き、数字を作らないでください。5. PAUSED の下書きキャンペーンを作る
テスト用に、停止状態(PAUSED)のキャンペーンを1本作ってください。
- キャンペーン名: 【ここに名前を貼る】
- 目的: ウェブサイトへの誘導
- 日予算と入札額: 【ここに人が決めた金額を貼る】
- ターゲティング: 日本
制約:
- activate_campaign と activate_line_item は絶対に実行しないでください
- 作成後、キャンペーンIDとステータスを報告してください
- 予算や入札の金額を、私が指定した値から変更しないでください6. 配信除外リストを用意する
配信除外リスト(do not reach list)を1つ作り、
これから渡すユーザー識別子を一括で登録してください。
- リスト名: 【ここに名前を貼る】
- 登録件数を作業後に報告してください
- 既存のリストは一切変更・削除しないでください
- 削除系のツールは使わないでください7. 週次レポートの定型化
毎週月曜に同じ形式で出したいので、以下のテンプレートに沿って先週分のレポートを作ってください。
# 先週のX広告レポート(対象期間: YYYY-MM-DD 〜 YYYY-MM-DD)
## サマリー(3行)
## キャンペーン別の成績(表)
## 前週比で動いた点(上位3件・実数で)
## 来週の確認事項(人が判断すべき項目だけ)
ルール:
- 数字と固有名詞は、根拠(どのツールで取得したか)を添えてください
- 仮定した点は必ず「仮定」と明記してください
- 変更操作は行わないでくださいUravationならこう判断する|読み取り専用から4段階で広げる
事例区分:想定シナリオ
以下は公式ドキュメントで確認できる仕様をもとに構成した段階導入の設計例です。特定企業の実測値ではありません。
広告アカウントに AI をつなぐかどうかを聞かれたら、私たちは「つなぐ/つながない」の二択では答えません。スコープの段階を4つに分けて、1段ずつ上げるという答え方をします。理由は単純で、X Ads MCP は途中で止められる設計になっているからです。止められる仕組みがあるなら、いきなり最上段から始める理由がありません。
第1段階:読み取り専用で観察する
ads.read と offline.access だけで接続し、既存のレポート業務をそのまま自然言語で再現してみます。見るのは成果ではなく、エージェントが指示をどう解釈するかです。曖昧な指示でどのツールを選ぶか、期間の解釈がずれないか、数字を勝手に丸めないか。ここで自社の指示文の型が決まります。
第2段階:レポートを定型化する
第1段階で安定した指示文を、週次レポートのテンプレートとして固定します。まだスコープは読み取り専用のまま。この段階で「人が毎週やっていた集計作業」が消えます。取得元のツール名をレポートに書かせておくと、数字の出どころを後から追えます。
第3段階:下書き作成まで任せる(ads.write を追加)
ads.write を足して、PAUSED のキャンペーンと line item を作らせます。ここでも activate は人。下書きが上がってきたら、管理画面で目的・配信面・予算・ターゲティングを人が確認して、配信開始のボタンを押します。この段階の効果は「作業時間」より「作成ミスの減少」に出ます。設定項目の入れ忘れが構造的に減るからです。
第4段階:停止と除外の運用に組み込む
最後に、緊急停止(update_line_item に entity_status=PAUSED)と配信除外リストの運用を手順書に入れます。削除系(delete_*)は最後まで人の作業として残す。ここまでやっても、AI が勝手に配信を始めることはありません。
この4段階なら、どこで止めても業務は成立します。第2段階で止めても週次レポートは自動化されているし、第3段階で止めてもミスは減っている。「全部任せるか、何もしないか」で考えないことが、広告アカウントのような金銭が動く領域では一番効きます。
【要注意】X Ads MCPでやりがちな失敗パターン4つ
失敗1:offline.access を付け忘れる
❌ スコープを ads.read と ads.write だけにする
⭕ 必ず offline.access を足す
なぜこれが重要か:X の OAuth 2.0 では、offline.access を使っていないアクセストークンは既定で2時間しか有効ではありません。リフレッシュの手段がないので、2時間後には毎回ブラウザで認証をやり直すことになります。定期実行のレポートは高確率で失敗します。
失敗2:1つのアプリを複数のクライアントで使い回す
❌ 同じアプリの Client ID で Claude Code と Grok の両方をつなぐ
⭕ クライアントごとに Developer Console でアプリを分ける
なぜこれが重要か:X は (アプリ, ユーザー) につき OAuth grant を1つしか保持しないので、2つ目でサインインした瞬間に1つ目のトークンが失効します。エラーメッセージは「401」としか出ないため、原因にたどり着くまで時間を溶かします。
失敗3:「Writes は10本だけ」で読み取り専用だと思い込む
❌ Writes カテゴリの10本を避ければ安全だと考える
⭕ ads.write を外して、書き込み系を認可レベルで落とす
なぜこれが重要か:74本のうち変更系の動詞を持つツールは34本あります。オーディエンスの削除、ウェブイベントタグの書き換え、メディアライブラリの削除は Writes カテゴリの外です。カテゴリ名で安心せず、スコープで落としてください。公式ドキュメントも、読み取り専用にする方法として ads.write の省略を挙げています。
失敗4:日予算や入札額を自然言語のまま任せる
❌ 「いい感じの予算で作っておいて」と指示する
⭕ 金額は人が決めて、数値として指示文に埋め込む
なぜこれが重要か:予算・配信スケジュール・ペーシングは line item 側で設定する項目です(create_campaign は standard_delivery を受け付けません)。AI に金額の判断まで含めると、レビューすべき対象が「設定が正しいか」から「金額が妥当か」まで広がり、承認の意味が薄れます。金額は人、設定は AI。この分け方だと、確認が5秒で終わります。
よくある質問
X Ads MCP は無料で使えますか?
2026年9月15日時点の公式ドキュメントに、Ads MCP 自体の料金に関する記載はありません。X API および Ads API 側の利用条件に従うことになります。広告費は当然かかりますが、MCP 経由だから追加でかかるという記述は確認できていません。
接続したら AI が勝手に広告を配信してしまいませんか?
キャンペーンと line item は必ず PAUSED で作られ、activate_campaign または activate_line_item が呼ばれるまで配信も課金も始まりません。さらに、スコープから ads.write を外しておけば、そもそも作成自体ができません(書き込み系ツールは認可エラーになります)。
X Ads MCP から通常の投稿や DM も操作できますか?
できません。公式リファレンスで74本のツールに対応づけられているルートはすべて Ads API(/12/...)のもので、投稿に関わるのは広告用投稿を作る create_ad_post(nullcast)と既存投稿をプロモートする promote_post の2本だけです。通常のタイムライン投稿や DM を扱うツールは含まれていません。
Claude Code で読み取り専用にするにはどうすればいいですか?
スコープを指定する CLI フラグはないため、~/.claude.json の該当サーバーのエントリに "oauth": { "scopes": "ads.read offline.access" } を書きます。半角スペース区切りの1つの文字列で指定します。
403 エラーが出ます。原因は何ですか?
公式ドキュメントによれば、403 はアプリがまだ登録(enroll)されていないことを示します。Developer Console の Project Access から MANAGE をクリックし、Ads Project を選んで Ads API アクセスを有効にしてください。401 の場合はトークンが無効か期限切れなので、リフレッシュして設定を更新します。
代理店として複数クライアントのアカウントを扱えますか?
MCP から見えるのは、接続したユーザーがアクセスできる広告アカウントだけです。したがって担当者のアカウントが各クライアントの広告アカウントに紐づいていれば、その範囲で扱えます。ただし X は (アプリ, ユーザー) につき OAuth grant を1つしか保持しないので、複数のクライアントツールを並行して動かすならアプリを分けてください。アカウント側の権限は Account administrator/Ad manager/Campaign analyst/Organic analyst/Creative Manager の5役割で管理します。
23ツールと書かれた解説を読みました。どちらが正しいですか?
どちらも、その時点では正しい数字です。公開当時を報じた記事では23本、2026年9月15日時点の公式ドキュメントでは74本です。増えたのは主にオーディエンス・クリエイティブ・計測タグまわりで、Writes カテゴリは10本のまま変わっていません。最新の本数は必ず公式ドキュメントで確認してください。
まとめ:今日から始める3つのアクション
- 今日やること:X Developer Console でアプリを1つ作り、Type of app を Native App、Project Access で Ads Project を選んで、OAuth 2.0 Client ID を控える。
ads.x.comで広告アカウントへのアクセスがあることも確認する - 今週中:スコープを
ads.readとoffline.accessだけにして、クライアントを1つだけ接続する。この記事の指示文2番(先週のキャンペーン成績を表にする)をそのまま投げて、出てきた表を既存のレポートと突き合わせる - 今月中:社内ルールの4項目(接続アプリ/スコープ/承認線/記録)を文章にする。
activate系は人が実行する、という1行を必ず入れる
X Ads MCP は、広告アカウントという「お金が動く場所」に AI をつなぐ入口です。それでも比較的落ち着いて試せるのは、PAUSED が既定で、スコープで書き込みを丸ごと落とせるからです。この2つの安全装置を前提に、読み取り専用から始めてください。
あわせて読みたい
- MCPの本番運用ガイド — 認証・権限・監査を社内標準にする方法
- AI広告の始め方 — 何を出すかの設計から広告運用を組み立てる
著者:佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー約10万人。100社以上の企業向けAI研修・導入支援。著書『AIエージェント仕事術』『Claude仕事術』(SBクリエイティブ・シリーズ累計59,900部)。SBクリエイティブ「ビジネス+IT」ほかで生成AI連載を執筆(NewsPicks最大1,125ピックス)。
ご質問・ご相談は お問い合わせフォーム からお気軽にどうぞ。
参考・出典
- X Ads MCP — X 公式ドキュメント(参照日: 2026-09-15)。エンドポイント、74ツールのカテゴリ別一覧、スコープ、PAUSED 既定、Grok/Grok Build/Claude Code の接続手順の出典
- X Ads MCP API Reference — X 公式ドキュメント(参照日: 2026-09-15)。74ツールと
/12配下74ルートの対応表の出典 - OAuth 2.0 Authorization Code Flow with PKCE — X 公式ドキュメント(参照日: 2026-09-15)。
offline.accessを使わない場合にアクセストークンが既定で2時間で失効することの出典 - Accessing Ads accounts — X 公式ドキュメント(参照日: 2026-09-15)。広告アカウントの権限5役割の出典
- X Ads MCP gives Grok and Claude Code 23 tools to run ad campaigns — PPC Land(参照日: 2026-09-15)。公開当時のツール数23本と4カテゴリの内訳、公開日の出典
- X launches MCP server — Social Media Today、2026年8月23日付(参照日: 2026-09-15)。公開時期の裏取り
この記事の内容を社内展開する方へ: AIエージェント導入・安全運用チェックリスト(無料・PDF 14ページ) をダウンロードできます。
AI研修・AI顧問、まず30分の壁打ちから
研修4,000名以上・支援100社以上。研修は助成金の対象可否まで、顧問は月次伴走の中身まで、貴社の場合で具体的にお答えします。
- 100社以上・研修4,000名以上の実績
- 初回30分無料・即日返信
お問い合わせフォームから24時間以内にUravation担当者がご返信します。






