关于 Cars MCP Server
Cars MCP Server 是一个使用 Spring AI 构建的示例 MCP 服务,面向学习如何将 Java 服务方法注册为工具的开发者。它围绕一份汽车愿望清单提供按名称或年份查询的功能。
主要功能
- 01使用 Spring AI ToolCallback
- 02列出汽车愿望清单
- 03按车型名称查找汽车
- 04按生产年份查找汽车
适用场景
- 01学习用 Spring AI 注册 MCP 工具
- 02查询愿望清单中的汽车条目
MCP 相关
该 MCP 服务通过 Spring AI ToolCallback 将 CarService 的方法作为工具提供给 MCP 客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Cars MCP Server
这是一个使用 Spring AI 构建的 MCP(Model Context Protocol)服务。该项目演示了如何使用 Spring AI 的 ToolCallback API,公开用于与汽车列表交互的工具;该列表代表 Amarpreet 的愿望清单。
演示
项目结构
项目组织如下:
-
src/main/java/com/amarpreet/carsmcpserver/CarsmcpserverApplication.java:Spring Boot 应用程序的主入口。它负责初始化应用程序,并使用CarService类注册ToolCallbackBean。Car.java:一个简单的record类,用两个字段表示一辆汽车:modelName和buildYear。CarService.java:一个服务类,提供与汽车列表交互的方法。这些方法通过ToolCallbackAPI 公开为工具。
-
src/main/resources/application.properties:包含 Spring Boot 应用程序的配置属性。 -
src/test/java/com/amarpreet/carsmcpserver/CarsmcpserverApplicationTests.java:包含一个基本测试,用于确保应用程序上下文能够正确加载。
ToolCallback API
ToolCallback API 用于将 CarService 类的方法公开为工具。这些工具可通过编程方式或 AI 驱动的界面调用。CarsmcpserverApplication 类使用 ToolCallbacks.from() 方法注册这些工具。
工具注册
在 CarsmcpserverApplication.java 中:
@Bean
public List<ToolCallback> amarpreetTools(CarService carService) {
return List.of(ToolCallbacks.from(carService));
}
此操作会将 CarService 类中所有使用 @Tool 注解的方法注册为 ToolCallback 实例。
CarService
CarService 类是此应用程序的核心。它管理一个汽车列表,并提供以下方法:
CarService 中的方法
getCars()
- 工具名称:
get_cars - 说明:获取 Amarpreet 愿望清单中的汽车列表。
- 返回类型:
List<Car>
getCar(String name)
- 工具名称:
get_car_by_name - 说明:按车型名称查找汽车。
- 参数:
name- 要搜索的车型名称。
- 返回类型:
Car(若未找到则返回null)
getCarByYear(Integer year)
- 工具名称:
get_car_by_years - 说明:按生产年份查找汽车。
- 参数:
year- 要搜索的生产年份。
- 返回类型:
Car(若未找到则返回null)
初始化
CarService 类在应用程序启动期间使用 @PostConstruct 注解初始化汽车列表:
public void init() {
log.info("Initializing cars MCP server...");
cars.addAll(List.of(
new Car("BMW Neue Klasse", 2025),
new Car("Ferrari EV", 2025),
new Car("Mercedes AMG 4dr EV", 2025),
new Car("Porsche 718 Boxster", 2025)
));
}
运行方法
使用 Maven 构建项目:
mvn clean install
运行应用程序:
java -jar target/carsmcpserver-0.0.1-SNAPSHOT.jar
配置
可以使用位于 src/main/resources 中的 application.properties 文件配置应用程序。关键属性包括:
spring.application.name:应用程序的名称。spring.main.web-application-type:设置为none,以将应用程序设为非 Web 应用程序。spring.ai.mcp.server:MCP 服务的名称。spring.ai.mcp.version:MCP 服务的版本。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。