0
点赞
收藏
分享

微信扫一扫

深入解析 Model Context Protocol (MCP):无缝连接 LLM 与外部世界的开放协议

什么是 MCP?

Model Context Protocol (MCP) 是一个开放协议,旨在实现 LLM 应用与外部数据源和工具之间的无缝集成。无论您是构建 AI 驱动的 IDE、增强聊天界面,还是创建自定义 AI 工作流,MCP 都提供了一种标准化的方式来连接 LLM 与外部世界。


简单来说,MCP 是一种客户端-服务器架构的协议,允许 LLM 应用程序(如 Claude、各种 IDE 等)通过标准化的接口访问外部数据和功能。这解决了 LLM 在实际应用中常见的一些痛点:


LLM 无法直接访问实时数据(如天气、股票行情等)

LLM 无法执行外部操作(如发送邮件、控制设备等)

LLM 无法访问用户的本地文件或其他私有数据

通过 MCP,这些限制得到了优雅的解决,同时保持了安全性和可扩展性。


MCP 的核心架构

MCP 采用客户端-服务器架构,主要包含以下几个组件:


MCP 主机(Host):如 Claude Desktop、IDE 或其他 AI 工具,通过 MCP 访问数据

MCP 客户端(Client):与服务器保持 1:1 连接的协议客户端

MCP 服务器(Server):轻量级程序,通过标准化的 MCP 协议公开特定功能

本地数据源:计算机上的文件、数据库和服务,MCP 服务器可以安全访问这些内容

远程服务:通过互联网可用的外部系统(例如通过 API),MCP 服务器可以连接这些服务

主机可以同时连接多个服务器,每个服务器提供不同的功能,形成一个生态系统:


主机(Claude、IDE 等)<--MCP 协议--> 服务器 A <--> 本地数据源 A

                    <--MCP 协议--> 服务器 B <--> 本地数据源 B

                    <--MCP 协议--> 服务器 C <--> 远程服务 C

MCP 的核心概念

MCP 服务器可以提供三种主要类型的功能:


资源(Resources):客户端可以读取的文件类数据(如 API 响应或文件内容)

工具(Tools):LLM 可以调用的函数(需要用户批准)

提示(Prompts):帮助用户完成特定任务的预写模板

资源(Resources)

资源是可以被客户端读取的文件类数据。它们可以是文本或二进制形式,并有唯一的 URI 标识。资源可以是:


直接资源:固定内容的资源

资源模板:可以通过参数动态生成的资源

例如,一个文件系统 MCP 服务器可以将本地文件作为资源提供给 LLM,使其能够读取用户的文件。


工具(Tools)

工具是 MCP 中最强大的原语之一,允许服务器向客户端公开可执行的功能。通过工具,LLM 可以与外部系统交互,执行计算,并在现实世界中采取行动。


每个工具都有明确的定义,包括:


名称

描述

输入参数模式(使用 JSON Schema)

输出格式

工具设计为由模型控制,但通常需要人类批准才能执行,这保证了安全性。


提示(Prompts)

提示是预定义的模板,可以帮助用户完成特定任务。它们可以包含动态部分,嵌入资源上下文,并支持多步工作流。


MCP 服务器开发案例:天气服务器

让我们通过一个实际例子来理解 MCP 服务器的开发。我们将构建一个简单的天气服务器,它提供两个工具:获取天气警报和获取天气预报。


举报

相关推荐

0 条评论