🎯 一款可定制、具备反检测功能的云浏览器,由自主研发的 Chromium驱动,专为网页爬虫AI 代理设计。👉立即试用
返回博客

通过无废MCP服务器增强Databricks

Daniel Kim
Daniel Kim

Lead Scraping Automation Engineer

29-Jun-2026

TL;DR:

  • Databricks代理可以对您的数据进行推理,但在您连接一个工具之前无法访问实时网络 — Scrapeless MCP服务器是最简洁的方式。 Agent Bricks和Mosaic AI代理在模型、Unity Catalog函数及您注册的任何工具上进行规划。将一个指向Scrapeless MCP服务器,代理即可获得实时Google搜索、JavaScript渲染以及完整的反检测云浏览器,而无需手动编写抓取工具。
  • Databricks通过一个Unity Catalog HTTP连接以及一个托管代理访问外部MCP服务器。 您将https://api.scrapeless.com/mcp注册为Unity Catalog连接,并选择“Is mcp connection”选项,将Scrapeless x-api-token存储为连接凭据,Databricks会在https://<workspace-host>/api/2.0/mcp/external/<connection_name>处将其暴露给代理代码。
  • DatabricksMCPClient.list_tools()将界面连接到代理代码。 使用代理URL和WorkspaceClient构造一个DatabricksMCPClient,调用list_tools(),将结果转换为您的代理框架的工具类型,代理便可获得Google SERP抓取工具、趋势抓取工具、HTML/Markdown/截图辅助工具以及16个浏览器自动化工具。
  • Scrapeless MCP服务器提供21个工具。 针对https://api.scrapeless.com/mcp的实时tools/list返回google_searchgoogle_trendsscrape_htmlscrape_markdownscrape_screenshot以及16个browser_*工具 — 服务器以裸名称形式发布它们,每个客户端在加载时添加自己的命名空间。
  • 住宅代理和反检测在云端运行。 每个工具调用都通过Scrapeless反检测云浏览器路由,并且在195多个国家提供住宅代理,因此代理可以从商业网站获取可渲染、可用的响应,在Databricks运行环境内部无需设置代理或指纹。
  • 标准输入或HTTP可流传输。 对于本地代理开发,您可以使用npx启动服务器;对于部署的Mosaic AI端点,您指向可流传输的HTTP端点,而这正是Unity Catalog连接所封装的内容。
  • 免费开始。 新的Scrapeless账户包括免费的抓取浏览器运行时 — 请在 app.scrapeless.com 注册。

介绍:为Databricks代理提供实时的网络视图

Databricks Agent Bricks和Mosaic AI代理框架使您能够构建能够对数据湖进行推理的代理 — Unity Catalog表、向量索引、管控的函数。代理调用您注册的工具,其他的则不做。它无法独立访问当前存在的网络。它的知识停止在模型的训练截止点以及您放在它面前的任何内容,因此像“今天这个竞争对手收取多少钱”或“此查询当前的顶级结果是什么”等问题在工作区内没有答案。

这个界限是故意设定的:代理对外部世界的接触恰好是与之附加的工具集。因此,工具层就成为添加实时网络访问的地方,而模型上下文协议(MCP)是实现这一点的标准、框架无关的方法。Databricks提供一流的MCP支持 — 用于Unity Catalog函数和向量搜索的托管服务器,以及用于外部第三方MCP服务器的托管代理路径。外部MCP服务器成为代理可以调用的一组工具,遵循与工作区其他部分相同的Unity Catalog连接模型。

这篇文章通过外部服务器路径将Scrapeless MCP服务器接入Databricks代理。一个Unity Catalog连接和一个DatabricksMCPClient为代理提供Google搜索、JavaScript渲染和完整的反检测云浏览器,代理可以通过您已经传递给Mosaic AI代理的相同提示访问。有关通过TypeScript客户端访问同一Scrapeless表面的详细信息,请参见Mastra集成


您可以用它做什么

  • 在Mosaic AI代理中进行实时SERP研究。 请求代理为一个查询运行google_search并将顶部自然结果以JSON格式返回,这样研究就在您的Databricks应用内部进行,而不是在单独的浏览器标签中。
  • 收集竞争对手与定价快照并反馈到Delta表中。 在提示中输入一个URL,让代理渲染页面并提取计划名称、价格和特征,将其结构化记录写回到数据湖中。
  • 文档和变更日志查找以支撑响应。 让代理提取库的当前文档或发布说明作为干净的markdown,并根据渲染的文本进行推理,而不是依赖于API的过时记忆。
  • 市场和趋势检查,适用于规划代理。 使用 google_trends 在目标地区获取某个主题的兴趣信号,然后用当前证据来引导预测、内容计划或实验想法。
  • JavaScript 页面提取到类型记录中。 将代理指向单页面应用;云浏览器对其进行填充,代理将结果解析为您的下游任务使用的对象。
  • 多步骤浏览器流程。 链接 browser_gotobrowser_clickbrowser_typebrowser_scroll,使代理可以进行分页、展开面板或在提取之前逐步通过向导。
  • 在一个代理轮次中进行搜索然后阅读管道。google_searchscrape_markdown 结合,使代理找到排名前列的结果,读取每一个结果并进行总结,而无需离开代理循环。

为什么选择无刮取的 MCP 服务器

无刮取的 MCP 服务器是一个可定制的反检测桥梁,连接 AI 代理和实时网络。对于 Databricks 代理特别地,它带来了:

  • 一个具有 JavaScript 渲染的反检测云浏览器。 页面在完整的 无刮取爬虫浏览器 中填充后再进行提取,因此 SPA、无限滚动的供稿和惰性加载的面板成为 browser_gotobrowser_get_html 的第一类目标。
  • 来自195多个国家的住宅代理。 地理绑定查询返回本地用户所看到的列表,代理出口完全在无刮取一侧处理,而不是在您的 Databricks 网络内部。
  • 一个外部端点,无需托管爬虫代码。 该服务器作为一个托管的 HTTP 端点在 https://api.scrapeless.com/mcp 上运行;Databricks 将其包装在 Unity Catalog 连接中,因此没有任何构建、作为 Databricks 应用程序部署或维护的内容,超出连接本身。
  • 21 个工具涵盖 SERP、无状态爬取和完整浏览器自动化。 google_searchgoogle_trends 涉及 SERP 数据,scrape_htmlscrape_markdownscrape_screenshot 涉及一次性页面获取,16 个 browser_* 工具涵盖有状态导航、点击、输入、滚动和截图。
  • 与其他 Databricks 工具一样进行管理。 由于服务器通过 Unity Catalog HTTP 连接到达,因此对它的访问使用与其他连接相同的权限模型,并且 API 密钥存储在连接中,而不是在代理代码中。

免费的计划足以注册连接和运行真实提示;当您超出免费计划时,请在 定价页面 比较配额。请在 app.scrapeless.com 的免费计划上获取您的 API 密钥。


前提条件

  • 一个提供 Mosaic AI Agent Framework 的 Databricks 工作区,并有创建 Unity Catalog 连接的权限。外部 MCP 路径使用管理代理来处理您注册的连接。
  • 代理的 LLM 的模型服务端点。 在进行任何工具调用之前,代理循环需要一个有效的模型 - 一个 Databricks 基础模型端点或外部模型。
  • 一个无刮取帐户和 API 密钥 — 请在免费计划中注册,访问 app.scrapeless.com,并从 设置 → API 密钥管理 复制密钥。
  • 在您的笔记本或作业中安装代理依赖项mcpdatabricks-mcpdatabricks-sdkdatabricks-agentsmlflow
  • 对 Python 和 Databricks 笔记本有基本了解 — 设置只需一个连接加上一个小型客户端定义。

注意:注册 Unity Catalog 连接和调用管理代理需要一个活跃的 Databricks 工作区。以下步骤展示了这一流程的文档;它们所暴露的无刮取工具表面在验证部分直接针对 https://api.scrapeless.com/mcp 进行了验证。


将无刮取连接到 Databricks 代理

设置分为五个步骤;每个步骤都是独立可验证的。

1. 安装客户端包

