ScrapingBee について
ScrapingBeeは、ScrapingBee APIを通じてAIエージェントにウェブページ、検索結果、各種プラットフォームのデータへの構造化アクセスを提供するホスト型MCPサーバーです。ページ抽出、GoogleやECサイトの検索、動画データ、ChatGPTやGeminiへの問い合わせに対応します。
主な機能
- 01レンダリング済みページのテキスト、HTML、スクリーンショット取得
- 02CSSまたはXPathセレクターによるデータ抽出
- 03Google、Amazon、Walmart、YouTubeの検索
- 04商品、動画、ファイルデータの取得
- 05ChatGPTまたはGeminiへのプロンプト送信
- 06アカウントのクレジットと同時実行数の確認
活用シーン
- 01ウェブページから指定項目を抽出
- 02商品の検索と販売者価格の取得
- 03YouTube動画の検索とメタデータや字幕の取得
- 04残りのAPIクレジットの確認
MCP 対応
`https://mcp.scrapingbee.com/mcp` のホスト型サーバーは、ScrapingBeeの機能をMCPツールとして公開します。クライアントは認証ヘッダーでScrapingBeeのAPIキーを送信します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.scrapingbee.com/mcpclaude mcp add --transport http com-scrapingbee https://mcp.scrapingbee.com/mcp{"mcpServers":{"com-scrapingbee":{"type":"http","url":"https://mcp.scrapingbee.com/mcp"}}}Cursor で開く{"servers":{"com-scrapingbee":{"type":"http","url":"https://mcp.scrapingbee.com/mcp"}}}VS Code で開く{"mcpServers":{"com-scrapingbee":{"type":"http","url":"https://mcp.scrapingbee.com/mcp"}}}{"mcpServers":{"com-scrapingbee":{"serverUrl":"https://mcp.scrapingbee.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.scrapingbee.com/mcp認証が必要ツール
18| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| tag | string | いいえ | レスポンスヘッダーのラベルのみ。 |
| pages | integer | いいえ | スクレイピングするページ数。 |
| query | string | はい | 実行する検索クエリ。 |
| domain | string | いいえ | 検索に使用する Amazon ドメイン(例:com、co.uk、de)。 |
| country | string | いいえ | ローカライズに使用する国コード(例:us、uk、de)。 対応するドメインと組み合わせないでください(例:country=fr&domain=fr)。 |
| sort_by | string | いいえ | 検索結果の並べ替え順 (most_recent、price_low_to_high、price_high_to_low、featured、 average_review、bestsellers)。 |
| add_html | boolean | いいえ | 検索結果とともに HTML を返すかどうか。 |
| currency | string | いいえ | 結果の表示に使用する通貨コード(ISO 4217、例:USD、GBP、EUR)。 |
| language | string | いいえ | 結果の表示に使用する言語コード(例:en、fr、de)。 |
| zip_code | string | いいえ | 配送先のローカライズに使用する ZIP コード。 |
| screenshot | boolean | いいえ | ブラウザーのスクリーンショットを強制的に取得します(base64 画像を返します)。 |
| start_page | integer | いいえ | スクレイピングを開始するページ番号。 |
| category_id | string | いいえ | 検索に使用するカテゴリ ID。 |
| merchant_id | string | いいえ | 検索に使用する販売者 ID。 |
| light_request | boolean | いいえ | 軽量リクエストを使用するかどうか。 |
| autoselect_variant | boolean | いいえ | デフォルト/最も人気のあるバリエーションを自動選択します。 |
詳細
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_text | URL を取得し、コンテンツをテキストまたは Markdown として返します(JavaScript をレンダリングし、ブロックに対応) |
get_page_html | URL を取得し、レンダリング済み HTML を返します |
get_screenshot | URL を取得し、スクリーンショットを返します |
get_file | URL からファイル(PDF、画像など)をダウンロードします |
extract_page_data | URL を取得し、CSS または XPath セレクターで特定のデータを抽出します |
fast_search | クリーンなオーガニック検索結果とトップニュースを返す高速ウェブ検索です。一般的な検索で最初に選ぶツールです |
get_google_search_results | 専門的な検索(ニュース、マップ、Lens、ショッピング、画像、AI モード)向けに、Google SERP を JSON で返します |
get_amazon_search_results | Amazon の検索結果を JSON で返します |
get_amazon_product_details | ASIN を指定して Amazon の商品詳細を取得します |
get_amazon_pricing | ASIN を指定して、現在の Amazon 価格と販売者の出品情報を取得します |
get_walmart_search_results | Walmart の検索結果を JSON で返します |
get_walmart_product_details | ID を指定して Walmart の商品詳細を取得します |
get_youtube_search_results | YouTube の検索結果を取得します |
get_youtube_video_metadata | 動画のタイトル、説明、統計情報などを取得します |
get_youtube_video_subtitles | 動画の字幕/文字起こしを取得します |
ask_chatgpt | ChatGPT にプロンプトを送信します。ウェブ検索を追加することもできます |
ask_gemini | Gemini にプロンプトを送信します。利用可能な場合は引用も返します |
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 を使うと、次のことが可能になります。
- 利用可能なツールを検出する
- 構造化されたパラメーターを使ってツールを呼び出す
- 正規化された JSON レスポンスを受け取る
- 結果を推論ループに戻す
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 つあります。
- Claude Desktop 経由(リモート MCP)
- カスタム 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 サーバーに接続してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。