返回博客

如何将Scrapeless连接到Claude:MCP连接器设置

Daniel Kim
Daniel Kim

Lead Scraping Automation Engineer

21-Sep-2026

TL;DR:

  • 将 Scrapeless 添加到 Claude 只需一个配置条目:在 https://api.scrapeless.com/mcp 处的远程 HTTP MCP 服务器上,同时在 x-api-token 标头中添加你的密钥。
  • 握手返回 scrapeless-mcp-server v0.2.0,协议为 2025-06-18,而 tools/list 返回 25 个工具scrape_markdown, browser_* 集合, crawl_*, google_search, google_trendsai_scraper
  • 范围决定是否连通。用户范围内的相同条目报告 ✔ Connected;在项目 .mcp.json 中,它报告 ⏸ Pending approval 并保持未连接,直到你互动式批准它。
  • Scrapeless 在 x-api-token 上进行身份验证,而不是 Authorization: Bearer。在连接时使用 Bearer 标头会失败:Claude 报告 ✘ Failed to connectHTTP 401
  • 使用 --header 传递密钥会将其放入你的 shell 历史和进程列表;直接编写配置文件则不会。
  • Connected 状态仅证明标头存在 — Scrapeless 在握手时接受任何密钥值,仍然列出所有 25 个工具。用一个真正的工具调用证明密钥,返回页面内容。
  • Scrapeless 免费计划 上获取一个密钥,并在大约一分钟内连接。

Claude 可以详细推理一个网页,但无法抓取网页。MCP 服务器改变了这一点:模型在对话中获取可以调用的工具,因此"检查这个页面现在说什么"不再是你通过粘贴回答的请求。

通过远程 HTTP 将 Claude 连接到 Scrapeless MCP 服务器只需一个配置条目。值得关注的部分是两种行为不同的范围,以及报告绿色的连接与实际工作的连接之间的区别。

连接后你能得到什么

服务器实时暴露 25 个工具,而不是从文档中复制的:

组别 工具
页面内容 scrape_markdown, scrape_html, scrape_screenshot
云浏览器 browser_create, browser_goto, browser_click, browser_type, browser_get_text, browser_get_html, browser_snapshot, browser_screenshot, browser_scroll, browser_scroll_to, browser_wait, browser_wait_for, browser_press_key, browser_go_back, browser_go_forward, browser_close
爬取 crawl_start, crawl_result, crawl_cancel
搜索 google_search, google_trends
AI 助手回答 ai_scraper

两个组别对于不同的工作很重要。scrape_markdown 在一次调用中回答“这个页面说了什么”。browser_* 集合则是一个你逐步驱动的会话,用于处理任何需要点击或表单的内容。

每一个调用作为 JSON-RPC 请求传递 — MCP 作为传输和 JSON-RPC 2.0 规范 上的一个模式,这就是 initialize / tools/list / tools/call 序列构成协议表面的原因。

前提条件

  • 已安装 Claude Code,或其他支持远程 HTTP 服务器的 MCP 客户端。
  • 从仪表板获取 Scrapeless API 密钥。
  • 服务器本身不需要安装任何东西。它是托管的,因此没有包,没有运行时,也没有本地进程。

最后一点是这两种传输之间的区别。一个 stdio 服务器是客户端启动的本地命令,这意味着需要安装和维护的包。远程 HTTP 服务器是一个 URL,而 模型上下文协议规范 定义了两者;可流式传输的 HTTP 传输是完全不需要本地进程的。

第一步:添加服务器

Claude Code MCP 参考 以一行文档记录命令:

bash Copy
claude mcp add --transport http scrapeless https://api.scrapeless.com/mcp \
  --header "x-api-token: YOUR_SCRAPELESS_API_KEY"

这有效,且有值得了解的成本:在 --header 之后的所有内容都会落入你的 shell 历史并在命令运行时在进程列表中可见。直接编写配置文件可以避免这两者。

对于用户范围,将条目添加到 ~/.claude.json

json Copy
{
  "mcpServers": {
    "scrapeless": {
      "type": "http",
      "url": "https://api.scrapeless.com/mcp",
      "headers": { "x-api-token": "YOUR_SCRAPELESS_API_KEY" }
    }
  }
}

