掘金 人工智能 前天 10:58
MCP:AI模型的“上下文管理框架”,让智能更进一步!
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

MCP(Model Context Protocol)是Anthropic于2024年底推出的一种开放标准,旨在统一大型语言模型(LLM)与外部数据源和工具的通信。它允许AI应用安全地访问和操作本地及远程数据,解决数据孤岛问题,实现“万物互联”。MCP的核心是客户端-服务器架构,通过标准化接口实现上下文的动态传递和工具的灵活调用,类似于USB-C的即插即用框架。MCP的价值在于扩展AI模型的能力,增强其与各种数据源和工具的交互,实现强大的协作工作能力。

💡 **定义与目标:** MCP(模型上下文协议)是一种开放标准,由Anthropic推出,旨在统一LLM与外部数据源和工具的通信,解决AI模型的数据孤岛问题,构建互联互通的AI生态。

⚙️ **核心架构:** MCP采用客户端-服务器架构,包括MCP主机(LLM应用程序)、MCP客户端(连接到MCP服务器)和MCP服务器(提供上下文、工具和提示)。这种架构支持灵活的上下文传递和功能扩展。

🛠️ **功能与价值:** MCP服务器提供资源(如文件、API响应)、工具(代码调试、文件管理)和提示,增强LLM的实用性和灵活性。MCP使AI能够与数据和工具集成,实现强大的协作工作能力。

🔄 **工作流程:** MCP的基本工作流程包括初始化连接、发送请求、处理请求、返回结果和断开连接。客户端向服务器发送请求,服务器处理后将结果返回给客户端。

📡 **通信机制:** MCP支持两种通信机制:基于标准输入输出的本地通信和基于SSE的远程通信。这两种机制都使用JSON-RPC 2.0格式进行消息传输,确保通信的标准化和可扩展性。

1. 什么是MCP(Model Context Protocol)

1.1 定义

MCP(Model Context Protocol,模型上下文协议) ,2024年11月底,由 Anthropic 推出的一种开放标准,旨在统一大型语言模型(LLM)与外部数据源和工具之间的通信协议。MCP 的主要目的在于解决当前 AI 模型因数据孤岛限制而无法充分发挥潜力的难题,MCP 使得 AI 应用能够安全地访问和操作本地及远程数据,为 AI 应用提供了连接万物的接口。

Function Calling是AI模型调用函数的机制,MCP是一个标准协议,使AI模型与API无缝交互,而AI Agent是一个自主运行的智能系统,利用Function Calling和MCP来分析和执行任务,实现特定目标。

其实,从本质上来讲,MCP 的灵感部分来源于 USB-C 的类比:如同 USB-C 通过统一接口连接多种设备,MCP 旨在为 AI 应用提供一个“即插即用”的上下文管理框架。

更为准确而言,MCP 的核心思想是将模型与外部系统之间的通信抽象为一个客户端-服务器架构,通过标准化的接口(如基于 JSON-RPC 的通信)实现上下文的动态传递和工具的灵活调用。Anthropic 在发布时提供了初步的规范和 SDK(如 Python 和 TypeScript),并开源了多个预构建的 MCP 服务器(如 Google Drive、GitHub 集成),以加速社区采纳。

1.2 MCP价值

举个栗子,在过去,为了让大模型等 AI 应用使用我们的数据,要么复制粘贴,要么上传下载,非常麻烦。

即使是最强大模型也会受到数据隔离的限制,形成信息孤岛,要做出更强大的模型,每个新数据源都需要自己重新定制实现,使真正互联的系统难以扩展,存在很多的局限性。

现在,MCP 可以直接在 AI 与数据(包括本地数据和互联网数据)之间架起一座桥梁,通过 MCP 服务器和 MCP 客户端,大家只要都遵循这套协议,就能实现“万物互联”。

有了MCP,可以和数据和文件系统、开发工具、Web 和浏览器自动化、生产力和通信、各种社区生态能力全部集成,实现强大的协作工作能力,它的价值远不可估量。

1.3 MCP 和Function Calling 的区别

这两种技术都旨在增强 AI 模型与外部数据的交互能力,但 MCP 不止可以增强 AI 模型,还可以是其他的应用系统。

类别MCP (Model Context Protocol)Function Calling
性质协议功能
范围通用(多数据源、多功能)特定场景(单一数据源或功能)
目标统一接口,实现互操作扩展模型能力
实现基于标准协议依赖于特定模型实现
开发复杂度低:通过统一协议实现多源兼容高:需要为每个任务单独开发函数
复用性高:一次开发,可多场景使用低:函数通常为特定任务设计
灵活性高:支持动态适配和扩展低:功能扩展需要额外开发
常见场景复杂场景,如跨平台数据访问与整合简单任务,如实现天气查询,翻译等

1.4 工作原理

MCP 协议采用了一种独特的架构设计,它将 LLM 与资源之间的通信划分为三个主要部分:客户端、服务器和资源。

客户端负责发送请求给 MCP 服务器,服务器则将这些请求转发给相应的资源。这种分层的设计使得 MCP 协议能够更好地控制访问权限,确保只有经过授权的用户才能访问特定的资源。

以下是 MCP 的基本工作流程:

1.5 MCP 核心架构

模型上下文协议(Model Context Protocol, MCP)的核心设计遵循客户端-服务器架构,这一架构允许一个宿主应用程序与多个服务器建立连接,从而实现灵活的上下文传递与功能扩展。

通常而言,MCP 的技术框架围绕三个关键组件构建:主机(Host)、客户端(Client)和服务器(Server)。这些组件共同协作,形成了一个高效、可扩展的生态系统,为 AI 模型与外部资源之间的动态交互提供了坚实的基础。在深入剖析其技术细节之前,我们先来简要概览这三大组件的角色与作用,以帮助读者建立清晰的认知框架,为后续的深入探讨奠定基础。

MCP ClientMCP Client充当LLM和MCP server之间的桥梁, MCP client的工作流程如下:

    MCP client首先从MCP server获取可用的工具列表将用户的查询连同工具描述通过function calling 一起发送给LLMLLM决定是否需要使用工具以及使用哪些工具如果要使用工具,MCP client会通过MCP server执行相应的工具调用工具调用结果会被发送给LLMLLM基于所有信息生成自然语言响应最后将响应展示给用户

Claude Desktop 和Cursor都支持了MCP Server接入能力,它们就是作为 MCP client来连接某个MCP Server感知和实现调用。

MCP Server

MCP server 是MCP架构中的关键组件,他可以提供三种类型的功能:

这些功能使MCP server能够为AI应用提供丰富的上下文信息和操作能力,从而增强LLM的实用性和灵活性。

你可以在 MCP Servers Repository 和 Awesome MCP Servers 这两个 repo 中找到许多由社区实现的 MCP server。使用 TypeScript 编写的 MCP server 可以通过 npx 命令来运行,使用 Python 编写的 MCP server 可以通过 uvx 命令来运行。

1.6 通信机制

MCP协议支持两种主要的通信机制:基于标准输入输出的本地通信和基于SSE(Server Sent Events)的远程通信。

这两种机制都是用JSON-RPC 2.0 格式进行消息传输,确保了通信的标准化和可扩展性。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

MCP LLM AI 协议
相关文章