Yozh Scraper 原生支持 MCP。只需将一个 HTTP 端点接入 Claude Desktop、Cursor 或您自己的代理循环,您的模型即可获得真正的网络工具:数据抓取、网页爬取、会话管理和预设功能。无需粘合代码,无需自定义封装。
docker compose up
# MCP endpoint live at http://localhost:8000/mcp
每个团队都在构建同样的“粘合剂”:每个抓取源对应一个 Python 工具、一个半残的会话存储,以及一个在调用一次后就会丢失上下文的自制协调器。 三周后,代理程序运行一次,崩溃两次,而没人记得哪个代理已过期。我们开箱即用地提供了每个代理循环所需的四个组件——通过 MCP 提供,仅需一个 HTTP 端点。
如果您的代理在多步骤爬取的第三步曾出现超时情况——那么这篇内容就是为您准备的。
docker compose up 到代理呼叫工具——只需3步一个 MCP 端点,客户端中一行配置,零粘合代码。该流程同样适用于 Claude Desktop、Cursor、Cline 或您自己的代理循环。
克隆该仓库,并 docker compose up。MCP 服务器已上线,地址为 localhost:8000/mcp — 抓取器、爬虫、会话和预设均已自动作为工具对外提供。
# one-time setup
git clone
github.com/CyberYozh-data/yozh-scraper
cd yozh-scraper
docker compose up -d
在 claude_desktop_config.json (或 Cursor / Cline 的等效功能)。重启客户端——工具会自动被发现,无需为每个源代码编写封装程序。
{
"mcpServers": {
"yozh": {
"type": "http",
"url": "http://localhost:8000/mcp"
}
}
}
该模型会选择工具、填写参数,并返回结构化 JSON 数据。会话在不同调用之间保持持久化。多步骤爬取通过 SSE 进行流式传输。
// claude calls scrape_page autonomously { "tool": "scrape_page", "input": {"url": "…", "preset": "amazon_product"}, "result": { /* structured JSON */ } }
选择一个预设,查看响应效果。字段集因来源而异,但请求结构完全相同。
三种具体的代理配置方案,可直接复制粘贴。从 Claude Desktop 的单行命令到完整的 LangChain 循环——它们背后都使用同一个 MCP 端点。
将Yozh与Claude Desktop连接一次。让该模型研究一个主题——它会 scrape_page / crawl 自主选择并综合生成答案。
# claude_desktop_config.json (~/Library/...) { "mcpServers": { "yozh": { "type": "http", "url": "http://localhost:8000/mcp" } } } # restart Claude · prompt: # "compare ssd prices on amazon vs walmart" # → claude calls scrape_page on each PDP
将同一台 MCP 服务器添加到 Cursor 中——现在,您的 IDE 代理可以在提示过程中实时获取文档、查询竞争对手的定价,或抓取 Stack Overflow 上的答案。
# .cursor/mcp.json (project root) { "mcpServers": { "yozh": { "type": "http", "url": "http://localhost:8000/mcp" } } } # prompt in Cmd+L composer: # "fetch the latest pricing from acme.com/plans # and update PricingTable.tsx"
纯Python代理 — 带 mcp_servers 列表。只需一个 HTTP URL,模型即可获取所有 Yozh 工具。与 LangChain 的 MCP 适配器使用方式相同。
# anthropic SDK · plain python client = Anthropic() resp = client.messages.create( model="claude-sonnet-4-5", mcp_servers=[{ "type": "url", "url": "https://your-host/mcp" }], messages=[{ "role": "user", "content": "crawl docs.x.com, summarize" }], )
mcp_servers param。该端点的地址为 localhost:8000/mcp 是一个统一的 URL——您可以将上述任何服务指向该地址。无需维护针对特定客户端的封装层或 stdio 适配层。/mcp时,服务器会列出所有可用工具及其 JSON 模式: scrape_page, scrape_batch, crawl, create_session, list_presets, generate_preset。模型在运行时会将其视为原生工具——无需装饰器,也无需手动定义模式。上游中的新功能 yozh-scraper 中的新功能将在下次拉取后自动出现。crawl 一次,并随着结构化结果的到达,获取单一事件流。每次爬取均支持范围设置(同域/同主机/白名单)、按域的请求速率(RPS),以及可选的与抓取器的链式调用,确保每个发现的 URL 在进入数据流前均经过解析。可通过 DELETE /scrape/{id} ——软停止允许正在处理的页面完成;强制停止则需再次调用。goto / fill / click / wait) 或粘贴导出的 Cookie 来创建一次会话。Yozh 将 Cookie 与 Playwright storageState ,并为您提供一个持久的 session_id。此后每次调用工具时,只要传入该 ID,都会复用相同的浏览器状态——包括受双因素认证保护的门户、LinkedIn 以及合作伙伴管理后台。默认 TTL 为 24 小时,可刷新。代理程序绝不接触凭据;它仅转发收到的会话 ID。src/presets/custom/ 或调用 POST /api/v1/presets/generate 并提供一个示例 URL,让大型语言模型(LLM)推断出模式。该预设将作为参数显示在现有的 scrape_page 工具上显示为一个参数。(2)自定义 MCP 工具 — 在 src/mcp/tools/中注册您自己的处理程序,它将加入自动发现的列表。(3) 分叉 — 代码库采用 MIT 许可证,MCP 服务器位于一个 Python 模块中(src/mcp/server.py),扩展起来非常简单。一个 MCP 端点,即可将所有 Yozh 功能自动暴露给 Claude、Cursor、Cline 以及您自己的代理循环。免费。永久有效。如果对您有帮助,请给我们点个星——每一个星都至关重要。
Yozh Crawler + Scraper 根据 MIT 许可证发布。请随意使用、分叉和基于它进行开发。
使用 Yozh 进行开发的用户怎么说
仅用一个下午就将我们内部的 Playwright 集群替换为 Yozh。MCP 端点直接接入我们的 Claude 代理——无需任何胶水代码,爬虫和数据提取工具便能正常运行。
预设系统是其杀手级功能。我们传入源名称,就能得到干净的 JSON 数据;其自动修复功能甚至在我们察觉之前就发现了亚马逊的两次布局变更。
终于出现了一个将代理和会话视为第一类对象的开源爬虫工具。我们将其部署在合作伙伴门户网站的登录墙后方——会话能够保持持久性,且跨区域的爬取结果始终保持一致。
通过 MCP 将其连接到 Cursor 后,我的代理现在可以在任务进行中实时提取网页数据。通过 SSE 进行的流式爬取,正是代理工作流所缺失的功能。
为了节省成本,我们放弃了付费的数据抓取 API,并做好了性能下降的准备——结果却事与愿违。现在采用自托管模式,无需按请求付费,而且输出数据结构比我们以前付费使用的还要简洁。