モデル / データセット
brightdata/brightdata-mcp avatar
brightdata/brightdata-mcp

brightdata-mcp を自前のエージェント基盤に組み込む前に読む

A powerful Model Context Protocol (MCP) server that provides an all-in-one solution for public web access.

スター 2,646フォーク 327JavaScriptMIT

ひと目でわかる

これは何?
公開ウェブへのアクセスを 69 個の MCP ツールとして提供するサーバー実装。ホスト型とローカル npx の二通りがあり、無料枠は月 5,000 リクエスト。採用判断で効いてくるのは、ツールの数ではなく課金境界とツール選択の設計である。
誰に向いている?
月 5,000 リクエスト以内で検索とページ取得を回す個人開発や小規模チームには、ホスト型の URL を 1 本貼るだけで済むため導入コストがほぼゼロに近い。逆に、社内ネットワークから外部 SaaS へトークンを渡せない組織、あるいは 1 か月に数万件の取得を平文で回す想定のチームには向かない。
商用利用できる?
できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。直近 1 日以内に新しいコミットがあります。
何の言語で書かれている?
主に JavaScript です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

brightdata-mcp が埋めるのはどの穴か

LLM エージェントにウェブを読ませようとすると、最初に必ず壁に当たる。訓練データに含まれない現在の情報が要るのに、素の HTTP クライアントではボット検出、CAPTCHA、レート制限、地域制限のいずれかで弾かれる。自前でヘッドレスブラウザを立て、proxy をローテーションし、リトライを書き、失敗パターンを分類する作業は、本題であるエージェントのロジックから見れば完全な付帯作業である。

このプロジェクトは、その付帯作業を MCP のツール呼び出しに畳み込む。README によれば、すべてのリクエストは Bright Data のアンロッキング基盤を通り、proxy の設定、ヘッドレスブラウザの保守、リトライ処理の実装は不要とされている。対象読者は MCP 互換クライアントを持つ AI エージェント、コーディングエージェント、チャットアシスタントで、Claude Desktop、Claude Code、Cursor、VS Code、Windsurf、Gemini CLI、Zed、Warp 向けの設定例が README に並んでいる。

ここで押さえておきたいのは、これはスクレイパーのライブラリではなく、MCP サーバーだという点である。Python スクリプトから import して使う類のものではなく、エージェントのツール一覧に 69 個の関数を差し込む。したがって評価軸はコードの読みやすさではなく、ツールの粒度、課金境界、そして失敗時にエージェントがどう振る舞うかになる。

ホスト型 URL とローカル npx の分岐

導入経路は 2 つある。ホスト型は https://mcp.brightdata.com/mcp?token=YOUR_API_TOKEN_HERE をクライアントに登録するだけで、インストールもビルドも要らない。ローカルは npx @brightdata/mcp を起動し、環境変数 API_TOKEN にトークンを渡す。README の Claude Desktop 向け設定はこの形で、command に npx、args に @brightdata/mcp、env に API_TOKEN を書く。

この 2 経路は、見た目の手軽さほど違いがない。ローカル起動でも、実際の取得処理は Bright Data 側の基盤を通る。npx はプロセスを手元で動かすだけで、アンロッキングをローカルに持ってくるわけではない。つまり「データを外に出したくないからローカルにする」という動機は、この構成では成立しない。トークンとリクエスト内容はどちらの経路でも Bright Data に届く。

クライアントごとの設定キーが微妙に違う点も実務では効く。Cursor は ~/.cursor/mcp.json に url を書き、VS Code は .vscode/mcp.json に type: http と url を書く。Windsurf は ~/.codeium/windsurf/mcp_config.json に serverUrl、Gemini CLI は ~/.gemini/settings.json に httpUrl、Zed は context_servers 配下に url を置く。同じ HTTP トランスポートでもキー名が揃っていないので、README の該当ブロックをコピーするのが早い。

69 個のツールを groups と tools で削る

README はツールを 6 分類で説明している。ウェブ検索(Google、Bing、Yandex の結果を構造化データとして返す)、ページ取得(任意 URL を Markdown または HTML で返し、ボット検出、CAPTCHA 解決、proxy ローテーションを毎回処理する)、構造化データ抽出(Amazon、LinkedIn、Instagram、TikTok、YouTube、X、Reddit、Facebook、Crunchbase、Zillow などの主要プラットフォームから HTML を解析せずに JSON を得る)、ブラウザ自動化(リモートセッションで移動、クリック、入力、スクリーンショット、読み取り)、LLM 応答収集(ChatGPT、Grok、Perplexity にプロンプトを送り構造化データとして受け取る)、パッケージレジストリのデータ(npm と PyPI のバージョン、README、依存関係、メタデータ)。

全部を有効にすると 69 個のツール定義がエージェントのコンテキストに載る。これはモデルのツール選択精度に直接効いてくる。検索したいだけのエージェントに LinkedIn 抽出やブラウザ操作まで見せると、選ばれなくていいツールが候補に入る。README はこの対策として URL パラメータを用意している。groups=<ids> でツール群をまとめて有効化し、tools=<names> で個別指定する。例として groups=social,ecommerce、tools=search_engine,scrape_as_markdown が挙げられている。

実務的には、最初から groups で絞るべきだと考える。構造化データ抽出系は対象ドメインが明確なときにだけ価値が出る。汎用の調査エージェントに 60 以上のドメイン別スクレイパーを見せる意味は薄い。逆に、EC 価格の定点観測のようにドメインが固定された用途では、HTML を解析せず JSON が返る利点がそのまま効く。

無料枠 5,000 リクエストと課金の切れ目

