mcpField
S
Scrape.ly

Scrape.ly

远程服务
scrape.ly浏览器自动化01 天前更新

关于 Scrape.ly

Scrape.ly 的 MCP 服务让 AI Agent 搜索 Actor、运行任务并查看输出和存储数据。它还提供任务管理与文档搜索,可作为托管服务连接,也可在本地以 stdio 运行。

主要功能

  1. 01搜索 Actor 并查看其架构
  2. 02运行 Actor 并跟踪执行
  3. 03读取数据集、键值存储和日志
  4. 04管理已保存任务与自动化
  5. 05搜索 Scrape.ly 和 Crawlee 文档

适用场景

  1. 01为数据采集任务查找 Actor
  2. 02运行 Actor 并查看数据集结果
  3. 03检查运行状态、输出或日志
  4. 04查询 Scrape.ly 或 Crawlee 文档

MCP 相关

向 MCP 客户端提供 Actor、运行、存储、任务、自动化和文档工具。可连接托管 HTTP 端点或运行本地 stdio 服务;也可将选定的 Scrape.ly API 端点作为 MCP 资源读取。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.scrape.ly
一键复制安装命令
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.scrape.ly需要授权
安装包
pypiscrapely-mcp0.3.15

工具

详细介绍

scrapely-mcp

一个适用于 Scrape.ly 的 MCP 服务。它让 AI Agent 和 MCP 客户端可以访问 Scrape.ly 账户:在 Store 中搜索 Actors、阅读其 README 和输入架构、运行它们、跟踪运行状态,并读取数据集、键值存储和日志中的结果。它还可以管理已保存的任务,并搜索 Scrape.ly 和 Crawlee 文档。

完整文档:scrape.ly/docs/mcp。

同一个软件包有两种运行方式:

  • 托管模式:scrapely-mcp-http,一个多租户的可流式 HTTP 服务。Scrape.ly 在 API 后运行此服务,地址为 https://mcp.scrape.ly。大多数用户连接到该 URL,无需安装任何内容。
  • 本地模式:scrapely-mcp-server,由桌面 MCP 客户端在你的计算机上启动的 stdio 服务。

连接到托管服务

将客户端指向 https://mcp.scrape.ly。

  • 支持 MCP 授权的客户端会自动找到 OAuth 流程,并提示你登录。
  • 否则,请将 API 令牌作为标头发送:Authorization: Bearer <token>。
  • 无法设置标头的客户端可以在 URL 后附加 ?token=<token>。URL 往往会出现在日志中,因此建议优先使用标头。

适用于接受 JSON 配置的客户端的示例:

{
  "mcpServers": {
    "scrapely": {
      "url": "https://mcp.scrape.ly",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}

本地运行(stdio)

需要 Python 3.11 或更高版本。

uvx --from scrapely-mcp scrapely-mcp-server
# or
pip install scrapely-mcp
scrapely-mcp-server

令牌来自 SCRAPELY_TOKEN,或来自 ~/.scrapely/credentials.json 或 ~/.scrapely/auth.json 文件中的 token 字段。除非所选工具全部无需令牌即可运行(search-actors、fetch-actor-details 和文档工具),否则必须提供令牌。

{
  "mcpServers": {
    "scrapely": {
      "command": "uvx",
      "args": ["--from", "scrapely-mcp", "scrapely-mcp-server"],
      "env": { "SCRAPELY_TOKEN": "YOUR_TOKEN" }
    }
  }
}

选项:

标志含义
--tools a,b要启用的工具类别或工具名称。替换默认集合。
--actors user/actor,...将这些 Actors 作为独立工具公开。
--ui auto|apps|defaultMCP Apps 小组件模式(此版本中已禁用小组件,见下文)。
--telemetry-enabled选择加入使用情况遥测(还需要写入密钥,见下文)。
--telemetry-env PROD|DEV指定要使用哪个遥测写入密钥变量。

工具

默认类别:actors、docs、runs、storage、tasks、automations。dev 类别(report-problem)默认关闭。

类别工具
actorssearch-actors、fetch-actor-details、call-actor
docssearch-scrapely-docs、fetch-scrapely-docs
runsget-actor-run、get-actor-output、get-actor-run-list、get-actor-log、abort-actor-run
storageget-actor-output、get-dataset、get-dataset-items、get-dataset-schema、get-key-value-store、get-key-value-store-keys、get-key-value-store-record、get-dataset-list、get-key-value-store-list
taskscreate-actor-task、get-actor-task、update-actor-task、publish-actor-task、unpublish-actor-task
automationslist-saved-inputs、run-saved-input、list-automations、run-automation
devreport-problem

默认情况下,search-scrapely-docs 会搜索 scrape.ly/docs 上的 Scrape.ly 文档 (docSource: "scrapely"),也可以搜索 Crawlee 文档(crawlee-js、crawlee-py)。fetch-scrapely-docs 会以 Markdown 格式返回页面;接受 https://scrape.ly/docs 和 https://crawlee.dev 下的页面。

启用 call-actor、get-actor-run 或任何 Actor 工具时,也会添加 get-actor-run、get-actor-output、 get-dataset-items、get-key-value-store-record 和 abort-actor-run。

call-actor 最多等待 waitSecs 秒(0 到 45,默认值为 30),并返回运行状态和存储 ID;随后,Agent 会使用 get-actor-output 获取结果(传入 runId 或 datasetId)。该工具会返回一页数据集项目 (offset、limit,上限为 1000,默认值为 100,以及采用点号表示法的 fields)和运行的 OUTPUT 记录。长文本 值会被截断,且为保持回复精简,每页可能包含少于 limit 个项目;hasMore 和 nextOffset 会指出 后续内容的位置。get-dataset-items 仍可用于更精细的控制。支持协议任务的客户端可以将 call-actor 作为长时间运行的任务执行, 并在运行结束后获取结果。等待运行期间会发送进度通知,取消请求会中止运行。

任何 Scrape.ly API GET 端点也可以通过 resources/read 使用完整 URL 读取,例如 https://api.scrape.ly/v2/datasets/<id>/items?limit=20。

托管服务

scrapely-mcp-http --host 0.0.0.0 --port 8000
路径用途
/mcp(以及任何其他路径)MCP 端点(可流式传输的 HTTP;也会处理 2026-07-28 无状态请求)
/.well-known/oauth-protected-resourceOAuth 受保护资源元数据(/mcp 后缀下也提供)
/healthz健康检查,返回 {"status":"ok"}

MCP 端点上的 URL 参数:tools、actors、maxActorMemoryBytes、ui、payment(skyfire 或 x402)、telemetry-enabled、token。

每个会话都会获得独立的服务实例,该实例绑定到开启会话的凭据的 SHA-256 指纹;使用不同凭据发起的 请求会被视为会话不存在。HTTP 服务绝不会使用 SCRAPELY_TOKEN。

容器镜像定义位于 Dockerfile 中(docker build --build-arg SOURCE=local -t scrapely-mcp .)。

配置

变量默认值用途
SCRAPELY_TOKENnonestdio 服务的令牌
SCRAPELY_API_BASE_URLhttps://api.scrape.ly用于出站调用的 API 源站
SCRAPELY_PUBLIC_API_BASE_URLderived向客户端显示并用作 OAuth issuer 的 API 源站
SCRAPELY_STORE_URLhttps://scrape.ly/storeStore 链接的基址
SCRAPELY_STANDBY_BASE_URLAPI originMCP 服务 Actor 的基址
SCRAPELY_MCP_HOST / SCRAPELY_MCP_PORT0.0.0.0 / 8000HTTP 绑定地址
SCRAPELY_ACTORS / SCRAPELY_TOOLSnoneHTTP 服务的默认工具选择
SCRAPELY_MCP_UI / UI_MODEautoWidget 模式
SCRAPELY_MCP_SESSION_IDLE_TIMEOUT_SECS1800会话空闲超时时间
SCRAPELY_MCP_MAX_SESSIONS10000会话上限
SCRAPELY_MCP_MAX_SESSIONS_PER_CREDENTIAL50每个所提供令牌可打开的会话数;超出后,将关闭调用方自身最久未活动的会话,否则请求会收到 429
SCRAPELY_MCP_MAX_SESSIONS_PER_IP100每个客户端 IP 可打开的会话数(由 API 服务的 /mcp 代理设置的最后一个 X-Forwarded-For 跳)
SCRAPELY_MCP_MAX_SESSIONS_PER_IPNET400每个客户端 IPv6 /48 可打开的会话数(每 IP 上限会按 /64 对 IPv6 分组)
SCRAPELY_MCP_MAX_SELECTED_ACTORS50单个 ?actors= / ?tools= 选择最多可指定的不同 Actor 数(超过后返回 400)
SCRAPELY_MCP_VALIDATION_BUDGET_SECS2验证一次工具调用参数所允许的最长时间;超时的调用会因过大或过于复杂而被拒绝
SCRAPELY_MCP_MAX_REMOTE_RESPONSE_BYTES10485760与 MCP 服务 Actor 建立的单个连接可返回的数据字节上限
SCRAPELY_MCP_MAX_REMOTE_TOOL_LIST_BYTES4194304与 MCP 服务 Actor 建立的单个 tools/list 连接的数据字节上限
SCRAPELY_MCP_MAX_ACTOR_TOOL_BYTES1048576单个 Actor 可添加到会话的工具定义数据量;超过上限的 Actor 会被跳过
SCRAPELY_MCP_MAX_SESSION_TOOL_BYTES4194304单个会话可保留的 Actor 工具定义数据量;超过上限的 Actor 会被跳过
SCRAPELY_MCP_MAX_TOTAL_TOOL_BYTES67108864所有会话可共同保留的 Actor 工具定义数据量;无法容纳的新会话或请求会收到 503
SCRAPELY_MCP_MAX_REMOTE_INFLIGHT_BYTES67108864所有与 MCP 服务 Actor 建立的开放连接可共同占用的字节数(任务结果存储前的字节数);超出上限的连接会失败并附带重试提示
SCRAPELY_MCP_MAX_TOOL_RESULT_BYTES4194304单次工具调用(或任务)可返回的最大结果;超出上限的结果会变为错误
SCRAPELY_MCP_MAX_DATASET_PAGE_BYTES1048576存储工具读取的单个数据集页面的字节数;页面会在最后一个完整项之后截断
SCRAPELY_MCP_MAX_RECORD_BYTES1048576内联读取的单个键值记录的字节数;较大的记录会以下载链接形式返回
SCRAPELY_MCP_MAX_TASKS_PER_SCOPE100每个会话/凭据保留的协议任务数;优先删除最早完成的任务
SCRAPELY_MCP_MAX_TASKS_TOTAL10000总共保留的协议任务数
SCRAPELY_MCP_MAX_TASK_RESULT_BYTES_PER_SCOPE16777216每个会话/凭据保留的任务结果字节数;优先释放最早的结果
SCRAPELY_MCP_MAX_TASK_RESULT_BYTES_TOTAL134217728总共保留的任务结果字节数;优先释放最早的结果
SCRAPELY_MCP_TASK_RESULT_GRACE_SECS60tasks/result 首次返回任务结果后,经过这段时间才会释放该结果
SCRAPELY_MCP_TASK_RETENTION_SECS900已完成任务结束(或其 ttl 到期)后,经过这段时间便会被删除
SCRAPELY_MCP_REPORT_PROBLEM_BLOCKED_CLIENTSanthropic,claude不会显示 report-problem 的客户端
SCRAPELY_OFFICIAL_USERNAMESscrapely显示为由 Scrape.ly 维护的用户名;仅在 API 未发送 maintainedByScrapely 标志(较旧的 API 服务)时生效
SCRAPELY_DOCS_URLhttps://scrape.ly/docsScrape.ly 文档:通过其 search-index.json 搜索,并以 Markdown 格式读取页面
SCRAPELY_DOCS_CRAWLEE_JS_*, SCRAPELY_DOCS_CRAWLEE_PY_*public Crawlee DocSearch valuesCrawlee 文档搜索
SCRAPELY_CONSOLE_BASE_URL / SCRAPELY_CONSOLE_TOKEN_PREFIXdisabled个性化仪表板链接
SCRAPELY_MCP_WIDGETS_ENABLED / SCRAPELY_MCP_WIDGET_ASSETS_DIRoffMCP Apps Widget(实验性)
SCRAPELY_SEND_LEGACY_PAYMENT_HEADERtrue同时发送旧版支付协议标头
SKYFIRE_SELLER_SERVICE_IDnone在 Skyfire 支付提示中显示
SCRAPELY_MCP_SESSION_LOGtrue发送到 Scrape.ly API 的会话日志(见下文);设为 false 可关闭
TELEMETRY_ENABLED, SCRAPELY_TELEMETRY_WRITE_KEY, SCRAPELY_TELEMETRY_ENDPOINToff自愿启用的遥测
SENTRY_DSNnone错误报告(安装 sentry extra)
LOG_LEVELinfo日志级别(日志写入 stderr)
除非启用遥测 并且 配置了写入密钥,否则遥测处于关闭状态;此软件包不附带任何密钥。日志中绝不会
包含令牌、支付令牌或支付签名。
会话日志和 context 参数

每个工具都接受一个可选的 context 字符串:由 AI 提供的一两句话,说明用户的需求以及调用该工具的原因。它会在验证参数前被移除,且永远不会传递给工具或 Actor;不发送该参数的客户端仍可照常工作。

服务会使用你自己的令牌,将每个会话的活动报告给 Scrape.ly API,以便 Scrape.ly 了解 MCP 服务的使用情况和故障情况:客户端名称和版本、传输方式、每次工具调用及其参数、context、状态、耗时以及结果的简短摘要。值会原样发送和存储,不会进行任何屏蔽,因此请勿在不希望 Scrape.ly 看到的工具参数中放入机密信息。设置 SCRAPELY_MCP_SESSION_LOG=false 即可关闭此功能。

小组件

MCP Apps 小组件工具(search-actors-widget、fetch-actor-details-widget、call-actor-widget、get-actor-run-widget)已实现,但默认处于禁用状态,且未打包任何小组件 HTML。禁用小组件后,所有客户端都会获得纯工具集。

开发

uv venv && uv pip install -e ".[test]"
pytest

许可证

MIT,详见 LICENSE。第三方声明见 NOTICE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。