导航菜单

  • 1.什么是MCP
  • 2.架构概览
  • 3.理解MCP服务器
  • 4.理解MCP客户端
  • 5.版本控制
  • 6.连接本地MCP服务器
  • 7.连接远程MCP服务器
  • 8.构建MCP服务器
  • 9.构建MCP客户端
  • 10.SDKs
  • 11.理解MCP中的授权
  • 12.安全最佳实践
  • 13.MCP Inspector
  • 14.规范
  • 15.关键变更
  • 16.架构
  • 17.基础协议概述
  • 18.生命周期
  • 19.传输
  • 20.授权
  • 21.取消
  • 22.Ping
  • 23.进度
  • 24.任务
  • 25.根
  • 26.采样
  • 27.引导
  • 29.提示
  • 30.资源
  • 31.工具
  • 32.补全
  • 33.日志
  • 34.分页
  • 35.模式参考
  • Keycloak
  • 28.服务器功能
  • 1. 什么是MCP服务器
  • 2. 服务器能提供什么?—— 三个核心功能
  • 3. 工具:让 AI 能「动手做事」
    • 3.1 工具是什么?
    • 3.2 协议怎么用?
    • 3.3 工具定义长什么样?
    • 3.4 旅行场景中的工具示例
    • 3.5 用户如何参与?
  • 4. 资源:让 AI 能「读数据」
    • 4.1 资源是什么?
    • 4.2 两种资源类型
    • 4.3 协议怎么用?
    • 4.4 旅行场景中的资源示例
    • 4.5 参数补全
  • 5. 提示:让 AI 按「模板」工作
    • 5.1 提示是什么?
    • 5.2 协议怎么用?
    • 5.3 提示定义示例
    • 5.4 和随便聊天有什么区别?
    • 5.5 常见 UI 形式
  • 6 三者如何配合?—— 多服务器旅行规划
    • 6.1 完整流程示例
  • 7 本章小结

1. 什么是MCP服务器 #

MCP 服务器 = 通过标准协议向 AI 应用提供能力的程序。

常见例子:文件系统服务器(读文档)、数据库服务器(查数据)、GitHub 服务器(管代码)、Slack 服务器(发消息)、日历服务器(看日程)。

2. 服务器能提供什么?—— 三个核心功能 #

服务器通过三类「能力」与 AI 协作:

功能 通俗理解 谁决定用 举例
工具 AI 可以调用的「函数」 模型自动决定 搜航班、发消息、创建日历事件
资源 AI 可以读取的「数据」 应用/用户选择 读文档、查日历、访问知识库
提示 可复用的「任务模板」 用户主动选择 规划假期、总结会议、起草邮件

记忆口诀:工具 = 做事情,资源 = 读数据,提示 = 套模板。

下面用一个「旅行规划」场景,贯穿三种能力。

3. 工具:让 AI 能「动手做事」 #

3.1 工具是什么? #

工具是 LLM 可以调用的函数,有明确的输入和输出。模型根据对话内容自动决定何时调用、传什么参数。

3.2 协议怎么用? #

方法 作用
tools/list 列出服务器提供的所有工具
tools/call 执行指定工具

3.3 工具定义长什么样? #

每个工具需要:name(名称)、description(描述)、inputSchema(输入参数格式)。例如:

{
  "name": "searchFlights",
  "description": "搜索可用航班",
  "inputSchema": {
    "type": "object",
    "properties": {
      "origin": { "type": "string", "description": "出发城市" },
      "destination": { "type": "string", "description": "到达城市" },
      "date": { "type": "string", "description": "出行日期" }
    },
    "required": ["origin", "destination", "date"]
  }
}

3.4 旅行场景中的工具示例 #

工具 作用
searchFlights() 查航班
createCalendarEvent() 在日历里创建行程
sendEmail() 发邮件通知同事

3.5 用户如何参与? #

