Dan Vega Courses

Dan Vega Courses

🚀 Spring AI MCP 课程信息服务器

本项目是一个基于 Spring Boot 的应用程序,借助 Spring AI MCP 框架实现了模型控制协议(MCP)服务器,用于提供课程信息。它创建了轻量级服务器,让人工智能模型能与自定义数据服务交互,还可使用标准化工具。主要提供了检索所有课程和按标题搜索特定课程两个工具,是创建 MCP 服务器或集成外部数据源与 AI 模型的绝佳起点。

🚀 快速开始

  1. 克隆仓库
    git clone https://github.com/your-username/spring-ai-mcp.git
    cd spring-ai-mcp
    
  2. 构建项目
    mvn clean install
    
  3. 运行应用
    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.aigroupId>
    <artifactId>spring-ai-mcp-server-spring-boot-starterartifactId>
    dependency>
    
  • 用于演示的 Spring Boot Starter Web:提供 Web 组件以构建 MVC 应用程序
    <dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-webartifactId>
    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 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 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 模型交互的后端服务都非常有用。

更多详细信息,请参考官方文档

  • 0 关注
  • 0 收藏,32 浏览
  • system 提出于 2025-10-02 01:09

相似服务问题

相关AI产品