在您的笔记本或代理项目中,安装 MCP 客户端和 Databricks 代理依赖项:

bash Copy
pip install mcp databricks-mcp "databricks-sdk[openai]" databricks-agents mlflow

databricks-mcp 提供与管理代理通信的 DatabricksMCPClient,而 mcp 提供底层模型上下文协议原语(ClientSession,可流式传输的 HTTP 传输) — 这些在您直接连接到端点时为每个工具调用构建 JSON-RPC 2.0 请求。

2. 将Scrapeless注册为Unity Catalog连接(存储凭证)

Databricks代理通过Unity Catalog HTTP连接访问外部MCP服务器。创建一个指向Scrapeless端点的连接,将其标记为MCP连接,并将Scrapeless密钥保存为承载式头凭证。主机是工作区之间唯一变化的字段:

sql Copy
-- Scrapeless MCP服务器的Unity Catalog HTTP连接。
-- 在用户界面中将其标记为MCP连接(“是否为mcp连接”),
-- 并将Scrapeless密钥作为x-api-token头凭证提供。
CREATE CONNECTION scrapeless_mcp
TYPE HTTP
OPTIONS (
  host 'https://api.scrapeless.com',
  base_path '/mcp',
  bearer_token 'your_api_token_here'
);

注册后,Databricks通过其托管代理在 https://<workspace-host>/api/2.0/mcp/external/scrapeless_mcp 向代理代码公开服务器——代理代码从不持有Scrapeless令牌;它向Databricks进行身份验证,而Databricks在代理到Scrapeless时附加存储的凭证。

3. 或者直接通过HTTP可流式连接端点

当您在已部署代理之外进行集成原型制作时——例如本地脚本、笔记本——您可以直接使用标准MCP SDK与Scrapeless端点进行通信,而不是通过代理。将密钥作为x-api-token头传递在可流式HTTP传输中:

python Copy
# pip install mcp
import asyncio, os
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client

URL = "https://api.scrapeless.com/mcp"

async def main():
    headers = {"x-api-token": os.environ["SCRAPELESS_KEY"]}
    async with streamablehttp_client(URL, headers=headers) as (read, write, _):
        async with ClientSession(read, write) as session:
            await session.initialize()
            tools = await session.list_tools()
            print([t.name for t in tools.tools])

asyncio.run(main())

Scrapeless MCP服务器从stdio启动中的 SCRAPELESS_KEY 读取其密钥,但在HTTP可流式中,同样的值作为x-api-token头发送——两者都携带相同的密钥。将其保存在环境中(export SCRAPELESS_KEY=...),而不是硬编码。服务器源代码位于Scrapeless MCP服务器代码库

4. 列出工具并将其附加到代理

在代理代码中,针对托管代理URL构造DatabricksMCPClientWorkspaceClient,然后列出工具。将返回的工具定义转换为代理框架的工具类型——Mosaic AI代理通常作为MLflow的ChatAgent在LangGraph图上编写,因此每个MCP工具变成ChatDatabricks模型上的绑定工具:

python Copy
from databricks.sdk import WorkspaceClient
from databricks_mcp import DatabricksMCPClient

workspace = WorkspaceClient()
proxy_url = f"{workspace.config.host}/api/2.0/mcp/external/scrapeless_mcp"

mcp_client = DatabricksMCPClient(server_url=proxy_url, workspace_client=workspace)
tools = mcp_client.list_tools()  # 21个由连接管理的Scrapeless工具

# 将工具架构绑定到代理模型,然后构建代理图。
tool_specs = [
    {"name": t.name, "description": t.description, "input_schema": t.inputSchema}
    for t in tools
]

DatabricksMCPClient.list_tools()返回服务器报告的相同工具定义——名称、描述和输入架构——因此代理的规划器可以看到完整的Scrapeless表面。您将这些架构绑定到模型,就像您绑定任何Mosaic AI工具一样,然后在模型选择它时通过mcp_client.call_tool(name, arguments)调用该工具。

5. 通过列出21个工具来验证

列出工具并打印其名称确认握手已完成,服务器正在报告其完整表面:

