Apple Ads Mcp について
Apple Ads Mcpは、AIクライアントを通じてApple Search Adsのキャンペーンを管理するマーケターやチーム向けのMCPサーバーです。ツール、リソース、ワークフロープロンプトを通じて、キャンペーン操作、レポート、キーワードとクリエイティブの管理、組織の切り替えを提供します。
主な機能
- 01キャンペーンと広告グループの管理
- 02ターゲティングキーワードと入札の管理
- 03実績と検索語句レポートの確認
- 04クリエイティブと予算注文の管理
- 05複数組織の切り替え
活用シーン
- 01期間を指定してキャンペーン実績を確認
- 02キャンペーンの予算と状態を調整
- 03検索語句を見つけて関連キーワードを追加
- 04組織間でキャンペーン実績を比較
MCP 対応
このサーバーはSTDIO経由でMCP対応クライアントをApple Search Ads API v5に接続します。54個のツール、3つのリソース、6つのワークフロープロンプトを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y apple-ads-mcpASA_CLIENT_IDApple Search Ads client ID (starts with SEARCHADS.)ASA_TEAM_IDApple Search Ads team ID (starts with SEARCHADS.)ASA_KEY_IDシークレットApple Search Ads key ID (UUID)ASA_PRIVATE_KEY_PATHシークレットAbsolute path to your PKCS#8 private key fileASA_ORG_IDOrganization ID (optional, use list_organizations to switch at runtime)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Apple Ads MCP
Apple Search Ads API v5 用のMCP サーバーです。
MCP 対応の任意の AI クライアントに接続し、自然言語でキャンペーン、キーワード、予算、レポートを管理できます。
クイックスタート • ツール • リソース • プロンプト • クライアント
AI に次のような質問や依頼ができます:
「先週のキャンペーンの成果はどうでしたか?」 「ブランドキャンペーンを一時停止して、ディスカバリーの予算を 500 ドルに増やしてください。」 「広告の表示につながっている検索語句は何ですか?最適なものを完全一致キーワードとして追加してください。」
54 個のツール、3 個のリソース、6 個のプロンプトに対応しています。キャンペーン、広告グループ、キーワード、クリエイティブ、予算、検索語句、地域ターゲティング、インプレッションシェア、パフォーマンスレポートを扱えます。
主な機能
| 機能 | 説明 |
|---|---|
| キャンペーン管理 | キャンペーンと広告グループの作成、更新、一時停止、削除 |
| キーワードの最適化 | ターゲティングキーワードと除外キーワードの追加・削除、入札額の更新 |
| パフォーマンスレポート | 日付プリセットを使ったキャンペーン、広告グループ、キーワード、広告、地域のレポート |
| 検索語句の分析 | 広告の表示につながった実際の検索クエリを確認 |
| クリエイティブ管理 | 広告、クリエイティブ、製品ページの管理 |
| 予算管理 | 予算オーダーの作成と管理、利用状況の分析 |
| インプレッションシェア | インプレッションシェアレポートの生成と取得 |
| 複数組織のサポート | 実行時に組織を切り替え |
クイックスタート
- Apple の認証情報を取得する(約 10 分、初回のみ)
- キーペアを生成する(2 つのコマンド)
- MCP クライアントに追加する
- チャットを始める
セットアップ
ステップ 1 — API ユーザーを招待する
searchads.apple.com でアカウント管理者が実施します。
- Settings → User Management → Invite User に移動します
- API を使用する人のメールアドレスを入力します
- ロールを設定します:
- API Account Manager — 読み書きの完全なアクセス権
- API Account Read Only — 閲覧のみのアクセス権
- 招待を送信します
API ユーザーには、管理者とは別の Apple ID が必要です。管理者の場合は、2 つ目の Apple ID を使用してください。
ステップ 2 — 承認して認証情報をコピーする
招待されたユーザーが実施します。
- メールの招待を承認し、searchads.apple.com にサインインします
- Settings → API タブに移動します
- 次の 3 つの値をコピーして保存します:
- clientId —
SEARCHADS.で始まります - teamId —
SEARCHADS.で始まります - keyId — UUID です
- clientId —
ステップ 3 — キーペアを生成する
ターミナルを開いて実行します:
openssl ecparam -genkey -name prime256v1 -noout -out ~/apple-ads-key.pem && \
openssl pkcs8 -topk8 -nocrypt -in ~/apple-ads-key.pem -out ~/apple-ads-key-pkcs8.pem
次に、公開鍵を生成します:
openssl ec -in ~/apple-ads-key-pkcs8.pem -pubout -out ~/apple-ads-key-public.pem
次のファイルが作成されます:
~/apple-ads-key-pkcs8.pem— 秘密鍵(安全に保管してください。設定で使用します)~/apple-ads-key-public.pem— 公開鍵(次に Apple にアップロードします)
ステップ 4 — 公開鍵を Apple にアップロードする
公開鍵を表示します:
cat ~/apple-ads-key-public.pem
BEGIN / END の行を含む出力全体をコピーし、次の操作を行います:
- searchads.apple.com の Settings → API タブに移動します
- Public Key フィールドに貼り付けます
- Save をクリックします
ステップ 5 — MCP クライアントに追加する
以下からクライアントを選び、ステップ 2 の clientId、teamId、keyId と、ステップ 3 の秘密鍵のフルパスを入力します。
複数の組織がある場合
ASA_ORG_IDを省略し、実行時にlist_organizations/switch_organizationを使用します。または、デフォルトを選択するためにenvに設定します。
クライアント
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json を編集します。
{
"mcpServers": {
"apple-ads": {
"command": "npx",
"args": ["-y", "apple-ads-mcp"],
"env": {
"ASA_CLIENT_ID": "SEARCHADS.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ASA_TEAM_ID": "SEARCHADS.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ASA_KEY_ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ASA_PRIVATE_KEY_PATH": "/Users/yourname/apple-ads-key-pkcs8.pem"
}
}
}
}
保存した後、Claude Desktop を再起動します。
Claude Code
claude mcp add apple-ads \
-e ASA_CLIENT_ID=SEARCHADS.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
-e ASA_TEAM_ID=SEARCHADS.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
-e ASA_KEY_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
-e ASA_PRIVATE_KEY_PATH=/Users/yourname/apple-ads-key-pkcs8.pem \
-- npx -y apple-ads-mcp
Cursor
.cursor/mcp.json に追加します。
{
"mcpServers": {
"apple-ads": {
"command": "npx",
"args": ["-y", "apple-ads-mcp"],
"env": {
"ASA_CLIENT_ID": "SEARCHADS.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ASA_TEAM_ID": "SEARCHADS.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ASA_KEY_ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ASA_PRIVATE_KEY_PATH": "/Users/yourname/apple-ads-key-pkcs8.pem"
}
}
}
}
VS Code
settings.json に追加します。
{
"mcp": {
"servers": {
"apple-ads": {
"command": "npx",
"args": ["-y", "apple-ads-mcp"],
"env": {
"ASA_CLIENT_ID": "SEARCHADS.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ASA_TEAM_ID": "SEARCHADS.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ASA_KEY_ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ASA_PRIVATE_KEY_PATH": "/Users/yourname/apple-ads-key-pkcs8.pem"
}
}
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json に追加します。
{
"mcpServers": {
"apple-ads": {
"command": "npx",
"args": ["-y", "apple-ads-mcp"],
"env": {
"ASA_CLIENT_ID": "SEARCHADS.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ASA_TEAM_ID": "SEARCHADS.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ASA_KEY_ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ASA_PRIVATE_KEY_PATH": "/Users/yourname/apple-ads-key-pkcs8.pem"
}
}
}
}
その他の MCP クライアント
このサーバーは STDIO トランスポートを使用します。MCP 互換のクライアントであれば、次を実行して接続できます。
npx -y apple-ads-mcp
以下の環境変数を設定します。
| 変数 | 説明 |
|---|---|
ASA_CLIENT_ID | クライアント ID(SEARCHADS. で始まります) |
ASA_TEAM_ID | チーム ID(SEARCHADS. で始まります) |
ASA_KEY_ID | キー ID(UUID) |
ASA_PRIVATE_KEY_PATH | PKCS#8 秘密鍵の絶対パス |
ASA_ORG_ID | (任意) デフォルトで使用する組織 ID |
インラインキー(ファイルなし)
ASA_PRIVATE_KEY_PATH を ASA_PRIVATE_KEY に置き換え、改行を \n で表した PEM の内容を貼り付けます。
"ASA_PRIVATE_KEY": "-----BEGIN PRIVATE KEY-----\nMIGH...your-key...\n-----END PRIVATE KEY-----"
ツール
| カテゴリ | 数 | できること |
|---|---|---|
| 組織 | 3 | 組織の一覧表示と切り替え。ユーザーの詳細を取得します。 |
| キャンペーン | 6 | キャンペーンの一覧表示、作成、更新、削除。パフォーマンスレポートを取得します。 |
| 広告グループ | 6 | キャンペーン内の広告グループを管理します。広告グループのレポートを取得します。 |
| キーワード | 11 | ターゲティングキーワードと除外キーワードを追加/削除します。入札額を更新します。キーワードレポートを取得します。 |
| 検索語句 | 1 | 広告をタップする前にユーザーが実際に検索した語句を確認します。 |
| 広告 | 7 | 広告の一覧表示、作成、更新、削除。広告レポートと却下理由を取得します。 |
| クリエイティブ | 5 | クリエイティブと製品ページを管理します。 |
| 予算オーダー | 4 | 予算オーダーの作成、更新、一覧表示、詳細の取得を行います。 |
| アプリと地域 | 5 | 対象となるアプリの検索、適格性の確認、アセットの検索、地域の検索を行います。 |
| 地域別パフォーマンス | 1 | 国/地域別のパフォーマンス内訳を確認します。 |
| インプレッションシェア | 3 | カスタムのインプレッションシェアレポートを作成、一覧表示、取得します。 |
| 最適化 | 2 | キャンペーンのスナップショットと予算の利用状況を分析します。 |
54 個すべてのツール
| カテゴリ | ツール |
|---|---|
| 組織 | list_organizations、switch_organization、get_me_details |
| キャンペーン | list_campaigns、get_campaign_details、create_campaign、update_campaign、delete_campaign、get_campaign_report |
| 広告グループ | list_ad_groups、get_ad_group、create_ad_group、update_ad_group、delete_ad_group、get_adgroup_report |
| キーワード | get_keyword_report、list_targeting_keywords、get_targeting_keyword、add_targeting_keywords、update_targeting_keywords、delete_targeting_keywords、list_negative_keywords、get_negative_keyword、add_negative_keywords、update_negative_keywords、delete_negative_keywords |
| 検索語句 | get_search_term_report |
| 広告 | list_ads、get_ad、create_ad、update_ad、delete_ad、get_ad_report、find_ad_rejection_reasons |
| クリエイティブ | list_creatives、get_creative、create_creative、list_product_pages、get_product_page_by_id |
| 予算注文 | list_budget_orders、get_budget_order、create_budget_order、update_budget_order |
| アプリと地域 | search_apps、get_app_details、get_app_eligibility、find_app_assets、search_geolocations |
| 地域別パフォーマンス | get_geo_performance |
| インプレッションシェア | create_impression_share_report、get_impression_share_report_by_id、list_impression_share_reports |
| 最適化 | get_campaign_snapshot、get_budget_analysis |
リソース
サーバーは 3 つのリソースを公開しています。
| URI | 説明 |
|---|---|
apple-ads://countries | Apple Search Ads がサポートする国と地域 |
apple-ads://device-sizes | クリエイティブアセット用のアプリプレビューのデバイスサイズ |
apple-ads://metrics-glossary | すべてのレポート指標(CPA、CPT、TTR など)の定義、計算式、ベンチマーク |
プロンプト
一般的なタスクをガイドする、組み込みのワークフロープロンプトが 6 つあります。
| プロンプト | 説明 |
|---|---|
campaign_health_check | 包括的なキャンペーン分析。費用、コンバージョン、CPA の推移を確認し、問題を特定します |
keyword_optimization | キーワードと検索語句の最適化ワークフロー。無駄な費用と新たな機会を見つけます |
new_campaign_setup | 新しいキャンペーンの作成をガイドします。アプリの選択、構成、キーワード、予算の設定手順を案内します |
budget_reallocation | キャンペーン横断の予算分析。予算の過剰消化や未消化を特定し、予算の再配分を提案します |
creative_review | クリエイティブの A/B レビュー。広告のパフォーマンスを比較し、却下された広告を特定して、最適な広告を提案します |
geo_expansion | 地域拡大の分析。現在の市場を順位付けし、新たに参入する市場を特定します |
トラブルシューティング
「pkcs8 must be PKCS#8 formatted string」 キーの形式が正しくありません。手順 3 の
openssl pkcs8コマンドをもう一度実行してください。
「No organization selected」
list_organizationsを実行してからswitch_organizationを実行するか、設定にASA_ORG_IDを追加してください。
「Token request failed (401)」 clientId、teamId、keyId が Apple の API タブの値と一致していることを確認してください。公開鍵をアップロードしたことも確認してください。
「Failed to read private key」
~/...ではなく、絶対パス(例:/Users/yourname/...)を指定してください。
サーバーがすぐに切断される 必須の認証情報が不足しています。
ASA_CLIENT_ID、ASA_TEAM_ID、ASA_KEY_ID、ASA_PRIVATE_KEY_PATHの 4 つすべてが必要です。
開発
git clone https://github.com/javiergalloroca/AppleAdsMCP.git
cd AppleAdsMCP
npm install
npm run build
npm start
ホットリロードを行うには、npm run dev を実行してください。
コントリビューションのガイドラインについては、CONTRIBUTING.md を参照してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。