这是一个优秀的学习项目,用于了解如何使用Spring AI创建一个MCP(模型上下文协议)服务器。该项目是根据Dan Vega的课程开发的,展示了如何通过MCP协议将自定义工具与AI模型集成。
此项目实现了一个简单的MCP服务器,该服务器公开了管理课程的工具。这是一个实际的例子,展示了如何:
src/main/java/com/gotocode/courses/
├── CoursesApplication.java # 应用程序主类
├── CourseService.java # 包含MCP工具的服务
└── Course.java # 数据模型(记录)
在运行项目之前,请确保已安装:
# 检查Java版本
java -version
# 检查Maven版本
mvn -version
git clone https://github.com/moises-paschoalick/spring-ai-mcp-server.git
cd spring-ai-mcp-server
mvn clean compile
mvn spring-boot:run
# 编译JAR
mvn clean package
# 运行JAR
java -jar target/courses-0.0.1-SNAPSHOT.jar
项目通过application.properties文件配置为MCP服务器:
spring.application.name=courses
spring.main.web-application-type=none
spring.ai.mcp.server.name=dan-vega-mcp
spring.ai.mcp.server.version=0.0.1
spring.main.banner-mode=off
logging.pattern.console=
spring.main.web-application-type=none:禁用HTTP服务器spring.ai.mcp.server.name:设置MCP服务器的名称spring.main.banner-mode=off:禁用Spring Boot的启动横幅logging.pattern.console=:移除控制台日志以允许STDIO传输服务器公开了两个主要工具:
dv_get_coursesdv_get_coursetitle (字符串) - 课程标题public record Course(String title, String url) {
}
服务初始化时添加了一些示例课程:
courses.addAll(List.of(
new Course("视频标题01", "https://www.urlvideo01"),
new Course("视频标题02", "https://www.urlvideo02")
));
CourseService作为MCP工具被注册本项目演示了:
@Tool注解将方法暴露为工具这是一个学习项目,但欢迎贡献!要贡献:
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)本项目采用MIT许可证。详情见LICENSE文件。
基于Dan Vega的课程开发的学习项目 🚀