mcpField
S
ScrapingBee

ScrapingBee

リモート
scrapingbee.comブラウザ自動化03 週間前に更新
リポジトリ公式サイト

ScrapingBee について

ScrapingBeeは、ScrapingBee APIを通じてAIエージェントにウェブページ、検索結果、各種プラットフォームのデータへの構造化アクセスを提供するホスト型MCPサーバーです。ページ抽出、GoogleやECサイトの検索、動画データ、ChatGPTやGeminiへの問い合わせに対応します。

主な機能

  1. 01レンダリング済みページのテキスト、HTML、スクリーンショット取得
  2. 02CSSまたはXPathセレクターによるデータ抽出
  3. 03Google、Amazon、Walmart、YouTubeの検索
  4. 04商品、動画、ファイルデータの取得
  5. 05ChatGPTまたはGeminiへのプロンプト送信
  6. 06アカウントのクレジットと同時実行数の確認

活用シーン

  1. 01ウェブページから指定項目を抽出
  2. 02商品の検索と販売者価格の取得
  3. 03YouTube動画の検索とメタデータや字幕の取得
  4. 04残りのAPIクレジットの確認

MCP 対応

`https://mcp.scrapingbee.com/mcp` のホスト型サーバーは、ScrapingBeeの機能をMCPツールとして公開します。クライアントは認証ヘッダーでScrapingBeeのAPIキーを送信します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.scrapingbee.com/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://mcp.scrapingbee.com/mcp認証が必要

ツール

18
パラメーター型必須説明
tagstringいいえレスポンスヘッダーのラベルのみ。
pagesintegerいいえスクレイピングするページ数。
querystringはい実行する検索クエリ。
domainstringいいえ検索に使用する Amazon ドメイン(例:com、co.uk、de)。
countrystringいいえローカライズに使用する国コード(例:us、uk、de)。 対応するドメインと組み合わせないでください(例:country=fr&domain=fr)。
sort_bystringいいえ検索結果の並べ替え順 (most_recent、price_low_to_high、price_high_to_low、featured、 average_review、bestsellers)。
add_htmlbooleanいいえ検索結果とともに HTML を返すかどうか。
currencystringいいえ結果の表示に使用する通貨コード(ISO 4217、例:USD、GBP、EUR)。
languagestringいいえ結果の表示に使用する言語コード(例:en、fr、de)。
zip_codestringいいえ配送先のローカライズに使用する ZIP コード。
screenshotbooleanいいえブラウザーのスクリーンショットを強制的に取得します(base64 画像を返します)。
start_pageintegerいいえスクレイピングを開始するページ番号。
category_idstringいいえ検索に使用するカテゴリ ID。
merchant_idstringいいえ検索に使用する販売者 ID。
light_requestbooleanいいえ軽量リクエストを使用するかどうか。
autoselect_variantbooleanいいえデフォルト/最も人気のあるバリエーションを自動選択します。

詳細

ScrapingBee MCP サーバー

scrapingbee-mcp

ScrapingBee をツールとして使用し、AI エージェントが構造化されたウェブデータにアクセスできるようにする、本番環境対応の Model Context Protocol(MCP)サーバーです。

このプロジェクトでは、ScrapingBee を AI ネイティブなデータレイヤーに変換する方法を紹介します。プロンプトにスクレイピングのロジックを直接埋め込む代わりに、AI エージェントは ScrapingBee をツールとして登録し、必要に応じて構造化されたウェブデータをリクエストします。

以下の構築をお考えの場合:

• ライブウェブアクセスを必要とする AI エージェント
• 自律型リサーチシステム
• E コマースインテリジェンスボット
• 市場監視エージェント
• ツール実行を伴う LLM ワークフロー
• AI を活用したウェブスクレイピングインフラストラクチャ

このリポジトリでは、MCP 統合の完全な設計図を提供します。

クイックスタート

サーバーは ScrapingBee が https://mcp.scrapingbee.com/mcp(Streamable HTTP)でホストしているため、 インストールは不要です。ScrapingBee API キー (こちらから取得できます。トライアルクレジットが含まれます)が必要です。 ヘッダー Authorization: Bearer <key> として送信してください。レジストリ名:com.scrapingbee/mcp。

Claude Code

claude mcp add --transport http scrapingbee https://mcp.scrapingbee.com/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Codex CLI

codex mcp add scrapingbee --url https://mcp.scrapingbee.com/mcp \
  --bearer-token-env-var SCRAPINGBEE_API_KEY

Cursor、VS Code、および JSON 設定を使用するその他のクライアント

