meta-ads-mcp

Meta Marketing API v26.0 用の MCP サーバーです。Facebook と Instagram の広告キャンペーン、オーディエンス、クリエイティブ、インサイト、カタログなどを管理する 134 個のツールを提供します。
使用する場面
次のような場合にこの MCP を使用します。
- 「Facebook 広告キャンペーンを新規作成する」 —
create_campaign、create_adset、create_ad、create_creative を使って、フルファネルを構築します
- 「今日の広告のパフォーマンスを確認する」 — 今日の日付範囲を指定して、
get_account_insights または get_campaign_insights を使用します
- 「ROAS が 2 未満のキャンペーンをすべて一時停止する」 —
list_campaigns と get_campaign_insights を使ってパフォーマンスの低いキャンペーンを見つけてから、update_campaign で一時停止します
- 「2 つの広告クリエイティブ間で A/B テストを設定する」 —
create_experiment を使って、広告セット間の比較テストを実施します
- 「顧客から類似オーディエンスを作成する」 —
create_custom_audience、add_users_to_audience の順に使用し、その後 create_lookalike_audience を使います
- 「広告画像をアップロードしてカルーセル広告を作成する」 — 各画像に
upload_image を使用し、その後カルーセル形式で create_creative を使います
- 「過去 30 日間の詳細なパフォーマンスレポートを取得する」 — 広い日付範囲には
create_async_report を使用し、その後 get_async_report で取得します
- 「Facebook 広告ライブラリで競合他社の広告を検索する」 —
search_ad_library を使って公開広告データを検索します
- 「パフォーマンスの低い広告を一時停止する自動ルールを設定する」 — CPA がしきい値を超えるなどの条件を指定して
create_rule を使用します
- 「ダイナミック広告用の商品カタログを管理する」 —
create_catalog、create_feed、upload_feed を使ってダイナミック商品広告を設定します
v1.6.0 の新機能
create_adset で bid_amount を指定できるようになりました。作成と更新では dsa_beneficiary および dsa_payor も指定できます。EU をターゲットとする広告では、必須の値をそれぞれ指定するか、対応するアカウントのデフォルトを設定してください。支払者の値は受益者から自動的にコピーされません。
- 広告と広告セットのリスト取得では、スコープが指定されている場合にキャンペーン/広告セットのエッジを使用します。キャンペーンと広告セットを組み合わせたフィルター、および明示的なアカウント ID の整合性を確認します。
create_adset と update_adset で destination_type、attribution_spec、adset_schedule、pacing_type、validate_only を指定できるようになりました。既存の呼び出しでは、引き続き要求された書き込みが実行されます。変更を加えずに Meta の検証を依頼するには、validate_only: true を設定してください。検証に成功しても広告セットは作成されません。
- 時間単位のスケジュールでは、分の範囲と曜日を指定できます(日曜日 = 0)。
timezone_type には USER または ADVERTISER を指定してください。スケジュールを設定すると、day_parting ペーシングが追加されます。Meta は有効なライフタイム予算、目的の適格性、アトリビューションの制限を検証します。予算やステータスが自動的に変更されることはありません。
create_custom_audience で、ルールベースのオーディエンス用に JSON の rule、pixel_id、retention_days を指定できるようになりました。オーディエンスの作成は実際の書き込みであり、ドライランではありません。
公式の広告セット作成および広告セット更新の仕様を参照してください。
v1.5.0 の新機能
- コンバージョンツールでは、既存の
events JSON 入力を検証し、必須の data 配列として送信します。Events Manager で受信を確認するには test_event_code を使用してください。オフラインイベントではデータセット ID を使用し、店舗イベントでは action_source=physical_store を指定します。
- クリエイティブの作成では、トップレベルの
destination_spec、wamo_whatsapp_identity_spec、degrees_of_freedom_spec JSON オブジェクトを指定できます。ダイナミッククリエイティブでは、ページのアイデンティティを指定する object_story_spec も使用できます。v26 の Shops のデフォルト宛先をオプトアウトするには、destination_spec に {"destination_type":"WEBSITE_AND_SHOP_OPT_OUT"} を設定してください。
- v1.4.1 以降の、非同期レポート結果の完全な取得、トークンの延長、予算スケジュールの修正が含まれます。一部の詳細なインサイトの内訳を利用するには、Ads Manager でのオプトインが必要です。空の応答が必ずしもパフォーマンスがゼロであることを意味するわけではありません。
インストール
MCP ホストの npx 環境を含め、Node.js 20 以降が必要です。
{
"mcpServers": {
"meta-ads": {
"command": "npx",
"args": ["-y", "@mikusnuz/meta-ads-mcp"],
"env": {
"META_ADS_ACCESS_TOKEN": "your-access-token",
"META_AD_ACCOUNT_ID": "123456789",
"META_APP_ID": "your-app-id",
"META_APP_SECRET": "your-app-secret",
"META_BUSINESS_ID": "your-business-id",
"META_PIXEL_ID": "your-pixel-id"
}
}
}
}
環境変数
| 変数 | 必須 | 説明 |
|---|
META_ADS_ACCESS_TOKEN | はい | Meta Marketing API のアクセストークン |
META_AD_ACCOUNT_ID | はい | 広告アカウント ID(act_ 接頭辞を含まない数値) |
META_APP_ID | 任意 | アプリ ID — トークン交換/延長およびデバッグに必要 |
META_APP_SECRET | 任意 | アプリシークレット — トークン交換/延長およびデバッグに必要 |
META_BUSINESS_ID | 任意 | Business Manager ID — ビジネスツールに必要 |
META_PIXEL_ID | 任意 | ピクセル ID — コンバージョンツールに必要 |
ツール(134)
キャンペーン管理(25)
| ツール | 説明 |
|---|
list_campaigns | フィルタリングとページネーションを使用してキャンペーンを一覧表示 |
get_campaign | ID でキャンペーンの詳細を取得 |
create_campaign | 新しいキャンペーンを作成 |
update_campaign | キャンペーンの設定を更新 |
delete_campaign | キャンペーンを削除 |
copy_campaign | 広告セットと広告を含めて既存のキャンペーンをコピー |
get_campaign_adsets | キャンペーン内の広告セットを一覧表示 |
get_campaign_ads | キャンペーン内の広告を一覧表示 |
get_campaign_leads | キャンペーンからリードを取得 |
list_adsets | フィルタリングして広告セットを一覧表示 |
get_adset | ID で広告セットの詳細を取得 |
create_adset | 新しい広告セットを作成 |
update_adset | 広告セットの設定を更新 |
delete_adset | 広告セットを削除 |
copy_adset | 既存の広告セットを同じキャンペーンまたは別のキャンペーンにコピー |
get_adset_targeting_sentence | ターゲティングの内容を人が読める形式で取得 |
get_adset_ads | 広告セット内の広告を一覧表示 |
get_adset_leads | 広告セットからリードを取得 |
list_ads | フィルタリングして広告を一覧表示 |
get_ad | ID で広告の詳細を取得 |
create_ad | 新しい広告を作成 |
update_ad | 広告の設定を更新 |
delete_ad | 広告を削除 |
copy_ad | 既存の広告を同じ広告セットまたは別の広告セットにコピー |
get_ad_preview | 広告のプレビュー HTML を生成 |
get_delivery_estimate | 広告セットの配信予測を取得 |
クリエイティブ(6)
| ツール | 説明 |
|---|
list_creatives | 広告クリエイティブを一覧表示 |
get_creative | クリエイティブの詳細を取得 |
create_creative | 新しい広告クリエイティブを作成 |
update_creative | 広告クリエイティブを更新 |
create_dynamic_creative | ダイナミッククリエイティブを作成 |
generate_preview | 既存の広告を使わずに、クリエイティブの仕様から広告プレビューを生成 |
メディアアセット(12)
| ツール | 説明 |
|---|
list_images | 広告画像を一覧表示 |
upload_image | URL またはローカルファイルから画像をアップロード |
get_image | 画像の詳細を取得 |
delete_image | 画像を削除 |
list_videos | 広告動画を一覧表示 |
upload_video | URL またはローカルファイルから動画をアップロード |
get_video | 動画の詳細を取得 |
delete_video | 動画を削除 |
list_canvases | Instant Experience キャンバスを一覧表示 |
get_canvas | キャンバスの詳細を取得 |
create_canvas | キャンバスを作成 |
delete_canvas | キャンバスを削除 |
オーディエンスとターゲティング(16)
| ツール | 説明 |
|---|
list_custom_audiences | カスタムオーディエンスを一覧表示 |
get_audience | オーディエンスの詳細を取得 |
create_custom_audience | カスタムオーディエンスを作成 |
update_audience | オーディエンスの設定を更新 |
delete_audience | オーディエンスを削除 |
add_users_to_audience | カスタムオーディエンスにユーザーを追加 |
remove_users_from_audience | カスタムオーディエンスからユーザーを削除 |
create_lookalike_audience | 類似オーディエンスを作成 |
get_audience_health | オーディエンスの健全性、配信状況、マッチ率を取得 |
list_saved_audiences | 保存済みオーディエンスを一覧表示 |
get_saved_audience | 保存済みオーディエンスの詳細を取得 |
search_targeting | ターゲティングの興味・関心、行動、デモグラフィックを検索 |
search_locations | ターゲティング可能な場所を検索 |
search_targeting_map | ターゲティングカテゴリのツリーを参照 |
get_reach_estimate | ターゲティング仕様に基づいてオーディエンスのリーチを推定 |
get_targeting_suggestions | 関連するターゲティング候補を取得 |
インサイトとレポート(6)
| ツール | 説明 |
|---|
get_account_insights | アカウントレベルのパフォーマンス指標 |
get_campaign_insights | キャンペーンレベルのパフォーマンス指標 |
get_adset_insights | 広告セットレベルのパフォーマンス指標 |
get_ad_insights | 広告レベルのパフォーマンス指標 |
create_async_report | 非同期インサイトレポートを作成 |
get_async_report | レポート実行状況をポーリングし、完了後にその /insights の結果を取得 |
date_preset の値には、today、yesterday、last_7d、last_30d などの小文字の Graph API 識別子を指定します。create_async_report は常に非同期ジョブを作成します。get_async_report はステータスをすぐに返し、デフォルトではステータスが Job Completed になった後に、ページ分割された結果エッジを取得します。
リード(5)
| ツール | 説明 |
|---|
get_form_leads | リードフォームからリードを取得 |
get_lead | ID を指定して単一のリードを取得 |
create_lead_form | ページに新しいリード獲得フォームを作成 |
list_lead_forms | ページのリード獲得フォームを一覧表示 |
get_lead_form | リードフォームの詳細を取得 |
カタログとコマース(17)
| ツール | 説明 |
|---|
list_catalogs | 商品カタログを一覧表示 |
get_catalog | カタログの詳細を取得 |
create_catalog | 商品カタログを作成 |
update_catalog | カタログを更新 |
list_product_sets | カタログ内の商品セットを一覧表示 |
create_product_set | 商品セットを作成 |
get_product_set | 商品セットの詳細を取得 |
update_product_set | 商品セットを更新 |
list_products | カタログ内の商品を一覧表示 |
get_product | 商品の詳細を取得 |
update_product | 商品を更新 |
list_feeds | カタログのデータフィードを一覧表示 |
create_feed | データフィードを作成 |
upload_feed | データをフィードにアップロード |
get_feed_uploads | フィードのアップロード履歴を取得 |
batch_products | 商品を一括作成、更新、または削除(1 リクエストあたり最大 5,000 件) |
get_batch_status | カタログの一括操作のステータスを確認 |
自動化とルール(5)
| ツール | 説明 |
|---|
list_rules | 自動化ルールを一覧表示 |
get_rule | ルールの詳細を取得 |
create_rule | 自動化ルールを作成 |
update_rule | ルールを更新 |
delete_rule | ルールを削除 |
実験(5)
| ツール | 説明 |
|---|
list_experiments | A/B テストの実験を一覧表示 |
create_experiment | 実験を作成 |
get_experiment | 実験の詳細を取得 |
update_experiment | 実験を更新 |
get_experiment_results | 実験結果を取得 |
コンバージョン(4)
| ツール | 説明 |
|---|
send_conversion_event | Conversions API を介してサーバー側のコンバージョンイベントを送信 |
send_offline_event | オフラインコンバージョンイベントを送信 |
list_offline_event_sets | オフラインイベントセットを一覧表示 |
create_offline_event_set | オフラインイベントセットを作成 |
予算と計画(8)
| ツール | 説明 |
|---|
list_budget_schedules | キャンペーンまたは広告セットの budget_schedules エッジからスケジュールを一覧表示します |
create_budget_schedule | キャンペーンまたは広告セットにスケジュールを作成します |
update_budget_schedule | 予算スケジュールを更新します |
delete_budget_schedule | 予算スケジュールを削除します |
list_rf_predictions | リーチ&フリークエンシーの予測を一覧表示します |
create_rf_prediction | リーチ&フリークエンシーの予測を作成します |
get_rf_prediction | 予測の詳細を取得します |
delete_rf_prediction | 予測を削除します |
ブランドセーフティ(5)
| ツール | 説明 |
|---|
list_block_lists | パブリッシャーのブロックリストを一覧表示します |
create_block_list | ブロックリストを作成します |
add_to_block_list | URL/ドメインをブロックリストに追加します |
remove_from_block_list | ブロックリストから項目を削除します |
delete_block_list | ブロックリストを削除します |
アカウントとビジネス(15)
| ツール | 説明 |
|---|
get_ad_account | 広告アカウントの詳細を取得します |
list_ad_accounts | ビジネスの広告アカウントを一覧表示します |
update_ad_account | 広告アカウントの設定を更新します |
get_account_activities | アカウントのアクティビティログを取得します |
list_account_users | アカウントへのアクセス権を持つユーザーを一覧表示します |
list_businesses | アクセス権を持つビジネスを一覧表示します |
get_business | ビジネスの詳細を取得します |
list_business_ad_accounts | ビジネス内の広告アカウントを一覧表示します |
list_business_users | ビジネス内のユーザーを一覧表示します |
add_business_user | ビジネスにユーザーを追加します |
remove_business_user | ビジネスからユーザーを削除します |
list_business_pages | ビジネスが所有するFacebookページを一覧表示します |
list_business_instagram_accounts | ビジネスが所有するInstagramアカウントを一覧表示します |
list_system_users | ビジネスのシステムユーザーを一覧表示します |
create_system_user | システムユーザーを作成します |
認証とトークン(3)
| ツール | 説明 |
|---|
exchange_token | 短期間有効なトークンを長期間有効なトークンと交換します |
refresh_token | ドキュメントに記載された交換フローを通じて、有効な長期間有効なユーザートークンの有効期間を延長します |
debug_token | トークンのメタデータをデバッグ/確認します |
広告ライブラリ(1)
| ツール | 説明 |
|---|
search_ad_library | 公開広告データをMeta広告ライブラリで検索します |
リソース(3)
| URI | 説明 |
|---|
ads://account | 広告アカウントの概要 — ステータス、残高、通貨、タイムゾーン、合計広告費 |
ads://campaigns-overview | 予算情報を含むすべての実施中キャンペーン |
ads://spending-today | 本日の広告費の概要 — 広告費、インプレッション数、クリック数、リーチ |
プロンプト(3)
| プロンプト | 説明 |
|---|
campaign_wizard | 広告キャンペーンをゼロから作成するためのステップごとのガイド |
performance_report | 詳細な内訳と推奨事項を含めて広告のパフォーマンスを分析します |
audience_builder | Metaのターゲティングツールを使ってターゲットオーディエンスを作成、調整します |
必要な権限
使用するツールに応じて、Metaアクセストークンには以下の権限が必要です。
| 権限 | ツール |
|---|
ads_management | すべてのキャンペーン、広告セット、広告、クリエイティブのCRUD操作 |
ads_read | すべての読み取り/一覧表示操作とインサイト |
business_management | ビジネスツール、システムユーザー、アカウントの割り当て |
leads_retrieval | リードフォームとリードデータのツール |
catalog_management | カタログ、商品セット、商品、フィードのツール |
pages_read_engagement | ページにリンクされたリードフォーム |
ライセンス
MIT