关于 scrapeunblocker-mcp
scrapeunblocker-mcp 将 ScrapeUnblocker 网页抓取 API 封装为 MCP 服务,供 Claude 等 MCP 客户端读取网页或调用站点插件。它支持浏览器交互、搜索结果和结构化 JSON 输出,需自备 API 密钥。
主要功能
- 01抓取完整网页 HTML
- 02将网页解析为结构化 JSON
- 03以 Markdown 提取页面正文
- 04通过真实浏览器执行页面操作
- 05调用 100 多种站点插件
- 06搜索 Google 并读取结果页面
适用场景
- 01获取网页内容用于分析
- 02操作页面搜索框并读取结果
- 03采集电商商品或评论数据
- 04比较搜索结果和多个网页信息
MCP 相关
该 MCP 服务向 MCP 客户端提供网页抓取、页面交互、Google 搜索及站点插件工具,并通过 ScrapeUnblocker API 执行请求。需要设置自己的 SCRAPEUNBLOCKER_KEY。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 3 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 要获取的绝对 URL(http/https)。 |
| steps | array | 否 | 可选的有序浏览器操作列表,在页面加载后、捕获 HTML 前通过真实浏览器运行。请先使用 `list_elements` 查找选择器。每次调用运行一次(不具备幂等性)。 |
| wait_value | string | 否 | 与 wait_method 配对的 CSS 选择器或 JS 表达式(例如,'#price' 或 'document.readyState==="complete"')。 |
| wait_method | enum | 否 | 可选的渲染等待策略:'css' 等待选择器,'js' 等待 JS 表达式为真。css | js |
| proxy_country | string | 否 | 可选的 ISO 3166-1 alpha-2 国家/地区代码,用于指定路由国家/地区,例如 'US'、'GB'、'DE'。 |
| sleep_seconds | number | 否 | 页面加载后、捕获 HTML 前额外等待的秒数。 |
| method_timeout_seconds | integer | 否 | 渲染等待方法的秒数上限。 |
详细介绍
ScrapeUnblocker MCP 服务
一个 Model Context Protocol 服务,可让 Claude(以及任何其他 MCP 客户端)通过 ScrapeUnblocker 抓取 API 获取任意网页的 HTML,或运行 100 多个现成的网站插件并返回结构化 JSON,同时绕过反机器人保护(Cloudflare、DataDome、PerimeterX、Akamai、Shape)。
请自备 API 密钥。我们不会共享或代为代理您的密钥。
工具
| 工具 | 功能 |
|---|---|
fetch_html | 获取 URL 完全渲染后的 HTML。 |
browse_page | 在页面上执行交互式浏览器 steps(点击、输入、选择、滚动、等待),然后返回生成的 HTML。此工具并非只读:它会与网站交互。 |
list_elements | 列出页面上的重要元素,并为每个元素提供可直接使用的选择器(发现选择器)。 |
fetch_parsed | 获取页面并返回经 AI 解析的结构化 JSON。 |
google_search | 执行 Google 搜索,并以 JSON 格式返回自然搜索结果。 |
fetch_markdown | 获取页面并将其转换为干净的 Markdown:保留主要内容和绝对链接,不含脚本、样式、导航或页脚。通常只有 HTML 内容的 2% 至 25%,因此这是模型读取页面的省资源方式。 |
search_and_read | 一次调用即可搜索 Google 并读取排名靠前的结果:Google 的 AI 概览(如有)、排名前 1 至 5 的结果页面(以 Markdown 格式),以及其他结果的标题、URL 和摘要。计费方式为一次搜索,加上每个读取页面的一次请求。 |
list_plugins | 列出带有参数的现成网站插件(100 多个:Amazon、Walmart、Zillow、Booking.com、Indeed、Google Trends、YouTube、App Store、Ahrefs 等)。免费,不会调用任何内容。 |
run_plugin | 运行一个网站插件并返回其结构化 JSON。 |
amazon_search、amazon_product、amazon_reviews、walmart_search、ebay_search、google_shopping、google_local、maps_place_details、google_images、youtube_search、youtube_transcript、zillow_search、indeed_jobs、trustpilot_reviews、booking_hotels | 使用最频繁的网站插件,各自作为工具提供,并在工具架构中包含参数——调用一次即可,无需通过 list_plugins 查找。返回与 run_plugin 相同的 JSON。 |
网站插件(针对已知网站返回结构化 JSON)
许多热门网站都有插件,可返回已解析的数据——例如 Target 搜索结果、Zillow 房源搜索结果、某个应用的 App Store 评论,或若干关键词的 Google Trends 数据。模型调用 list_plugins(可选使用 search: "zillow" 或 category)查找插件及其参数,然后使用 name 和 params 调用 run_plugin(上表列出的使用频率最高的插件也可直接作为独立工具调用):
{ "name": "target_search", "params": { "query": "coffee maker", "max_results": 20 } }
每个插件及其参数均记录在 插件页面中。 每次运行均按一次 API 请求计费。
浏览器步骤(交互后再采集)
有些页面只有在你与其交互后才会显示所需内容——接受 Cookie 横幅、点击标签页、在搜索框中输入并提交,或滚动以触发延迟加载。向 browse_page 传递 steps 数组,这些操作会在页面加载后按顺序在真实浏览器中执行;随后返回生成的 HTML。
可用操作:
| 操作 | 字段 |
|---|---|
wait_for | selector、selector_type?(css/xPath/className/tagName)、timeout_ms? |
wait_for_text | value、timeout_ms? |
wait | value(毫秒) |
click | selector、selector_type?、timeout_ms? |
type | selector、selector_type?、value、clear?、timeout_ms?(模拟真人输入) |
select | selector、selector_type?、value、timeout_ms? |
press_key | value(Enter、Tab、Escape、Backspace、Delete、Space、Arrow*、Home、End、PageUp、PageDown) |
scroll | value("bottom" 或像素偏移量) |
这些步骤不具备幂等性——每次调用只会执行一次,并且会在网站上执行操作,因此 browse_page 是唯一一个未标记为只读的工具。如果某个步骤失败,browse_page 会返回失败步骤、失败原因,以及当时的页面 HTML,以便你修正选择器并重试。
列出页面元素(先查找选择器)
list_elements 会加载页面并返回其中值得关注的元素(链接、输入框、按钮、选择框等)的 JSON 列表;每个元素都包含可直接使用的 selector,以及 tag、text 和有用的属性(name、id、type、placeholder、aria_label、href 等):
{ "url": "https://example.com", "count": 42, "elements": [ { "tag": "input", "selector": "#search", "type": "text", "placeholder": "Search", "aria_label": "Search" } ] }
推荐的工作流程是先查找,再操作:调用 list_elements 找到所需选择器,然后将匹配的 steps 传递给 browse_page,以点击、输入、选择并采集生成的 HTML。
获取 API 密钥
前往 app.scrapeunblocker.com 注册并获取密钥。服务会从 SCRAPEUNBLOCKER_KEY 环境变量中读取密钥。
安装
Claude Code
最简单的方式是使用官方插件。它会为你安装此服务,提示你输入 API 密钥(密钥会存储在操作系统的密钥链中,而不是环境变量中),并添加 /scrape-url 命令和参考技能:
/plugin marketplace add ScrapeUnblocker/claude-code-plugin
/plugin install scrapeunblocker@scrapeunblocker
参见 ScrapeUnblocker/claude-code-plugin。
若要改为直接添加服务:
claude mcp add scrapeunblocker \
--env SCRAPEUNBLOCKER_KEY=your_api_key_here \
-- npx -y scrapeunblocker-mcp
Claude Desktop
将以下内容添加到 claude_desktop_config.json 中
(设置 → 开发者 → 编辑配置):
{
"mcpServers": {
"scrapeunblocker": {
"command": "npx",
"args": ["-y", "scrapeunblocker-mcp"],
"env": {
"SCRAPEUNBLOCKER_KEY": "your_api_key_here"
}
}
}
}
重启 Claude Desktop 后,ScrapeUnblocker 工具就会出现。
其他 MCP 客户端
通过 stdio 运行服务:
SCRAPEUNBLOCKER_KEY=your_api_key_here npx -y scrapeunblocker-mcp
示例提示词
- “获取 https://www.example-shop.com/product/123 的 HTML 并列出价格。”
- “这个页面一直拦截我:。使用 fetch_html 获取它。”
- “列出 上的元素,然后使用 browse_page 在搜索框中输入 ‘laptop’,按 Enter,等待结果,并把 HTML 发给我。”
- “在 Google 上搜索 ‘best running shoes 2026’,并给我排名前 5 的链接。”
- “将 https://en.wikipedia.org/wiki/Web_scraping 以 Markdown 格式读取,并用五条要点总结。”
- “在网上搜索维尔纽斯当前的人口,并引用你阅读的页面。”
- “查找 Target 上低于 $50 的咖啡机,并与 Walmart 的产品进行比较。”
- “展示美国过去一年中 ‘coffee’ 与 ‘tea’ 的 Google Trends 趋势。”
- “WhatsApp 最新的 App Store 评论都在说什么?”
开发
npm install
npm run build # bundles to dist/ with tsup
npm run typecheck
npm test # builds, then runs the tools against a local stand-in API
SCRAPEUNBLOCKER_KEY=... node dist/index.js # run the server
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。