ingFang SC", system-ui, -apple-system, "system-ui", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;background-color: rgb(255, 255, 255);visibility: visible;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;">关于模型上下文协议 (MCP) 的讨论层出不穷,今天我们来了解一下它到底是什么。从直觉上看,MCP像是AI应用的USB-C接口。ingFang SC", system-ui, -apple-system, "system-ui", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;background-color: rgb(255, 255, 255);visibility: visible;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;">正如USB-C提供了一种标准化的方式,将设备连接到各种配件,MCP则标准化了AI应用与不同数据源和工具的连接方式。 ingFang SC", system-ui, -apple-system, "system-ui", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;background-color: rgb(255, 255, 255);visibility: visible;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;">让我们从技术角度稍微深入探讨。ingFang SC", system-ui, -apple-system, "system-ui", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;background-color: rgb(255, 255, 255);visibility: visible;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;">MCP的核心是基于客户端-服务器架构,主机应用程序可以连接到多个服务器。ingFang SC", system-ui, -apple-system, "system-ui", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;background-color: rgb(255, 255, 255);visibility: visible;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;">它有三个关键组成部分:- ingFang SC", system-ui, -apple-system, "system-ui", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;background-color: rgb(255, 255, 255);visibility: visible;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;">主机(Host)
- ingFang SC", system-ui, -apple-system, "system-ui", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;background-color: rgb(255, 255, 255);visibility: visible;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;">客户端(Client)
- ingFang SC", system-ui, -apple-system, "system-ui", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;background-color: rgb(255, 255, 255);visibility: visible;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;">服务器(Server)
ingFang SC", system-ui, -apple-system, "system-ui", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;background-color: rgb(255, 255, 255);visibility: visible;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;">在深入了解之前,先来看一张概览图? ingFang SC", system-ui, -apple-system, "system-ui", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;background-color: rgb(255, 255, 255);visibility: visible;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;">主机(Host)
指任何提供AI交互环境的应用程序(例如Claude桌面、Cursor),可以访问工具和数据,并运行MCP客户端。 MCP客户端(Client)
在主机内运行,负责与MCP服务器进行通信。 MCP服务器(Server)
提供特定功能并访问数据,包括: 工具:使LLM通过服务器执行操作。 资源:向LLM暴露服务器中的数据和内容。 提示:创建可重复使用的提示模板和工作流。
了解客户端与服务器的通信机制是构建自己的MCP客户端和服务器的关键。 那么,客户端和服务器是如何通信的呢? 以下是一张图示,我们逐步解析…… 首先是能力交换阶段: 客户端发送初始请求 (Initial Request),了解服务器的能力。 服务器回应其能力细节 (Initial response)。
例如,当请求一个天气API服务器时,它可以回复可用的“工具”、“提示模板”以及其他资源。 完成交换后,客户端确认连接成功,然后继续进行后续的消息交换。 这种设计的强大之处在于 在传统的API设置中: 而MCP的设计如下: MCP引入了一种动态且灵活的方式,与传统API形成鲜明对比。 例如,当一个客户端(如Claude桌面等AI应用)连接到一个MCP服务器(例如你的天气服务)时,它会发送初始请求了解服务器的能力。 服务器回应其可用的工具、资源、提示和参数详情。例如,若最初支持地点和日期,服务器会将这些作为能力的一部分进行通信。
未来我们将探索如何创建自定义MCP服务器,并围绕它们构建实践演示。敬请期待! 你觉得MCP是否比传统API设置更强大? |