如果每一个工具都要自己定义,封装函数,写Function Call,错误处理,那就太麻烦了
所有模型 FunctionCall 逻辑都一样:你给它「工具清单」→ 它决定调用 → 返回工具名 + 参数。
但是不同大模型,传给 LLM API 的 tools 结构、字段、格式、写法,就是不一样。
不能一套 tools 直接通吃所有模型。
**MCP(Model Context Protocol, 模型上下文协议)**就像一个统一的接口,大家都能用
Anthropic推出的开发标准化协议,定义AI应用和工具服务之间如何标准化通信
把所有大模型的工具调用、上下文交互统一成一套标准**(** AI 界的 USB‑C**)**
MCP架构
Client ↔ Server 架构
1)MCP Host(主机)
-
运行 LLM 的应用:Claude Desktop、Cursor、IDE、Agent、你的 App
-
负责:接收用户输入、调用 MCP Client、展示结果
2)MCP Client(客户端)
-
内嵌在 Host 里,一个 Client 对应一个 Server(1:1)
-
核心能力:
-
协议翻译(把 MCP 标准 → 模型原生格式)
-
权限控制、安全沙箱
-
会话管理、异步通信
-
3)MCP Server(服务端,最重要)
-
独立进程 / 容器,所有工具、资源、提示词都封装在 Server
-
三类能力(MCP 三位一体):
-
Tools(工具):可执行动作(查天气、数据库、API、文件读写)
-
Resources(资源):静态 / 流式上下文(PDF、代码库、知识库、长文档)
-
Prompts(提示词模板):服务端统一管理模板(生成周报、写代码、翻译)
-
MCP和Function Call
只需要使用 MCP 标准 Tools 定义 → 大模型返回 MCP 标准 ToolCall 格式 → 内置的 MCP Client 自动调用 MCP Server → 自动返回工具执行结果。
Client 自动转成 对应大模型原生的 tools/functions 格式传给 LLM,大模型返回的私有格式,Client 再自动转成 MCP 标准 ToolCall
FunctionCall 不用再按各个模型分别写,统一全部按 MCP 标准写,适配、转格式、调用都交给 MCP 生态自动处理。


MCP Server 的三大能力
1. Tools(工具)
AI可以主动调用执行的函数
有副作用、会改变外部世界,就像你用手去操作东西一样。
2. Resources 资源
AI可以读取访问的数据
只读、不修改任何东西,就像你翻书、看文件一样,只是获取信息,不会把书改了。
要么代码主动提前读 ,要么 MCP 框架自动按需读
3. Prompts 提示模板
提前写好的「固定格式的指令模板」
可复用、固定格式,就像你每次写周报都用同一个模板,不用每次从零写。
是代码主动拿,不是 AI 自己调用
三个都有名字 + 说明,但分类分开存放