在本文中,我将从使用者的角度出发,分享关于 MCP(Model Context Protocol,模型上下文协议)的实用内容。
一、什么是 MCP?
MCP(Model Context Protocol,模型上下文协议)的起源可以追溯到2024年11月25日,Anthropic在其发布的文章《Introducing the Model Context Protocol》中首次提出了这一概念。
MCP 定义了应用程序和 AI 大模型之间交换上下文信息的方式,为开发者提供了一种一致的方法,将各种数据源、工具和功能连接到 AI 大模型。这就好比 USB-C 接口,让不同设备能够通过相同的接口连接,MCP 旨在成为 AI 领域的通用标准,简化和统一 AI 应用程序的开发与集成。
为了更直观地理解 MCP,以下是一些精心制作的 MCP 架构,它们能够帮助我们更好地把握 MCP 的核心概念。
从图中可以看出,MCP 以一种更标准的方式让 LLM(大语言模型)能够使用不同的工具。以下是一个更简单的可视化示例,它将帮助你更好地理解“中间协议层”的概念。
Anthropic 的目标是实现 LLM Tool Call 的标准,而 MCP 正是这一目标的关键组成部分。通过 MCP,开发者可以更高效地构建和部署 AI 应用,同时确保不同工具和模型之间的互操作性。
二、为什么需要 MCP?
我认为 MCP 的出现是 Prompt Engineering(提示词工程)发展的必然产物。随着 AI 大模型技术的不断进步,我们逐渐认识到,为大模型提供更结构化、更具体的上下文信息,能够显著提升模型的性能。在实际应用中,我们希望大模型能够理解真实场景中的问题,这就需要向大模型提供一些特定的信息,比如:本地文件、数据库内容、网络实时信息等。
在 MCP 出现之前,我们通常会手动从数据库中筛选或使用工具检索可能需要的信息,然后手动将这些信息粘贴到 Prompt 提示词中。随着问题的复杂性不断增加,这种手工处理信息并将其引入提示词的方式变得越来越困难。
为了克服手工提示词的局限性,许多 LLM 平台(比如:OpenAI、Google)引入了 Function Calling(函数调用)功能。这一机制允许大模型在需要时调用预定义的函数来获取数据或执行操作,显著提升了自动化水平。然而,Function Calling 也存在一些局限性。我认为,Function Call 的主要问题是平台依赖性强,不同 LLM 平台的 Function Calling API 实现差异较大。比如:OpenAI 的函数调用方式与 Google 的不兼容,开发者在切换大模型时需要重写代码,增加了适配成本。除此之外,还有安全性、交互性等问题。
数据和工具本身是客观存在的,我们希望将数据连接到大模型的环节可以更智能、更统一。Anthropic 基于这样的痛点设计了 MCP,使其成为 AI 大模型的“万能转接头”,让 LLM 能够轻松获取数据或调用工具。MCP 的具体优势如下:
1、丰富的生态:MCP 提供了许多现成的插件,你的 AI 应用可以直接使用。
2、高度的统一性:MCP 不限制于特定的 AI 大模型,任何支持 MCP 的大模型都可以灵活切换。
3、数据安全保障:你的敏感数据可以保留在本地,不必全部上传,因为我们可以自行设计接口,确定传输哪些数据。
通过这些优势,MCP 不仅提升了 AI 应用的开发效率,还增强了数据的安全性和模型的灵活性。
三、用户如何使用 MCP?
对于大多数用户而言,MCP 的具体实现细节并非关注重点,大家更关心的是如何能够更便捷地利用这一特性来提升工作效率和应用体验。
具体的使用方法可以参考官方文档:For Claude Desktop Users。在完成配置后,你可以在 Claude 中进行测试,比如:尝试提问:“Can you write a poem and save it to my desktop?”(你能写一首诗并保存到我的桌面吗?)Claude 会请求你的权限,随后在本地新建一个文件。
此外,官方提供了大量现成的 MCP Servers,用户只需选择希望接入的工具并完成接入即可。以下是一些官方推荐的资源:
1、Awesome MCP Servers
2、MCP Servers Website
3、Official MCP Servers
以官方介绍的 filesystem 工具为例,它允许 Claude 像操作本地文件系统一样读取和写入文件,极大地扩展了 AI 应用的功能和应用场景。
四、MCP 架构设计剖析
第一、MCP 的架构设计如下图所示:
MCP 架构设计由三个核心组件构成:Host、Clien t和 Server。接下来,我们通过一个实际场景来理解这些组件是如何协同工作的。
假设你正在使用 Claude Desktop (Host),并询问:“我桌面上有哪些文档?”
1、MCP Host
- 角色:Claude Desktop 作为 Host,负责接收你的提问并与 Claude 大模型进行交互。
- 功能:Host 是用户与 AI 大模型之间的桥梁,它处理用户的输入并调用 AI 大模型进行处理。
2、MCP Client
- 角色:当 Claude 大模型决定需要访问你的文件系统时,Host 中内置的 MCP Client 会被激活。
- 功能:MCP Client 负责与适当的 MCP Server 建立连接,将大模型的需求转化为具体的工具调用请求。
3、MCP Server
- 角色:在这个例子中,文件系统 MCP Server 会被调用。
- 功能:MCP Serve r负责执行实际的文件扫描操作,访问你的桌面目录,并返回找到的文档列表。
第二、MCP 整个流程如下:
-
用户提问:你的问题 → Claude Desktop (Host) → Claude 大模型。
模型决策:Claude模型决定需要文件信息。 -
MCP Client 调用:MCP Client 连接到文件系统 MCP Server。
-
MCP Server 执行:文件系统 MCP Server 执行操作,扫描桌面目录。
-
返回结果:文件系统 MCP Server 返回文档列表。
-
生成回答:Claude 大模型生成回答。
-
显示结果:回答显示在 Claude Desktop 上。
第三、MCP 架构设计的优势如下:
MCP 这种架构设计使得 Claude 能够在不同场景下灵活调用各种工具和数据源。开发者只需专注于开发对应的 MCP Server,无需关心 Host 和 Client 的实现细节。这不仅提高了开发效率,还增强了系统的灵活性和可扩展性。
通过 MCP,开发者可以轻松地将各种工具和数据源集成到 AI 应用中,而用户则可以享受到更加智能和便捷的交互体验。
五、MCP 运作机制剖析
要真正理解 MCP,我们需要深入其运作机制,这不仅能揭示 MCP 调用方式与传统 HTTP 调用方式的差异,还能让你明白为何 MCP 能够助力 AI Agent 迈向第二阶段。
以开发一个获取时间的 AI Agent 为例,用户只需提问“现在几点了?”即可。假设我们已有一个处理时间的 MCP Server,其中包含两个 MCP Tool:一个用于获取当前时区,另一个用于获取当前时间。
基于 MCP 的调用过程分为六个核心步骤:
第一、用户提问
- 用户向 AI Agent 提问“现在几点了?”。此时,AI Agent 作为 MCP Client,将用户问题连同处理时间的 MCP Server 及 MCP Tool 信息一并发送给 LLM。
第二、LLM 推理
- LLM 接收到信息后,根据用户问题和 MCP Server 信息,筛选出最合适的 MCP Server 和 MCP Tool 来解决问题,并将结果反馈给 AI Agent(MCP Client)。LLM 返回的信息可能是:“使用 time MCP Server 中的 get_current_time MCP Tool,它能解决用户的问题。”
第三、调用 MCP Tool
- AI Agent(MCP Client)依据 LLM 的建议,调用 time MCP Server 中的 get_current_time MCP Tool,获取当前时间。
第四、返回结果
- time MCP Server 将当前时间的结果返回给 AI Agent(MCP Client)。
第五、内容规整
- AI Agent(MCP Client)将用户问题和从 time MCP Server 获取的结果再次提交给 LLM,请求 LLM 结合问题和答案规整内容。
第六、最终反馈
- LLM 将规整后的内容返回给 AI Agent(MCP Client),AI Agent 再将结果原封不动地返回给用户。
在整个 MCP 调用过程中,MCP Server 及 MCP Tool 的信息至关重要。从第一步和第二步可以看出,这些信息为 LLM 提供了解决问题的关键线索。这些信息本质上就是 MCP 中的 System Prompt,其核心作用是为 LLM 提供清晰的指导,帮助其更好地理解用户需求并选择合适的工具来解决问题。
六、MCP 总结
MCP(Model Context Protocol)的出现标志着 AI 应用与外部工具和数据交互标准的建立。通过本文的探讨,我们可以总结出以下几点关键信息:
第一、MCP 的本质
它是一种统一的协议标准,允许 AI 大模型以一种标准化的方式连接到各种数据源和工具。这就好比 AI 领域的“USB-C”接口,为不同设备之间的连接提供了通用的解决方案。
第二、MCP 的价值
它解决了传统函数调用(Function Calling)所面临的平台依赖性问题,提供了一种更加统一、开放、安全且灵活的工具调用机制。无论是用户还是开发者,都能从这种机制中获益。
第三、使用与开发
对于普通用户而言,MCP 提供了丰富的现成工具,用户无需深入了解任何技术细节即可使用这些工具。而对于开发者来说,MCP 提供了清晰的架构和 SDK,使得工具的开发变得更加简单。
尽管 MCP 目前仍处于发展的初级阶段,但其潜力无疑是巨大的。更重要的是,基于统一标准构建的生态系统将对整个 AI 大模型领域的发展产生积极的推动作用。
七、如何系统学习掌握AI大模型?
AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份
全面的AI大模型学习资源
,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享
!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
4. 2024行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
5. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以
微信扫描下方CSDN官方认证二维码
,免费领取【保证100%免费
】