LangChainエージェントにScrapeless MCPを搭載した21のライブWebツールを提供します。
Expert in Web Scraping Technologies
主なポイント:
- LangChainエージェントは、1つのクライアント設定から21のライブウェブツールを取得します。
langchain-mcp-adaptersパッケージは、LangChainアプリをScrapeless MCPサーバーに接続し、ブラウザ制御、ページスクレイピング、Google検索およびトレンドを含む全ツールサーフェスを準備が整ったStructuredToolオブジェクトとして返します。 - ホストされたパスにNodeは不要です。 クライアントを
https://api.scrapeless.com/mcpにストリーミングHTTPでポイントし、x-api-tokenを使用します;stdioパス(npx -y scrapeless-mcp-server)はローカル設定用の同じサーフェスです。 - ツールは、モデルが関与する前に機能します。
get_tools()でリストし、ainvoke()で直接実行できます — ライブURLのscrape_markdownはページをマークダウンとして返します — したがって、配線はLLMキーなしでテスト可能です。 - 名前はトランスポートによって異なります。 ホストされたエンドポイントは素の名前(
browser_goto、scrape_markdown、google_search)を提供します;stdioサーバーはそれらをscrapeless_*として名前空間を分けます。どちらの方法でも同じ21のツールです。 - ツールからエージェントへの構築は1つのコンストラクタです。 返されたツールを任意のLangChainチャットモデルにバインドすると、エージェントは推論ループ内でライブウェブを検索、ブラウズ、およびスクレイピングできます。
- 無料で始めることができます。 新しいScrapelessアカウントには無料トライアルクレジットが含まれています — app.scrapeless.comでサインアップしてください。
できること
- ライブウェブを読み取るエージェントの調査。 発見には
google_searchを、クリーンなページテキストにはscrape_markdownを使用 — スクレイパーを構築せずにエージェントループの取得部分です。 - ブラウザ操作エージェント。 16の
browser_*ツール(作成、移動、クリック、入力、スクロール、スクリーンショット、スナップショット、待機)は、エージェントに実際の検出回避クラウドブラウザセッションを提供します。 - 市場およびトレンドの監視。
google_trendsにスケジュールされたスクレイピングを加えることで、LangChainパイプラインを監視サービスに変換します。 - ツールに基づくRAG。 すべてを事前にインデックスするのではなく、要求に応じてマークダウンとしてページを取得し、エージェントに何を読むかを決めさせます。
- すべてに対して1つの認証。 スクレイパーAPIアクターを駆動するのと同じScrapeless APIキーが、MCPツールサーフェスを駆動します。
Scrapeless MCPサーバーの理由
MCP(Model Context Protocol)は、ツールをエージェントに渡すための標準インターフェースであり、LangChainは公式アダプターパッケージを介してこれを話します。そのプロトコルのもう一方では、Scrapeless MCPサーバーが、21のタイプ指定されたツールとしてスクレイピングインフラストラクチャを公開します:クラウドブラウザセッション、HTML、マークダウン、またはスクリーンショットへの単発ページスクレイピング、そしてGoogle検索およびトレンド。エージェントには機能が付与され、レンダリング、検出回避、プロキシルーティングはサーバー側に留まります。
この組み合わせは重要です。なぜなら、LangChainエージェントはそのツールの有用性によってのみ制限されるからです。計画ができるがライブページを取得できないモデルは、トレーニングデータから答えを出します;このツールサーフェスを持つ同じモデルは、推論しているウェブを読み取ることができます。
前提条件
- Python 3.10+および仮想環境。
- ScrapelessアカウントおよびAPIキー — app.scrapeless.comでサインアップ。
- オプションのstdioトランスポートのために:Node.js 18+(ホストされたHTTPパスにはNodeは不要です)。
bash
export SCRAPELESS_API_KEY=your_api_token_here
接続
1. アダプターをインストール
bash
pip install langchain-mcp-adapters langchain-core
2. クライアントを構成し、ツールの数を確認
ホストされたエンドポイントは最も速いパスです — 純粋なHTTPSで、x-api-tokenヘッダーによって認証されます:
python
# handshake.py — LangChainをScrapeless MCPサーバーに接続し、ツールをリストする
import asyncio
import os
from langchain_mcp_adapters.client import MultiServerMCPClient
async def main():
client = MultiServerMCPClient({
"scrapeless": {
"transport": "streamable_http",
"url": "https://api.scrapeless.com/mcp",
"headers": {"x-api-token": os.environ["SCRAPELESS_API_KEY"]},
}
})
tools = await client.get_tools()
names = sorted(t.name for t in tools)
print(f"ツール数: {len(names)}")
print("名前:", ", ".join(names))
asyncio.run(main())
正しいハンドシェイクでは21のツールが表示されます:
browser_click, browser_close, browser_create, browser_get_html, browser_get_text, browser_go_back, browser_go_forward, browser_goto, browser_press_key, browser_screenshot, browser_scroll, browser_scroll_to, browser_snapshot, browser_type, browser_wait, browser_wait_for, google_search, google_trends, scrape_html, scrape_markdown, scrape_screenshot
3. または、stdioでローカルにサーバーを実行する
同じ表面の船とnpmパッケージをローカルセットアップ用に — 標準MCP構成形状で、キーは環境変数として渡されます:
json
{
"scrapeless": {
"command": "npx",
"args": ["-y", "scrapeless-mcp-server"],
"transport": "stdio",
"env": { "SCRAPELESS_KEY": "your_api_token_here" }
}
}
期待される一つのトランスポートレベルの違い:stdioサーバーはツール名をscrapeless_*として名前空間化しますが、ホストされたエンドポイントはそれらを無名で提供します。名前でツールを探すコードはサフィックスで一致する必要があります。
無料プランでAPIキーを取得: app.scrapeless.com
実際の使用方法:ツールを呼び出し、エージェントに渡す
戻り値のオブジェクトは通常のLangChain StructuredToolであり、これは直接実行されることを意味します — モデルは必要ありません。配線がエンドツーエンドで機能する最も短い証明:
python
# invoke_tool.py — アダプターを介して1つのMCPツールを直接実行
import asyncio
import os
from langchain_mcp_adapters.client import MultiServerMCPClient
async def main():
client = MultiServerMCPClient({
"scrapeless": {
"transport": "streamable_http",
"url": "https://api.scrapeless.com/mcp",
"headers": {"x-api-token": os.environ["SCRAPELESS_API_KEY"]},
}
})
tools = {t.name: t for t in await client.get_tools()}
result = await tools["scrape_markdown"].ainvoke(
{"url": "https://www.scrapeless.com/ja/blog/best-llm-scrapers-2026"}
)
text = result if isinstance(result, str) else str(result)
print(f"scrape_markdownは{len(text):,}文字のマークダウンを返しました")
asyncio.run(main())
ライブ実行では、これは1つのツール呼び出しからのクリーンなページテキストの数万文字のフル記事をマークダウン形式で返します。
ツールをエージェントにバインドするのは、LangChainで常にそのままのコンストラクタです — スタックが使用するチャットモデルを持ってきてください(モデルAPIキーはこのガイドがカバーしていない唯一の前提条件です):
python
# agent.py — MCPツールをLangChainエージェントに接続(モデルAPIキーが必要)
from langchain.agents import create_agent
agent = create_agent(model, tools) # `tools`はclient.get_tools()から、`model` = あなたのチャットモデル
result = agent.invoke({
"messages": [{"role": "user", "content": "Scrapelessを検索して、トップの結果を要約してください。"}]
})
エージェントの視点では、ツールは呼び出すことのできる関数に過ぎません:計画し、google_searchを選び、読み込み、scrape_markdownを選び、再度読み込み、そしてライブコンテンツから回答します。
Scrapeless MCPツール表面
| グループ | ツール | 何をするか |
|---|---|---|
| ブラウザセッション | browser_create, browser_goto, browser_click, browser_type, browser_press_key, browser_scroll, browser_scroll_to, browser_go_back, browser_go_forward, browser_wait, browser_wait_for, browser_snapshot, browser_get_html, browser_get_text, browser_screenshot, browser_close |
クラウドの検出回避ブラウザをステップバイステップで操作 — セッションは呼び出し間で持続します |
| ページスクレイピング | scrape_html, scrape_markdown, scrape_screenshot |
任意のURLを生のHTML、クリーンなマークダウン、または画像として一度だけ取得 |
| Googleデータ | google_search, google_trends |
構造化された検索結果とトレンドデータ |
何が返ってくるのか
ツールの結果は、アダプターがLangChainに露出するMCPコンテンツ部分として到着します — スクレイピングツールの場合、ペイロードはページ自体です。上記のscrape_markdown呼び出しは、スプリッター、要約器、またはエージェント自身のコンテキストウィンドウに供給できるように、レンダリングされた記事をマークダウンテキストとして返します。ブラウザツールも同様の方法で観察結果(スナップショット、抽出されたテキスト、スクリーンショット)を返し、これがエージェントループ内でのマルチステップブラウジングを実用的にします。
結論:1つの構成ブロック、ウェブ対応エージェント
統合は本当に小さいです:アダプターをインストールし、MultiServerMCPClientにホストされたURLとトークンを渡すと、get_tools()はLangChainに21のライブウェブ機能を提供します。ツールの数で検証し、1回の直接ainvokeで証明し、同じリストをエージェントにバインドします。Mastra統合ガイドでは、同じサーバーがTypeScriptエージェントフレームワークに配線されているのを示しています — 同じ表面、異なるホスト。
あなたのエージェントにライブウェブを与える準備はできましたか?
無料プランを請求し、エージェントパイプラインを構築している開発者とつながるためにコミュニティに参加してください: Discord · Telegram。
app.scrapeless.comで無料トライアルクレジットにサインアップしてください — 料金プランは現在のティアをカバーしています — そして、LangChainエージェントを読むべきページに向けてください。
よくある質問
Q: Node.jsは必要ですか?
標準入出力トランスポートのためだけに必要です。これは、npmパッケージをローカルで生成します。ホストされたhttps://api.scrapeless.com/mcpエンドポイントは、プレーンHTTPSです — Pythonのみのスタックでは、ノードは必要ありません。
Q: どのように認証しますか?
ホストエンドポイントはリクエストヘッダーとしてx-api-token: <your key>を受け取ります;標準入出力サーバーは環境からSCRAPELESS_KEYを読み取ります。同じキーで、両方のトランスポート — app.scrapeless.comの無料プランで作成されます。
Q: 統合が実際に接続されていることをどうやって確認しますか?
モデルフリーの2つのチェックがあります:get_tools()は21のツールを返し、実際のURLでのscrape_markdownの直接呼び出しはページをマークダウンとして返します。両方が合格すれば、エージェントのバインディングが残る唯一のステップです。
Q: ローカルサーバーとホストされたエンドポイント間でツール名が異なるのはなぜですか?
標準入出力パッケージは名前空間をscrapeless_*として管理します;ホストされたエンドポイントでは、それらは無修正で提供されます。両方でコードが機能する必要がある場合は、接尾辞で一致させてください。
Q: エージェントなしでツールを使用できますか?
はい — それらはStructuredToolオブジェクトで、ainvokeを介してスタンドアロンで実行できます。これにより、単純なLangChainチェーンやLangGraphノードでも使用可能です、エージェントだけでなく。
Q: ツールを通じてのウェブアクセスは合法ですか?
ツールは、Scrapelessインフラストラクチャーを通じて、公にアクセス可能なページを取得します。ルールは管轄地域やサイトの利用規約によって異なります — エージェントが読むサイトの利用規約を確認し、あなたの使用ケースに応じて法律に相談してください。GDPRやCCPAで保護されている個人データを収集しないでください。
Q: 実行するのに費用はかかりますか?
ツール呼び出しは、プラットフォームの残りと同じ使用ベースのScrapelessアカウントを使用し、新しいアカウントは無料トライアルクレジットから始まります。
Scrapelessでは、適用される法律、規制、およびWebサイトのプライバシーポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツは、デモンストレーションのみを目的としており、違法または侵害の活動は含まれません。 このブログまたはサードパーティのリンクからの情報の使用に対するすべての責任を保証せず、放棄します。 スクレイピング活動に従事する前に、法律顧問に相談し、ターゲットウェブサイトの利用規約を確認するか、必要な許可を取得してください。