無料枠は月 5,000 リクエストで、クレジットカード不要、毎月 1 日に更新される。未使用分は繰り越されない。チームアカウントの場合、この枠はアカウント内の全ユーザーで共有される。ここは見落としやすい。個人で試している分には余裕があっても、同じアカウントに 5 人を追加した時点で 1 人あたり 1,000 リクエストになる。

枠を超えた後の単価は 2 本立てである。検索・取得・抽出が $1.50 / 1K results、ブラウザ操作が $8 / GB。この 2 つは課金軸が違う。前者は結果件数、後者は転送量。したがってブラウザ自動化を混ぜると、コストの読み方が変わる。ページを何回読んだかではなく、どれだけのバイトを流したかで請求が来る。スクリーンショットを多用するワークフローは、この軸では結果件数ベースより伸びやすい。

README は、無料リクエストを使い切るとリクエストが停止し、入金済みの資金がない限り予期しない請求は発生しないと説明している。クレジットカードの追加は本人確認の手続きであり、無料枠を使い切り、かつ資金を入金している場合にのみ課金されるとされている。control panel で spend cap を設定でき、pay-as-you-go の使用額が予算を超えないようにできる。エージェントを無人で走らせるなら、この上限設定は最初にやる作業になる。

向かない場面と、自前構築との差分

このプロジェクトが明確に不向きなのは、ログインの内側にあるデータを扱う場合である。README の説明は一貫して公開ウェブへのアクセスであり、認証が必要な社内システムや有料会員限定の画面は対象外と読める。構造化データ抽出も公開プロフィールや商品ページの類を想定している。

もう 1 つの境界は、データの所在である。前述のとおりローカル npx でも取得は Bright Data の基盤を通る。規制産業や社内ポリシーで外部 SaaS にトークンを渡せない組織では、この構成自体が選択肢から外れる。ここは技術的な優劣ではなく、統制の問題として先に落ちる。

代替として最も素直な比較対象は、Playwright や Puppeteer に自前の proxy を組み合わせる構成である。アプローチの差は制御点の位置にある。自前構成では、待機条件、リトライ回数、ユーザーエージェント、proxy の選び方まで自分のコードで決められる。代わりに、ボット検出の回避、CAPTCHA の処理、proxy の在庫管理、対象サイトの HTML 変更への追従を自分で抱える。brightdata-mcp はこの後半を外部化し、代わりに制御点と従量課金を受け入れる。判断は、対象サイトの防御がどれだけ強いか、そして自前運用の保守に何時間を割けるかに帰着する。

中間の選択肢として、検索とページ取得だけを tools=search_engine,scrape_as_markdown で有効にし、複雑な操作が要る部分だけ自前のブラウザスタックに残す、という切り分けも取れる。この場合、無料枠 5,000 リクエストは読み取り系に集中させ、GB 課金のブラウザ操作は発生させない。

ライセンスと更新に伴うコスト

リポジトリのライセンスは MIT である。ソースの改変と再配布はこの条件の下で可能だが、MIT が及ぶのはリポジトリ内のコードであって、取得リクエストの処理を担う Bright Data のサービス利用は別契約になる。セルフホストすれば課金が消える、という読み方は成立しない。

更新の頻度は material から読み取れる。直近のリリースは v2.11.1(2026-07-27)、v2.11.0(2026-06-16)、v2.9.3(2026-03-29)で、マイナー番号が 2.9 から 2.11 へ進んでいる。ツール数が 69 と明示されている以上、ツールの追加や引数変更が入る余地はある。エージェント側でツール名や引数をプロンプトに固定して書いている場合、この更新は静かに壊れる。

コスト見積もりで忘れがちなのは、MCP サーバー自体の更新ではなく、クライアント側の設定ファイルの追随である。ホスト型を使う場合、URL は変わらないが、groups や tools のパラメータで有効化できるツール群の構成は変わりうる。ツール名を固定で指定しているなら、リリースノートで tools パラメータの仕様変更を追う必要がある。

導入前に確かめる 3 つの実測項目

第一に、groups と tools のパラメータが実際にどう解釈されるかを、自分のクライアントで確認する。README には groups=social,ecommerce と tools=search_engine,scrape_as_markdown の例があるが、有効化された結果としてクライアントのツール一覧に何が現れるかは、手元で見るのが確実である。エージェントのツール選択に効く以上、ここを推測で進めるのは避けたい。

第二に、無料枠の消費単位を把握する。5,000 リクエストが何をもって 1 リクエストと数えるかは、検索とページ取得と構造化抽出で同じとは限らない。README は検索・取得・抽出をまとめて $1.50 / 1K results としているが、無料枠のカウント方法については記述が薄い。数日動かして control panel の消費を見るのが早い。

第三に、ブラウザ自動化を使う予定があるなら $8 / GB の発生条件を先に確認する。結果件数ベースの見積もりをそのまま当てると、スクリーンショットや大きなページを扱うワークフローで数字がずれる。使わないなら tools パラメータで除外しておくほうが、エージェントの選択肢も請求も締まる。

編集部の結論

月 5,000 リクエスト以内で検索とページ取得を回す個人開発や小規模チームには、ホスト型の URL を 1 本貼るだけで済むため導入コストがほぼゼロに近い。逆に、社内ネットワークから外部 SaaS へトークンを渡せない組織、あるいは 1 か月に数万件の取得を平文で回す想定のチームには向かない。前者はローカル npx 起動でも Bright Data 側のインフラを通る点を先に確認すべきで、後者は $1.50 / 1K results の単価が自前 proxy 運用より安いかを試算する必要がある。導入前に確かめるべきは 3 点。groups と tools の URL パラメータで実際にどのツールが有効化されるか、無料枠がアカウント単位で共有される条件、そして browser automation を使う場合に $8 / GB がどの時点で発生するかである。

公式情報源

  1. brightdata/brightdata-mcp on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
コミュニティノート

コミュニティノート