mcpField
C
Cars MCP Server

Cars MCP Server

本地服务
github.com/amarpreetbhatia开发工具082 周前更新

关于 Cars MCP Server

Cars MCP Server 是一个使用 Spring AI 构建的示例 MCP 服务,面向学习如何将 Java 服务方法注册为工具的开发者。它围绕一份汽车愿望清单提供按名称或年份查询的功能。

主要功能

  1. 01使用 Spring AI ToolCallback
  2. 02列出汽车愿望清单
  3. 03按车型名称查找汽车
  4. 04按生产年份查找汽车

适用场景

  1. 01学习用 Spring AI 注册 MCP 工具
  2. 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 类注册 ToolCallback Bean。
    • Car.java:一个简单的 record 类,用两个字段表示一辆汽车:modelName 和 buildYear。
    • CarService.java:一个服务类,提供与汽车列表交互的方法。这些方法通过 ToolCallback API 公开为工具。
  • 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 服务的版本。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。