五、MCP工作的基本原理
动态上下文窗口
MCP采用一个动态上下文窗口,该窗口会随着每次交互而扩展。这个窗口用于存储用户偏好(如语言、语气)、会话记录(之前的询问/回答)以及环境数据(例如设备类型、位置)等信息。例如,在一个多轮对话的客服场景中,用户一开始询问关于产品功能的问题,之后又询问价格相关问题。MCP的动态上下文窗口会记录下用户之前关于产品功能的询问,使得AI客服在回答价格问题时,能够结合之前的对话内容,给出更全面、更符合用户需求的回答。为了避免数据过载,MCP会在保留关键细节的同时,将非关键信息压缩成嵌入形式。比如,将一段较长的聊天记录概括为一个能够反映主要意图的向量。
多步骤工作流程支持
MCP支持智能体执行多步骤工作流程。智能体能够记住过去的操作,例如 “用户已上传其ID”,并根据这些信息调整后续策略。例如,如果用户在操作过程中突然离线,智能体可以根据之前的操作记录,从原本通过在线方式通知用户,切换为通过短信通知用户。同时,智能体还能依据反馈进行自我修正。比如,当用户对某个选项表示不满意时,智能体下次会优先选择其他更符合用户需求的选项。这种多步骤工作流程的支持,使得 AI 智能体能够更加灵活、智能地完成复杂任务。
通信协议与传输方式
MCP采用 JSON - RPC 2.0 作为其通信协议。JSON - RPC 2.0是一种轻量级的远程过程调用协议,它使用JSON数据格式进行数据传输,具有简洁、高效的特点。MCP支持多种传输方式,其中Stdio(标准输入/输出)适用于同一环境中的本地集成,例如在本地开发环境中,AI应用与本地工具之间的交互可以通过Stdio进行;HTTP配合Server - Sent Events(SSE)用于基于网络的通信,以实现实时更新和持久连接,这种方式适用于AI应用通过网络访问远程数据源或服务的场景;WebSocket(未来开发)提议用于实时双向通信,它可以实现更高效的实时数据交互,为未来更复杂的AI应用场景提供支持。
六、MCP对大模型应用落地的价值
MCP最大的作用是建立起AI应用服务中本地数据与远程服务通信的标准桥梁,在大模型能力以及MCP的帮助下,我们本地就可以以一种相对智能的方式达成我们的目标。主要价值体现在以下几方面:
简化集成过程
在MCP出现之前,AI Agent要与不同的数据源和工具集成,需要针对每个数据源和工具开发专门的接口和代码,这不仅耗时耗力,而且容易出错。而MCP提供了统一的标准和接口,使得AI模型能够以一种通用的方式与各种外部资源进行交互。就好比有了一个万能的插头,无论是什么设备,只要符合这个插头的标准,都能轻松连接。例如,一个AI助手原本需要为接入不同的数据库编写不同的代码,现在通过MCP,只需要遵循MCP的规范,就可以方便地与各种数据库进行连接和数据查询,大大简化了集成过程。
提升任务处理能力
通过MCP,AI Agent能够集成更多的工具和数据源,从而显著扩展其任务处理能力。它可以从单一的文本处理,扩展到涉及数据查询、文件操作、API 调用等多种复杂任务。以一个智能办公助手为例,借助MCP,它不仅可以理解和处理用户的文本指令,还能通过连接企业数据库获取相关数据,调用邮件API发送邮件,甚至操作本地文件进行数据整理和报告生成,实现从基础的文字处理到复杂业务流程的全面支持。
增强安全性和合规性
MCP 在每个模型调用中都封装了数据血统、策略规则等信息,这有助于确保AI系统在运行过程中的安全性和合规性。企业可以通过设置相应的策略规则,限制AI对数据的访问和使用权限,防止数据泄露和滥用。同时,数据血统的记录也使得对数据的来源和使用过程可追溯,便于进行审计和监管。例如,在金融行业,对于客户数据的使用有着严格的合规要求,MCP可以帮助金融机构的AI系统更好地满足这些要求,保障客户数据的安全和合规使用。
七、MCP应用场景示例
智能数据分析
在企业的数据分析场景中,分析师使用AI驱动的数据分析工具。通过 MCP,该工具可以快速连接到企业的各种数据源,如关系型数据库、数据仓库等。分析师只需在工具中输入分析需求,例如 “分析过去一年公司各地区的销售数据,并生成趋势报告”。MCP 客户端将这个请求标准化后发送给 MCP 服务器,MCP 服务器根据请求连接到相应的数据源,获取数据并返回给AI模型。AI模型对数据进行分析处理后,生成趋势报告。整个过程中,MCP 使得AI模型能够便捷地获取所需数据,完成复杂的数据分析任务,大大提高了分析效率。
智能办公助手
在日常办公中,智能办公助手借助 MCP 可以实现更强大的功能。比如,用户对办公助手说 “将今天的会议纪要整理成文档,并发送给参会人员”。办公助手作为 MCP 主机,通过 MCP 协议向 MCP 服务器请求获取会议记录(可能存储在本地文件系统或云端文档服务中),MCP 服务器获取到会议记录后返回给办公助手。办公助手利用 AI 模型对会议纪要进行整理,然后通过 MCP 服务器调用邮件 API,将整理好的文档发送给参会人员。这一过程展示了 MCP 如何帮助智能办公助手集成多种工具和数据源,实现高效的办公任务自动化。
开发者实践:三步构建MCP应用
步骤1:搭建MCP服务from mcp_server import MCPServer
创建天气查询服务
class WeatherService(MCPServer):
def handle_query(self, location):
# 调用天气API获取数据
weather_data = get_weather_api(location)
return {
"temperature": weather_data['temp'],
"conditions": weather_data['condition']
}
# 启动服务
service = WeatherService(port=8080)service.start()
// 注册MCP工具
const tools = [
{
name: "get_current_weather",
description: "获取指定城市当前天气情况",
parameters: {
type: "object",
properties: {
location: { type: "string" }
}
},
mcp_endpoint: "http://localhost:8080/query"
}
];
通过自然语言调用
用户提问:“上海今天需要带伞吗?”
Agent响应:
- 分析需求 → 调用天气工具
- 发送请求 → get_current_weather(“上海”)
- 解析返回:{“temperature”: 25, “conditions”: “rainy”}
- 生成回答:“上海今天有雨,气温25°C,建议带伞出行。”