{
  "mcpServers": {
    "scrapingbee": {
      "url": "https://mcp.scrapingbee.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Glama、 Smithery、および MCP Registryからも利用できます。

ツール
ツール機能
get_page_textURL を取得し、コンテンツをテキストまたは Markdown として返します(JavaScript をレンダリングし、ブロックに対応)
get_page_htmlURL を取得し、レンダリング済み HTML を返します
get_screenshotURL を取得し、スクリーンショットを返します
get_fileURL からファイル(PDF、画像など)をダウンロードします
extract_page_dataURL を取得し、CSS または XPath セレクターで特定のデータを抽出します
fast_searchクリーンなオーガニック検索結果とトップニュースを返す高速ウェブ検索です。一般的な検索で最初に選ぶツールです
get_google_search_results専門的な検索(ニュース、マップ、Lens、ショッピング、画像、AI モード)向けに、Google SERP を JSON で返します
get_amazon_search_resultsAmazon の検索結果を JSON で返します
get_amazon_product_detailsASIN を指定して Amazon の商品詳細を取得します
get_amazon_pricingASIN を指定して、現在の Amazon 価格と販売者の出品情報を取得します
get_walmart_search_resultsWalmart の検索結果を JSON で返します
get_walmart_product_detailsID を指定して Walmart の商品詳細を取得します
get_youtube_search_resultsYouTube の検索結果を取得します
get_youtube_video_metadata動画のタイトル、説明、統計情報などを取得します
get_youtube_video_subtitles動画の字幕/文字起こしを取得します
ask_chatgptChatGPT にプロンプトを送信します。ウェブ検索を追加することもできます
ask_geminiGemini にプロンプトを送信します。利用可能な場合は引用も返します
get_scrapingbee_usageアカウントの残りクレジット数と同時実行数を取得します

各呼び出しで消費される API クレジットは、同等の ScrapingBee API リクエストとまったく同じです (料金と API ドキュメントを参照)。このサーバーでは、1 回の呼び出しにつき 1 ページまたは 1 クエリを処理します。数百件の URL の処理、サイトのクロール、ファイルへの結果の書き込み、定期的なジョブのスケジュール設定には、 ScrapingBee CLIを使用してください。

関連キーワード: scrapingbee mcp
model context protocol server
mcp scraping
ai agent web scraping
mcp web scraping tool

Model Context Protocol(MCP)とは?

Model Context Protocol(MCP)は、AI システムが外部ツールと構造化された方法でやり取りする方法を定義します。

言語モデルにウェブのスクレイピングや閲覧方法を推測させるのではなく、MCP を使うと、次のことが可能になります。

  1. 利用可能なツールを検出する
  2. 構造化されたパラメーターを使ってツールを呼び出す
  3. 正規化された JSON レスポンスを受け取る
  4. 結果を推論ループに戻す

ScrapingBee MCP サーバーは、AI システムが安全かつ予測可能な方法で利用できる、正式に登録されたツールとしてウェブスクレイピング機能を提供します。

MCP で ScrapingBee を使う理由

AI モデルでは、次のことを安定して行うことはできません。

• ボット対策を回避する
• プロキシローテーションを管理する
• JavaScript を多用するページをレンダリングする
• CAPTCHA チャレンジに対応する
• スクレイピングのインフラストラクチャを維持する

ScrapingBee はこれらすべてに対応します。

MCP サーバーは、AI エージェントと ScrapingBee のマネージドスクレイピングインフラストラクチャをつなぐブリッジとして機能します。

これにより、壊れやすいプロンプトベースのハックに頼らず、AI エージェントによる本格的なウェブスクレイピングを実現できます。

アーキテクチャの概要

AI エージェント
→ MCP クライアント
→ ScrapingBee MCP サーバー
→ ScrapingBee API
→ 対象ウェブサイト
→ 構造化された JSON レスポンス
→ エージェントのコンテキストに挿入

AI エージェントが直接スクレイピングすることはありません。
ツールを呼び出します。
MCP サーバーがツールを実行します。

インストール

インストールや実行は不要です。サーバーは ScrapingBee が次の場所で運用しています。 https://mcp.scrapingbee.com/mcp。必要な設定は API キーだけです。以下の各クライアントは、 Authorization: Bearer ヘッダーとして API キーを送信します。

export SCRAPINGBEE_API_KEY=your_api_key
ScrapingBee MCP サーバーへの接続

接続方法は 2 つあります。

  1. Claude Desktop 経由(リモート MCP)
  2. カスタム Python MCP クライアント経由

方法 1:Claude Desktop に接続する

ScrapingBee MCP サーバーを claude_desktop_config.json ファイルに追加します。

{
  "mcpServers": {
    "scrapingbee": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.scrapingbee.com/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer YOUR_API_KEY"
      }
    }
  }
}

(AUTH_HEADER 変数は、mcp-remote が引数内のスペースを処理する際の問題を回避するために使用します。)

これにより、Claude Desktop 内で ScrapingBee が MCP ツールプロバイダーとして登録されます。

Claude を再起動すると、ツールが自動的に利用可能になります。

方法 2:カスタム Python MCP クライアント

高度な AI ワークフロー向けに、Python を使用して最小限の非同期 MCP クライアントを構築できます。

以下に、完全に動作するサンプルを示します。

custom_mcp_client.py
import os
import re
import json
import asyncio
import httpx
import google.generativeai as genai
from typing import Dict, Any, List

MCP_SERVER_URL = "https://mcp.scrapingbee.com/mcp"
SCRAPINGBEE_API_KEY = os.environ.get("SCRAPINGBEE_API_KEY")
GEMINI_API_KEY = os.environ.get("GEMINI_API_KEY")
MCP クライアントの実装
class MCPClient:
    def __init__(self, base_url: str, api_key: str):
        self.base_url = base_url
        self.session_id = None
        self.http_client = httpx.AsyncClient(timeout=300)
        self.headers = {
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json",
            "Accept": "application/json, text/event-stream",
            "User-Agent": "Minimal-MCP-Client/1.0",
        }

    async def _send_request(self, payload: Dict[str, Any]):
        headers = self.headers.copy()
        if self.session_id:
            headers["Mcp-Session-Id"] = self.session_id

        response = await self.http_client.post(self.base_url, json=payload, headers=headers)
        response.raise_for_status()

        text = (await response.aread()).decode("utf-8")

        if "data:" in text:
            match = re.search(r"data:\s*({.*})", text, re.DOTALL)
            if match:
                return json.loads(match.group(1))

        if response.status_code in [202, 204] or not text:
            return {"status": "ok"}

        return json.loads(text)

    async def initialize(self):
        init_payload = {
            "jsonrpc": "2.0",
            "id": "1",
            "method": "initialize",
            "params": {
                "protocolVersion": "2024-11-05",
                "capabilities": {},
                "clientInfo": {"name": "MinimalClient"},
            },
        }

        async with self.http_client.stream(
            "POST", self.base_url, json=init_payload, headers=self.headers
        ) as response:
            self.session_id = response.headers.get("Mcp-Session-Id")

        notify_payload = {
            "jsonrpc": "2.0",
            "method": "notifications/initialized",
            "params": {}
        }

        await self._send_request(notify_payload)

        list_payload = {
            "jsonrpc": "2.0",
            "id": "2",
            "method": "tools/list",
            "params": {}
        }

        return await self._send_request(list_payload)

    async def call_tool(self, tool_name: str, arguments: Dict[str, Any]):
        payload = {
            "jsonrpc": "2.0",
            "id": "3",
            "method": "tools/call",
            "params": {
                "name": tool_name,
                "arguments": arguments
            }
        }

        return await self._send_request(payload)
MCP ツールを Gemini 用に変換する
def format_tools_for_gemini(tools: List[Dict[str, Any]]):
    type_map = {
        "string": genai.protos.Type.STRING,
        "integer": genai.protos.Type.INTEGER,
        "number": genai.protos.Type.NUMBER,
        "boolean": genai.protos.Type.BOOLEAN,
    }

    gemini_tools = []

    for tool in tools:
        properties = {}
        input_schema = tool.get("inputSchema", {})

        if "properties" in input_schema:
            for name, prop in input_schema["properties"].items():
                properties[name] = genai.protos.Schema(
                    type=type_map.get(prop.get("type", "string")),
                    description=prop.get("description", "")
                )

        func = genai.protos.FunctionDeclaration(
            name=tool["name"],
            description=tool["description"],
            parameters=genai.protos.Schema(
                type=genai.protos.Type.OBJECT,
                properties=properties,
                required=input_schema.get("required", [])
            ),
        )

        gemini_tools.append(
            genai.protos.Tool(function_declarations=[func])
        )

    return gemini_tools
AI → MCP → ツール実行の全体フロー
async def main():
    mcp_client = MCPClient(MCP_SERVER_URL, SCRAPINGBEE_API_KEY)
    tools_response = await mcp_client.initialize()

    genai.configure(api_key=GEMINI_API_KEY)
    gemini_tools = format_tools_for_gemini(tools_response["result"]["tools"])

    model = genai.GenerativeModel(
        model_name="gemini-2.5-pro",
        tools=gemini_tools
    )

    user_prompt = input("Ask the AI to perform a task:\n> ")

    response = model.generate_content(user_prompt)
    function_call = response.candidates[0].content.parts[0].function_call

    tool_name = function_call.name
    tool_args = dict(function_call.args)

    result = await mcp_client.call_tool(tool_name, tool_args)

    print(json.dumps(result, indent=2))
実現できること

このアーキテクチャを使うと、次のことが可能になります。

• 利用可能なツールについて推論する AI エージェントを構築する
• LLM がスクレイピングのアクションを動的に選べるようにする
• 構造化されたウェブデータ抽出を実行する
• 実世界のデータをモデルのコンテキストに挿入する
• スケーラブルな AI ネイティブのウェブスクレイピングシステムを作成する

まとめ

ScrapingBee MCP サーバーは、ウェブスクレイピングを、AI システム向けの構造化されたツール駆動型データレイヤーに変えます。

壊れやすいプロンプトベースのスクレイピングではなく、次のものが得られます。

• Model Context Protocol への準拠
• JSON-RPC による構造化された実行
• AI エージェントによるウェブスクレイピング
• スケーラブルなツールのオーケストレーション

これは、AI ネイティブなウェブデータアクセスです。

今すぐ AI 搭載エージェントの構築を始めるには、無料の API キーを取得し、数分で ScrapingBee MCP サーバーに接続してください。

コメント

MCP は初めてですか?

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

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