注意标头名称。Scrapeless 在 x-api-token 上进行身份验证,且大多数 MCP 设置指南显示 Authorization: Bearer,因为那是 HTTP 认证框架 为持有者凭证所定义的。将这个形状复制到这里在握手完成之前会失败:claude mcp list 报告 ✘ Failed to connect — Server rejected the configured Authorization header (HTTP 401),具体细节为 Unauthorized: Missing x-api-token header

第二步:了解你使用的范围

Claude 从多个地方读取 MCP 配置,这两者的行为不同,造成了初次运行时的困惑。

在用户范围,服务器立即上线:

text Copy
scrapeless:
  Scope: User config (available in all your projects)
  Status: ✔ Connected
  Type: http
  URL: https://api.scrapeless.com/mcp

在项目 .mcp.json 中的相同条目无法连接:

text Copy
scrapeless:
  Scope: Project config (shared via .mcp.json)
  Status: ⏸ Pending approval (run `claude` to approve)
  Type: http
  URL: https://api.scrapeless.com/mcp

项目范围的文件与每个检出代码库的人共享,因此在客户端与它对话之前,它被限制在一个交互式批准下。 这是正确的默认设置——代码库中的配置文件可以将您的客户端指向任何地方——但这意味着项目条目在某人打开会话并批准之前看起来是损坏的。

对于您的密钥,请使用用户范围。当整个团队应该获取服务器并希望每个人都得到一次批准时,请使用项目范围。

第 3 步:确认它实际有效

✔ Connected 表示握手成功。 它并不意味着调用也会成功。

工具列表由 MCP 服务器本身响应,永远不会到达上游 API,因此服务器可以宣传完整且健康的工具集,而每个真实调用在凭据上都失败。 这不是假设:一个前面有过时存储令牌的网关在列出其完整工具集的同时,在第一次真实调用时返回了无效令牌错误,而具有良好密钥的相同端点返回了HTTP 200。

因此,请通过调用来验证,而不是徽章。在 Claude 会话内,/mcp 列出了连接的服务器及其工具;请求一个页面可以端到端地练习路径:

text Copy
Use scrapeless to fetch https://books.toscrape.com/catalogue/category/books/mystery_3/index.html
as markdown and list the first five book titles with their prices.

底层调用及其结果,直接捕获到端点:

text Copy
initialize   HTTP 200   server=scrapeless-mcp-server v0.2.0
tools/list   HTTP 200   25 tools
tools/call scrape_markdown  HTTP 200  8940 chars of page content

结果中的页面内容是值得拥有的确认。 使用错误的密钥,仍然返回HTTP 200且没有 isError 标志;结果文本的开头是 Failed to fetch data

什么返回

scrape_markdown 将页面作为内容块中的 Markdown 返回,这是模型可以实际使用的形状:

text Copy
Response:  "-   [Home](https://books.toscrape.com/index.html)
-   [Books](https://books.toscrape.com/catalogue/category/books_1/index.html)
...

使用 Markdown 而不是 HTML 是故意的。 通过 MCP 工具,相同页面的字符数为 scrape_markdown 的8,940,而 scrape_html 为53,800,因此请求 HTML 会大约耗费六倍于模型不需要的标记的上下文。 当您自己解析时,请请求 scrape_html,当模型是消费者时,请请求 scrape_markdown

现在正在处理连接器设置? Scrapeless 免费计划 包括足够的调用,以完成握手和头几个工具调用。

前面的路由器改变 Claude 看到的内容

如果您的客户端指向一个网关,该网关在一个 URL 后面路由多个 MCP 服务器,而不是直接指向端点,则工具列表会改变形状。 指向智能路由网关,相同的客户端发现了 3 个工具——路由器自己的搜索和调度元工具。 指向 https://api.scrapeless.com/mcp,则发现所有 25 个。

这两者都没有错。 路由器在多个提供者之间保持一个凭据和一个审计记录,模型看到的工具名称距离真实工具表面有一个间接连接。 直接连接为模型提供了真实的工具表面。 按设置选择,并检查发现的计数,以便您知道您得到了哪个。

正确提示它

两个习惯使连接的服务器与有用服务器之间产生了差异。

当任务不模棱两可时,命名工具。 “在此 URL 上使用 scrape_markdown”跳过模型决定如何获取的一轮。 对于多步骤工作——登录、筛选、读取结果——要描述顺序,因为 browser_* 工具共享一个会话,并且顺序很重要。

请求您想要返回的形状。 被交给 8,940 个字符的 Markdown 的模型会总结,除非您告诉它返回一个标题和价格的表格。 工具返回一个文档; 有用的输出是您要求模型生成的任何内容。

对于更广泛的 MCP 图片,我们的 MCP 集成指南 涵盖协议和客户端环境,而 抓取 API 页面描述了这些工具所针对的角色家族。 文档 包含每个角色的参考,而 定价 列出了调用的费用。

结论

整个连接器是一个 URL、一个头部名称和一个范围决策。 https://api.scrapeless.com/mcpx-api-token 在用户范围内报告 ✔ Connected 并向 Claude 提供 25 个工具; 项目文件中的相同条目等待一个容易被误认为是损坏设置的批准。
有两件事值得在设置过程中携带。标题是 x-api-token,而不是 Bearer — Bearer 形状在连接时被拒绝,401 错误,因此 claude mcp list 立即显示其失败。而绿色状态是一个握手:一个 tools/call 返回真实页面内容是该凭证有效的唯一证据。

准备好给 Claude 一个可以调用的提取吗?从 Scrapeless 免费计划开始 并添加服务器。

常见问题解答

问:我如何将 Scrapeless MCP 服务器添加到 Claude?

添加一个指向 https://api.scrapeless.com/mcp 的远程 HTTP 条目,并在 x-api-token 标头中带上你的密钥。可以运行 claude mcp add --transport http scrapeless https://api.scrapeless.com/mcp --header "x-api-token: ...",或者将相同的 type/url/headers 对象写入配置文件中 — 这可以将密钥排除在 shell 历史记录之外。

问:为什么我的 MCP 服务器显示为待批准?

因为它被定义在项目 .mcp.json 中,而不是在你的用户配置中。项目文件与存储库一起传播,因此客户端在连接之前需要进行互动批准。用户范围内的相同条目会立即连接。打开一个会话并批准它,或者如果密钥仅属于你,则将条目移至用户范围内。

问:我应该使用 Authorization: Bearer 还是 x-api-token

x-api-token。Scrapeless 专门读取该标头 — 如果没有它,请求会返回 401 Unauthorized: Missing x-api-token header。仅 Bearer 的条目在连接时同样被拒绝,因此 Claude 显示 ✘ Failed to connect 而不是 ✔ Connected

问:我怎么知道连接真的有效?

进行一次工具调用。状态输出告诉你握手成功,并且工具列表由 MCP 服务器提供,而不需要联系上游 API,因此在拒绝的凭证前,两者看起来都很健康。一个 tools/call 返回真实页面内容是证据;错误的密钥会产生以 Failed to fetch data 开头的结果,仍然没有 isError 标志。

问:这里的 stdio 和 HTTP 传输有什么区别?

一个 stdio 服务器是客户端启动的本地进程,因此需要安装一个包并保持最新。Scrapeless MCP 服务器是托管的,因此 HTTP 传输只需要一个 URL 和一个标头 — 不需要安装,不需要本地运行时,也不需要在你的机器上跟踪版本。

问:我应该期望看到多少个工具?

直接从端点获取 25 个。如果你只看到 3 个,你的客户端指向的是路由网关而不是端点,而这三个是路由器自己的调度工具。如果你看到一个列出地图、工作、酒店或航班的列表,那是一个较旧的工具集 — 可与新的 tools/list 的数量进行对比检查。

问:这在 Claude Desktop 和 Claude Code 中都能工作吗?

两者都支持 MCP,但它们读取不同的配置文件,Desktop 的设置通常显示为本地 stdio 命令,而不是 URL。上面的远程 HTTP 条目是 Claude Code 形状;有关 Desktop 的详细步骤,请参见我们之前关于在 Claude 上运行 Scrapeless MCP 服务器的帖子,并注意其工具列表在当前 25 之前。

问:我可以限制模型可以调用哪些工具吗?

可以 — 这是一个客户端权限问题,而不是服务器设置。Claude Code 公开了工具的允许和拒绝规则,因此仅需要页面内容的设置可以允许 scrape_markdown 并使浏览器会话工具不可用。将其缩小到工作所需的内容。

在Scrapeless,我们仅访问公开可用的数据,并严格遵循适用的法律、法规和网站隐私政策。本博客中的内容仅供演示之用,不涉及任何非法或侵权活动。我们对使用本博客或第三方链接中的信息不做任何保证,并免除所有责任。在进行任何抓取活动之前,请咨询您的法律顾问,并审查目标网站的服务条款或获取必要的许可。

最受欢迎的文章

目录