AI 之mcp
AI MCP
第一次用AI 是2023年3月 , 那时候居家办公, 有时候摸鱼但是又怕聊天软件忙碌状态,当时用AI写了一段鼠标随机移动的bash脚本, 惭愧。 时至今天,已经完全离不开AI了,日常也在用cursor 生成代码。 但是,总感觉差点什么,大模型本质上是文本的映射,随着参数的增多,对文字的理解上很强,但是在推理逻辑场景判断上很容易出现幻觉。 而且,怎么让AI调用自己的个性化程序,实现相关功能? MCP出现了,我相信后面应该会有类似http一样的统一的协议
MCP 是什么
先从网上粘贴一份说明
1 | |
Google、OpenAI、微软等巨头已宣布支持MCP,并推动其成为AI Agent时代的开放标准
也就是目前还不是一个标准,但是大家都支持了
MCP核心功能
- **标准化接口 ** 定义了AI模型与外部资源交互的统一规范,使开发者无需为每个工具或数据源单独开发接口,降低了集成复杂度
- 动态上下文管理 通过结构化传递上下文信息(如用户身份、任务目标、历史记录等),确保AI在复杂任务中保持连贯性,避免“失忆”或“跑题”
- 双向交互能力 拉取和推送消息 入参和出参
MCP 架构
主机(Host):如IDE或Claude桌面应用,负责管理用户授权和上下文聚合
客户端(Client):作为主机与服务器的桥梁,处理消息路由和协议协商
服务器(Server):提供标准化接口,连接外部资源(如数据库、API)或工具(如Figma、GitHub)
1 | |
解决问题
假设一个场景 ,我需要每天写日报, 我工作习惯写代办。 日报是给领导看的, 代办是为了在追踪记录自己需要干的事情。 所有我期望自动查库根据我的代办完成情况,写日报发送。
当前场景存在2个API, API 查询代办,发送邮件。 大模型只是一个文本大模型,他只是输出文本,他不知道调用API。
所以 需要一个中间者 ,这个中间程序负责大模型和具体API调用, 也负责和用户之间的交互。 中间程序需要收集所有API ,并且告诉大模型所有API的使用方法,文本方式。 当用户提出问题,请帮我写日报, 中间程序就会把客户问题:请帮我写日报 以及API 的使用说明发给大模型, 大模型就会根据使用说明说我需要用到的工具是什么, 参数是什么发给中间程序,中间程序再去调用API查询代办内容,把结果上报给AI ,AI在把数据整理后 再次调用大模型发送邮件
中间程序 client: 类似 dify coze
API说明的规范化
针对中间程序和AI之间的API说明书格式规范化,大模型的提供方 用JSON格式明确定义了 API的说明 以及请求和响应信息
也就是Function Calling技术
此时的问题是
配置APIscheme很麻烦
API暴露出去危险
解决方法: 基于mcp SDk 去封装接口,这样就不需要配置API Scheme了
server 包含api
mcp client=> mcp server 通过mcp通信
mcp host 包含 mcp host claude桌面程序/ 插件cline
使用步骤
- 基于MCP SDK开发对应程序
- 外部工具在client 上 配置好服务地址
- client 自动帮我们把对应的API scheme 转化为function calling所需的格式