mcpField
M
mcp-server-bwt

mcp-server-bwt

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

mcp-server-bwt について

mcp-server-bwt は、Bing Webmaster Tools API の機能を MCP 経由で AI アシスタントに提供します。サイト管理、インデックス登録、トラフィック、クロール、キーワード、リンクのデータを扱い、一覧結果のページ分割とキャッシュに対応します。

主な機能

  1. 01確認済みサイトとロールの管理
  2. 02URL、フィード、コンテンツのインデックス登録
  3. 03トラフィックとキーワード統計の確認
  4. 04クロールとリンクデータの調査
  5. 05一覧結果のページ分割とキャッシュ

活用シーン

  1. 01確認済みサイトと所有者ロールの確認
  2. 02ページのインデックス登録申請
  3. 03トラフィック、キーワード、クロール問題の調査
  4. 04リンクの確認とブロック URL の管理

MCP 対応

この MCP サーバーは Bing Webmaster Tools API の機能を、対応クライアント向けのツールとして公開します。BING_WEBMASTER_API_KEY による Bing Webmaster Tools API キーが必要です。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"bwt": {
"command": "uvx",
"args": [
"cookiecutter"
]
}
}
}
起動コマンドuvx cookiecutter

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

パッケージ
pypicookiecutter

ツール

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

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

詳細

mcp-server-bwt

PyPI Python

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 ツールを使用します。

要件

インストール

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 ファイルをご覧ください。

コメント

MCP は初めてですか?

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

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