MCP协议详解:大模型时代的模型上下文协议.pdf
MCP协议详解:大模型时代的模型上下文协议
0101
基本概念
MCP(ModelContextProtocol,模型上下文协议)是由Anthropic推出的开源协议,旨在
实现大型语言模型(LLM)与外部数据源和工具的无缝集成,用来在大模型和数据源之间建立
安全双向的链接。
目标是成为AI领域的“HTTP协议”,推动LLM应用的标准化和去中心化。
例如:AI应用程序的USB-C端口。正如USB-C提供了一种将设备连接到各种外围设备和配件
的标准化方式一样,MCP也提供了一种将AI模型连接到不同数据源和工具的标准化方式。
1.1架构
MCP遵循客户端-服务器架构,其中:
1.主机是发起连接的LLM应用程序(ClaudeforDesktop或其他AI工具)。
2.客户端在主机应用程序内部与服务器保持1:1连接,负责协议通信。
3.服务器供客户端访问,向客户提供上下文、工具和提示。同时由于MCPServer自己控制
资源,不用把API密钥给MCPHost,因此更加安全。
1.2资源
资源表示MCP服务器想要向客户端提供的任何类型的数据。这可以包括:文件内容、数据库
记录、API响应、实时系统数据、截图和图片、日志文件等更多内容。每个资源由唯一的URI
标识,并且可以包含文本或二进制数据。
1{
2uri:string;//Uniqueidentifierfortheresource
3name:string;//Human-readablename
4description?:string;//Optionaldescription
5mimeType?:string;//OptionalMIMEtype
6}
1.3提示
MCP中的提示是预定义的模板,可以:接受动态参数、上下文、链接多个交互、指导特定工
作流程、表面作为UI元素(如斜线命令)。
1{
2name:string;//Uniqueidentifierfortheprompt
3description?:string;//Human-readabledescription
4arguments?:[//Optionallistofarguments
5{
6name:string;//Argumentidentifier
7description?:string;//Argumentdescription
8required?:boolean;//Whetherargumentisrequired
9}
10]
11}
1.4工具
MCP中的工具允许服务器公开可由客户端调用并由LLM用来执行操作的可执行函数。工具的
关键方面包括:
1.发现tools/list:客户端可以通过端点列出可用的工具
2.调用:使用端点调用工具tools/call,服务器执行请求的操作并返回结果
3.灵活性:工具范围从简单的计算到复杂的API交互
与资源一样,工具也由唯一名称标识,并可以包含说明来指导其使用。但是,与资源不同的
是,工具表示可以修改状态或与外部系统交互的动态操作。
1{
2name:string;//Uniqueidentifierforthetool
3description?:string;//Human-readabledescription
4inputSchema:{//JSONSchemaforthetoolsparameters
5type:object,
6properties: