前端需要理解 啥 MCP 协议

962 阅读4分钟

一、什么是 MCP?

Model Context Protocol(MCP) 是由 Anthropic 提出的一种开放协议,旨在为大语言模型(LLM)提供标准化的接口来访问外部上下文资源。

你可以把 MCP 想象成 LLM 的“系统调用层”——它让模型不仅能“说”,还能“做”:通过 JSON-RPC 接口请求外部数据、调用工具、访问数据库、执行系统操作,从而生成更加精准、上下文感知的响应。

二、MCP 的关键优势(以及为什么前端工程师也该了解它)

1. 🌐 模型智能能力的延伸

传统 LLM 的能力局限在输入/输出文字之中,但 MCP 把模型变成了一个可以主动发起请求的“智能客户端”,它可以调用:

  • 后端服务
  • 第三方 API
  • 浏览器实例(如 Playwright 控制器)
  • 文件系统、数据库……

这就像是前端调用后端接口,模型终于“动”了起来。

2. 🧩 协议驱动,标准统一

MCP 使用标准的 JSON-RPC 2.0 协议,提供:

  • 明确的请求格式
  • 可跟踪的调用 ID
  • 标准化的错误处理机制

对于习惯了 HTTP API 的前端开发者来说,MCP 的调用逻辑十分友好:请求是 JSON,响应也是 JSON,不需要学习额外协议。

3. 🔌 解耦架构,灵活扩展

MCP 实现了模型与外部工具之间的高度解耦。你可以把 MCP 工具看作“插件”,随插随用,按需加载:

LLM(主机) <--> MCP 客户端 <--> MCP 服务端(工具集合)

就像 Vue 插件系统、Vite 插件那样灵活——模型自身不需要变,只是调用方式变了。

4. 🤖 适配 Agent 系统,支持多工具协作

MCP 支持“能力协商”和“方法发现”,是构建多工具协同智能体(如插件系统、AI 工作流框架)的天然土壤。模型可以根据服务端支持的工具,决定用什么方式解决问题。

5. 🔐 安全可控,适合生产落地

MCP 可设定:

  • 工具调用权限
  • 参数校验范围
  • 响应格式标准

这让它在生产环境中更可控、更安全,避免模型胡乱调用敏感接口。

6. 🧠 构建“模型操作系统”的核心协议

MCP 被认为是未来构建智能 Agent 系统、模型原生“操作系统”生态的关键协议之一——它不是一个功能补丁,而是底层通信架构的变革。


三、一个具体例子:让 AI 帮你打开网页截图 📸

想象你作为前端开发者,想让 AI 助手打开一个网站并截图。

传统做法

  1. 安装 playwright
  2. 写一个自动化脚本
  3. 配置浏览器环境
  4. 运行脚本并保存截图
  5. 处理结果、显示截图

使用 MCP 的方式

用户:请打开 Google 首页并截图
AI 助手:好的,我将为您打开 Google 首页并截图。
(MCP 客户端发送请求 → MCP 服务端控制浏览器 → 返回截图)
AI 助手:已成功截图,这是 Google 首页的截图。[展示图片]

在这背后,MCP 用 JSON-RPC 向服务端发出了如下请求:

{
  "jsonrpc": "2.0",
  "method": "browser.openAndScreenshot",
  "params": {
    "url": "https://www.google.com"
  },
  "id": 42
}

返回响应可能是:

{
  "jsonrpc": "2.0",
  "result": {
    "screenshotUrl": "https://screenshot-cdn.example.com/google.png"
  },
  "id": 42
}

这个能力对前端开发者来说意味着什么?你可以:

  • 用 AI 进行自动化测试回归截图
  • 在 VSCode 插件中请求 AI 打开预览页面
  • 用 AI 自动分析页面渲染错误

而你,只需要一次自然语言请求。

⚠️ 当然,目前 MCP 对于某些设定访问权限的网站仍受限(如基于文件头判断请求来源的网站),但这在未来版本中会进一步优化。


四、MCP 的生命周期(像 RPC 请求生命周期一样)

MCP 遵循典型的客户端-服务端生命周期:

  1. 能力协商
    模型启动时,客户端请求服务器“你支持什么功能?”

    {
      "method": "server.getCapabilities"
    }
    
  2. 请求构建
    模型决定调用某个工具,比如打开网页截图。

  3. 请求发送与接收
    MCP 客户端构造 JSON-RPC 请求并发送,服务端接收并解析。

  4. 执行与响应构建
    服务端执行真实操作(如调用 Playwright),返回 JSON 格式结果。

  5. 响应处理与反馈
    客户端接收响应,将结果返回给模型,模型据此生成接下来的回复。


五、总结

对前端工程师而言,MCP 带来了一个全新范式:

  • 不再仅限于人机交互,而是人-机-工具三方交互
  • 模型第一次能像开发者一样,“调用工具”
  • 你构建的工具(Web 工具、API 服务)未来都可能成为 MCP 的一部分

MCP 不是工具,而是桥梁。

就像当年你学会了 fetch 从后端拉数据,现在你可以教 AI 学会用 MCP 从世界“拉”能力。