Token导航 LogoToken导航TokenDH.com
Dv Courses MCP logo
AI代理未说明官方级别未说明来源级核验

Dv Courses MCP

MCP Server

一个基于Spring Boot的MCP服务器,用于提供课程信息,允许AI模型通过标准化工具与自定义数据服务交互。

工具数

0

提示词数

0

GitHub Stars

16

资源数

0
数据服务JavaClaudeSpring BootClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

danvega

提供方

danvega

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Spring AI MCP课程信息服务器

概述

此存储库包含一个Spring Boot应用程序,该应用程序实现了用于提供课程信息的模型控制协议(MCP)服务器。该应用程序创建了一个轻量级服务器,可以通过Spring AI MCP框架公开课程数据,允许AI模型使用标准化工具与您的自定义数据服务进行交互。

服务器公开了两个主要工具:

  • 检索所有可用课程的工具
  • 按标题搜索特定课程的工具

此实现是创建自己的模型控制协议服务器或通过Spring AI将外部数据源与AI模型集成的绝佳起点。

项目需求

  • Java 24
  • Maven 3.8+
  • 弹簧靴3.4.4
  • 春季AI 1.0.0-M6

依赖项

该项目依赖于以下关键依赖关系:

  • Spring AI MCP服务器:为创建MCP兼容服务器提供基础
  
      org.springframework.ai
      spring-ai-mcp-server-spring-boot-starter
  
  • 弹簧靴测试:用于测试应用程序
  
      org.springframework.boot
      spring-boot-starter-test
      test
  

入门指南

先决条件

在运行应用程序之前,请确保您已经:

  • 您的系统上已安装Java 24
  • 安装Maven进行依赖管理
  • 对Spring Boot应用程序的基本了解

设置项目

  1. 审查项目结构,了解组成部分:

- Course.java:表示课程数据的简单记录 - CourseService.java:带有MCP工具注释的服务 - CoursesApplication.java:带有工具注册的主应用程序类 - application.properties:MCP服务器的配置

  1. 该应用程序被配置为使用用于MCP通信的STDIO传输作为非web应用程序运行:
   spring.main.web-application-type=none
   spring.ai.mcp.server.name=dan-vega-mcp
   spring.ai.mcp.server.version=0.0.1

   # These settings are critical for STDIO transport
   spring.main.banner-mode=off
   logging.pattern.console=

如何运行应用程序

使用Maven运行应用程序很简单:

mvn spring-boot:run

该应用程序将作为可通过标准输入/输出访问的模型控制协议服务器启动。它不打开任何网络端口或提供web界面,如 spring.main.web-application-type=none 配置。

运行时,服务器向MCP注册两个工具:

  • dv_get_courses:返回所有可用课程
  • dv_get_course:按标题返回特定课程

理解代码

定义数据模型

该应用程序使用一个简单的记录来表示课程数据:

public record Course(String title, String url) {
}

这种不可变的数据结构提供了一种用标题和URL属性表示课程信息的干净方法。

实现工具功能

CourseService 类演示了如何使用 @Tool 注释:

@Service
public class CourseService {
    private List courses = new ArrayList<>();

    @Tool(name = "dv_get_courses", description = "Get a list of courses from Dan Vega")
    public List getCourses() {
        return courses;
    }

    @Tool(name = "dv_get_course", description = "Get a single courses from Dan Vega by title")
    public Course getCourse(String title) {
        return courses.stream()
                .filter(course -> course.title().equals(title))
                .findFirst()
                .orElse(null);
    }

    @PostConstruct
    public void init() {
        courses.addAll(List.of(
                new Course("Building Web Applications with Spring Boot (FreeCodeCamp)", 
                          "https://youtu.be/31KTdfRH6nY"),
                new Course("Spring Boot Tutorial for Beginners - 2023 Crash Course using Spring Boot 3",
                          "https://youtu.be/UgX5lgv4uVM")
        ));
    }
}

@Tool 注释将常规方法转换为MCP兼容工具,包括:

  • 用于识别的唯一名称
  • 帮助AI模型理解工具目的的描述

向MCP注册工具

在主应用程序类中,工具在MCP框架中注册:

@SpringBootApplication
public class CoursesApplication {

    public static void main(String[] args) {
        SpringApplication.run(CoursesApplication.class, args);
    }

    @Bean
    public List danTools(CourseService courseService) {
        return List.of(ToolCallbacks.from(courseService));
    }
}

ToolCallbacks.from() 方法扫描服务类以查找 @Tool 注释并将其注册到MCP框架中。

扩展项目

您可以通过多种方式扩展此项目:

  1. 添加更多课程:修改 init() 方法in CourseService 包括额外的课程。
  1. 创建新的工具功能:使用添加更多方法 @Tool 注释以显示附加功能。
  1. 实施数据库存储:用数据库连接替换内存中的列表,以持久存储课程信息。
  1. 添加搜索功能:实现超越精确标题匹配的更高级搜索功能。

添加搜索功能的示例:

@Tool(name = "dv_search_courses", description = "Search courses containing a keyword")
public List searchCourses(String keyword) {
    return courses.stream()
            .filter(course -> course.title().toLowerCase().contains(keyword.toLowerCase()))
            .collect(Collectors.toList());
}

使用带有AI模型的MCP服务器

要将此MCP服务器与AI模型一起使用:

  1. 确保您的AI框架支持模型控制协议
  2. 使用STDIO传输将AI模型连接到MCP服务器
  3. 然后,AI模型可以调用公开的工具:

- 请求所有课程的列表 - 按标题检索特定课程的详细信息

这允许人工智能模型访问实时课程信息,并在响应用户查询时提供这些信息。

Claude桌面客户端的配置

要将此MCP服务器与Claude Desktop客户端一起使用,您需要添加配置以告诉Claude在哪里可以找到服务器。将以下配置添加到您的Claude Desktop设置中:

{
  "dan-vega-mcp": {
    "command": "/Users/vega/.sdkman/candidates/java/current/bin/java",
    "args": [
      "-jar",
      "/Users/vega/Downloads/courses/target/courses-0.0.1-SNAPSHOT.jar"
    ]
  }
}

此配置:

  • 在Claude Desktop中创建名为“dan vega mcp”的工具
  • 指定Java可执行文件的路径
  • 提供参数以运行编译的JAR文件

确保调整路径以匹配您的特定环境:

  • 更新Java路径以匹配您的安装
  • 将JAR文件路径更新到编译后的应用程序所在的位置

结论

这个Spring AI MCP服务器提供了一个干净、可扩展的框架,用于通过模型控制协议公开课程数据。通过遵循Spring AI惯例并利用工具注释系统,您可以在AI模型和数据服务之间创建强大的集成。

该项目演示了如何在保持良好软件设计实践的同时,为MCP兼容性构建代码。有了这个基础,您可以构建更复杂的数据提供者,通过访问自定义的、特定于领域的信息来增强人工智能的能力。

有关Spring AI和模型控制协议的更多信息,请参阅官方文档。

目录标签

目录标签

数据服务JavaClaudeSpring Boot课程管理本地部署AI集成SpringBootMCP协议

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP