MCP(Model Control Protocol) 是一种开放协议,由 Anthropic 提出,它标准化了应用程序如何为 LLM 提供上下文。将 MCP 想象成 AI 应用程序的 USB-C 端口。正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP 也提供了一种将 AI 模型连接到不同数据源和工具的标准化方式。
定义
简单来说 MCP 是大模型连接到不同数据源、文件系统、API、工具之间的一种协议,解决传统方法中需要大量 "粘合代码" 的问题。平时呢, AI只能靠自己脑子里的知识回答问题,但是有了 MCP,它就能直接连上外部的数据源和工具。
想象一下,你家里有个机器人,它只会按照自己记住的东西干活,如果你给连上 Wi-Fi、数据库,或者其他工具遥控器之类,它能帮你查资料、翻你的文件、操作你的电脑, MCP 就是起一个 Brigde 的作用。
为什么这么厉害?
- 灵活: 不管是接文件系统、网页,还是公司内部工具,只要按照 MCP 的标准写个 “服务器”, AI 就能用
- 隐私: 数据处理可以离线跑,不用发到云端
- 通用:他是个开放标准,就像 USB 一样, 哪个 AI 都可以插进来
- MCP Hosts: Claude Desktop, IDEs, or AI tools
- MCP Client: 嵌入在 Host 内部的一个逻辑实体。Host 可以根据需要动态生成多个 Client,每个 Client 与服务器端保持 1:1 的连接
- MCP Servers: 轻量级程序,每个程序通过标准化的MCP 公开特定的功能
- Local Data Sources: MCP 服务器可以安全访问的简算文件、数据库和服务
- Remote Services: MCP 可以连接的互联网提供的外部系统
具体示例
Host 和 Client 的协作流程, 以 Claude Desktop 为例, 比如我在 Claude Desktop 里面输入 “查询上海的天气”, 在这之前我创建了 weather 的 MCP 服务器,官网有server, 这里不演示代码,只说流程
步骤 1:MCP host 作为一个AI 应用(如 Claude Desktop),首先会通过内置的自然语言处理(NLP),这是一个查询天气的请求。MCP host 它能检测到这个任务需要外部数据,而不是 AI 模型内部的知识回答,前提你的 Server 必须注册且启动成功
{
"mcpServers": {
"weather": {
"command": "node",
"args": [
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/weather/build/index.js"
]
}
}
}
步骤 2: MCP host 为这次天气查询请求创建一个 MCP Client 示例 ,Client 是动态的,任务完成后可能被销毁, MCP Client 使用 MCP 协议通义标准,基于 JSON-RPC 和 WebSocket 与 MCP Server 通信
步骤 3: MCP Client 向 Weather MCP Server 发送一个 JSON-RPC 的请求
{
"jsonrpc": "2.0",
"method": "getWeather", // 是 Weather
"params": {
"city": "Shanghai" // 由 AI 的 NLP 解析生成
},
"id": 1
}
步骤 4: Weather MCP Server 调用 tool 处理请求, 处理完之后会转成 JSON-RPC 的响应格式,然后通过 WebSocket 发回 Client
{
"jsonrpc": "2.0",
"result": {
"city": "Shanghai",
"weather": "晴天",
"temperature": 15.5
},
"id": 1
}
步骤 5: Client 将结果交给 Host,它不直接处理结果,就是简单转发给 Host, Host 拿到结果后,生成自然语言回答
完整流程
- 用户 → 输入“查询上海的天气” → Claude Desktop (Host) 。
- Host → 创建 MCP Client → 连接 Weather MCP Server。
- Client → 发送请求 JSON-RPC {method: "getWeather", params: {city: "Shanghai"}} → Server。
- Server → 调用 tool 查询天气 API → 返回 JSON-RPC 的格式 {result: {weather: "晴天", temp: 15.5}} → Client。
- Client → 传递结果 → Host。
- Host → Claude 生成回答 → 显示“上海今天天气是晴天,温度 15.5°C”。
Cursor
version: 0.46.11
在 Cursor Settings → MCP Server → Add New MCP Server, 输入
- Name: HotNews
- Type: Command
- Command: npx -y @smithery/cli@latest run @wopal/mcp-server-hotnews --config "{}"
现在已经有很多 MCP Servers的网站了,比如 MCP Server smithery、glama 以及官网 servers
官网也提供了一系列 anthropic-quickstarts 项目
最近 Manus 爆火,也带了其他的项目爆火如 OpenManus(Manus 的非官方开源版)、BrowserUse
OpenAI 又宣布推出 Responses API 助力开发
接下来需要思考, MCP 具体的落地场景, 看到有人的落地场景是写了个:读取浏览器历史记录,获取浏览器的 cookie 发起模拟真人发起请求