mcp-server-bwt について
mcp-server-bwt は、Bing Webmaster Tools API の機能を MCP 経由で AI アシスタントに提供します。サイト管理、インデックス登録、トラフィック、クロール、キーワード、リンクのデータを扱い、一覧結果のページ分割とキャッシュに対応します。
主な機能
- 01確認済みサイトとロールの管理
- 02URL、フィード、コンテンツのインデックス登録
- 03トラフィックとキーワード統計の確認
- 04クロールとリンクデータの調査
- 05一覧結果のページ分割とキャッシュ
活用シーン
- 01確認済みサイトと所有者ロールの確認
- 02ページのインデックス登録申請
- 03トラフィック、キーワード、クロール問題の調査
- 04リンクの確認とブロック URL の管理
MCP 対応
この MCP サーバーは Bing Webmaster Tools API の機能を、対応クライアント向けのツールとして公開します。BING_WEBMASTER_API_KEY による Bing Webmaster Tools API キーが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-server-bwt
Bing Webmaster Tools 用の MCP サーバー
この MCP(Model Context Protocol)サーバーは、Claude や Cursor などの対応する AI アシスタントと Bing Webmaster Tools API をつなぎます。bing-webmaster-tools を通じて利用できる Bing Webmaster Tools のすべての機能を MCP ツールとして公開し、AI アシスタントから Bing Webmaster Tools アカウントを操作できます。
Claude での使用例
設定が完了すると、Claude で MCP サーバーを使って Bing Webmaster Tools アカウントを操作できます。プロンプトの例をいくつか紹介します。
- 「Bing Webmaster Tools で認証済みのサイトをすべて一覧表示して」
- 「ホームページをインデックス登録に送信して」
- 「ウェブサイトのトラフィック統計を取得して」
- 「サイトにクロールの問題がないか確認して」
- 「『my product』のキーワード統計を取得して」
Claude はリクエストに応じて適切な MCP ツールを使用します。
要件
- uv。
uvxを提供し、適切な Python をダウンロードします - Bing Webmaster Tools API キー
インストール
mcp-server-bwt は PyPI で公開されています。MCP クライアントは uvx を使って起動するため、別途インストールする必要はありません。以下の設定ではすべて、API キーを BING_WEBMASTER_API_KEY 経由で渡します。
Claude Desktop
Claude の設定に次の内容を指定します。
"mcpServers": {
"mcp_server_bwt": {
"command": "uvx",
"args": ["mcp-server-bwt"],
"env": {
"BING_WEBMASTER_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
Claude Code
claude mcp add bwt -e BING_WEBMASTER_API_KEY=YOUR_API_KEY_HERE -- uvx mcp-server-bwt
Cursor
プロジェクト単位の場合は .cursor/mcp.json、グローバルの場合は ~/.cursor/mcp.json に次の内容を追加します。
"mcpServers": {
"bwt": {
"command": "uvx",
"args": ["mcp-server-bwt"],
"env": {
"BING_WEBMASTER_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
Zed
Zed の settings.json に次の内容を追加します。
"context_servers": {
"bwtServer": {
"command": "uvx",
"args": ["mcp-server-bwt"],
"env": {
"BING_WEBMASTER_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
バージョンとアップグレード
uvx は最初にダウンロードしたバージョンをキャッシュし、その後も再利用します。新しいリリースを利用するには、"args": ["mcp-server-bwt@latest"] を使用するか、uv cache clean mcp-server-bwt を一度実行します。バージョンを固定するには、"args": ["[email protected]"] を使用します。リリースノートは CHANGELOG.md にあります。
利用可能なツール
サーバーは、以下の Bing Webmaster Tools API 機能を提供します(詳細はAPI ドキュメントを参照してください)。
ページ分割された結果
リストを返すツール(たとえば get_query_stats、get_page_stats、get_crawl_issues)は、1 回の呼び出しで最大 50 行を返します。これにより、大規模なサイトの履歴でクライアントのコンテキストウィンドウがあふれるのを防ぎます。次の 2 つの省略可能なパラメーターを受け取ります。
limit:1 回の呼び出しで返す行数(1~500、デフォルトは 50。下記のBING_WEBMASTER_PAGE_SIZEを参照)offset:最初の行のインデックス(デフォルトは 0)
ページ分割された各結果の末尾には、Showing 50 of 1200 rows from offset 0; next_offset=50 のような行が含まれます。同じ値は、結果の _meta 内の mcp-server-bwt/pagination(total、offset、limit、next_offset)にも含まれます。次のページを取得するには、offset に next_offset を設定して再度呼び出します。
サーバーはダウンロードした各リストを 5 分間保持します(下記の BING_WEBMASTER_CACHE_TTL を参照)。後続ページを含め、同じ引数で再度呼び出すと、リスト全体を再ダウンロードせず、保持しているデータが返されます。add_blocked_url のようにデータを変更するツールは、該当する領域のキャッシュ済みリスト(この場合はブロック関連ツール)をクリアするため、次の読み取りで変更が反映されます。remove_site などのサイトツールは、キャッシュ済みのすべてのリストをクリアします。Bing のウェブインターフェイスなど、別の場所で行われた変更が反映されるまでには、最大 5 分かかることがあります。トラフィック、クロール、キーワードのデータなど、Bing が算出する統計は最大 5 分前のものになる場合があります。
0.1.x からの移行: リストを返すツールは、以前はすべての行を返していました。その動作に戻すには、サーバーの
envでBING_WEBMASTER_PAGE_SIZE=0を設定します。毎回の呼び出しで最新データも取得するには、BING_WEBMASTER_CACHE_TTL=0を設定します。
サイト管理
get_sites:Bing Webmaster Tools アカウントで確認済みのサイトをすべて一覧表示しますadd_site:アカウントに新しいサイトを追加しますverify_site:サイトの所有権を確認しますremove_site:アカウントからサイトを削除しますget_site_roles:特定のサイトのロールを取得しますadd_site_roles:サイトにロールを追加しますremove_site_role:サイトからロールを削除しますget_site_moves:サイト移転に関する情報を取得しますsubmit_site_move:サイト移転リクエストを送信します
URL の送信
submit_url:インデックス登録用に単一の URL を送信しますsubmit_url_batch:インデックス登録用に複数の URL を一括送信しますsubmit_content:インデックス登録用にコンテンツを送信しますsubmit_feed:インデックス登録用にフィードを送信しますget_feeds:送信済みのフィードをすべて取得しますget_feed_details:特定のフィードの詳細を取得しますremove_feed:アカウントからフィードを削除しますget_url_submission_quota:URL 送信の上限を確認しますget_content_submission_quota:コンテンツ送信の上限を確認しますfetch_url:インデックス登録用に URL を取得しますget_fetched_urls:取得済みの URL をすべて取得しますget_fetched_url_details:特定の取得済み URL の詳細を取得します
トラフィック分析
get_query_stats:検索クエリの統計を取得しますget_query_traffic_stats:検索クエリのトラフィック統計を取得しますget_query_page_stats:検索クエリのページ統計を取得しますget_query_page_detail_stats:検索クエリの詳細なページ統計を取得しますget_page_stats:ページの統計を取得しますget_page_query_stats:ページのクエリ統計を取得しますget_rank_and_traffic_stats:順位とトラフィックの統計を取得します
クロール
get_crawl_stats:クロール統計を取得しますget_crawl_settings:クロール設定を取得しますsave_crawl_settings:クロール設定を保存しますget_crawl_issues:クロールの問題を取得します
キーワード分析
get_keyword:キーワードに関する情報を取得しますget_keyword_stats:キーワードの統計を取得しますget_related_keywords:関連キーワードを取得します
リンク分析
get_link_counts:リンク数を取得しますget_url_links:URL のリンクを取得しますget_deep_link:ディープリンクの情報を取得しますget_deep_link_blocks:ディープリンクのブロックを取得しますadd_deep_link_block:ディープリンクのブロックを追加しますremove_deep_link_block:ディープリンクのブロックを削除しますupdate_deep_link:ディープリンクを更新しますget_deep_link_algo_urls:ディープリンクアルゴリズムの URL を取得しますget_connected_pages:接続されたページを取得しますadd_connected_page:接続されたページを追加します
コンテンツ管理
get_url_info:URL の情報を取得しますget_url_traffic_info:URL のトラフィック情報を取得しますget_children_url_info:子 URL の情報を取得しますget_children_url_traffic_info:子 URL のトラフィック情報を取得します
コンテンツのブロック
get_blocked_urls:ブロックされている URL を取得しますadd_blocked_url:ブロックリストに URL を追加しますremove_blocked_url:ブロックリストから URL を削除しますget_active_page_preview_blocks:有効なページプレビューのブロックを取得しますadd_page_preview_block:ページプレビューのブロックを追加しますremove_page_preview_block:ページプレビューのブロックを削除します
地域設定
get_country_region_settings:国/地域の設定を取得しますadd_country_region_settings:国/地域の設定を追加しますremove_country_region_settings:国/地域の設定を削除します
URL 管理
get_query_parameters:クエリパラメーターを取得しますadd_query_parameter:クエリパラメーターを追加しますremove_query_parameter:クエリパラメーターを削除しますenable_disable_query_parameter:クエリパラメーターを有効または無効にします
開発
開発には Python >= 3.13 と uv が必要です。[make mcp_inspector] を実行する場合に限り、Node.js が必要です。
make install は依存関係と、lefthook.yml に定義された Git フックをインストールします。
- pre-commit は、ステージ済みの
*.pyファイルに対してruff check --fixとruff formatを実行します。修正内容は同じコミットにステージされます。ruff で修正できない問題が見つかった場合にのみ、コミットは失敗します。 - pre-push は
mypy --strictを実行します。また、プッシュに*.pyファイルが含まれる場合はテストスイートを、pyproject.tomlまたはuv.lockが含まれる場合はuv lock --checkを実行します。
フックを一度だけスキップするには、git commit --no-verify または git push --no-verify を使用するか、LEFTHOOK=0 を設定します。
すべてのテストを実行するには:
BING_WEBMASTER_API_KEY=dummy make test
アプリをビルドするには:
make build
プロジェクトの lint を実行するには:
make lint
プロジェクトをフォーマットするには:
make format
ローカルチェックアウトからの実行
変更をクライアントで試すには、make install の実行後、チェックアウトの仮想環境を参照するように設定します。これはコントリビューター向けです。ユーザーは上記の手順に従い、PyPI からインストールしてください。
Claude Desktop:
"mcpServers": {
"bwtServer": {
"command": "/PATH/TO/mcp-server-bwt/.venv/bin/python",
"args": ["/PATH/TO/mcp-server-bwt/mcp_server_bwt/main.py"],
"env": {
"BING_WEBMASTER_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
Zed:
"context_servers": {
"bwtServer": {
"command": "/PATH/TO/mcp-server-bwt/.venv/bin/python",
"args": ["/PATH/TO/mcp-server-bwt/mcp_server_bwt/main.py"],
"env": {
"BING_WEBMASTER_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
環境変数
次の環境変数が必須です。
BING_WEBMASTER_API_KEY:Bing Webmaster Tools の API キー
任意:
BING_WEBMASTER_PAGE_SIZE:リストツールが呼び出しごとに返す行数の既定値(1~500、既定値は 50)。0にするとページ分割が無効になり、呼び出し元がlimitまたはoffsetを渡さない限り、リストツールは要約行なしですべての行を返し、500 件の上限も解除されます。値が無効な場合、サーバーは起動しません。BING_WEBMASTER_CACHE_TTL:リストツールがダウンロードしたリストを、同じ引数での後続の呼び出しに使用するために保持する秒数(0~86400、既定値は 300)。結果は指定した秒数だけ古くなる場合があります。ただし、書き込みツールは自身の領域のキャッシュ済みリストを消去し、サイトツール(add_site、remove_site、…)はすべてのキャッシュ済みリストを消去します。0にするとキャッシュが無効になり、すべての呼び出しで Bing API にアクセスします。値が無効な場合、サーバーは起動しません。
サーバーの起動
MCP サーバーを起動するには:
make start
MCP Inspector
MCP Inspector を使ってサーバーをテストできます。
make mcp_inspector
テンプレートからの作成
この MCP サーバーは cookiecutter テンプレートから作成されました。同様のサーバーを作成するには、次を実行します。
uvx cookiecutter gh:zizzfizzix/python-base-mcp-server
ライセンス
mcp-server-bwt は MIT License の下でライセンスされています。MIT License の利用規約に従うことを条件に、このソフトウェアを自由に使用、変更、配布できます。詳細については、プロジェクトリポジトリ内の LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。