工具由模型自动调用,但应用可以通过以下方式保证用户知情、可控:

  • 在界面中展示可用工具,让用户选择是否启用
  • 关键操作前弹出确认框
  • 为安全操作设置预批准规则
  • 提供工具调用与结果的活动日志

4. 资源:让 AI 能「读数据」 #

4.1 资源是什么? #

资源是 AI 可以读取的数据源,只读、不修改。应用决定取哪些资源、怎么用(全量给模型、做检索、做嵌入等)。

4.2 两种资源类型 #

类型 说明 示例
直接资源 固定 URI,指向具体数据 calendar://events/2024(2024 年日历)
资源模板 带参数的动态 URI weather://forecast/{city}/{date}(按城市和日期查天气)

4.3 协议怎么用? #

方法 作用
resources/list 列出直接资源
resources/templates/list 列出资源模板
resources/read 读取资源内容
resources/subscribe 订阅资源变化

4.4 旅行场景中的资源示例 #

资源 作用
calendar://events/2024 查用户 2024 年空闲时间
file:///Documents/Travel/passport.pdf 读护照等旅行文档
trips://history/barcelona-2023 参考过去的行程和偏好

4.5 参数补全 #

资源模板支持参数补全。例如输入 "Par" 可提示 "Paris" 或 "Park City",输入 "JFK" 可提示 "JFK - John F. Kennedy International",方便用户选对参数。

5. 提示:让 AI 按「模板」工作 #

5.1 提示是什么? #

提示是 可复用的任务模板,带结构化参数。用户主动选择某个提示,而不是由模型自动触发。

5.2 协议怎么用? #

方法 作用
prompts/list 列出可用提示
prompts/get 获取提示详情(含参数定义)

5.3 提示定义示例 #

{
  "name": "plan-vacation",
  "title": "规划假期",
  "description": "引导完成假期规划流程",
  "arguments": [
    { "name": "destination", "type": "string", "required": true },
    { "name": "duration", "type": "number", "description": "天数" },
    { "name": "budget", "type": "number", "required": false },
    { "name": "interests", "type": "array", "items": { "type": "string" } }
  ]
}

5.4 和随便聊天有什么区别? #

无结构输入 使用提示
用户自由打字,信息可能不完整 按模板填参数,信息更完整
每次说法可能不同 流程统一、可复用
模型要自己推断缺什么 参数定义清晰,便于验证

5.5 常见 UI 形式 #

  • 斜杠命令:输入 / 显示 /plan-vacation 等
  • 命令面板:搜索并选择提示
  • 快捷按钮:常用提示一键触发
  • 上下文菜单:根据当前内容推荐相关提示

6 三者如何配合?—— 多服务器旅行规划 #

当多个 MCP 服务器一起工作时,能力会叠加。例如:

  • 旅行服务器:航班、酒店、行程
  • 天气服务器:气候、预报
  • 日历/邮件服务器:日程、通知

6.1 完整流程示例 #

  1. 用户选择提示并填参数
    例如选择「规划假期」,填:目的地 Barcelona、7 天、预算 $3000。

  2. 用户选择要用的资源
    例如:日历、旅行偏好、过去行程等。

  3. AI 读取资源、调用工具

    • 先读资源:日历可用日期、偏好、历史行程
    • 再调工具:searchFlights()、checkWeather()、bookHotel()、createCalendarEvent()、sendEmail() 等
    • 关键操作前可请求用户确认
  4. 结果
    在几分钟内完成研究、预订和通知,而不是几小时。

7 本章小结 #

能力 谁控制 核心作用
工具 模型 执行操作(搜、订、发等)
资源 应用/用户 提供只读数据
提示 用户 提供结构化任务模板

记忆要点:工具做事、资源读数据、提示套模板;多服务器可组合使用,形成完整工作流。

← 上一节 2.架构概览 下一节 4.理解MCP客户端 →

访问验证

请输入访问令牌

Token不正确,请重新输入