type
Post
status
Published
date
Mar 21, 2025
slug
what-is-mcp
summary
通俗易懂的方式了解 MCP 服务
tags
AI
工具
category
心情随笔
icon
password
最近 MCP 的概念很火,再看一些大佬的文档时实在没法一次性吃透,索性和 Qwen 聊了一下,感觉还是蛮有收获的,下面是我和 Qwen的对话记录
我让Qwen帮我总结了下大佬博客的核心内容,我在读完以后又结合我自己的看法问了他对我的观点的看法,随后他给了我一些补充意见,瞬间感觉这种获取知识的方式有点像小时候常说的“查缺补漏”,并且是 AI 来帮我“查”,我的建议是:请狠狠地“查”我 🤣
1. 什么是 MCP?
- 定义:MCP 是一种标准化协议,用于连接 LLM 与外部数据源和工具(如文件系统、数据库、API 等),从而实现更灵活、强大的功能。
- 核心组件:
- MCP Hosts:运行 MCP 的主应用程序。
- MCP Clients:协议客户端,负责发送请求。
- MCP Servers:轻量级程序,处理客户端请求并与外部资源交互。
2. 工作原理
- 时序图:
- Host 初始化 Client。
- Client 与 Server 建立 1:1 连接。
- 用户通过 LLM 提出请求(如“查询未来一周北京的天气”)。
- Server 接收请求并调用相应的工具或数据源进行处理。
- 结果返回给 LLM 并最终反馈给用户。
- 通信方式:
- JSON-RPC:客户端与服务器之间传输消息的标准格式。
- SSE(Server-Sent Events):允许服务器向客户端推送实时更新。
- HTTP POST:通过 HTTP 协议建立连接并交换数据。
3. 主要功能
- Resources:
- Resources 是一种标准化的方式,用于暴露服务器上的可用资源(如数据集、工具等)。
- 每次搜索后,Server 会缓存结果以提高效率。
- 使用场景可能包括查询历史记录、共享资源等。
- Tools:
- Tools 是 MCP 最常用的功能,允许 LLM 调用外部工具完成特定任务。
- 示例:调用天气 API 查询天气信息。
- 类似于 Function Call,但更具通用性和可扩展性。
4. MCP 与 Tool Call 的区别
- Tool Call 是一种具体的工具调用机制,每种工具的调用方式需要单独实现。
- MCP 提供了统一的接口,开发者只需简单配置即可支持多种工具,降低了开发复杂度。
5. 实际应用场景
- 示例场景:
- 用户希望查询“未来一周北京的天气”。
- 在没有 MCP 的情况下,开发者需要手动添加对特定搜索引擎的支持。
- 使用 MCP 后,用户可以通过标准化接口轻松完成查询。
- 优势:
- 统一接口,减少重复开发工作。
- 支持多种工具和数据源,提升灵活性。
- 可扩展性强,适用于不同规模的应用场景。
6. Cherry Studio 与 MCP
- Cherry Studio 是一款开源免费的桌面端聊天应用,支持 MCP 协议。
- 功能特点:
- 可以添加多个 MCP Servers,并通过参数和环境变量进行配置。
- 支持 Tools 和 Resources 的使用。
- 用户可在聊天界面中启用所有配置的 Servers,并查看调用参数和结果。
7. MCP 的核心价值
- 标准化:提供了统一的接口,降低了开发复杂度。
- 可扩展性:支持无限多个 Servers 和多样化工具。
- 互操作性:增强了 AI 应用与其他系统的兼容性。
- 未来展望:随着更多应用支持 MCP,AI 生态系统将变得更加开放和强大。
8. 资源与参考
- 官方网站:提供详细文档和规范。
- GitHub 仓库:包含 MCP 相关代码和工具集合。
- 支持 MCP 的应用列表:展示目前支持 MCP 的各类应用。
总结
本文深入解析了 MCP 的架构、工作原理及应用场景,强调了其在大型语言模型与外部工具交互中的重要性。通过 MCP,开发者能够以标准化的方式为 AI 应用添加多种能力,显著降低开发复杂度,同时提升系统的互操作性和可扩展性。未来的 AI 生态系统将因 MCP 的普及而更加开放和强大。
我:
我个人的理解,MCP 就是一个可以给 AI 模型临时喂内容的工具,因为互联网内容瞬息万变,可能 AI 模型在训练之处所使用的数据的时效性无法满足特定场景的需求,比如实时查询天气等,所以就需要一种轻量化的工具能够让“聪明的”AI得到一手的最新数据并加以处理,所以 MCP 服务应运而生,本质上还是为了提高 AI 解答的真实性,你觉得我的理解对吗?
Qwen:
你的理解非常贴近 MCP 的核心思想,但可以进一步补充和细化。以下是对你观点的分析和扩展:
1. 你的理解是正确的
- AI 模型训练数据的时效性问题:
- 确实,大型语言模型(LLM)在训练时所使用的数据是固定的,存在时效性限制。随着互联网内容和现实世界的变化,这些数据可能无法满足实时场景的需求。
- 例如,查询天气、股票价格、新闻等实时信息时,AI 模型需要一种机制来获取最新的外部数据。
- MCP 的作用:
- MCP 的确是一种轻量化的解决方案,允许 AI 模型临时访问外部数据源或工具。通过标准化接口,AI 模型能够获取“一手的最新数据”,从而提升回答的真实性、准确性和实用性。
2. 进一步补充和扩展
虽然你提到的“喂内容”是 MCP 的一个重要功能,但它并非 MCP 的唯一价值。以下是一些额外的重要点:
(1) 不仅仅是“喂内容”,更是动态交互
- MCP 并不仅仅是一个单向的数据传递工具(即从外部向 AI 模型提供数据)。它还支持双向动态交互,使 AI 能够调用复杂的工具和流程。
- 比如:
- 查询数据库并进行复杂的数据处理。
- 调用 API 来完成多步骤的任务(如订票、生成报告等)。
- 在不同工具之间建立联动(如先查询天气,再根据天气结果生成行程建议)。
(2) 标准化和可扩展性
- MCP 提供了统一的接口,使得开发者无需为每个工具单独实现复杂的逻辑,而是可以通过简单的配置快速接入新工具或数据源。
- 这种标准化设计不仅提高了开发效率,还增强了系统的互操作性(Interoperability)。不同工具和数据源之间的协作变得更加流畅。
(3) 解耦与模块化
- MCP 的架构设计强调解耦:AI 模型(LLM)与外部工具/数据源之间的交互是通过独立的 Client 和 Server 完成的。
- 这种模块化设计的好处包括:
- 灵活性:可以根据需求随时添加或替换工具。
- 安全性:外部工具和 LLM 之间的隔离降低了风险。
- 性能优化:服务器端可以独立优化数据处理逻辑,而不影响模型本身。
(4) 更广泛的适用场景
- 虽然你提到的例子(如天气查询)确实是 MCP 的典型应用场景,但 MCP 的用途远不止于此。它适用于任何需要 AI 与外部环境交互的场景,包括但不限于:
- 知识密集型任务:如法律咨询、医学诊断等,需要结合最新的法规或研究成果。
- 创意类任务:如基于实时数据生成个性化内容(广告文案、推荐系统等)。
- 自动化工具链:如自动化测试、代码审查、任务调度等。
3. 总结
你的理解抓住了 MCP 的关键点之一:通过临时输入最新数据,弥补 AI 训练数据的时效性不足。这确实是一个重要的动机,但 MCP 的实际价值更加广泛和深远。它不仅解决了数据时效性问题,还通过标准化接口和模块化设计,实现了 AI 模型与外部世界的无缝连接。这种能力极大地提升了 AI 应用的灵活性、真实性和实用性,为未来的智能生态系统奠定了基础。
因此,你的理解是正确且直观的,而 MCP 的潜力则超越了单一的“喂内容”功能,更注重构建一个开放、灵活、高效的 AI 交互框架。