MCP(Model Context Protocol)协议定义了三类核心组件:资源(resource)、提示(prompt)和工具(tools)。在具体使用时经常有些混淆:资源可以搜索或API获得,也可以通过提示和工具进行调用;提示本身也可以对资源和工具提出要求;工具也可能对资源有一定的操作。它们并不是边界清晰和互斥的,这就给MCP的使用带来了复杂性,因此并不能依靠MCP市场中简单的说明进行调用。
1. 资源(Resource)🌐
定义:指 AI 模型可以读取的数据内容,如文档、图像、数据库表、API 返回值等,是“上下文原料”。
特点:
- 通常通过 URI 或 API 进行检索(像 HTTP GET)。
- 是只读的,不会被 AI 主动修改。
- 例如:数据库记录、文件系统里的 PDF、网页内容等。
作用:在生成提示(prompt)时,提供原始数据上下文,辅助模型理解任务背景。
例如,用于文档问答,AI 会先读取资源内容,再构建答案。
2. 提示(Prompt)
定义:即“预设的模板提示”或“交互流程定义”,由服务器提供,模型可以选择使用。
特点:
- 是结构化模板,可能带参数;
- 引导模型如何使用资源和工具;
- 相当于互动脚本或“建议用户话术”。
作用:
- 帮助模型在复杂业务场景中按步骤进行交互;
- 保证信息调用和上下文获取的流程标准化,避免遗漏。
3. 工具(Tool)🛠️
定义:AI 模型可以调用的可执行功能:如调用 API、运行脚本、写数据库、发送消息等。
特点:
- 是动态、可修改环境或执行动作的“函数”;
- 通常带有 JSON 模式定义参数;
- 模型可选择通过tools/call调用操作。
作用:
- 完成实际任务(如收集数据、发邮件、修改文件等);
- 使 AI 能够主动参与而非仅被动回答。
三者的区别与联系

- 联系:AI 在使用资源获得上下文后,可能按提示模板构建任务流程,再调用工具完成操作。它们构成:资源 → 提示 → 工具 的链条。
- 区别:
- Resource 是“静态数据”,
- Prompt 是“交互结构模板”,
- Tool 是“可执行动作”。
🧠 工作流程示例
- LLM 向 MCP Client 请求 list 支持的Prompts/Resources/Tools。
- LLM 选择资源,比如获取某篇文档内容。
- 根据Prompt 模板构建对话或提问流程。
- 如需操作,如“发送报告”,调用对应Tool完成。
小结
- Resource:提供信息上下文,是模型的“原材料”。
- Prompt:提供逻辑框架或步骤,是模型的“脚本指导”。
- Tool:执行具体操作,是模型的“行动能力”。
三者相辅相成,共同构建了 MCP 的模块化、结构化和可扩展的上下文交互系统,使 AI 不仅善于“说”,还能“做”,并能有条理地组织这一过程。
应用中的问题:
在实际使用中还有个问题:三类核心组件搜是在MCP Server 端定义和提供的,也就是说,资源(Resource)、提示(Prompt)、工具(Tool)均是由服务器端注册和暴露,那么Client 端是如何发现、展示、选择与使用这些能力的呢?
🧩 1. MCP Server 与三类组件
- MCP Server是运行在目标系统(如文件系统、数据库、HTTP 服务等)一端的进程,它会通过 MCP 协议将可用的资源|提示|工具暴露给 Client。因此很多遗留系统要支持智能体调用,就需要开发MCP服务器接口,向MCP客户端暴露必要的能力。这是目前大多数现有系统能否升级成支持AI/大模型/智能体应用最简单的方式,也是最关键的一步。这一过程中原有系统的能力和MCP服务开发的丰富性与灵活性就成了升级后AI平台能力水平的关键。
- Server 端支持动态更新,能向 Client 通知新增或调整能力(如notifications/tools/listchanged)。
2. Client 如何建立能力列表(list)
Client 与连接的每个 MCP Server 之间建立会话后,会执行如下操作:
- Capability discovery(能力发现):Client 向每个 Server 发出listtools、listresources、listprompts请求。
- 服务器回应可用组件列表,包括它们的名称、描述、URI、参数模板等。()
- Client 将这些列表合并、缓存,借此构建一个“能力目录”,供 AI 模型在推理阶段自动或用户交互时调用。
简而言之,list操作完全由 Client 向 Server 请求,并由 Server 响应定义;Client 不会“自己构建”,只是汇总和展现。
3. 如何获得大量 MCP Server 的能力?
- 连接多个 MCP Server:Client 可以在启动时配置多个 Server 实例,支持本地(如文件系统 MCP Server)、远程(HTTP/SSE)等多种部署方式。
- 统一能力采集:每个 Server 都会被 “discovery” 阶段调用 list 系列接口,Client 会分别获取每个 Server 的工具、资源、提示。
- 动态监听能力更新:如果 Server 支持listChanged或 SSE 推送通知,这些新增或变化会被 Client 捕获,更新其能力缓存。
大量 Server 的使用场景:
- 多来源的文档知识库(GitHub、Google Drive、Postgres…),每个一个 MCP Server。
- 本地 IDE、操作系统、云服务等也可通过独立 MCP Server 接入。
例如,Windows 引入了MCP registry,Client 会自动发现并连接多个 MCP Server(如文件系统、WSL、应用),形成一个综合能力池。
- Client 发起list tools/resources/prompts,给所有已知 Server
- Server 分别反馈能力列表
- Client 聚合形成一个统一能力视图供 AI 使用
未来基于智能体的AI应用开发很大程度上取决于MCP Client的开发。在此基础上加上智能编排和工作流调用,就能形成非常智能、灵活的各类应用,传统应用系统/平台就能越来越多地升级成基于大模型智能体的应用。

留下评论