1 现存问题

在 MCP 协议出现之前,AI 应用若要连接外部数据源或工具时面临诸多挑战:

2 什么是 MCP

下面是 MCP 官方的介绍:

MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools.

Introduction - Model Context Protocol

正如官方描述,MCP 协议就像是为大模型准备的 USB-C 接口。就像 USB-C 为各种设备提供了标准化的连接方式一样,MCP 也为 AI 模型连接不同的数据源和工具提供了标准化的解决方案。其他组件只需适配 MCP 协议,就能像插入 USB-C 设备一样轻松接入 AI 系统。

Avatar of modelcontextprotocol

modelcontextprotocol/modelcontextprotocol

Specification and documentation for the Model Context Protocol

Stars: 4659
🍴 Forks: 756
💻 Language: TypeScript
📄 License: MIT License

如上图所示,通过 MCP 协议,我们可以将各种现有系统无缝接入到 AI 应用程序中。

3 MCP 的基本原理和架构

从上图可以看出,MCP 主要由三个核心组件构成:Host、Client 和 Server。下面将详细介绍这三个组件的作用。

3.1 MCP Host

Host 指的是各种 AI 应用程序,例如上图中的 Claude Desktop、Cursor,以及国内表现优异的 Cherry Studio 等。需要注意的是,这里特指的是应用程序本身。

3.2 MCP Client

Client 是 AI 应用程序中负责与 MCP Server 建立连接的客户端组件。它的主要职责是:

3.3 MCP Server

Server 是提供各种功能的第三方组件,包括:

MCP Server 向 Client 暴露三种核心资源类型:Tools(工具)、Resources(资源)和 Prompts(提示)。

4 MCP 传输方式

4.1 Stdio

标准输入/输出流(Standard Input/Output)传输方式,适用于在同一台机器上运行的客户端和服务器之间的通信。这种方式简单高效,适合本地部署场景。

Stdio 主要通过两种方式运行,一种是 npx,这个需要 Nodejs 的运行环境,一个是 uv,这个需要 python 的运行环境。

4.2 SSE

MCP SSE(Server-Sent Events)服务端推送方式,具有以下特点:

5 MCP 使用流程

在正式使用 MCP Server 功能之前,需要先进行能力交换阶段:

  1. 客户端发送初始请求,探询服务器的功能能力
  2. 服务器返回详细的功能信息和接口描述

完成连接初始化后,标准的使用流程如下:

  1. 获取工具列表:MCP Client 从 MCP Server 获取所有可用的工具清单
  2. 发送用户请求:将用户的查询内容连同工具描述一起通过 Function Calling 发送给 LLM
  3. 工具选择决策:LLM 分析请求内容,决定是否需要使用工具以及具体使用哪些工具
  4. 执行工具调用:如需使用工具,MCP Client 通过 MCP Server 执行相应的工具调用操作
  5. 返回执行结果:工具调用的结果被发送回 LLM 进行处理
  6. 生成最终响应:LLM 基于所有收集到的信息生成自然语言响应
  7. 展示给用户:将最终的响应结果呈现给用户

6 参考链接

  1. 6000字+6个案例:写给普通人的MCP入门指南
  2. Visual Guide to Model Context Protocol (MCP)
  3. MCP技术浪潮中的Agent应用开发新范式

版权声明

作者: Yao

链接: https://yaoliu.site/posts/introduction-to-mcp/

许可证: CC BY-NC-SA 4.0

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Please attribute the source, use non-commercially, and maintain the same license.

评论

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键