mcpField
L
linkedin-ads

linkedin-ads

ローカル
github.com/mharnettビジネス・マーケティング07 週間前に更新

linkedin-ads について

linkedin-adsは、ClaudeからLinkedIn Campaign Managerのアカウント、キャンペーン、実績データを参照するためのMCPサーバーです。複数アカウントと切り口別レポートに対応し、既定では読み取り専用で、CTRはランディングページのクリック数から算出します。

主な機能

  1. 01複数のLinkedIn広告アカウント管理
  2. 02キャンペーンとキャンペーングループの一覧
  3. 03アカウントとキャンペーンの実績分析
  4. 04オーディエンス・デバイス・クリエイティブ別のレポート
  5. 05ランディングページクリックによるCTR算出

活用シーン

  1. 01複数の広告アカウントをまとめて確認
  2. 02キャンペーン実績の確認
  3. 03オーディエンスやデバイス別の結果比較

MCP 対応

MCPクライアントにLinkedIn Campaign Managerのデータ参照ツールを提供します。既定では読み取り専用で、LINKEDIN_ADS_MCP_WRITE=trueにすると変更系ツールの書き込みゲートが有効になります。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"mharnett-linkedin-ads": {
"command": "npx",
"args": [
"-y",
"mcp-linkedin-ads"
],
"env": {
"LINKEDIN_CLIENT_ID": "<LINKEDIN_CLIENT_ID>",
"LINKEDIN_CLIENT_SECRET": "<LINKEDIN_CLIENT_SECRET>",
"LINKEDIN_ACCESS_TOKEN": "<LINKEDIN_ACCESS_TOKEN>"
}
}
}
}
起動コマンドnpx -y mcp-linkedin-ads
設定が必要な環境変数
LINKEDIN_CLIENT_IDLinkedIn OAuth app client ID
LINKEDIN_CLIENT_SECRETシークレットLinkedIn OAuth app client secret
LINKEDIN_ACCESS_TOKENシークレットLinkedIn OAuth access token

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-linkedin-ads1.0.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

LinkedIn Ads MCP サーバー

npm version npm downloads GitHub stars License: MIT

LinkedIn Campaign Manager API 用の本番環境対応 MCP サーバーです。Claude から LinkedIn 広告アカウント、キャンペーン、広告セット、クリエイティブを読み書きできるようになります。

機能:

  • 7 個のツール -- 本番環境でテスト済み
  • 複数アカウントの管理(複数の LinkedIn 広告アカウント)
  • キャンペーンとキャンペーングループの一覧表示
  • アカウントとキャンペーンのパフォーマンス分析
  • 柔軟なピボットベースのレポート(デモグラフィック、デバイス、クリエイティブの内訳)
  • ランディングページクリック数に基づく CTR(合計クリック数ではありません)

実績:

  • ⭐ 本番環境での実績:管理中のアクティブなキャンペーン
  • 📊 複数クライアント:Flowspace、Forcepoint、Neon One
  • 🔄 CTR の正確性:landingPageClicks を使用(エンゲージメントを含む合計クリック数ではありません)
  • ✅ テストカバレッジ:40 件以上のコントラクトテスト

インストール

npm install mcp-linkedin-ads

設定

セキュリティ: .mcp.json ファイルは API 認証情報を含んでいる可能性があるため、共有したり Git にコミットしたりしないでください。.mcp.json を .gitignore に追加してください。

  1. OAuth 認証情報を取得します:

    • LinkedIn Developer Portal にアクセスします
    • 「Sign In with LinkedIn」と「Marketing Developer Platform」を有効にした新しいアプリを作成します
    • スコープ:r_ads、rw_ads、w_member_social、r_organization_social、w_organization_social
  2. config.json を作成します:

    cp config.example.json config.json
    
  3. 認証情報を入力します:

    {
      "oauth": {
        "client_id": "YOUR_CLIENT_ID",
        "client_secret": "YOUR_CLIENT_SECRET"
      },
      "clients": {
        "default": {
          "account_id": "YOUR_AD_ACCOUNT_ID",
          "name": "My Account"
        }
      }
    }
    
  4. 環境変数を設定します(本番環境では推奨):

    export LINKEDIN_ADS_CLIENT_ID="your_client_id"
    export LINKEDIN_ADS_CLIENT_SECRET="your_client_secret"
    export LINKEDIN_ADS_ACCESS_TOKEN="your_access_token"
    
環境変数
変数必須デフォルト用途
LINKEDIN_ADS_CLIENT_IDはい--OAuth クライアント ID
LINKEDIN_ADS_CLIENT_SECRETはい--OAuth クライアントシークレット
LINKEDIN_ADS_ACCESS_TOKENはい--OAuth アクセストークン
LINKEDIN_ADS_REFRESH_TOKEN任意--OAuth リフレッシュトークン(設定すると自動的にローテーションされます)
LINKEDIN_ADS_MCP_WRITE任意false変更を伴うツールを公開するには true に設定します。デフォルトは読み取り専用です。
デフォルトは読み取り専用

LinkedIn Ads MCP に現在含まれているのは、読み取り専用ツールのみです。 書き込みモードのゲートはすでに設けられており、今後追加される作成/更新/一時停止/有効化/削除ツールは、MCP サーバー環境で LINKEDIN_ADS_MCP_WRITE=true が設定されていない限り、ListTools から隠され、呼び出し時にも拒否されます。これは Google Ads MCP のゲートと同じ仕組みで、Bing/Reddit/Meta に展開中のパターンにも準拠しています。その目的は、運用担当者が明示的に許可しない限り、LLM への何気ないリクエストによって本番環境の広告アカウントが変更されるのを防ぐことです。

