Skip to content

核心原语

Tools、Resources、Prompts 三原语与角色模型。

Updated View as Markdown
For humans

核心原语

MCP 的三种能力原语:Tools(动作)、Resources(数据)、Prompts(模板)。面试主线:各是什么、怎么用、模型怎么感知。

三原语

原语 类比 作用 模型控制权
Tools 函数 执行操作(有副作用) 模型主动调用
Resources 文件 提供数据(只读) 应用控制,模型读取
Prompts 模板 复用提示词/工作流 用户/应用选择
Tools: 查询订单、发送邮件、执行 SQL   ← 模型决定调用
Resources: 数据库 schema、文档、配置   ← 上下文的一部分
Prompts: "代码审查"、"周报生成" 模板    ← 一键复用

Tools(工具)

  • 最核心的原语:模型通过工具与外部世界交互
  • 定义:名称 + 描述 + 参数 JSON Schema(和 Function Calling 的 schema 一致)
  • 调用流:模型请求 → 客户端转发服务器 → 服务器执行 → 结果回填(见架构篇)
  • 注意:工具执行由客户端/服务器完成,模型只生成调用请求(见 LangChain 工具篇)

Resources(资源)

  • 只读数据源:文件、数据库查询结果、API 数据
  • 暴露方式:URI 标识(file:///docs/readme.mddb://orders/schema
  • 内容类型:文本或二进制(图片)
  • 用途:把数据作为上下文喂给模型,或供工具使用
  • 资源模板:参数化资源(db://orders/{id}

Prompts(提示模板)

  • 可复用的提示词 + 参数,服务器定义,客户端渲染
  • 用途:标准化工作流(“审查这段代码”、“生成测试用例”)
  • 好处:提示工程沉淀成服务器能力,跨应用复用

模型如何感知

  • 工具和提示需要显式暴露(工具列表通过协议协商,见架构篇)
  • 资源可以作为上下文自动附加(客户端决定),也可以由模型请求
  • 工程要点:工具描述质量决定调用准确率(与 LangChain 工具篇一致),MCP 服务器同样要写好描述

面试追问

  1. 三原语是什么? Tools 执行操作、Resources 提供数据、Prompts 复用模板
  2. Tools 和 Resources 的区别? 工具会改变状态(写操作),资源是只读数据。一个动作一个数据
  3. 模型怎么调用工具? 模型只生成调用请求(工具名+参数),客户端转发执行。执行权不在模型
  4. Prompts 原语的价值? 提示工程沉淀复用,跨应用一致
  5. 工具定义包含什么? 名称 + 描述 + 参数 JSON Schema。描述质量决定调用准确率
Navigation

Type to search…

↑↓ navigate↵ selectEsc close