Bing Webmaster AI CLI MCP について
bing-webmaster-ai-cli-mcpは、Bing Webmaster Toolsのデータ参照と変更送信に使うPython製CLIおよびMCPサーバーです。サイト運営者やAIエージェント向けで、書き込みは既定で人が確認・適用するプラン方式となり、直接書き込みには明示的な有効化が必要です。
主な機能
- 01トラフィック、インデックス、クロール問題、リンク、キーワードの参照
- 02既定でレビュー後に適用するプラン方式
- 03任意で直接書き込みを有効化
- 04追記型監査ログと永続プラン
- 05IndexNow送信に対応
活用シーン
- 01Bingのトラフィックと検索クエリの確認
- 02クロール問題の特定とインデックス状態の確認
- 03適用前にURL送信プランをレビュー
- 04IndexNowでBingにURLを送信
MCP 対応
MCPサーバーはBing Webmasterの読み取りツール、ローカルのIndexNowキー計画ツール、プラン確認、書き込みツールを提供します。既定では書き込みツールがプランを作成し、適用はCLIから行います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx bing-webmaster-ai-cli-mcpBING_WM_API_KEYシークレットAPI key from Bing Webmaster Tools Settings > API AccessBING_WM_ALLOW_WRITESSet to true to enable one-step writes; unset or false keeps plan-and-applyローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
63掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
bing-webmaster-ai-cli-mcp
bing-webmaster-ai-cli-mcp を使うと、AI エージェントは Bing がサイトについて把握している情報(トラフィック、インデックス登録、クロールの問題、被リンク、キーワード)を読み取れます。書き込み方法は選択できます。デフォルトでは確認済みのプランを作成して適用する方式で、オプトインすれば直接書き込めます。
JSON Bing Webmaster Tools API 用の Python 3.12+ CLI と MCP サーバーに加え、プロトコルに準拠した IndexNow 送信機能を備えています。SOAP と POX は意図的に含めていません。
書き込み方法の選択
読み取りツールは常にすぐに実行されます。Bing の状態を変更する処理については、1 つの設定で 2 つの方法から選択できます。
export BING_WM_ALLOW_WRITES=false # default: writes are planned and applied by a human
export BING_WM_ALLOW_WRITES=true # opt in: writes go straight through
Bing への読み取り専用アクセスがデフォルトです。 BING_WM_ALLOW_WRITES=true を設定しない場合、サーバーには Bing を変更するツールが表示されず、CLI もワンステップの書き込みを拒否します。その理由は次のとおりです。このサーバーを使うエージェントは、他人が書いたページ、アンカーテキスト、クロールの問題、検索クエリも読み取ります。エージェントが送信できる確認は、プロンプトインジェクションによっても送信できるため、エージェントが書き込み可能である限り、他人のアンカーテキストに含まれる悪意ある文字列が Bing アカウントに届く可能性があります。デフォルトでは、プランを読み、自分で bing-wm plan apply を実行するまで、エージェントが行った操作によって Bing が変更されることはありません。Bing アカウントを任せられると信頼できるエージェントに限り、オプトインしてください。
直接書き込み(BING_WM_ALLOW_WRITES=true)
MCP サーバーにはワンステップの bing_<operation> ツールが表示され、CLI では次のコマンドを実行できます。
$ bing-wm submit-url example.com https://example.com/new-page --json
{"applied": true, "plan_id": "…", "operation": "submit_url", "result": null}
直接書き込みは冪等ではありません。再試行すると、新しいプランが記録され、変更が再度送信されます。応答が失われた場合は、呼び出しを繰り返す前に audit.jsonl または bing-wm plan list を確認してください。
確認済みの書き込み(デフォルト、BING_WM_ALLOW_WRITES=false)
サーバーには代わりに bing_plan_<operation> が表示されます。これらのツールは何も送信しません。
$ bing-wm plan submit-url example.com https://example.com/new-page --json
{
"plan_id": "…",
"summary": "submit url https://example.com/new-page for https://example.com",
"apply_with": "bing-wm plan apply …"
}
$ bing-wm plan apply PLAN_ID
Apply this plan? [y/N]: y
どちらのモードでも、MCP ツールでプラン ID を指定することはありません。確認用に記録されたプランを適用または却下できるのは CLI からのみであり、実行するのはあなたです。直接書き込みでは、同じ呼び出し内で作成したプランを適用し、他の誰かが記録したプランには決して触れません。直接書き込みが有効な場合もプラン方式は利用できるため、エージェントは引き続き確認用の変更案を提示できます。
どちらの方法にも共通すること
直接書き込みは、人による手順を省いた同じコードです。同じ永続プランを記録し、同じ適用境界を通ります。どちらの方法にも、読みやすいプラン記録、追記専用の監査証跡、一度限りの適用、有効期限、Bing 独自の送信クォータ、サイト拒否リスト(BING_WM_DENIED_SITES)、再起動後も維持されるローカル制限(BING_WM_MAX_WRITES_PER_DAY)が適用されます。
適用プロセスが強制終了されてロックが残った場合、コマンド bing-wm plan unlock PLAN_ID は、記録された PID が終了していることを確認してから復旧します。未完了のプランは unknown_outcome となり、再適用できません。復旧処理は監査ログに記録されます。
インストール
BING_WM_ALLOW_WRITES=false uvx bing-webmaster-ai-cli-mcp
このコマンド1つで、stdio MCP サーバーが起動します。以下の各クライアント設定では、同じ
uvx コマンドを実行します。Bing Webmaster Tools の Settings → API Access で API キーを作成し、
BING_WM_API_KEY として渡してください。BING_WM_ALLOW_WRITES=true も設定しない限り、書き込みは確認用として計画されます。詳しくは書き込み方法の選択を参照してください。
パッケージはPyPIで
bing-webmaster-ai-cli-mcp として公開されています。uvx はインストールしたものをキャッシュするため、そのバージョンを使い続けることがあります。uvx bing-webmaster-ai-cli-mcp@latest は PyPI を再確認し、uvx bing-webmaster-ai-cli-mcp==0.1.4 は特定のバージョンを固定します。この README は main に沿っているため、変更履歴の Unreleased に記載された変更は、まだ PyPI のリリースには含まれていません。0.1.3 以降は BING_WM_ALLOW_WRITES=false がデフォルトであり、上記のコマンドと以下のクライアント設定は、この環境変数を省略しても同じ動作になります。ただし、明示的に記載しています。0.1.2 以前はデフォルトが true のため、uvx のキャッシュにそのいずれかのバージョンが残っている場合、設定を省略すると直接書き込みに戻ってしまうためです。
main 自体を実行するには、
uvx --from "git+https://github.com/stufently/bing-webmaster-ai-cli-mcp.git" bing-webmaster-ai-cli-mcp を使ってください。
pip(Python 3.12 以降)でも同じパッケージをインストールでき、bing-wm、
bing-webmaster-ai-cli-mcp、bing-webmaster-ai-cli-mcp-http が PATH に追加されます。仮想環境で使うか、pipx install bing-webmaster-ai-cli-mcp でインストールしてください。
python -m pip install bing-webmaster-ai-cli-mcp
export BING_WM_API_KEY='…'
bing-wm sites list
サポート対象は Python 3.12、3.13、3.14 です。開発環境とイメージでは constraints.txt に記載された厳密なバージョンを使用し、公開されている依存関係は互換性のある下限バージョンを指定しています。リポジトリに実際のキーを決して含めないでください。すべての設定については設定を参照してください。
プロンプトの例
- 先週、サイトのクリック数が減ったのはなぜですか?
- Bing がクロールできていないページと、その理由を教えてください。
- この URL はインデックスに登録されていますか?Bing が最後に取得したのはいつですか?
- この新しいページを Bing に送信してください。ただし、まず変更内容を確認させてください。
検証済みのクライアントとプラットフォーム
実際に実行したものだけを、検証済みとして記載しています。AI クライアントへの MCP サーバーの追加に記載されているその他のものは、最後まで動作確認されていない設定です。
| クライアント/ランタイム | OS | 実行方法 | ステータス | 根拠 |
|---|---|---|---|---|
| Claude Code 2.1 | Ubuntu 26.04 LTS, x86_64 | このリポジトリからローカルでビルドした Docker イメージ、stdio、直接書き込みを有効化 | 検証済み | メンテナーのホストで日常的に使用。監査ログに読み取りと書き込みの記録あり |
bing-wm CLI | Ubuntu 26.04 LTS, x86_64 | 同じ Docker イメージ | 検証済み | メンテナーのホスト |
| Codex CLI 0.162 | Ubuntu 26.04 LTS, x86_64 | 同じ Docker イメージ、stdio | 設定済み、個別の確認なし | メンテナーのホスト設定 |
| Python 3.12、3.13、3.14 | Ubuntu (ubuntu-latest) | Lint、テスト、stdio MCP スモークテスト | CI で検証済み | ci.yml |
| Docker イメージ | Ubuntu (ubuntu-latest) | イメージをビルドし、root 以外のユーザーで実行 | CI で検証済み | ci.yml、ジョブ container |
uvx bing-webmaster-ai-cli-mcp(PyPI 0.1.2) | Linux x86_64 | インストールに記載された方法でインストール。Docker 内の uv 0.13 | MCP の initialize に応答。クライアントの接続なし | メンテナーのホスト、2026-10-12 |
Claude Desktop(.mcpb) | macOS、Windows | デスクトップ拡張機能 | 未検証 | バンドルは CI でビルドされるが、実際の Desktop にはインストールされていない |
| Cursor、Windsurf、Zed | 任意 | 以下の設定 | 未検証 | 設定の記載のみ |
| macOS、Windows | — | 任意のクライアント | 未検証 | これらのシステムには CI ランナーなし |
AI クライアントに MCP サーバーを追加する
以下の各 JSON ブロックでは、インストールと同じ uvx コマンドを実行します。
ここでは BING_WM_ALLOW_WRITES が false(デフォルト値を明示)なので、書き込みは計画され、実際の適用はユーザーが行います。直接書き込みを行うには true に設定してください。詳しくは書き込み方法の選択をご覧ください。このキーは、コミットするプロジェクトファイルではなく、ユーザーレベルの設定に保持してください。サーバーは、34 個の Bing 読み取りツール、1 個のローカル読み取り専用ツール(bing_indexnow_key_plan)、計画の確認機能、およびサポートされている各操作に対応する 1 個の書き込みツールを公開します。デフォルトでは bing_plan_<operation> ツール、BING_WM_ALLOW_WRITES=true の場合は直接実行する bing_<operation> ツールが公開されます。計画の適用や却下を行うツールは公開されません。設定を変更した後はサーバーを再起動して、クライアントのツール一覧を更新してください。
Claude Code
プロジェクトファイル:プロジェクトのルートにある .mcp.json。
{
"mcpServers": {
"bing-webmaster": {
"command": "uvx",
"args": [
"bing-webmaster-ai-cli-mcp"
],
"env": {
"BING_WM_API_KEY": "your-api-key",
"BING_WM_ALLOW_WRITES": "false"
}
}
}
}
または、ターミナルから実行します。
claude mcp add bing-webmaster --scope user \
--env BING_WM_API_KEY=your-api-key --env BING_WM_ALLOW_WRITES=false \
-- uvx bing-webmaster-ai-cli-mcp
Claude Desktop
ファイル:claude_desktop_config.json — macOS
~/Library/Application Support/Claude/claude_desktop_config.json、Windows
%APPDATA%\Claude\claude_desktop_config.json、Linux
~/.config/Claude/claude_desktop_config.json。
{
"mcpServers": {
"bing-webmaster": {
"command": "uvx",
"args": [
"bing-webmaster-ai-cli-mcp"
],
"env": {
"BING_WM_API_KEY": "your-api-key",
"BING_WM_ALLOW_WRITES": "false"
}
}
}
}
JSON を編集せず、ワンクリックで設定するには、次の URL から .mcpb をダウンロードして開きます。
https://github.com/stufently/bing-webmaster-ai-cli-mcp/releases/latest
Claude Desktop が拡張機能をインストールし、API キーを求めます。「直接書き込みを許可」を有効にしない限り、直接書き込みは無効のままです。無効の間、拡張機能は計画を記録するだけです。計画を適用するには bing-wm CLI が必要ですが、拡張機能はこれを PATH に追加しません。インストールのとおりに pip でインストールし、そのシェルで同じキーを BING_WM_API_KEY としてエクスポートしてから、bing-wm plan apply を実行してください。
リリースには、各 .mcpb の SHA256 が記載された checksums.txt が含まれます。
そのファイルをバンドルと同じディレクトリにダウンロードし、拡張機能を開く前にチェックしてください。
sha256sum -c --ignore-missing checksums.txt # run next to the downloaded .mcpb
macOS では、バンドルの行を絞り込んで、shasum -a 256 -c - でチェックしてください。
次のタグ以降のリリースには、各 .mcpb の GitHub ビルド来歴アテステーションも含まれ、リリースワークフローで署名されています。バンドルがこのリポジトリのワークフローでビルドされ、その後差し替えられていないことを確認してください(GitHub CLI が必要です)。
gh attestation verify <bundle>.mcpb --repo stufently/bing-webmaster-ai-cli-mcp
Cursor
インストール後、~/.cursor/mcp.json にあるプレースホルダー値を置き換えてください。または、以下のブロックを手動で追加してください。
ファイル:~/.cursor/mcp.json(すべてのプロジェクト)または .cursor/mcp.json(このプロジェクト)。
{
"mcpServers": {
"bing-webmaster": {
"command": "uvx",
"args": [
"bing-webmaster-ai-cli-mcp"
],
"env": {
"BING_WM_API_KEY": "your-api-key",
"BING_WM_ALLOW_WRITES": "false"
}
}
}
}
Windsurf
ファイル:mcp_config.json — macOS および Linux の場合は ~/.config/devin/mcp_config.json
(または $XDG_CONFIG_HOME/devin/mcp_config.json)、Windows の場合は
%APPDATA%\devin\mcp_config.json。古いビルドでは
~/.codeium/windsurf/mcp_config.json が読み込まれます。
{
"mcpServers": {
"bing-webmaster": {
"command": "uvx",
"args": [
"bing-webmaster-ai-cli-mcp"
],
"env": {
"BING_WM_API_KEY": "your-api-key",
"BING_WM_ALLOW_WRITES": "false"
}
}
}
}
Zed
ファイル:settings.json — Linux および macOS の場合は ~/.config/zed/settings.json。
{
"context_servers": {
"bing-webmaster": {
"command": "uvx",
"args": [
"bing-webmaster-ai-cli-mcp"
],
"env": {
"BING_WM_API_KEY": "your-api-key",
"BING_WM_ALLOW_WRITES": "false"
}
}
}
}
パッケージが PATH に追加されていれば(上記の pip インストールを使用してください。uvx ではコマンドが永続的にインストールされません)、オプションの Streamable HTTP エントリーポイントも利用できます。
export BING_WM_HTTP_BEARER_TOKEN='a-random-token-of-at-least-32-characters'
bing-webmaster-ai-cli-mcp-http
ループバック以外のバインドアドレスや、認証されていないリクエストは拒否されます。
よくある質問
サイトにはどのようなクロールの問題がありますか?
bing-wm crawl issues example.com --json
結果には Bing の行が変更されずに含まれるほか、Microsoft の UrlWithCrawlIssues.CrawlIssues フラグに基づくカテゴリ別の内訳が含まれます。対象となるのは、リダイレクト、4xx、5xx、robots.txt によるブロック、マルウェア、DNS エラー、タイムアウトエラーです。各カテゴリの件数、各 HttpCode の件数、および Bing が送信するデータを欠落させないための other バケットも含まれます。4xx の行は、その HttpCode に基づいて http_404 または http_403 にさらに分類され、広範な http_4xx に置き換わるのではなく、これと併記されます。Bing には noindex のクロール問題フラグがないため、そのようなカテゴリは存在せず、このプロジェクトで独自に作成することもありません。
Bing がページをインデックスに登録しているか確認するには?
bing-wm index url example.com https://example.com/page
コマンドラインから Bing に URL を送信するには?
書き込みが有効な場合は、1 つの URL または改行区切りのファイルから送信します。
bing-wm submit-url example.com https://example.com/page
bing-wm submit-urls example.com --file PATH
BING_WM_ALLOW_WRITES=false の場合は、プランを作成して確認してから適用します。
bing-wm plan submit-url example.com https://example.com/page
bing-wm plan submit-urls example.com --file PATH
bing-wm plan show PLAN_ID
bing-wm plan apply PLAN_ID
プランナーは GetUrlSubmissionQuota を呼び出します。クォータの数値はハードコードされていません。Bing のメソッドのドキュメントでは、1 回の SubmitUrlBatch 呼び出しで送信できる URL は 500 件までとされています。
IndexNow は Google でも機能しますか?
Google は IndexNow に参加していません。現在公開されている IndexNow のレジストリには、Bing、Yandex、Seznam、Naver、Yep、Internet Archive、Amazonbot が掲載されています。api.indexnow.org 経由で送信すると、参加している検索エンジンに配信されます。
キーを生成し、表示された UTF-8 キーファイルをホストしてから送信します。
bing-wm indexnow key example.com
bing-wm indexnow key example.com --key KEY # is the key file live yet?
bing-wm indexnow submit example.com --file PATH --key KEY
indexnow key と、それに対応する bing_indexnow_key_plan MCP ツールは、計算と確認のみを行います。Bing にも api.indexnow.org にも接続しないため、書き込み操作ではなく、プランも不要です。生成されたキーは一度だけ表示され、どこにも保存されません。キーを保存し、表示された URL で公開してから送信してください。
または、BING_WM_ALLOW_WRITES=false の場合:
bing-wm plan indexnow example.com --file PATH --key KEY
bing-wm plan apply PLAN_ID
送信前に、リダイレクトを追わずにキーファイルの URL が完全一致することを確認します。IndexNow のホストには、IP リテラルや単一ラベルの名前ではなく、複数ラベルの DNS 名を使用する必要があります。また、キーファイルにはキーのみを含める必要があります。10,000 件を超えるバッチ、曖昧なドットセグメントを含むパス、許可されたホストまたはキーのサブパス外にある URL は、ローカルで拒否されます。未検証の 2,048 文字の URL 上限は意図的に設けていません。IndexNow のプロトコルでは、成功以外の応答を受け取った場合、有効なリクエストを再送信するよう呼び出し元に指示しています。そのため、HTTP 5xx の場合はプランが保留状態のままになります。CLI が自動で再試行することはありません。
出力の安全性
アンカーテキスト、クロールに関する問題の URL、タイトル、メッセージ、クエリ文字列は、第三者が制御できる場合があります。共有オペレーション層は、制御文字と双方向テキスト書式制御文字を削除し、極端に長い値を切り詰め、これらのフィールドを {"value": "…", "untrusted": true} として返します。利用側はこれらを指示ではなく、データとして扱う必要があります。
検証用シークレットが誤ってマシンの外に出ることはありません。GetUserSites は各サイトに AuthenticationCode と DnsVerificationCode を返し、GetSiteRoles は DelegatedCode を返します。これらのいずれかを持つ者は、別の Bing アカウントでそのサイトの所有権を主張できます。すべてのレスポンスで、これら3つは [redacted: verification secret] に置き換えられます。値を確認する唯一の方法は、オペレーターが bing-wm sites list|show|roles または bing-wm plan show|list|apply に --reveal-verification-codes を入力することです。MCP ツールがこの引数を受け取ることはないため、モデルもモデルが読んだテキストも、コードを要求できません。
秘匿化は出口で行う処理であり、読み取り経路上の処理ではありません。同じフィルターは、書き込みの結果、プランに記録される引数(add_site_roles プランには送信予定の authentication_code が含まれますが、プランを表示してもコードは表示されません)、Bing 独自のエラーテキストにも適用されます。Bing が拒否したコードを引用して返す場合に備えるためです。秘匿するリテラルはリクエスト本文から取得するため、秘密が次にどのフィールドに入るかを予測しなくても秘匿できます。ディスク上のプラン記録には実際の値が保持されます。コードを失ったプランは適用できないためです。
API キーも同じ境界で、専用マーカー [redacted: API credential] を使って秘匿されます。Microsoft がキーの指定方法として文書化しているのはクエリ文字列パラメーターのみです。そのため、すべてのリクエスト URL に有効な認証情報が含まれます。到達できなかったアドレスを示すプロキシや、エラーでリクエストを引用する Bing がなければ、その URL がエラーメッセージ、ターミナル、監査記録に出力されてしまいます。認証情報を含まないエラーは、これまでとまったく同じように表示されます。
空の応答を測定結果として示すことはありません。古いエンドポイントの一部は、データがあることが明らかなアカウントに対して空のコレクションを返します。同じ時間帯に bing_crawl_stats が 1700 件のインバウンドリンクを報告したサイトでも、bing_link_counts、bing_crawl_issues、bing_fetched_urls はすべて空でした。行が返されなかった読み取りでは、MCP 経由の result とともに empty_response: {rows_returned: 0, measured: false, note: …} が返され、CLI では注記が stderr に出力されます。そのため、「Bing から何も返されなかった」を「問題は見つかりませんでした」と報告することはできません。単一のレコードを返す読み取り(bing_url_info、bing_crawl_settings、クォータ、bing_keyword)には、このラベルは付きません。1つのレコード内の配列(CrawlRate など)はそのレコードのフィールドであり、Bing が返さなかった行ではないためです。bing_url_info は同じ落とし穴を1つのフィールドで示します。HttpStatus: 0 は Bing がステータスを報告していないことを意味し、200 を意味するものではありません。この点は http_status_reported で示されます。
対応範囲と参考資料
Microsoft インターフェイスには62のメソッドが含まれています。そのうち59はここでサポートされており、廃止されたディープリンク用メソッド3つは意図的に除外されています。キーワード調査は公式シグネチャにサイトパラメーターが含まれていないため、単独の機能として提供されています。コンテンツ送信は、Microsoft の現行インターフェイスに引き続き含まれているため公開されています。アカウント側の利用資格は、Bing で該当アカウントについて確認する必要があります。
ライセンス
MIT。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。