Spring AI MCP 核心注解详解:@McpTool、@McpResource、@McpPrompt 的区别与应用
·
在 Spring AI 中,MCP(Model Context Protocol)提供了三大核心能力:Tool(工具)、Resource(资源)和Prompt(提示模板)。本文详细讲解这三个注解的区别和使用场景。
一句话概括
| 注解 | 作用 | 相当于 |
|---|---|---|
| @McpTool | 执行动作 | 函数调用 |
| @McpResource | 读取数据 | 文件/数据库 |
| @McpPrompt | 提示模板 | Prompt 模板 |
@McpTool - 工具
什么是 Tool?
Tool(工具)让 AI 模型可以执行特定的函数调用。当 AI 需要完成某个动作时使用。
使用示例
package com.example.tool;
import org.springframework.ai.tool.annotation.Tool;
public class WeatherTool {
@Tool(description = "查询城市天气,返回温度和天气状况")
public Weather getWeather(String city) {
return weatherService.query(city);
}
}
注册到 Spring 容器
@Configuration
public class McpConfig {
@Bean
public ToolCallbackProvider weatherTool() {
return MethodToolCallbackProvider.builder()
.toolObjects(new WeatherTool())
.build();
}
}
适用场景
- 计算器:数学运算
- API 调用:查询天气、股票
- 数据库操作:增删改查
- 文件操作:读写文件
@McpResource - 资源
什么是 Resource?
Resource(资源)让 AI 可以读取外部数据。当 AI 需要了解某些信息时使用。
使用示例
@McpResource(uri = "file://config/app.yaml")
public String getAppConfig() {
return loadFile("config/app.yaml");
}
适用场景
- 配置文件:读取应用配置
- 静态数据:文档、知识库
- 数据库内容:查询结果返回给 AI
@McpPrompt - 提示模板
什么是 Prompt?
Prompt(提示模板)是预定义的提示词,可以标准化 AI 的交互方式。
使用示例
@McpPrompt(name = "summarize", description = "总结文章内容")
public Prompt summarizePrompt(@Prompt("article") String article) {
String template = "请用100字总结以下文章:
{{article}}";
return new PromptTemplate(template)
.create(Map.of("article", article));
}
适用场景
- 标准化提示:统一 AI 回复格式
- 复用逻辑:多处使用相同提示
- 动态参数:根据输入生成不同提示
典型使用流程
在实际应用中,这三个组件通常配合使用:
用户问题 → @McpResource 读取数据 → @McpPrompt 整理提示 → @McpTool 执行操作
总结
Spring AI MCP 的三大注解各司其职:
- @McpTool:让 AI 能够执行动作(函数调用)
- @McpResource:让 AI 能够读取数据(文件/配置)
- @McpPrompt:让 AI 使用标准化提示(模板)
理解这三者的区别,才能更好地设计 AI 应用的交互逻辑。
参考资料:
- Spring AI 官方文档
- MCP 协议规范
标签: Spring AI, MCP, Java, AI工具
更多推荐



所有评论(0)