MCP学习
MCP
定义

MCP,全称Model Context Protocal(模型上下文协议),MCP 为 AI 模型连接各种数据源和工具提供了标准化的接口。
Why MCP?
标准化MCP与外部数据源的交互方式,现存方式需要为不同数据源反复构建相同逻辑,采用MCP后可以只构建一次即可复用

---> 没有MCP的世界


---> 有MCP的世界



架构

- MCP采用客户端服务器架构,客户端与服务器之间保持着一对一的连接关系
- 主机
- 希望通过MCP访问数据的LLM应用
- MCP Servers
- 轻量级程序通过协议暴露特定功能
- MCP Clients
- 主机应用中
- 主机
MCP能提供什么?

- 工具 Tools --- POST
- 客户端可以调用的函数
- 资源 Resources --- GET
- 服务器暴露的只读数据/上下文
- 提示词模板 Prompt Templates --- 预定义的模板
Tools的设计

- 装饰器@mcp.tool()/mcp.add_tool()
注:
- 函数名、参数、参数类型要写清,这是AI模型理解工具功能的途径
- 若函数本身比较复杂,无法用函数名称来描述功能,那么我们可以写一个docstring
Resources的设计

- 装饰器装饰函数
- mime_type说明返回类别
- direct(静态)和templated(动态)两类
Prompts的设计

通信方式

传输方式

本地
- Stdio 传输
- 使用标准输入/输出进行通信
- 适用于本地进程
远程

-
有状态连接 —— 通过 HTTP 的 SSE 传输
![image]()
- 使用服务器发送事件进行服务器到客户端的消息传递
- 使用 HTTP POST 进行客户端到服务器的消息传递
-
无/有状态连接 --- 通过Streamable HTTP(可流式)
![image]()
-
通过HTTP的GET POST实现
以Claude桌面端MCP为例
用户打开Claude Desktop
↓
Claude读取配置文件 (claude_desktop_config.json)
↓
发现配置的MCP服务器
↓
自动启动所有配置的MCP服务器进程
↓
建立stdin/stdout连接
↓
完成初始化握手
↓
用户可以开始使用
MCP服务发现的方式
- 动态发现工具:在指定的MCP服务器上发现工具
https://modelcontextprotocol.io/docs/concepts/tools#tool-discovery-and-updates
- 动态发现服务:定义客户端如何发现并连接远程MCP服务器,官方尚未完成的功能
MCP的优点
- 模型无关
- 可复用
- 简化连接系统、提供数据的过程
参考链接:
https://www.bilibili.com/video/BV1nyVDzaE1x/?spm_id_from=333.788.videopod.sections&vd_source=da04a3e481cb89d708a02f23b60e19a4
https://mcp-docs.cn/introduction
https://www.cnblogs.com/ghj1976/p/18769532/mcp-de-dong-tai-fa-xian
https://www.bilibili.com/video/BV1ULJPz4EBD?spm_id_from=333.788.videopod.episodes&vd_source=da04a3e481cb89d708a02f23b60e19a4&p=2



浙公网安备 33010602011771号