mcpField
B
bing-ads

bing-ads

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

bing-ads について

bing-adsは、Microsoft Advertisingアカウントを管理し、広告の成果を分析するMCPサーバーです。キャンペーンやキーワードなどを扱い、書き込み操作は既定で無効です。

主な機能

  1. 01キャンペーンと広告グループの一覧
  2. 02キーワード指標と品質スコアの分析
  3. 03検索語句の成果レポート
  4. 04予算と入札の最適化
  5. 05共有除外キーワードの管理
  6. 06既定で読み取り専用、書き込みは制限

活用シーン

  1. 01キャンペーンのROIとコンバージョンの確認
  2. 02コンバージョンにつながる検索語句の特定
  3. 03キーワード品質スコアの診断
  4. 04制限付きの予算・キーワード変更

MCP 対応

MCPクライアントにMicrosoft Advertisingのアカウント情報、キャンペーン・キーワード操作、成果レポートを提供します。変更系ツールはBING_ADS_MCP_WRITEを明示的に有効にした場合のみ利用できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"mharnett-bing-ads": {
"command": "npx",
"args": [
"-y",
"mcp-bing-ads"
],
"env": {
"BING_ADS_DEVELOPER_TOKEN": "<BING_ADS_DEVELOPER_TOKEN>",
"BING_ADS_CLIENT_ID": "<BING_ADS_CLIENT_ID>",
"BING_ADS_REFRESH_TOKEN": "<BING_ADS_REFRESH_TOKEN>",
"BING_ADS_CLIENT_SECRET": "<BING_ADS_CLIENT_SECRET>"
}
}
}
}
起動コマンドnpx -y mcp-bing-ads
設定が必要な環境変数
BING_ADS_DEVELOPER_TOKENシークレットMicrosoft Advertising developer token
BING_ADS_CLIENT_IDAzure AD app client ID for OAuth
BING_ADS_REFRESH_TOKENシークレットOAuth refresh token for Microsoft Advertising API
BING_ADS_CLIENT_SECRETシークレットAzure AD app client secret (optional for public clients)

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

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

ツール

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

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

詳細

Bing Ads MCP サーバー

npm version npm downloads GitHub stars License: MIT

Microsoft Advertising(Bing Ads)API 用の本番環境向け MCP サーバーです。Claude が、キャンペーン、広告グループ、キーワードの管理やパフォーマンスの詳細な分析を行えるようにします。

機能:

  • 10 個のツール -- 本番環境でテスト済み
  • キャンペーン、広告グループ、キーワードの管理
  • 品質スコアを含むキーワードのパフォーマンス分析
  • 検索語句のレポートと入札額の自動化
  • 予算と入札戦略の最適化
  • キャンペーン単位の予算更新
  • 除外キーワードの管理(共有およびキャンペーン単位)

注記: ⚠️ 包括的なツールを備えた初のオープンソース Bing Ads MCP

  • エコシステムに有力な代替手段はありません
  • 複数のアカウントで実運用に耐えることを確認済み

インストール

npm install mcp-bing-ads

設定

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

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

    • Microsoft Azure Portal にアクセスします
    • Azure AD アプリの登録を作成します
    • API 権限を付与します:Microsoft Advertising API
    • スコープ:https://ads.microsoft.com/msads.manage offline_access
  2. config.json を作成します:

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

    {
      "oauth": {
        "client_id": "YOUR_AZURE_CLIENT_ID",
        "client_secret": "YOUR_AZURE_CLIENT_SECRET"
      },
      "clients": {
        "default": {
          "customer_id": "YOUR_CUSTOMER_ID",
          "account_id": "YOUR_ACCOUNT_ID",
          "name": "My Account"
        }
      }
    }
    
  4. 環境変数を設定します(推奨):

    export BING_ADS_DEVELOPER_TOKEN="your_developer_token"
    export BING_ADS_CLIENT_ID="your_client_id"
    export BING_ADS_REFRESH_TOKEN="your_refresh_token"
    # Optional:
    export BING_ADS_CLIENT_SECRET="your_client_secret"
    # Optional: opt into mutating tools (read-only by default)
    export BING_ADS_MCP_WRITE="true"
    
環境変数
変数必須デフォルト説明
BING_ADS_DEVELOPER_TOKENはい--Microsoft Advertising の開発者トークン
BING_ADS_CLIENT_IDはい--Azure AD アプリのクライアント ID
BING_ADS_REFRESH_TOKENはい--OAuth リフレッシュトークン
BING_ADS_CLIENT_SECRETいいえ--Azure AD アプリのクライアントシークレット(機密クライアントの場合)
BING_ADS_MCP_WRITEいいえfalse変更を伴うツール(停止/更新/追加)を公開するには、true、1、または yes を設定します。それ以外の値、または未設定の場合、サーバーは読み取り専用のままです。
デフォルトは読み取り専用

