【2025 最新前沿 MCP 教程 03】基础构建模块:工具、资源与提示
文章目录
- 1. 开始啦
- 2. 工具(模型控制):赋予 AI 行动能力
- 3. 资源(应用控制):为 AI 提供关键上下文
- 4. 提示(用户可控):优化 AI 交互
- 5. 它们如何协同工作
1. 开始啦
欢迎来到模型上下文协议的核心引擎室!在前几章中,我们探讨了 MCP 背后的「为什么」——即需要一种标准化方式让 AI 模型与应用有效沟通。
现在,我们将深入「如何实现」。本章将介绍使 MCP 运作的三大基础构建模块: 工具 、资源和提示。
试想构建一个复杂的 AI 助手。你需要让 AI 具备执行操作的能力(如预约安排),让它能够知晓信息(如你的当前日程),以及让你能引导其行为以获得最佳结果。
工具、资源和提示正是 MCP 框架中提供这些功能的三大支柱。理解这些核心组件对于释放 AI 集成的全部潜力至关重要。让我们慢慢来搞明白。
2. 工具(模型控制):赋予 AI 行动能力
想象给你的 AI 助手一套专用工具——扳手用来修理、电话用来拨打、笔用来书写信息。在 MCP 中,工具正是如此:它们是 AI 模型可以选择使用的功能或能力,用以执行操作或与外界交互。
- 定义: 工具代表 AI 模型可以调用的动作或操作。它们本质上是向模型开放的函数,使其不仅能生成文本,还能主动执行数字世界乃至物理世界中的任务(通过连接的系统)。
- 控制: 工具是由模型控制的。这意味着 AI 根据用户请求和上下文决定何时及如何使用特定工具。应用程序定义哪些工具可用,但由模型选择并执行它们。
- 类比: 想象一位技艺精湛的厨师(AI 模型)在设备齐全的厨房(应用环境)中工作。刀具、烤箱和搅拌机就是工具。厨师根据菜谱(用户请求)决定使用哪种工具(例如"我需要打蛋器来搅拌这些鸡蛋")。
- 示例:
- API 调用: 向外部服务发送数据(例如使用
book_flight
工具调用航空公司 API)。 - 数据库操作: 执行命令更新信息(例如一个
create_calendar_event
工具向数据库添加条目)。 - 发送通知: 触发警报或消息(例如使用
send_email
工具)。 - 执行代码: 在应用程序环境中运行特定脚本或函数。
- API 调用: 向外部服务发送数据(例如使用
工具是 MCP 中面向行动的部分,使 AI 能够成为积极的参与者,而不仅仅是被动的响应者。
3. 资源(应用控制):为 AI 提供关键上下文
如果说工具是 AI 能做什么,那么资源就是 AI 能知道什么。为了让 AI 智能行动,它需要获取相关且最新的信息。资源正是提供这种上下文的关键。
- 定义: 资源代表应用程序向 AI 模型提供的特定数据或信息片段。它们作为受控访问点,连接应用程序状态或外部数据源。
- 控制: 资源由应用程序控制。应用程序决定哪些信息可作为资源使用,并确保提供的数据准确且实时。AI 模型可以请求访问资源,但数据本身由应用程序管理。
- 类比: 延续厨师的比喻,资源就像是储藏室和冰箱里的食材(应用程序的数据存储)。厨师(AI 模型)知道可以要求"西红柿"(访问用户资料资源),而厨房经理(应用程序)则确保西红柿新鲜并在请求时提供。
- 示例:
- 用户资料数据: 访问诸如姓名、邮箱、偏好等信息(用户资料资源)。
- 产品目录: 获取可用产品的详细信息(产品数据库资源)。
- 当前天气: 获取实时天气信息(
weather_api_data
资源)。 - 文档内容: 访问特定文件的文本内容(
document_text
资源)。 - GET 端点: 正如您所指出的,资源在功能上类似于 Web 开发中的 HTTP GET 端点——它们提供了一种检索特定信息的方式,而无需改变系统底层状态。
资源确保 AI 模型在必要的背景信息下运行,从而产生更相关、更准确的响应和行动。
4. 提示(用户可控):优化 AI 交互
当工具让 AI 行动、资源让 AI 认知时,提示允许用户(或开发者)引导 AI 如何处理任务。它们是塑造 AI 针对特定用例行为的模板或指令。
- 定义: 提示是与 AI 模型交互的预定义结构或模板,旨在为重复性任务或特定场景获取最优响应。通常包含动态信息的占位符。
- 控制: 提示通常由用户控制或开发者控制。用户或开发者设计这些提示以简化交互,并确保 AI 以最高效的格式接收指令。
- 类比: 将提示词想象成餐厅的标准点菜单。与其模糊地告诉厨师“给我做点吃的”,不如使用表单(
点披萨
提示)明确标注“尺寸:[大号],配料:[意大利辣香肠,蘑菇],饼底:[薄脆]”。这能确保厨师以正确格式获取所需的确切信息。 - 示例:
- 摘要提示: “总结以下文档:[文档内容]。重点关注关键发现和待办事项。”
- 邮件生成提示: “起草一封礼貌的跟进邮件给[收件人姓名],内容关于我们讨论[主题]的会议。提一下会议笔记已附上。”
- 代码生成提示:“编写一个名为
[函数名]
的 Python 函数,该函数接收[输入参数]
并返回[预期输出]
。需包含针对[特定错误条件]
的错误处理。”
提示作为交互的蓝图,使得与 AI 的沟通更加高效、可预测,并能针对特定需求进行定制。
5. 它们如何协同工作
当工具、资源和提示协同工作时,MCP 的真正威力才得以显现。让我们通过一个简单场景来说明:
场景: 用户询问他们的 AI 助手:“我明天的日程安排是什么?能否帮我预订一个与张三关于项目启动的 30 分钟会议?”
- 用户请求: 初始请求到来。
- 提示(可选): 应用程序可能使用预定义的
schedule_and_book
提示来构建交互,确保 AI 理解请求的双重性质。 - 资源访问: AI 模型识别出需要日程信息。它请求访问
user_calendar
资源。应用程序提供了明天相关的日历数据。 - 信息处理: AI 处理通过资源获取的日历数据。
- 工具调用: AI 确定需要预订会议。它识别出
book_meeting
工具作为合适的操作。 - 工具执行: AI 调用
book_meeting
工具,可能传递诸如参会人(“张三”)、时长(“30 分钟”)和主题(“项目启动”)等参数。该应用背后支持book_meeting
工具的代码会与日历系统 API 交互以创建事件。 - 响应生成: AI 通过整合来自
user_calendar
资源的信息和book_meeting
工具的执行结果(例如"明天上午 10 点您有一个会议。我已成功为您预约了下午 2 点与 张三 关于项目启动的 30 分钟会议。")来生成用户响应。
在此流程中,资源提供上下文(日程安排),工具执行操作(预约),而提示词可用于结构化初始请求以确保清晰度。这种协作使得复杂多步骤任务能够无缝处理。
通过理解工具、资源和提示,您就掌握了模型上下文协议的核心机制。这些组件提供了一个灵活而标准化的框架,用于构建复杂的应用程序,使 AI 模型能够访问信息、采取有意义的行动,并在指导下实现最佳性能。在下一章中,我们将深入探讨实际实现细节,并探索如何在您自己的项目中定义和使用这些构建模块。