python Copy
tools = mcp_client.list_tools()
print(len(tools), [t.name for t in tools])

输出列出服务器的21个工具,以简单名称表示——谷歌数据工具(google_search, google_trends),一次性页面帮助者(scrape_html, scrape_markdown, scrape_screenshot),以及云浏览器原语(browser_create, browser_goto, browser_get_html, browser_get_text, browser_click, browser_type, browser_press_key, browser_scroll, browser_scroll_to, browser_screenshot, browser_snapshot, browser_wait, browser_wait_for, browser_go_back, browser_go_forward, browser_close)。服务器以没有前缀的方式发送它们;无论客户端如何加载它们——Databricks代理、原始MCP SDK、TypeScript适配器——都在其之上应用自己的命名空间。


您实际上如何使用它:提示您的代理

连接注册并绑定工具后,您可以通过与 Databricks 代理对话来获取实时网络数据,而不是手动编写工具调用。代理读取 Scrapeless MCP 服务器暴露的工具列表,并根据需要选择 google_searchscrape_markdownbrowser_* 工具,从自然语言任务中一个接一个地组合它们。您不需要在您的端编写工具 JSON;您可以像调用 Mosaic AI 代理一样在笔记本单元格或已部署的端点上调用代理。

您可以粘贴的提示

提示 代理的操作
“查找 lakehouse vs warehouse 2026 的谷歌搜索结果,并将其作为 JSON 返回。” google_searchqhlgl → 输入结果行。
“现在在美国,data engineering 的搜索主题有哪些上升趋势?” google_trends
“以干净的 Markdown 格式获取 https://example.com/docs 的页面。” scrape_markdown
“打开 https://pricing.example.com,这是一个 JavaScript 应用程序 — 渲染它并提取计划名称、价格和特性作为 JSON。” browser_createbrowser_gotobrowser_get_html → 输入提取。
“比较 https://a.example.com/pricinghttps://b.example.com/pricing 的定价页面,并告诉我它们的不同之处。” browser_createbrowser_goto (A) → browser_get_htmlbrowser_goto (B) → browser_get_html → 差异。
“获取 https://example.com/landing 的全页截图。” scrape_screenshot
“打开 https://example.com/jobs,等待列表加载,快照页面,然后将每个职位名称和地点提取为 JSON。” browser_createbrowser_gotobrowser_wait_forbrowser_snapshot → 输入提取 → browser_close

运作示例

您编写(在笔记本单元格中的单个代理调用):

python Copy
response = agent.predict({
    "messages": [{
        "role": "user",
        "content": "使用 google_search 查找 'databricks mosaic ai agent framework' 的顶级结果,并将前 3 个作为 {title, link} 的 JSON 数组返回。",
    }]
})
print(response)

代理的计划(用简单英语描述):

  1. 调用 google_search,参数为 q: "databricks mosaic ai agent framework"hl: "en"gl: "us"
  2. 接收结果行数组,并读取 positiontitlelink 字段。
  3. position 排序,保留前 3 行。
  4. 将每一行映射到 {title, link} 对象。
  5. 将 JSON 数组作为代理的答案返回。

您得到的返回(示例格式 — 代理处理下来类似于这些行):

json Copy
[
  { "title": "Mosaic AI Agent Framework — Databricks docs", "link": "https://example.com/agent-framework" },
  { "title": "Build and deploy an agent on Databricks", "link": "https://example.com/build-agent" },
  { "title": "Agent Bricks overview", "link": "https://example.org/agent-bricks" }
]
// 字段名称与 google_search 行形状匹配;值为示例数据。

无状态数据工具将其有效载荷作为体积以 Response:\n\n 前缀返回;代理在解析 JSON 之前会解开该前缀,因此您在答案中 nunca 看到它。

形状提示

说这个 效果
“…来自德国” / “…德国结果” 通过 proxyCountry 路由出站并在搜索中设置 gl=de
“…以 Markdown 格式,跳过导航和样板” 选择 scrape_markdown 以便获取干净的文本有效载荷,而不是原始 HTML。
“…先渲染,它是一个单页应用” 强制使用 browser_* 路径,以便提取在水合 DOM 上运行。
“…仅前 5 个” 将返回的数组修剪为前五行。
“…包括每个结果的摘要” 在输出行中保留 snippet 字段。
“…结束后关闭会话” 添加最后的 browser_close,并带上来自 browser_createsessionId