使用方法

サーバーを起動する
npm start
Claude Code で使用する

~/.claude.json に追加します:

{
  "mcpServers": {
    "linkedin-ads": {
      "type": "http",
      "url": "http://localhost:3001"
    }
  }
}

Claude Desktop:(macOS の場合)~/Library/Application Support/Claude/claude_desktop_config.json、または(Windows の場合)%APPDATA%\Claude\claude_desktop_config.json に追加します。

API 呼び出しの例
// Get client context
linkedin_ads_get_client_context({ working_directory: "/path/to/project" })

// List campaigns
linkedin_ads_list_campaigns({ account_id: "511664399" })

// Get campaign performance
linkedin_ads_campaign_performance({
  start_date: "2026-01-01",
  end_date: "2026-03-31",
  time_granularity: "MONTHLY"
})

// Flexible analytics (e.g. by seniority)
linkedin_ads_analytics({
  start_date: "2026-03-01",
  end_date: "2026-03-31",
  pivot: "MEMBER_SENIORITY"
})

重要なデータ規則

CTR の計算
  • 必ず clicks(合計クリック数)ではなく、landingPageClicks(LP クリック数)を使用してください
  • 合計クリック数にはソーシャルエンゲージメント(いいね、コメント、シェア)が含まれるため、CTR が過大になります
  • 正確なキャンペーン分析にはこれが非常に重要です
キャンペーンのステータス
  • DRAFT — まだ有効ではありません
  • ACTIVE — 配信中です
  • PAUSED — 手動で一時停止されています
  • ARCHIVED — 過去の記録です
オーディエンスターゲティング
  • 柔軟なターゲティング:flexible_spec 配列(項目間は OR ロジック)
  • 除外ターゲティング:exclude_spec 配列
  • 職種、役職レベル、職能、地域に対応しています

CLI ツール

npm run dev                 # Run in dev mode (tsx)
npm run build             # Compile TypeScript
npm test                  # Run contract tests

アーキテクチャ

ファイル:

  • src/index.ts — MCP サーバー、OAuth フロー、ツールハンドラー
  • src/tools.ts — ツールスキーマの定義
  • src/errors.ts — エラー処理と分類
  • config.json — 認証情報とクライアントのマッピング

エラー処理:

  • OAuth エラー:トークンの更新が必要な場合に明確なメッセージを表示します
  • レート制限:バックオフを伴う自動再試行を行います(LinkedIn の推奨方式)
  • 無効なキャンペーン:作成前に検証します(API クォータを節約)

開発

新しいツールの追加
  1. src/tools.ts でスキーマを定義します
  2. src/index.ts のツールディスパッチにハンドラーを追加します
  3. .contract.test.ts のコントラクトテストでテストします
  4. ここにドキュメントを追加します
テスト
npm test -- --run        # Single run
npm test -- --watch      # Watch mode

トラブルシューティング

Config file not found
cp config.example.json config.json
# Fill in your OAuth credentials and account IDs
Missing required credentials

以下を確認してください:

  • LINKEDIN_ADS_CLIENT_ID と LINKEDIN_ADS_CLIENT_SECRET が設定されている(または config.json に記載されている)
  • config.json が存在し、account_id を持つクライアントが少なくとも1つ含まれている
  • OAuth トークンが有効である(トークンには有効期限があります)
Rate limit exceeded

LinkedIn は厳格なレート制限を適用しています。サーバーには指数バックオフを伴う自動再試行機能が含まれています。制限に達した場合:

  • 再試行する前に待ちます
  • 可能な場合は操作をまとめます
  • クエリの頻度を下げます
CTR seems too low

clicks(すべてのインタラクション)ではなく、landingPageClicks(LP クリック)を使用していることを確認してください。後者にはソーシャルエンゲージメントが含まれるため、CTR が不正確に高くなります。

ライセンス

MIT

コントリビューション

コントリビューションを歓迎します。以下をお願いします:

  1. 新しいツールのテストを追加する
  2. 新機能を README に反映する
  3. 既存のコードスタイルに従う
  4. バージョンを付けてリリースにタグを付ける

サポート

  • 課題: バグや機能リクエストは GitHub の課題へ
  • ドキュメント: 詳細な API リファレンスは docs/ フォルダーを参照してください
  • コミュニティ: GitHub のディスカッションへ

制作者

Mark Harnett — AI を活用した広告管理ツールを開発する、デマンドジェネレーションのリーダーであり、ペイドメディアの実務者です。このサーバーは、複数のクライアントの LinkedIn キャンペーンを管理する中で、Claude にキャンペーン運用、パフォーマンス分析、一括でのクリエイティブ更新を自律的に処理させたいという思いから生まれました。

本番環境でのワークロードを想定して構築されています。回復性に優れた API 呼び出し(サーキットブレーカー、バックオフを伴う再試行、レスポンスの切り詰め)、正確な CTR 算出(総クリック数ではなくランディングページのクリック数を使用)、複数アカウントのサポートを備えています。

Mark のその他のプロジェクト: mcp-bing-ads -- 10 個のツールを備えた Bing/Microsoft Ads MCP サーバー。

最終更新日: 2026-03-13

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。