article
README
🚀 Spring AI MCP 课程信息服务器
本项目是一个基于 Spring Boot 的应用程序,借助 Spring AI MCP 框架实现了模型控制协议(MCP)服务器,用于提供课程信息。它创建了轻量级服务器,让人工智能模型能与自定义数据服务交互,还可使用标准化工具。主要提供了检索所有课程和按标题搜索特定课程两个工具,是创建 MCP 服务器或集成外部数据源与 AI 模型的绝佳起点。
🚀 快速开始
- 克隆仓库
git clone https://github.com/your-username/spring-ai-mcp.git cd spring-ai-mcp - 构建项目
mvn clean install - 运行应用
java -jar target/courses-0.0.1-SNAPSHOT.jar
✨ 主要特性
- 实现模型控制协议(MCP)服务器,提供课程信息。
- 提供检索所有可用课程和按标题搜索特定课程两个工具。
- 可作为创建自定义 MCP 服务器或集成外部数据源与 AI 模型的起点。
📦 安装指南
项目要求
- Java 24
- Maven 3.8+
- Spring Boot 3.4.4
- Spring AI 1.0.0 - M6
依赖项
该项目依赖以下关键依赖项:
- Spring AI MCP 服务器:提供创建与 MCP 兼容服务器的基础
<dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-mcp-server-spring-boot-starter</artifactId> </dependency> - 用于演示的 Spring Boot Starter Web:提供 Web 组件以构建 MVC 应用程序
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
💻 使用示例
基础用法
1. 获取所有课程
curl http://localhost:8080/courses
2. 搜索课程
curl "http://localhost:8080/search?keyword=Java"
高级用法
在实际使用中,可根据业务需求对 CourseService 类中的搜索逻辑进行扩展,以实现更复杂的课程搜索功能。例如,可以根据课程的分类、讲师等信息进行搜索。
📚 详细文档
项目结构
src/main/java/
├── CourseService.java # 提供课程数据的业务逻辑
└── MCPServerApplication.java # 主应用程序类,启动 Spring Boot 应用程序
功能实现
1. 创建服务类
import org.springframework.stereotype.Service;
@Service
public class CourseService {
public List<Course> getAllCourses() {
return List.of(
new Course(1L, "Introduction to Java"),
new Course(2L, "Advanced Python Programming")
);
}
@Tool(name = "search_courses", description = "Search for courses containing a keyword")
public List<Course> searchCourses(String keyword) {
// 这里添加搜索逻辑
return this.getAllCourses().stream()
.filter(course -> course.getTitle().toLowerCase().contains(keyword.toLowerCase()))
.collect(Collectors.toList());
}
}
2. 创建 Course 数据传输对象(DTO)
import java.util.Objects;
public record Course(
Long id,
String title
) {
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Course course = (Course) o;
return Objects.equals(id, course.id);
}
@Override
public int hashCode() {
return Objects.hash(id);
}
}
配置 MCP 服务器
在 application.properties 文件中进行如下配置:
# 设置 MCP 服务器的端口
server.port = 8080
# 其他 Spring Boot 配置...
引言
MCP(模型控制协议)是一种用于在 AI 模型和外部数据源之间建立通信的协议。通过 Spring AI,您可以轻松地将这些服务公开为工具,供 AI 模型调用。
结论
通过此示例,您可以看到如何利用 Spring AI 的 MCP 服务器来公开自定义服务。这对于任何需要与 AI 模型交互的后端服务都非常有用。
更多详细信息,请参考官方文档。
扫码联系在线客服