通过免费计划获取您的 API 密钥:app.scrapeless.com

以下内容是幕后参考 — 工具表面、确切的返回形状,以及代理为您处理的行为。


Scrapeless MCP 工具表面

一旦连接成功,代理将看到 21 个工具,覆盖 SERP 数据、无状态抓取和完整的反检测云浏览器控制。下面的名称是服务器的基本名称;加载它们的客户端会应用自己的命名空间。

工具 功能
google_search 运行 Google 搜索(qhlgl)并返回结构化的自然结果行。
google_trends 获取某个查询的 Google Trends 兴趣数据。
scrape_html 获取 URL 并返回其渲染的 HTML。
scrape_markdown 获取 URL 并返回页面的干净 Markdown。
scrape_screenshot 捕获目标 URL 的屏幕截图。
browser_create 在反检测云浏览器上打开会话。
browser_goto 导航会话到一个 URL。
browser_click 点击实时页面中的元素。
browser_type 在输入或可编辑字段中输入文本。
browser_get_text / browser_get_html 读取页面的文本或 HTML。
browser_screenshot 捕获实时会话的屏幕截图。
browser_snapshot 返回页面的可访问性/结构快照。
browser_wait / browser_wait_for 等待固定时间间隔,或等待条件/元素。
browser_scroll / browser_scroll_to 滚动页面,或滚动到特定元素。
browser_go_back / browser_go_forward 在会话历史中移动。
browser_press_key 向页面发送键盘按键。
browser_close 结束云浏览器会话。

要更全面地了解服务器可以驱动的内容,请参阅Srapeless MCP 服务器概述,该概述从产品角度出发,完整的Scrapeless 文档涵盖了每个工具的参数。


您获得的回报

google_search 调用返回一个编码为 JSON 的有机结果行数组。每行携带相同的键,因此代理可以直接映射到标题、链接和摘要:

json Copy
// 字段名称反映 google_search 工具的输出;值是示例数据。
[
  {
    "position": 1,
    "title": "在 Databricks 上构建代理:完整指南",
    "link": "https://example.com/databricks-agents",
    "snippet": "逐步指南,介绍如何在 Mosaic AI Agent Framework 上构建和部署代理。",
    "source": "example.com"
  },
  {
    "position": 2,
    "title": "将代理连接到外部数据",
    "link": "https://example.org/agent-data",
    "snippet": "如何在提取数据之前渲染 JavaScript 页面。",
    "source": "example.org"
  }
]

开始运行提示后,一些诚实的观察:

  • google_searchscrape_markdown 这样的无状态工具返回带有前缀 Response:\n\n 的主体,后面是 JSON 有效负载;代理会自动解包该前缀,因此您可以直接使用数据,而不是包装。
  • browser_* 工具返回纯文本,没有 Response:\n\n 前缀。
  • 工具参数采用驼峰命名法:将 sessionIdproxyCountry 和类似字段的名称传递过来。
  • proxyCountry 是请求,而不是保证——它可以依赖于您帐户上配置的区域,因此在地理定位重要时,请确认出口区域。
  • 工具输出中的值依赖于内容:结果计数、排序和摘要文本会根据实时查询有所变化。

结论:从 Databricks 搜索、渲染和浏览

整个集成归结为一个 Unity Catalog 连接加上自然语言提示。通过将 Scrapeless 注册为 MCP 连接,DatabricksMCPClient.list_tools() 提供 21 个工具给您的代理,而 API 令牌保存在连接中而不是代码中,让 Databricks 代理获得实时 Google 搜索、JavaScript 渲染和完整的反检测云浏览器——正是湖屋无法单独提供的网络层。您描述任务;代理选择工具。

如果您正在连接其他客户端,同样的 Scrapeless MCP 服务器也可以集成到它们中:请参阅Mastra 集成 获取 TypeScript 路径,以及Pi Agent 集成 获取另一个代理运行时的信息。将您的 API 密钥保存在 Unity Catalog 连接中,注册一次端点,列出工具,让代理选择。完整参考请见docs.scrapeless.com


