J'Blog

3 课 · 概念

语义检索

基于 Chroma 向量库,与 Workspace 知识库分离。用自然语言描述你想查的内容。 非管理员每人每天可检索 5 次(消耗站点 AI 配额)。

MCP服务端核心功能

原文:服务端:Tools / Resources / Prompts

一句话

MCP服务端通过Tools、Resources和Prompts三大构建块,为AI应用提供主动操作、被动数据访问和结构化指令模板的能力。

什么时候翻这页

当你需要理解MCP服务端如何与AI应用交互,或者需要设计自己的MCP服务时。

核心概念

Tools

  • AI模型可以主动调用的函数,用于执行特定操作
  • 可写入数据库、调用外部API、修改文件或触发其他逻辑
  • 由模型控制使用时机,基于用户请求决定何时调用
  • 示例:搜索航班、发送消息、创建日历事件

Resources

  • 提供只读访问的数据源,用于提供上下文信息
  • 包括文件内容、数据库模式、API文档等
  • 由应用程序控制如何使用和呈现
  • 支持直接资源(固定URI)和资源模板(动态URI带参数)
  • 示例:检索文档、访问知识库、读取日历

Prompts

  • 预构建的指令模板,指导模型使用特定工具和资源
  • 用户控制,需要显式调用而非自动触发
  • 可以是上下文感知的,引用可用资源和工具创建综合工作流
  • 支持参数完成,帮助用户发现有效参数值
  • 示例:规划假期、总结会议、起草邮件

怎么做

  1. 设计Tools

    • 定义具有明确输入输出的操作
    • 使用JSON Schema进行验证
    • 确保每个工具执行单一操作
    • 考虑执行前需要用户同意的机制
  2. 创建Resources

    • 提供唯一URI和MIME类型
    • 支持直接资源和资源模板两种模式
    • 为资源模板添加元数据(标题、描述、预期MIME类型)
    • 实现参数完成功能
  3. 开发Prompts

    • 创建参数化模板
    • 定义预期输入和交互模式
    • 确保提示具有清晰描述
    • 实现自然参数输入和验证
  4. 协同工作

    • 将三者结合实现复杂工作流程
    • 使用Resources提供上下文
    • 通过Tools执行操作
    • 用Prompts指导整体流程

命令 / 配置速查

Tools相关

  • tools/list:发现可用工具,返回带有schema的工具定义数组
  • tools/call:执行特定工具,返回工具执行结果

Resources相关

  • resources/list:列出可用直接资源,返回资源描述符数组
  • resources/templates/list:发现资源模板,返回资源模板定义数组
  • resources/read:检索资源内容,返回带元数据的资源数据
  • resources/subscribe:监控资源变化,返回订阅确认

Prompts相关

  • prompts/list:发现可用提示,返回提示描述符数组
  • prompts/get:检索提示详情,返回带参数的完整提示定义

与 Claude Code / Hello-Agents 的联系

在Claude Code中,MCP服务端扩展了IDE的功能,使AI能够直接操作开发环境;在Hello-Agents第10章中,MCP作为连接代理与外部工具的桥梁。本章深入探讨了服务端的具体实现方式,而前两章主要关注概念和集成。特别地,Hello-Agents中的多代理协作场景可以通过本章介绍的MCP服务端功能实现更精细的工具调用和数据访问。

初学者易错点

  1. 混淆控制权:Tools由模型控制使用时机,Resources由应用程序控制如何使用,Prompts由用户控制调用
  2. 忽略用户交互模型:虽然Tools由模型控制,但应用程序应提供用户控制机制,如批准对话框、权限设置等
  3. 资源URI设计不当:确保URI具有唯一性和描述性,遵循一致的命名约定
  4. 提示参数不完整:定义提示时应明确哪些参数是必需的,并提供清晰的描述
  5. 过度依赖自动触发:Prompts需要显式调用,不会自动触发

相关词条

  • MCP协议基础
  • 服务端开发
  • 客户端集成
  • 工具定义规范
  • 资源访问模式
  • 提示模板设计

官方原文:https://modelcontextprotocol.io/docs/learn/server-concepts