変更を伴うツール(bing_ads_pause_keywords、bing_ads_update_campaign_budget、bing_ads_add_shared_negatives)は、サーバー環境で BING_ADS_MCP_WRITE=true が設定されていない限り、ツール一覧に表示されず、呼び出しも拒否されます。これは、何気ないチャットメッセージを受けてキーワードを停止したり、予算を編集したりするような、意図しない書き込み操作を防ぐための安全策です。変更を書き込むには、必要なセッションの .mcp.json またはシェルプロファイルで環境変数を明示的に設定し、使用後に設定を解除してください。読み取りツール(一覧/レポート/パフォーマンス)は常に利用できます。

使用方法

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

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

{
  "mcpServers": {
    "bing-ads": {
      "type": "http",
      "url": "http://localhost:3002"
    }
  }
}

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

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

// List campaigns
bing_ads_list_campaigns()

// Get campaign performance
bing_ads_get_campaign_performance({
  start_date: "2026-01-01",
  end_date: "2026-03-01"
})

// Get keyword performance
bing_ads_keyword_performance({
  start_date: "2026-02-01",
  end_date: "2026-03-01"
})

// Create negative keywords
bing_ads_add_shared_negatives({
  shared_list_id: "list_123",
  keywords: [
    { text: "cheap", match_type: "Phrase" },
    { text: "discount", match_type: "Exact" }
  ]
})

API リファレンス

コンテキスト
  • bing_ads_get_client_context(working_directory) -- 作業ディレクトリからアカウントを検出
キャンペーン
  • bing_ads_list_campaigns() -- すべてのキャンペーンを一覧表示
  • bing_ads_get_campaign_performance(start_date, end_date) -- キャンペーン指標
  • bing_ads_update_campaign_budget(campaign_id, daily_budget) -- 1 日あたりの予算を更新
広告グループ
  • bing_ads_list_ad_groups(campaign_id) -- キャンペーン内の広告グループを一覧表示
キーワード
  • bing_ads_keyword_performance(start_date, end_date, [campaign_ids]) -- キーワード指標と QS
  • bing_ads_search_term_report(start_date, end_date) -- 広告の表示につながった検索語句
  • bing_ads_pause_keywords(ad_group_id, keyword_ids) -- キーワードを停止
除外キーワード
  • bing_ads_list_shared_entities([type]) -- 共有の除外リストを一覧表示します
  • bing_ads_add_shared_negatives(list_id, keywords) -- 共有リストに追加します
パフォーマンスレポート
  • キャンペーンのパフォーマンス(ROI、コンバージョン、CTR、CPC)
  • キーワードのパフォーマンス(QS、予想CTR、広告の関連性、ランディングページの利便性)
  • 検索語句の分析情報(コンバージョンにつながっている検索クエリ)

主な指標と定義

品質スコア(QS): キーワードの品質を1~10で評価します

  • 1~3:低い
  • 4~6:平均
  • 7~10:優れている

予想CTR: 予想クリック率を1~9で評価します 広告の関連性: 検索クエリとの関連性を1~9で評価します ランディングページの利便性: ランディングページの品質を1~9で評価します

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 — 認証情報とクライアントのマッピング

エラー分類:

  • 認証エラー(トークンの期限切れ)
  • レート制限エラー(バックオフして再試行)
  • サービスエラー(API が一時的に利用できない)
  • 検証エラー(不正な入力)

開発

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

トラブルシューティング

Config file not found
cp config.example.json config.json
# Fill in your Azure credentials and Bing Ads IDs
Missing required credentials

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

  • BING_ADS_DEVELOPER_TOKEN、BING_ADS_CLIENT_ID、BING_ADS_REFRESH_TOKEN が設定されている
  • BING_ADS_CLIENT_SECRET が設定されている(機密アプリを使用する場合)
  • OAuth トークンが有効である(有効期限が切れている場合は、更新が必要なことがあります)
Rate limit exceeded

Bing Ads にはレート制限があります。サーバーは一般的な再試行を自動的に処理します。頻繁に制限に達する場合:

  • 可能な場合は操作をまとめて実行します
  • クエリの頻度を減らします
  • 再試行する前に待ちます
Quality Score is 0

QS = 0 は、キーワードがまだ十分な回数表示されていないことを意味します。インプレッション数を増やすか、さらにデータが蓄積されるまで待ってください。

ライセンス

MIT

コントリビューション

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

  1. 新機能のテストを追加する
  2. README を更新する
  3. 既存のコードスタイルに従う
  4. リリースにタグを付ける

サポート

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

開発者

Mark Harnett — AI を活用した広告管理ツールを開発する、デマンドジェネレーションのリーダーであり、ペイドメディアの実務家です。これは、複数のアカウントで実際のキャンペーンを運用し、Claude に面倒な作業を任せたいという思いから生まれた、初の包括的なオープンソース Bing Ads MCP サーバーです。

本番環境でのワークロードを念頭に置いて構築しています。堅牢な API 呼び出し(サーキットブレーカー、バックオフを伴う再試行、レスポンスの切り詰め)、品質スコアの完全な診断、大規模な除外キーワード管理に対応しています。

Mark によるその他のプロジェクト: mcp-linkedin-ads -- 7 つのツールを備えた LinkedIn Ads MCP サーバー。

最終更新日: 2026-03-13

コメント

MCP は初めてですか?

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

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