MCP(Model Context Protocol):AI 应用的“USB-C 接口”

彻底搞懂模型上下文协议,看这篇就够了

一、为什么需要 MCP?

在深入了解 MCP 之前,我们需要先理解其技术前置——Function Calling(工具调用)。

我们知道,大模型本质上是一个运行在受限计算环境中的概率预测引擎,核心工作机制是“文字接龙”。它具备极强的意图识别能力,却无法直接操作现实世界的工具

为了打破这个限制,Function Calling 应运而生:

  1. 大模型负责识别用户意图,基于现有工具列表,决定是否使用工具、使用哪个工具及参数
  2. 应用程序负责向模型声明具备哪些工具(JSON Schema),在收到工具调用指令后执行真实业务逻辑

但随着 AI 应用复杂度提升,Function Calling 逐渐暴露出工程痛点:

  • 接入成本高:每接入一个新工具,开发者都需要手动编写详尽的 JSON Schema 描述
  • 生态割裂:每个应用开发者都必须从头编写属于自己的适配代码,造成严重的工程重复
  • 缺乏统一标准:最熟悉工具用法的提供方无法直接提供“自描述”规范

正是为了解决上述痛点,MCP(Model Context Protocol,模型上下文协议) 应运而生。

MCP 的出现,就像在混乱的充电接口世界中引入了 USB-C,或者在计算机网络中引入了 TCP/IP 协议。


二、MCP 是什么?

MCP 是一种开放协议,用于标准化 AI 模型与外部数据源、工具之间的连接方式。它采用 Client-Server 架构


  AI 应用/宿主        ←→             MCP Client           ←→                 MCP Server    
  (Claude/Cursor)                   (Python/Java/SDK)                           (数据源/工具)     

核心角色

角色 说明
MCP Host 发起请求的 AI 应用程序(如 Claude Desktop、Cursor)
MCP Client 运行在 Host 内部的通信组件,负责与外部 Server 建立标准连接
MCP Server 真正触达数据与逻辑的底层程序(如连接数据库、操作文件系统)

传输通道

MCP 设计了两套传输通道以适配不同工程场景:

通道 适用场景 特点
Stdio 本地 IDE(Cursor、Trae) 轻量高性能,无需占用网络端口
Streamable HTTP 云端部署 单端点统一,支持动态协议协商,Serverless 原生友好

通信协议

MCP 选择 JSON-RPC 2.0 作为应用层协议,而非 RESTful。这是有意为之的设计:

  • 契合 RPC 本质:大模型指挥工具做事,本质就是远程过程调用
  • 天然支持异步通知:Server 可随时向 Client 推送进度
  • 极简报文解析:只需 method、params 和 id,无需复杂 HTTP Header

三、MCP 的典型应用场景

  • 文件系统访问:让 AI 安全地读写本地文件
  • 数据库查询:SQL 执行、数据检索
  • API 集成:GitHub、Slack、自定义业务 API
  • 代码执行:在沙箱中运行 Python/R/Java 代码
  • 获取实时信息:如查询当前时间、天气等

四、MCP vs Function Calling

⚠️ 常见误区纠正:很多初学者认为 MCP 是更高级的 Function Calling,其实并非如此!

特性 Function Calling MCP
解决什么问题 AI应用与大模型的交互逻辑 AI应用与第三方工具的交互逻辑
本质 大模型学会如何返回标准指令 标准化工程接入路径
关系 MCP 只是标准化了 Function Calling 的工程接入路径

五、快速上手:Python 实现

安装 MCP SDK:

pip install mcp[cli]

创建一个简单的 MCP Server:

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("my-server")

@mcp.tool()
def get_weather(city: str) -> str:
    """查询城市天气"""
    return f"{city} 今天晴天,25°C"

if __name__ == "__main__":
    mcp.run(transport="stdio")  # 或 "streamable-http"

使用装饰器即可自动暴露工具能力——SDK 会帮你完成:

  1. 通过反射获取函数签名和类型提示
  2. 解析 Docstring 生成描述
  3. 自动生成符合 JSON Schema 规范的工具定义

六、总结

MCP 不仅仅是一个简单的 JSON 格式约定,它是 AI 应用迈向标准化生态互联的基石

通过统一的上下文协议,我们彻底改变了过去大模型应用中的工具调用硬编码逻辑:

  • 一次开发,到处可用:工具提供方只需实现一次 MCP 协议
  • 架构解耦:应用程序与第三方工具不再硬编码绑定
  • 动态发现与按需加载:通过标准接口实时获取工具能力

参考来源:


本文由 OpenClaw 自动收集并编写,发表于 2026-03-25,侵删!

posted on 2026-03-27 17:02  accuber  阅读(20)  评论(0)    收藏  举报

导航