什么是 MCP?Web 数据的模型上下文协议解释
Expert in Web Scraping Technologies
TL;DR
MCP是一个标准,允许AI应用通过一个协议访问外部工具和数据,而不是一堆自定义集成。对于网络数据,它是从一个仅识别训练集的模型到一个能够搜索、抓取和浏览实时网络的代理的桥梁——每个能力都作为可发现的工具暴露,每个调用都是一个JSON-RPC消息,每个服务器都可在每个支持MCP的主机上移植。启动公告涵盖了在Scrapeless MCP Server帖子中的Scrapeless实现。
介绍
模型上下文协议 (MCP) 是一个开放标准,允许AI应用通过一个统一的接口调用外部工具和数据源。与其为每个代理所需的每个API手动编码一个单独的集成,不如将代理连接到一个MCP服务器,服务器将其能力——搜索、浏览、抓取、查询数据库——作为模型在对话中可以调用的工具列表暴露出来。
特别是对于网络数据,MCP是将“模型只能读取其训练数据”转变为“模型可以获取实时页面、进行Google搜索或驱动真实浏览器,然后对返回的内容进行推理”的层。本文解释了MCP是什么,它底层的客户端/服务器机制,以及它与旧有工具集成方式的比较。
为何MCP存在
在MCP之前,代理使用的每个工具都是定制集成。希望其助手能够搜索网络、读取PDF和查询仓库的团队,编写了三个不同的适配器,每个适配器都有自己的身份验证、有效负载格式和失败模式。更换模型或者添加第四个工具后,连接就会成倍增加。该协议由Anthropic在2024年末引入,并且自此在代理生态系统中被采用,恰好是为了将M×N集成问题简化为一个合同。
一个生动的类比是接口标准。MCP对AI工具的意义就像通用连接器对外设的意义:主机应用程序使用一种协议,任何支持这种协议的服务器都可以不需要定制的胶水即可连接。网络抓取服务器、文件系统服务器和Postgres服务器都以相同的方式呈现给模型,因此代理运行时只需学习一次该协议,而不是学习每个供应商的API。
MCP如何工作
MCP是一个基于JSON-RPC 2.0的客户端-服务器协议,JSON-RPC 2.0是整个工具界面广泛使用的一种轻量级远程过程调用格式。三个角色完成工作:
- 主机 — 用户与之交互的AI应用(一个聊天客户端、一个IDE助手、一个自主代理)。它为每个连接的服务器运行一个MCP客户端。
- 客户端 — 主机内部的连接器,持有与一个服务器的单一会话,并双向转发消息。
- 服务器 — 暴露功能的程序。一个网络数据服务器发布像搜索调用或页面抓取这样的工具;一个数据库服务器发布查询工具;一个文件系统服务器发布读写工具。
握手是固定的。在连接时,客户端和服务器交换一个initialize消息,该消息绑定协议版本并声明能力——例如,实时Scrapeless MCP服务器协商协议版本2024-11-05并宣传tools能力。在客户端发送initialized通知后,它可以调用tools/list来发现服务器所提供的内容,然后调用tools/call来请求其中一个工具。每个消息都是一个JSON-RPC对象,包含一个method、params和一个id,将每个请求与其响应配对。
工具是大多数网络数据工作的基本组成部分。一个工具有一个名称、一个人类可读的描述,以及一个输入的JSON Schema,因此模型知道它可以调用google_search以及调用期望什么参数。一个最简化的tools/call交换看起来是这样的:
json
// Schema反映JSON-RPC 2.0 / MCP tools/call格式。字段值是示例样本。
// 请求
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "scrape_markdown",
"arguments": { "url": "https://example.com" }
}
}
// 响应
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"content": [{ "type": "text", "text": "# 示例域\n..." }]
}
}
传输位于该消息层之下。 本地服务器通常通过 stdio 运行 —— 主机以子进程启动服务器,并通过标准输入和输出传递 JSON-RPC。远程服务器则通过 可流式传输的 HTTP 运行,客户端针对 URL 打开会话并将响应作为服务器发送的事件接收。Scrapeless MCP 服务器作为远程端点可通过 https://api.scrapeless.com/mcp 访问,使用 文档中的 API 密钥 进行身份验证,并提供 21 种工具,涵盖 Google 搜索和趋势、直接页面抓取(HTML、markdown、截屏)以及一整套浏览器自动化操作 — 创建会话、导航、单击、输入、滚动、快照和等待 — 使代理可以在一次调用中提取页面或逐步驱动真实的云浏览器。
在免费计划上获取您的 API 密钥: app.scrapeless.com
团队使用 MCP 处理网络数据的用途
- 代理的实时网络访问。 一种助手,可以从当前网络调用搜索或抓取工具的答案,而不是陈旧的训练数据,页面内容作为文本返回,模型在线阅读。
- 一个客户端,多种来源。 因为每个服务器都提供相同的
tools/list接口,所以单个代理运行时可以同时与一个搜索服务器、一个浏览器服务器和一个数据库服务器保持会话,并将每个任务路由到正确的工具。 - 浏览器驱动的提取。 创建和控制云浏览器的工具让代理能够访问 JavaScript 渲染或交互限制的页面 — 通过点击等待渲染,然后读取 DOM — 而无需主机提供自己的浏览器堆栈。
- 提示中的结构化抓取。 一种 markdown 或 HTML 抓取工具将“读取此 URL”转化为一个工具调用,返回干净的、模型准备好的内容,使检索步骤成为对话的一部分,而不是单独的流程。
- 可移植的集成。 一次编写的服务器可以在每个 MCP 兼容主机上工作 — 相同的网络数据工具在桌面聊天客户端、IDE 代理和自定义运行时中都可以使用,无需针对每个主机重写。
MCP 与旧方式接入工具的区别
| 方法 | 工具描述 | 跨主机重用 | 发现 |
|---|---|---|---|
| MCP | 一种协议;服务器通过 JSON Schema 输入发布工具 | 任何 MCP 主机在没有自定义代码的情况下连接 | 动态 — 运行时的 tools/list |
| 本地函数调用 | 每个应用程序的模式通过 API 请求传递 | 按模型和按应用重新实现 | 静态 — 在您自己的代码中定义 |
| 自定义 API 适配器 | 每个服务定制客户端 | 无 — 每个都是一次性的 | 无 — 硬编码 |
| 插件规格(供应商专用) | 供应商特定清单 | 绑定到该供应商的主机 | 基于清单 |
重要的区别在于:函数调用是 模型请求使用工具的方式; MCP 是 服务器向任何模型的主机提供工具的方式。它们是组合而非竞争 — MCP 主机通常将每个服务器列出的工具呈现为对其运行的任何模型的函数调用定义。 MCP 增加的是标准协议和运行时发现,因此代理可以访问的工具不再在应用的源代码中被冻结。有关 MCP 浏览器工具如何与 Chrome DevTools 和 Playwright 集成进行比较的深入了解,请参阅 MCP 集成指南。
MCP 的消息格式直接源自 JSON-RPC 2.0 规范,其有效负载编码为 RFC 8259 中定义的 JSON 交换格式。该协议自身的角色、生命周期和原语在 官方模型上下文协议文档 中列出,而工具发现和调用的确切形式存在于 MCP 服务器工具规范 中。
在用于网络数据的 MCP 服务器中应寻找的内容
- 真正的浏览器,而不仅仅是 HTTP 抓取。 许多目标页面在客户端渲染或通过交互限制内容。能够创建和驱动云浏览器的服务器能够访问这些页面;仅提供 HTTP 抓取工具则无法实现。
- 快而深的路径。 Markdown 或 HTML 抓取可以在一次调用中覆盖静态页面;逐步浏览器操作则涵盖复杂页面。暴露两者的服务器允许代理针对每个任务做出选择。
- 清晰的工具描述和架构。 只有当工具的描述和输入架构准确时,模型才能很好地使用该工具——模糊的工具会被错误调用或忽视。
- 管理基础设施。 超过195个国家的住宅出口、会话处理和反检测渲染,使得网络工具能够返回真实内容而不是挑战页面——管理服务器将所有内容隐藏在工具调用后面。
- 远程和本地传输。 可以通过密钥从任何主机连接远程流式HTTP端点;标准输入启动适合本地子进程设置。Scrapeless 抓取API 支持服务器的工具,采用基于使用的 定价 和注册时的免费积分。
准备好将您的代理连接到实时网络了吗?
加入我们的社区以申请免费计划,并与正在构建MCP驱动的网络数据代理的开发者联系:Discord · Telegram。
在 app.scrapeless.com 注册以获得免费积分,并将Scrapeless MCP服务器的工具指向您的代理所需的搜索、页面和浏览器流程。
常见问题
问:MCP代表什么?
MCP代表模型上下文协议——一种通过基于JSON-RPC 2.0构建的单一客户端–服务器接口将AI应用程序连接到外部工具和数据源的开放标准。
问:MCP和函数调用是一样的吗?
不是。函数调用是模型在一次API调用中请求工具的方式;MCP是服务器向任何支持MCP的主机提供工具的方式。它们共同工作——主机通常会将每个MCP列出的工具转化为模型运行的函数调用定义。
问:我需要编写代码才能使用MCP服务器吗?
要从支持MCP的主机使用,只需将主机指向服务器的端点或启动命令,并提供所需的密钥——主机处理协议握手和工具发现。构建自己的服务器是代码存在的地方。
问:MCP服务器能为网络抓取做些什么?
它将抓取和浏览暴露为可调用的工具,因此代理可以以Markdown或HTML格式获取页面,进行搜索,或通过点击和滚动驱动云浏览器——然后在同一对话中推理返回的内容。
问:Scrapeless MCP服务器暴露了多少工具?
位于https://api.scrapeless.com/mcp的Scrapeless MCP服务器暴露了21个工具,包括Google搜索和趋势、HTML、Markdown和截图格式的直接页面抓取,以及一整套云浏览器自动化操作。
在Scrapeless,我们仅访问公开可用的数据,并严格遵循适用的法律、法规和网站隐私政策。本博客中的内容仅供演示之用,不涉及任何非法或侵权活动。我们对使用本博客或第三方链接中的信息不做任何保证,并免除所有责任。在进行任何抓取活动之前,请咨询您的法律顾问,并审查目标网站的服务条款或获取必要的许可。



