ChatGPT Ads について
ChatGPT Ads MCP サーバーは、Advertiser API のアカウント、広告、コンバージョン、商品フィードのデータをローカル MCP クライアントに提供し、制御された変更にも対応します。書き込みは既定で無効で、適用前にプレビューの確認とアカウント状態の再検証が必要です。
主な機能
- 01キャンペーン、広告グループ、広告の読み取り
- 02実績、コンバージョン、監査ログの確認
- 03商品フィードと一括処理ジョブの読み取り
- 04確認トークン付き書き込みプレビュー
- 05変更前の状態再確認と一時停止状態での作成
- 06単一の広告アカウントにリクエストを制限
活用シーン
- 01国、デバイス、プラットフォーム別の実績分析
- 02ピクセルイベントとコンバージョンデータの確認
- 03商品フィード、アップロード、商品情報の確認
- 04アカウント範囲内で広告変更をプレビュー
MCP 対応
MCP サーバーとして、stdio 経由で 30 個の読み取りツール、28 個の任意の書き込みツール、ガイドリソースを提供します。クライアントには Advertiser API キーとアカウント ID が必要で、書き込みと配信開始にはそれぞれ明示的な有効化と確認が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @getmcpads/chatgpt-ads-mcp-serverOPENAI_ADS_API_KEYシークレットAdvertiser API key from Ads Manager settings. Scoped to one ad account. Keep it secret.OPENAI_ADS_ACCOUNT_IDThe adacct_ ID the key belongs to. The only account the server will use.OPENAI_ADS_ENABLE_WRITEStrue exposes the write tools. Defaults to false. Writes preview before applying.OPENAI_ADS_ENABLE_ACTIVATIONtrue allows activation, which can spend budget. Requires writes. Defaults to false.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ChatGPT Ads MCP サーバー
ChatGPT Ads アカウントを MCP クライアントに接続します。
キャンペーン、パフォーマンス、コンバージョンを確認し、API キーに紐づく広告アカウントの変更を準備できます。
動画を見る · 新機能 · インストール · ツールリファレンス · ホスト型 getmcpads を試す
動画では、サンプルデータを使ったホスト型 getmcpads を紹介しています。クリエイティブギャラリーやアラートから、Google Sheets へのエクスポートや一括ローンチまで、MCP Apps はホスト型製品に含まれます。このリポジトリでは、スタンドアロンのネイティブ API ツールを提供します。
読み取りツール 30 個 · 書き込みツール 28 個(デフォルトでは無効)
独自の Advertiser API キーと、Claude Desktop、Claude Code、Cursor などの stdio MCP に対応したクライアントを使って、ローカルで実行できます。リクエストは ChatGPT Ads API に直接送信されます。対応する ChatGPT のセットアップを含む、管理された接続を利用する場合は、ホスト型オプションをご利用ください。
新機能
v1.0.0:初のスタンドアロンリリース · 2026 年 10 月 23 日
- ホスト型 getmcpads ゲートウェイのリビジョン 3e1c2c8 から移植し、ChatGPT Ads Advertiser API 向けの初のスタンドアロンサーバーを作成しました。
- 読み取りツール 30 個、デフォルトで無効な書き込みツール 28 個、ガイドリソース 1 個を公開します。
- アカウント、キャンペーン、広告グループ、広告、チャットカードのクリエイティブ、国・デバイス・プラットフォーム別の内訳を含むパフォーマンスインサイト、コンバージョンの設定とインサイト、商品フィード、カスタムオーディエンス、監査ログ、支出上限、Bulk API ジョブを読み取ります。
- ネイティブリクエストスキーマを公開 OpenAPI ドキュメント(sha256
266e7e19)に固定し、保存したコピーから更新するジェネレーターを用意します。 - すべての呼び出しを
OPENAI_ADS_ACCOUNT_IDのアカウントに限定し、最初のリクエストで API キーがそのアカウントに属することを検証します。 - すべての書き込みをプレビューし、確認後に保存済みのプレビュー内容をそのまま適用します。作成は一時停止状態となり、有効化には専用のフラグが必要です。自動再試行は行いません。
- リクエストの送信先を
api.ads.openai.comのみに限定し、リダイレクトを拒否し、レスポンスのサイズと所要時間に上限を設け、プロバイダーのテキストからキーを秘匿します。 - Node.js 22.23.4、24.22.1、26.12.1、または各系列でそれ以降のバージョンを必須とし、実行環境に 2026 年 10 月のセキュリティ修正が適用されていない場合は、stderr に警告を出力します。
ソースの同期については、SOURCE_SYNC.md を参照してください。
アップグレードに関する注意
Node.js 22 系列では 22.23.4 以降、24 系列では 24.22.1 以降、または 26.12.1 以降が必要です。これらのリリースには 2026 年 10 月のセキュリティ修正が含まれており、それより古い実行環境でサーバーを起動すると stderr に警告が出力されます。CI は Node 22、24、26 でテストされています。書き込みは任意で、明示的な確認が必要です。ホスト型のクリエイティブ連携と MCP Apps の UI は、このリリースの対象外です。
このリリースをインストールする
これは GitHub のソースリリースです。npm と MCP Registry のバージョンは別途公開されています。以下のコマンドではこのバージョンを正確に指定します。このドキュメントの後半にあるバージョンを固定していない npx の例では、npm で現在利用できるバージョンが選択されます。
git clone --branch v1.0.0 --depth 1 https://github.com/get-mcp-ads/chatgpt-ads-mcp-server.git
cd chatgpt-ads-mcp-server
npm ci
npm run build
MCP クライアントが、node を使って dist/cli.js の絶対パスを実行し、以下に記載する環境変数を設定するよう構成してください。npm パッケージを使う場合、クライアントの設定は次のようになります。
{
"mcpServers": {
"chatgpt-ads": {
"command": "npx",
"args": ["-y", "@getmcpads/chatgpt-ads-mcp-server"],
"env": {
"OPENAI_ADS_API_KEY": "your-advertiser-api-key",
"OPENAI_ADS_ACCOUNT_ID": "adacct_your_account"
}
}
}
}
ChatGPT Ads に接続せずに設定を確認するには、npm run doctor を実行し、最初に openai_ads_get_account を呼び出してください。
マネージド接続。 ホスト型の getmcpads で ChatGPT Ads を利用する。アカウントを接続し、アシスタントがアクセスできるデータを選択して、ホスト型 MCP 接続を利用できます。現在の機能とプランについては、サイトをご覧ください。
設定
クライアントのシークレット設定を通じて、以下の環境変数を指定してください。
| 変数 | 用途 |
|---|---|
OPENAI_ADS_API_KEY | 必須です。Ads Manager の設定ページで作成した Advertiser API キーです。各キーは1つの広告アカウントに限定されます。OpenAI Platform API キーではありません。 |
OPENAI_ADS_ACCOUNT_ID | 必須です。キーが属するアカウントの adacct_ ID です。それ以外のアカウント ID はすべて拒否され、最初のリクエストでキーが一致するか確認されます。 |
OPENAI_ADS_ENABLE_WRITES | デフォルトは false です。値が正確に true の場合のみ、書き込みツールが登録されます。 |
OPENAI_ADS_ENABLE_ACTIVATION | デフォルトは false です。true にすると、有効化と status: "active" への変更が許可され、配信が開始されて予算が消費される場合があります。書き込みが有効であることが必要です。 |
Ads Manager の広告アカウントと Advertiser API キーが必要です。詳しくはOpenAI の Advertiser API 概要をご覧ください。一部の機能はアカウントごとに有効化されます。Bulk API は限定プレビュー中です。また、API パートナーはAPI パートナーの設定に記載のとおり、各クライアントアカウントでピクセル管理とコンバージョン最適化入札を有効にする必要があります。機能が有効になっていない場合、サーバーは API 本来のアクセスエラーを返します。API の利用には OpenAI の広告規約が適用され、API キーの機密保持が求められます。
このパッケージは環境変数からキーを読み込みます。ブラウザーでのサインインは実行せず、ディスクにも何も書き込みません。キーをローテーションするには、Ads Manager で新しいキーを作成し、変数を更新してサーバーを再起動してください。
安全性と対象範囲
書き込みはデフォルトでプレビューされます。confirm を指定しない呼び出しでは、変更内容、照合対象となったネイティブの状態、および confirmationToken が返されます。利用者がプレビューの内容を正確に承認した後、同じ呼び出しを confirm: true とそのトークンを指定して再実行します。論理的な変更ごとに 1 つの requestId UUID を使用します。作成時には、ネイティブの Idempotency-Key として送信されます。OpenAI は、同じ作成リクエストが再送された場合に重複作成を防ぐためにこれを使用します。
変更を適用する前に、サーバーはネイティブの状態を再度読み込み、プレビュー後に状態が変わっていれば書き込みを拒否します。適用後は、キャンペーン、広告グループ、広告、フィード商品を読み戻し、変更が確認されたかどうかを報告します。
キャンペーン、広告グループ、広告は一時停止状態で作成されます。OPENAI_ADS_ENABLE_ACTIVATION=true でない限り、有効化は拒否されます。また、配信を開始する可能性のあるプレビューには activationMaySpend: true が含まれます。
結果が不確かな書き込みは UNKNOWN として記録され、再送信されることはありません。それ以外の判断をする前に、openai_ads_get_mutation でレシートとネイティブの状態を確認してください。プレビューとレシートはメモリ内に保存されるため、再起動すると失われます。
すべてのリクエストの前にアカウントが確認されます。不明な引数は拒否され、ネストされたリクエスト本文は固定されたネイティブスキーマに照らして検証されます。
リクエストの送信先は api.ads.openai.com のみで、タイムアウトは 30 秒、レスポンスの上限は 8 MiB です。リダイレクトは拒否されます。キーはプロバイダーからのテキストから削除され、ネイティブメッセージが返されるのは検証エラーの場合のみです。API では、エンドポイントあたり毎分 600 件、全体で 1,200 件のリクエストが許可されます。スロットリングされたリクエストは、再試行なしで RATE_LIMITED を返します。
予算と入札単価はアカウント通貨のマイクロ単位の整数で指定します(1,000,000 が 1 単位です)。報告される費用、CPC、CPM は主要単位を使用し、CTR とコンバージョン率は小数で表されます。値がない場合は null のままです。商品フィードの価格は補助単位を使用します(7999 は USD 79.99 です)。
このサーバーが公開するのは、API の審査済みサブセットです。API キーのプロビジョニング、請求と支出上限の変更、アカウント管理、パートナーアカウントの作成、カスタムオーディエンスの作成とメンバーのアップロード、リード同期用 Webhook、SFTP 認証情報は対象外です。上流に新しいエンドポイントが追加されても、自動的に公開されることはありません。
正確なスキーマは tools/list または server-card.json を、ネストされたリクエストフィールドは openai_ads_get_write_schema を、プロバイダーの詳細は公式 API リファレンスを参照してください。
ホステッドオプション
ChatGPT Ads 向け getmcpads は、ホステッド接続とアカウント選択を管理します。 ホステッド版とソースリリースでは内容が異なる場合があります。お問い合わせ先:[email protected]。
開発
npm run typecheck
npm run lint
npm run build
npm test
npm run catalog
すべてのテストは、合成レスポンスを使用してオフラインで実行されます。実際のアカウントの読み取りや変更は行われません。固定スキーマを更新するには、公式の OpenAPI ドキュメントを保存し、node scripts/generate-contracts.mjs <path> <date> を実行します。
ツール
すべてのツールを以下に示します。パラメーターと出力の完全なスキーマについては、server-card.json を参照してください。すべてのツールは、OPENAI_ADS_ACCOUNT_ID に設定されたアカウントである adAccountId を受け取ります。
30 個の読み取りツール
| ツール | 目的 | | --- | --- | | `openai_ads_get_account` | アカウント名、通貨、タイムゾーン、ステータス、ブランド審査を読み取り、キーがそのアカウントに属していることを確認します。 | | `openai_ads_get_campaigns` | キャンペーンの1ページ分を一覧表示します。 | | `openai_ads_get_campaign` | 予算、スケジュール、ターゲティングを含む1つのキャンペーンを読み取ります。 | | `openai_ads_get_ad_groups` | キャンペーンの広告グループの1ページ分を一覧表示します。 | | `openai_ads_get_ad_group` | 入札、コンテキストヒント、商品セットを含む1つの広告グループを読み取ります。 | | `openai_ads_get_ads` | クリエイティブのメタデータと審査ステータスを含む、広告グループの広告の1ページ分を一覧表示します。 | | `openai_ads_get_ad` | クリエイティブと審査ステータスを含む1つの広告を読み取ります。 | | `openai_ads_list_ad_creatives` | チャットカードのクリエイティブを、ファイル ID と署名付き画像リンクとともに一覧表示し、期限切れのリンクを更新します。 | | `openai_ads_get_insights` | アカウント、キャンペーン、広告グループ、広告別のパフォーマンスを、任意の国、デバイス、プラットフォームの内訳1つとアトリビューション設定とともに読み取ります。 | | `openai_ads_search_locations` | 地域ターゲティング用に、国、地域、市場のロケーション ID を検索します。 | | `openai_ads_get_audit_logs` | キャンペーン、広告グループ、広告に対して記録された変更を一覧表示します。 | | `openai_ads_get_spend_limits` | アカウントの支出上限期間を読み取ります。 | | `openai_ads_get_landing_page_crawl` | 広告の送信済みバージョンに対するランディングページのクロール結果を読み取ります。 | | `openai_ads_get_conversion_settings` | コンバージョンイベントの設定、つまりキャンペーンで使用できる目標を一覧表示します。 | | `openai_ads_get_conversion_pixels` | コンバージョンピクセルと接続済みのピクセル ID を一覧表示します。 | | `openai_ads_get_conversion_events` | ピクセルまたはサーバー統合からデータが送信されていることを確認するため、直近のサンプルコンバージョンイベントを一覧表示します。 | | `openai_ads_get_conversion_insights` | アトリビューションされたコンバージョンの合計または日別の値を、任意で国別またはデバイス別に読み取ります。 | | `openai_ads_get_feeds` | 商品フィードを、任意で商品数とともに一覧表示します。 | | `openai_ads_get_feed_uploads` | 直近の商品フィードのアップロードとその結果を一覧表示します。 | | `openai_ads_get_feed_settings` | フィードの表示設定とオーガニックリスティング設定を読み取ります。 | | `openai_ads_get_feed_products` | 広告グループの商品フィルターに一致するフィード商品を一覧表示します。 | | `openai_ads_get_custom_audiences` | カスタムオーディエンスを一覧表示します。 | | `openai_ads_get_custom_audience` | 1つのカスタムオーディエンスとそのマッチ数を読み取ります。 | | `openai_ads_get_audience_operations` | カスタムオーディエンスで受け付けられた操作を一覧表示します。 | | `openai_ads_get_audience_operation` | 1つのカスタムオーディエンス操作の状態を読み取ります。 | | `openai_ads_get_bulk_job` | Bulk API ジョブのステータスを読み取ります。 | | `openai_ads_get_bulk_job_operations` | Bulk API ジョブの操作結果の1ページ分を読み取ります。 | | `openai_ads_get_write_schema` | 固定されたネイティブリクエスト定義、アップロードと一括処理の上限、および除外事項を読み取ります。 | | `openai_ads_get_write_context` | キャンペーンを提案する前に、対応している入札の組み合わせとともに、アカウント、コンバージョン設定、フィードを読み取ります。 | | `openai_ads_get_mutation` | このサーバープロセスが保持している書き込みプレビューまたはレシートを読み取ります。 |書き込みツール28個
デフォルトでは無効です。明示的に確認されない限り、呼び出しはプレビューを返します。使用前に設定と正確なスキーマを確認してください。
| ツール | 目的 | | --- | --- | | `openai_ads_create_campaign` | 目的、予算、スケジュール、ターゲティングを設定した一時停止中のキャンペーンを作成します。 | | `openai_ads_update_campaign` | 予算、スケジュール、ターゲティングなどのキャンペーン設定を更新します。 | | `openai_ads_pause_campaign` | キャンペーンを一時停止します。 | | `openai_ads_activate_campaign` | キャンペーンを有効化します。予算を消費する可能性があります。`OPENAI_ADS_ENABLE_ACTIVATION` が必要です。 | | `openai_ads_archive_campaign` | キャンペーンをアーカイブします。 | | `openai_ads_create_ad_group` | 入札、コンテキストのヒント、商品セットを設定した一時停止中の広告グループを作成します。 | | `openai_ads_update_ad_group` | 入札やコンテキストのヒントなどの広告グループ設定を更新します。 | | `openai_ads_pause_ad_group` | 広告グループを一時停止します。 | | `openai_ads_activate_ad_group` | 広告グループを有効化します。予算を消費する可能性があります。`OPENAI_ADS_ENABLE_ACTIVATION` が必要です。 | | `openai_ads_archive_ad_group` | 広告グループをアーカイブします。 | | `openai_ads_create_ad` | チャットカードまたは商品テンプレートのクリエイティブを使った一時停止中の広告を作成します。作成後、審査に入ります。 | | `openai_ads_update_ad` | 広告の名前またはクリエイティブを更新します。クリエイティブを編集すると、新たに審査が開始されます。 | | `openai_ads_pause_ad` | 広告を一時停止します。 | | `openai_ads_activate_ad` | 広告を有効化します。予算を消費する可能性があります。`OPENAI_ADS_ENABLE_ACTIVATION` が必要です。 | | `openai_ads_archive_ad` | 広告をアーカイブします。 | | `openai_ads_create_ad_preview` | 既存の広告の一時的なプレビューを作成します。 | | `openai_ads_rename_campaign` | キャンペーンの名前を変更します。変更されるのは名前のみです。 | | `openai_ads_rename_ad_group` | 広告グループの名前を変更します。変更されるのは名前のみです。 | | `openai_ads_rename_ad` | 広告の名前を変更します。変更されるのは名前のみです。 | | `openai_ads_upload_image` | 640 x 640 以上の PNG、JPEG、または WebP 形式のデータをアップロードし、チャットカード用のファイル ID を返します。 | | `openai_ads_upload_image_url` | OpenAI に公開 HTTPS 画像を取り込ませ、ファイル ID を返します。 | | `openai_ads_create_conversion_setting` | 標準イベントまたはカスタムイベントのコンバージョンイベント設定を作成します。 | | `openai_ads_create_conversion_pixel` | コンバージョンピクセルを作成します。 | | `openai_ads_create_feed` | 商品フィードを作成します。 | | `openai_ads_update_feed_settings` | フィードの表示名とオーガニック掲載設定を更新します。 | | `openai_ads_update_feed_products` | 既存の商品バリエーション最大 500 件のタイトル、価格、または在庫状況を更新します。 | | `openai_ads_archive_feed` | 商品フィードをアーカイブします。 | | `openai_ads_submit_bulk_job` | 最大 1,000 件の操作を含む Bulk API ジョブを送信します。デフォルトでは検証のみ行います。 |1 リソース
| リソース | 内容 |
|---|---|
openai-ads://guide | アカウントのスコープ、書き込みフロー、単位、レート制限、対応指標、レベル、内訳、アトリビューションのオプション。 |
ライセンス
Apache License 2.0。NOTICE をご覧ください。
getmcpads のその他のサービス
Meta Ads · Google Ads · Google Analytics 4 · Google Search Console · TikTok Ads · Pinterest Ads · X Ads
getmcpads の Emmanuel が保守しています。お問い合わせ:[email protected]。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
