LinkedIn Ads について
LinkedIn Ads MCP サーバーは、広告アカウントのデータと操作を MCP クライアントに接続します。キャンペーンの確認や広告変更の準備を行うチーム向けで、アカウント制限と、既定で無効なプレビュー付き書き込みが特徴です。
主な機能
- 01アカウント、キャンペーン、クリエイティブの読み取り
- 02実績、属性、アトリビューションの分析
- 03ターゲティングとメディアライブラリの確認
- 04既定で無効、プレビュー付きの書き込み
- 05アカウント制限とエンティティ検証
活用シーン
- 01広告アカウントの状態確認
- 02広告実績と属性の分析
- 03キャンペーンや広告の下書き作成
- 04レポートクエリとターゲティング候補の検証
MCP 対応
stdio 対応の MCP クライアントに、18 個の読み取りツール、任意で有効化できる 15 個の書き込みツール、6 個のリソースを提供します。書き込みには明示的な有効化と確認が必要で、リクエストは LinkedIn Marketing API に直接送られます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @getmcpads/linkedin-ads-mcp-serverLINKEDIN_ADS_ACCESS_TOKENシークレットMember access token from your own LinkedIn app, with r_ads and r_ads_reporting. Keep it secret.LINKEDIN_ADS_REFRESH_TOKENシークレットProgrammatic refresh token. With the client ID and secret, the token is renewed in memory.LINKEDIN_ADS_CLIENT_IDClient ID of your LinkedIn app, needed for refresh.LINKEDIN_ADS_CLIENT_SECRETシークレットClient secret of your LinkedIn app, needed for refresh.LINKEDIN_ADS_ACCOUNT_IDSComma-separated numeric ad account IDs this server may access, 1 to 100. Required even for reads.LINKEDIN_ADS_SCOPESScopes actually granted to the token. When set, writes require rw_ads.LINKEDIN_ADS_ENABLE_WRITEStrue exposes the 15 write tools. Defaults to false.LINKEDIN_ADS_API_VERSIONLinkedIn-Version header as YYYYMM. Defaults to 202608.LINKEDIN_ADS_LOG_LEVELdebug, info, warn or error. Logs go to stderr. Defaults to info.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
LinkedIn Ads MCP サーバー
LinkedIn Ads アカウントを MCP クライアントに接続します。
キャンペーン構造、パフォーマンス、プロフェッショナルの属性データを読み取り、明示的に選択したアカウント向けのキャンペーンや広告の下書きを作成します。
動画を見る · 新機能 · インストール · ツールリファレンス · ホスト版 getmcpads を試す
この動画では、サンプルデータを使用したホスト版 getmcpads を紹介しています。クリエイティブギャラリーやアラートから Google Sheets へのエクスポート、一括配信開始まで、MCP Apps はホスト版製品に含まれます。このリポジトリでは、スタンドアロンのネイティブ API ツールを提供します。
読み取りツール 18 個 · 書き込みツール 15 個(デフォルトでは無効)。
独自の LinkedIn アプリ認証情報と、Claude Desktop、Claude Code、Cursor など stdio MCP に対応するクライアントを使って、ローカルで実行できます。リクエストは LinkedIn Marketing API に直接送信されます。ChatGPT の対応構成を含む、管理された接続を利用する場合は、ホスト版をご利用ください。
新機能
v1.0.0:初のスタンドアロンリリース · 2026 年 10 月 23 日
- getmcpads ゲートウェイのネイティブ LinkedIn Ads ツールをリビジョン
3e1c2c8から移植した、初のスタンドアロンリリースです。 - 読み取りツール 18 個:アカウントの検出とヘルスチェック、アカウント詳細、キャンペーングループ、キャンペーン、クリエイティブ、単一エンティティ、セットアップ要件、分析・統計レポート、プロフェッショナルの属性データ、収益アトリビューション、オフラインクエリの検証、配信ステータス、ターゲティング検索、メディアライブラリ、広告で使用されているメディア。
- 書き込みツール 15 個。
LINKEDIN_ADS_ENABLE_WRITES=trueの場合にのみ公開されます。キャンペーングループ、キャンペーン、テキスト広告、スポンサード画像広告または動画広告の下書き作成、エンティティ編集、4 つの名前変更ツール、広告の複製、下書きの削除、署名付きマルチパートアップロード、メディアライブラリの更新に対応します。confirmが true でない限り、すべての書き込み操作はプレビューを行い、配信を開始することはありません。 - リソース 6 個:マニフェスト、指標カタログ、ピボット、レポートルール、ターゲティング、レシピ。
LINKEDIN_ADS_ACCOUNT_IDSの設定を必須とし、リクエストを送信する前に、それ以外のアカウントへの操作をすべて拒否します。子フィルターと親エンティティがアカウントに属していることを検証します。src/core/http.tsで宣言されている LinkedIn API、トークン、アップロードの各エンドポイントとのみ通信します。リダイレクトには一切追従せず、すべてのレスポンスのサイズに上限を設け、結果とエラーからトークンを削除します。更新用認証情報が設定されている場合は、アクセストークンをメモリ内で更新します。- Node.js 22.23.4、24.22.1、26.12.1 以降が必要です。古いバージョンでは、起動時に stderr に警告を出力します。CI は Node 22、24、26 を対象としています。
release.ymlを使ってバージョンタグから、provenance 付きの npm、GitHub リリース、MCP Registry の順に公開します。
ソースの同期状況:SOURCE_SYNC.md。
アップグレードに関する注意事項
Node.js 22.23.4、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/linkedin-ads-mcp-server.git
cd linkedin-ads-mcp-server
npm ci
npm run build
MCP クライアントが、dist/cli.js の絶対パスと、以下に記載されている変数を指定して node を実行するよう設定してください。パッケージが npm で公開された後は、代わりに npx -y @getmcpads/linkedin-ads-mcp-server を実行できます。これにより linkedin-ads-mcp バイナリが起動します。
{
"mcpServers": {
"linkedin-ads": {
"command": "node",
"args": ["/absolute/path/to/linkedin-ads-mcp-server/dist/cli.js"],
"env": {
"LINKEDIN_ADS_ACCESS_TOKEN": "your-member-access-token",
"LINKEDIN_ADS_ACCOUNT_IDS": "512345678"
}
}
}
}
npm run doctor は、設定されている変数を値を表示せずに報告し、Node.js のリリースも確認します。
マネージド接続をお求めですか? ホスト型 getmcpads で LinkedIn Ads を使う。アカウントを接続し、アシスタントがアクセスできるデータを選択して、ホスト型 MCP 接続を利用できます。現在の機能とプランについては、サイトをご覧ください。
設定
クライアントのシークレット設定を通じて、以下の環境変数を指定してください。
| 変数 | 用途 |
|---|---|
LINKEDIN_ADS_ACCESS_TOKEN | 独自の LinkedIn アプリから取得したメンバーアクセストークンです。3つの更新用変数が設定されていない場合は必須です。 |
LINKEDIN_ADS_REFRESH_TOKEN | LinkedIn が発行を承認したアプリ向けのプログラムによる更新用トークンです。この場合、アクセストークンはメモリ上で更新されます。 |
LINKEDIN_ADS_CLIENT_ID | アプリのクライアント ID です。更新用トークンとともに使用します。 |
LINKEDIN_ADS_CLIENT_SECRET | アプリのクライアントシークレットです。更新用トークンとともに使用します。 |
LINKEDIN_ADS_ACCOUNT_IDS | 必須です。1~100個の数値の広告アカウント ID をカンマ区切りで指定します。読み取りを含め、ほかのアカウントへのリクエストはすべて拒否されます。 |
LINKEDIN_ADS_SCOPES | 任意です。トークンに実際に付与されたスコープを指定します。設定されている場合、rw_ads がなければ書き込みは拒否されます。この変数を設定しても、スコープが付与されるわけではありません。 |
LINKEDIN_ADS_ENABLE_WRITES | 既定値は false です。値を正確に true にした場合のみ、書き込みツールが公開されます。 |
LINKEDIN_ADS_API_VERSION | LinkedIn-Version ヘッダーの値を YYYYMM 形式で指定します。既定値は 202608 です。ホスト型ゲートウェイで使用されているバージョンです。 |
LINKEDIN_ADS_LOG_LEVEL | debug、info、warn、または error を指定します。ログは stderr に出力されます。既定値は info です。 |
サーバーは起動時に設定を検証し、修正が必要な変数名を示します。OAuth のブラウザーフローは実行せず、ディスクにも何も書き込みません。更新用トークンで更新されたトークンは、プロセスが終了するまでメモリ上に保持されます。
LinkedIn アプリに必要なもの
LinkedIn Marketing API へのアクセスはアプリごとに許可されるため、このサーバーはご自身が所有するアプリで実行します。LinkedIn のクイックスタートには、以下の手順が記載されています。
- LinkedIn ページを作成し、次にLinkedIn Developer Portalで開発者アプリケーションを作成します。
- アプリの「Products」タブからAdvertising APIプロダクトを申請し、アクセス申請フォームに記入します。LinkedIn が各申請を審査します。
- すべてのアプリケーションはDevelopment tierから開始します。このティアでは読み取りにアカウント数の制限はなく、編集できるのは管理者権限を持つ5つの広告アカウントに限られます。このティアでは、「Products」から「View Ad Accounts」を選択し、各広告アカウント ID を追加します。Standard tierでは編集制限がなくなり、Developer Support Portalから申請できます。アクセスティアをご覧ください。
- 以下のスコープを指定して、Token Generatorまたは独自の認可コードフローを使い、メンバーアクセストークンを生成します。アクセストークンの有効期間は60日です。プログラムによるリフレッシュトークンが承認されたアプリは、有効期間が1年のリフレッシュトークンを取得でき、このサーバーで使用できます。
このサーバーのツールが使用するスコープ:
| スコープ | 必要な用途 |
|---|---|
r_ads | アカウント、キャンペーングループ、キャンペーン、クリエイティブ、メディアライブラリの読み取りと、ターゲティングの検索。rw_adsでもこれらを読み取れます。 |
r_ads_reporting | linkedin_get_insights、linkedin_run_statistics_report、linkedin_get_demographics、linkedin_get_revenue_attribution、およびlinkedin_health_checkのレポート機能の確認。 |
r_organization_social | linkedin_list_ad_creatives。各スポンサードコンテンツ広告の背後にあるスポンサード投稿を読み取ります。 |
rw_ads | すべての書き込みツール。 |
w_organization_social | linkedin_create_media_ad。広告アカウントの会社ページが作成者となる、広告のスポンサード投稿を作成します。 |
LinkedIn のロールによって、トークンで実行できる操作は引き続き決まります。広告アカウントのVIEWERは、rw_adsがあっても読み取りしかできません。書き込みにはACCOUNT_BILLING_ADMIN、ACCOUNT_MANAGER、CAMPAIGN_MANAGER、またはCREATIVE_MANAGERが必要です(アカウントのロール)。メディアのアップロード、およびスポンサード画像広告や動画広告は、広告アカウントが参照する会社ページに属します。そのページで管理者またはスポンサードコンテンツ投稿者のロールが必要です。linkedin_health_checkは、設定済みアカウントのうちトークンでアクセスできるものと、アクセスできないものを一覧表示します。
安全性と対象範囲
書き込みはデフォルトでプレビューされます。呼び出しを繰り返して confirm: true を指定する前に、対象アカウント、対象、パラメーターを正確に確認してください。
キャンペーングループ、キャンペーン、広告は DRAFT として作成され、スポンサー投稿では feedDistribution: NONE が使用されるため、オーガニックフィードに表示されることはありません。新しいキャンペーンでは、オーディエンス拡張と LinkedIn Audience Network はオフのままです。配信を有効にするツールはありません。費用が発生し始める有効化は、Campaign Manager で行います。プレビューでは、予算、入札額、スケジュール、ターゲティングの編集が示されます。これらの変更は、すでに実行中のキャンペーンの費用に影響する可能性があります。
結果が不明な場合、書き込みを自動で再試行しないでください。書き込みが LinkedIn に到達した場合、失敗した書き込みでは verify_before_retry が報告され、到達しなかった場合は not_applied が報告されます。このサーバーは変更操作を再試行しません。読み取りでは、ネットワークエラー、HTTP 429、または 5xx の場合に限り、最大 2 回再試行します。
すべてのリクエストの前にアカウントチェックが行われます。レポートの前に、キャンペーン、グループ、クリエイティブのフィルターがアカウントと照合され、すべての書き込みでアカウントと親エンティティが再読み込みされます。不明な引数は拒否されます。
リクエストの送信先は api.linkedin.com、トークンエンドポイント、および www.linkedin.com 上の署名付きアップロード URL のみに限定されます。リダイレクトは追跡せず、タイムアウトと応答サイズの上限を設定しています。アップロード URL は、プロセス終了時に無効になる HMAC 署名付きレシート内で受け渡され、アップロードリクエストにトークンは含まれません。すべての結果とエラーから、トークンとシークレットはマスキングされます。
予算と入札額は、マイクロ単位やセントではなく、"EUR" などのアカウント通貨と合わせた "20.00" のような10進文字列で指定します。レポートには少なくとも1つのエンティティスコープが必要で、フィールドは最大20個まで指定でき、行数は15,000行に制限されます。サーバーは呼び出し前にこれらの制限を適用し、LinkedIn がフィールドを返さない場合は、ゼロを返すのではなく、その旨を通知します。
このサーバーは、ホスト型ゲートウェイの LinkedIn ネイティブツールに加え、アカウント検出、ヘルスチェック、オフラインのクエリ検証を提供します。オーディエンスサイズの推定、入札額と供給量の予測、マッチドオーディエンス、コンバージョンルール、リードフォームの定義、実験、ページ統計、汎用エンドポイントの読み取りは、このリリースには含まれません。送信されたリードデータが公開されることはありません。
正確なスキーマについては tools/list または server-card.json を、プロバイダーの詳細については Marketing API documentation をご覧ください。
ホスト型オプション
LinkedIn Ads 向け getmcpads では、ホスト型接続とアカウント選択を管理できます。 ホスト版とソース版では内容が異なる場合があります。お問い合わせ先:[email protected]。
開発
npm run typecheck
npm run lint
npm run build
npm test
npm run catalog
すべてのテストは、モックした fetch 応答を使ってオフラインで実行されます。実際のアカウントが読み取られたり変更されたりすることはありません。
ツール
すべてのツールを以下に示します。パラメーターと出力の完全なスキーマについては、server-card.json をご覧ください。linkedin_list_ad_accounts、linkedin_health_check、linkedin_validate_query を除くすべてのツールでは、設定済みの adAccountId が必要です。
18 個の読み取りツール
| ツール | 用途 | | --- | --- | | `linkedin_health_check` | トークン、アクセス可能な設定済みアカウント、レポート用エンドポイント、API バージョンを確認します。トークンは返しません | | `linkedin_list_ad_accounts` | メンバーがアクセスできる設定済み広告アカウントを、通貨、ステータス、配信ステータスとともに一覧表示します | | `linkedin_get_account_details` | 1 つの広告アカウントの全情報と、そのアカウントでロールを持つメンバーを読み取ります | | `linkedin_get_campaign_groups` | キャンペーングループを、予算、スケジュール、配信ステータスとともに一覧表示します | | `linkedin_get_campaigns` | キャンペーンを、ステータス、目的、フォーマット、入札額、予算、スケジュールとともに一覧表示します。オプションでターゲティングも取得できます | | `linkedin_get_creatives` | クリエイティブを、設定されたステータス、審査結果、配信保留の理由とともに一覧表示します | | `linkedin_get_entity` | キャンペーングループ、キャンペーン、またはクリエイティブを 1 つ読み取り、アカウントの所有権を確認します | | `linkedin_get_setup_guide` | 変更を準備する前に、アカウント、サポートされているフォーマット、ネイティブの書き込み要件を確認します | | `linkedin_get_insights` | 1 つのピボットでグループ化したレポートを実行し、比率を計算します | | `linkedin_run_statistics_report` | 最大 3 つのピボットで同時にグループ化したレポートを実行します | | `linkedin_get_demographics` | 職業上の属性別に配信状況を分類します。名前を解決し、制限事項を明示します | | `linkedin_get_revenue_attribution` | LinkedIn 広告に帰属する CRM のパイプラインと受注売上を読み取ります | | `linkedin_validate_query` | リクエストを実行せずに、ピボットと指標の組み合わせがレポートのルールに適合するか確認します | | `linkedin_get_delivery_status` | アカウントからクリエイティブまで、広告が配信されている理由、または配信されていない理由を説明します | | `linkedin_find_targeting` | 国や役職など、ネイティブのターゲティング URN を名前で検索します | | `linkedin_list_media` | アカウントの画像または動画ライブラリを、ダウンロード URL と処理状況とともに一覧表示します | | `linkedin_get_media` | 画像または動画の URL を更新し、ライブラリとの関連付けを確認します | | `linkedin_list_ad_creatives` | 広告で使用されている画像と動画を、実際の広告名およびランディングページとともに一覧表示します |15 個の書き込みツール
デフォルトでは無効です。明示的に確認しない限り、呼び出しはプレビューを表示します。使用前に設定と正確なスキーマを確認してください。
| ツール | 用途 |
|---|---|
linkedin_create_campaign_group | DRAFT のキャンペーングループを作成します |
linkedin_create_campaign | 予算、入札額、ターゲティング、スケジュールを設定して、DRAFT のテキスト広告またはスポンサードコンテンツキャンペーンを作成します |
linkedin_create_text_ad | アカウントライブラリの画像を使用して、DRAFT のテキスト広告を作成します |
linkedin_create_media_ad | ダークポストに DRAFT のスポンサード画像広告または動画広告を作成します |
linkedin_update_entity | 名前の変更、一時停止またはアーカイブ、あるいは予算、入札額、スケジュール、ターゲティング、テキスト広告コンテンツの編集を行います |
linkedin_rename_campaign_group | キャンペーングループの名前のみを変更します |
linkedin_rename_campaign | キャンペーンの名前のみを変更します |
linkedin_rename_ad | 広告(クリエイティブ)の名前のみを変更します |
linkedin_rename_ad_account | 広告アカウントの名前のみを変更します |
linkedin_duplicate_ad | 広告を、確認済みのキャンペーンに DRAFT としてコピーします |
linkedin_delete_draft_ad | 投稿やメディアには触れずに、DRAFT の広告を 1 件削除します |
linkedin_initialize_upload | 画像または動画のアカウントライブラリへのアップロードを開始し、署名付きレシートを返します |
linkedin_upload_part | LinkedIn の署名付きアップロード URL にファイルの一部をアップロードします |
linkedin_finalize_upload | すべてのパートのアップロード後に、動画を確定します |
linkedin_update_media | ライブラリ内の画像または動画の名前を変更するか、アーカイブします |
6 個のリソース
| リソース | 内容 | | --- | --- | | `linkedin://manifest` | 設定済みアカウント、API バージョン、エンティティ階層、安全規則 | | `linkedin://metrics` | 指標カタログ。計算される比率の数式と、各指標を利用できないピボットを含みます | | `linkedin://pivots` | ピボットと、それぞれを提供するファインダー | | `linkedin://reporting-rules` | スコープ設定、行数の上限、保持期間、鮮度、デモグラフィックの制限、スロットリング | | `linkedin://targeting` | ターゲティング条件の形式、検索、オーディエンスの上限 | | `linkedin://recipes` | よくある質問に対応するツールの手順 |ライセンス
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 つのサーバーを複数のクライアントで再利用できます。
