MCP服务端核心功能
一句话
MCP服务端通过Tools、Resources和Prompts三大构建块,为AI应用提供主动操作、被动数据访问和结构化指令模板的能力。
什么时候翻这页
当你需要理解MCP服务端如何与AI应用交互,或者需要设计自己的MCP服务时。
核心概念
Tools
- AI模型可以主动调用的函数,用于执行特定操作
- 可写入数据库、调用外部API、修改文件或触发其他逻辑
- 由模型控制使用时机,基于用户请求决定何时调用
- 示例:搜索航班、发送消息、创建日历事件
Resources
- 提供只读访问的数据源,用于提供上下文信息
- 包括文件内容、数据库模式、API文档等
- 由应用程序控制如何使用和呈现
- 支持直接资源(固定URI)和资源模板(动态URI带参数)
- 示例:检索文档、访问知识库、读取日历
Prompts
- 预构建的指令模板,指导模型使用特定工具和资源
- 用户控制,需要显式调用而非自动触发
- 可以是上下文感知的,引用可用资源和工具创建综合工作流
- 支持参数完成,帮助用户发现有效参数值
- 示例:规划假期、总结会议、起草邮件
怎么做
-
设计Tools:
- 定义具有明确输入输出的操作
- 使用JSON Schema进行验证
- 确保每个工具执行单一操作
- 考虑执行前需要用户同意的机制
-
创建Resources:
- 提供唯一URI和MIME类型
- 支持直接资源和资源模板两种模式
- 为资源模板添加元数据(标题、描述、预期MIME类型)
- 实现参数完成功能
-
开发Prompts:
- 创建参数化模板
- 定义预期输入和交互模式
- 确保提示具有清晰描述
- 实现自然参数输入和验证
-
协同工作:
- 将三者结合实现复杂工作流程
- 使用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服务端功能实现更精细的工具调用和数据访问。
初学者易错点
- 混淆控制权:Tools由模型控制使用时机,Resources由应用程序控制如何使用,Prompts由用户控制调用
- 忽略用户交互模型:虽然Tools由模型控制,但应用程序应提供用户控制机制,如批准对话框、权限设置等
- 资源URI设计不当:确保URI具有唯一性和描述性,遵循一致的命名约定
- 提示参数不完整:定义提示时应明确哪些参数是必需的,并提供清晰的描述
- 过度依赖自动触发:Prompts需要显式调用,不会自动触发
相关词条
- MCP协议基础
- 服务端开发
- 客户端集成
- 工具定义规范
- 资源访问模式
- 提示模板设计