type
Post
status
Published
date
Mar 21, 2025
slug
what-is-mcp
summary
通俗易懂的方式了解 MCP 服务
tags
AI
工具
category
心情随笔
icon
password
😀
最近 MCP 的概念很火,再看一些大佬的文档时实在没法一次性吃透,索性和 Qwen 聊了一下,感觉还是蛮有收获的,下面是我和 Qwen的对话记录
 
我让Qwen帮我总结了下大佬博客的核心内容,我在读完以后又结合我自己的看法问了他对我的观点的看法,随后他给了我一些补充意见,瞬间感觉这种获取知识的方式有点像小时候常说的“查缺补漏”,并且是 AI 来帮我“查”,我的建议是:请狠狠地“查”我 🤣
 
Qwen:

📝 核心内容分析与总结

该网页的主要内容是关于 模型上下文协议(Model Context Protocol, MCP) 的全面指南。MCP 是一种为大型语言模型(LLM)提供标准化上下文访问方式的协议,旨在增强 AI 应用与外部数据源和工具的交互能力。以下是核心内容的总结:

1. 什么是 MCP?

  • 定义:MCP 是一种标准化协议,用于连接 LLM 与外部数据源和工具(如文件系统、数据库、API 等),从而实现更灵活、强大的功能。
  • 核心组件
    • MCP Hosts:运行 MCP 的主应用程序。
    • MCP Clients:协议客户端,负责发送请求。
    • MCP Servers:轻量级程序,处理客户端请求并与外部资源交互。

2. 工作原理

  • 时序图
      1. Host 初始化 Client。
      1. Client 与 Server 建立 1:1 连接。
      1. 用户通过 LLM 提出请求(如“查询未来一周北京的天气”)。
      1. Server 接收请求并调用相应的工具或数据源进行处理。
      1. 结果返回给 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 交互框架。