准备好构建您的 AI 驱动数据管道了吗?

加入我们的社区以声明免费的计划,并与正在构建 Databricks + Scrapeless MCP 代理的开发人员联系:Discord · Telegram

app.scrapeless.com 注册以获取免费的抓取浏览器运行时,并将上述集成调整到您的 Databricks 代理所需的 SERP、页面和区域。完整参考请见docs.scrapeless.com


常见问题

问:为什么 Databricks 代理需要 MCP 服务器才能访问网络?

因为Mosaic AI代理只能调用您注册的工具,并且没有内置的网络搜索或浏览器。MCP是添加该能力的标准、框架无关的方法,Databricks通过受管代理支持外部MCP服务器。连接Scrapeless可以让代理在一次操作中获得实时Google搜索、渲染页面访问和完整的反检测云浏览器。

问:Databricks如何连接外部MCP服务器如Scrapeless?

通过标记为MCP连接的Unity Catalog HTTP连接。您将https://api.scrapeless.com/mcp注册为连接,将Scrapeless的x-api-token存储为凭证,Databricks在https://<workspace-host>/api/2.0/mcp/external/<connection_name>处将其暴露给代理代码。代理代码使用DatabricksMCPClient来访问该代理URL,因此Scrapeless令牌保持在连接中,并且不会出现在代理中。

问:哪个环境变量或头部保存Scrapeless密钥?

服务器的stdio启动读取SCRAPELESS_KEY;HTTP端点从x-api-token头读取相同的值。当您注册Unity Catalog连接时,您将该密钥存储一次作为连接凭证,因此部署的代理代码不会直接处理它。

问:Scrapeless MCP服务器暴露多少工具,是什么?

21个工具:google_searchgoogle_trends用于SERP数据;scrape_htmlscrape_markdownscrape_screenshot用于一次性页面获取;以及16个browser_*工具(browser_createbrowser_gotobrowser_get_htmlbrowser_get_textbrowser_clickbrowser_typebrowser_press_keybrowser_scrollbrowser_scroll_tobrowser_screenshotbrowser_snapshotbrowser_waitbrowser_wait_forbrowser_go_backbrowser_go_forwardbrowser_close)用于有状态云浏览器控制。服务器以裸名称发出它们;加载它们的客户端应用自己的命名空间。

问:我需要将Scrapeless托管为Databricks应用吗?

不需要。将MCP服务器托管为Databricks应用是为了您自己运行的服务器。Scrapeless是一个受管的外部端点,因此您将其注册为Unity Catalog HTTP连接,并通过受管的外部MCP代理访问它——您无需在自己的侧面部署或持续运行任何东西。

问:我可以在未部署的代理外部测试连接吗?

可以。将标准MCP Python SDK指向https://api.scrapeless.com/mcp并添加x-api-token头,调用initialize然后list_tools(),您将看到可通过代理获得的同样的21个工具。该直接路径是确认您的密钥和端点的最快方法,然后再注册Unity Catalog连接。

问:这需要特定的模型吗?

不需要。代理的模型是您接入的任何Databricks服务端点——基础模型端点或外部模型。Scrapeless工具是与模型无关的;选择一个可以很好处理工具调用的模型,而代理无论提供者如何都以相同的方式组合Scrapeless工具。

问:通过代理进行网络爬虫是合法的吗?

抓取公共可用数据通常是允许的,但您对如何使用这些数据负责。审查每个网站的服务条款并尊重robots.txt,并记住,关于个人数据的规则和访问因管辖区而异。如有疑问,请咨询您特定用例的法律建议。

问:可以在没有Databricks的情况下使用这个吗?

可以。Scrapeless MCP服务器是一个标准的MCP服务器,因此任何与MCP兼容的客户端都可以调用它——或者您可以通过JSON-RPC直接驱动它(initialize,然后tools/listtools/call)。Databricks是它的一个主机,并不是必需的。

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

最受欢迎的文章

目录