关于 spring-ai-mcp-server
这是一个 Spring AI 学习项目,演示如何构建带有课程管理工具的 MCP 服务,面向学习 MCP 集成的开发者,并通过 STDIO 通信且不提供 Web 界面。
主要功能
- 01使用 Spring AI 构建 MCP 服务
- 02提供课程列表工具
- 03按标题获取课程
- 04通过 STDIO 通信
适用场景
- 01学习使用 Spring AI 创建 MCP 工具
- 02为课程数据搭建 MCP 服务原型
MCP 相关
该项目实现 MCP 服务,通过 STDIO 向 MCP 客户端提供课程列表和课程查询工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Spring AI MCP 服务 - 学习项目
这是一个非常适合学习如何使用 Spring AI 创建 MCP(Model Context Protocol)服务的项目。该项目根据 Dan Vega 的课程开发,演示了如何通过 MCP 协议将自定义工具与 AI 模型集成。
🎯 关于项目
该项目实现了一个简单的 MCP 服务,用于提供管理课程的工具。这是一个实践示例,展示了如何:
- 使用 Spring AI 创建 MCP 服务
- 定义自定义工具
- 通过 MCP 协议与 AI 模型集成
- 配置不带 Web 界面的服务(STDIO 传输)
🏗️ 项目架构
文件结构
src/main/java/com/gotocode/courses/
├── CoursesApplication.java # Classe principal da aplicação
├── CourseService.java # Serviço com as ferramentas MCP
└── Course.java # Modelo de dados (Record)
主要组件
- CoursesApplication:配置 MCP 服务的主类
- CourseService:提供用于管理课程的 MCP 工具的服务
- Course:表示包含标题和 URL 的课程的 Record
🛠️ 使用的技术
- Java 24
- Spring Boot 3.4.5
- Spring AI 1.0.0-M8
- Maven
📋 前置条件
运行项目之前,请确保已安装:
- Java 24 或更高版本
- Maven 3.6+ 或更高版本
检查安装情况
# Verificar versão do Java
java -version
# Verificar versão do Maven
mvn -version
🚀 如何运行项目
1. 克隆仓库
git clone https://github.com/moises-paschoalick/spring-ai-mcp-server.git
cd spring-ai-mcp-server
2. 编译项目
mvn clean compile
3. 运行 MCP 服务
mvn spring-boot:run
4. 其他方式:通过 JAR 运行
# Compilar o JAR
mvn clean package
# Executar o 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 传输
🛠️ 可用的 MCP 工具
该服务提供两个主要工具:
1. dv_get_courses
- 描述:获取所有可用课程的列表
- 返回值:课程列表
2. dv_get_course
- 描述:根据标题获取特定课程
- 参数:
title(String)- 课程标题 - 返回值:特定课程;如果未找到,则返回 null
📝 使用示例
数据结构
public record Course(String title, String url) {
}
示例数据
服务初始化时会载入一些示例课程:
courses.addAll(List.of(
new Course("Título do vídeo 01", "https://www.urlvideo01"),
new Course("Título do vídeo 02", "https://www.urlvideo02")
));
🔍 工作原理
- 初始化:MCP 服务在没有 Web 界面的情况下启动
- 工具注册:
CourseService被注册为 MCP 工具 - STDIO 通信:服务通过标准输入/输出进行通信
- 与 AI 集成:AI 模型可以通过 MCP 协议使用这些工具
🎓 项目收获
本项目演示了:
- 如何使用 Spring AI 创建自定义工具
- 如何配置不带 Web 界面的 MCP 服务
- 如何使用
@Tool注解将方法公开为工具 - 如何通过 MCP 协议与 AI 模型通信
- 功能性 MCP 服务的基本结构
🤝 贡献
这是一个学习项目,但欢迎贡献!贡献方式:
- Fork 项目
- 为你的功能创建一个分支(
git checkout -b feature/AmazingFeature) - 提交更改(
git commit -m 'Add some AmazingFeature') - 推送到该分支(
git push origin feature/AmazingFeature) - 创建 Pull Request
📚 更多资源
📄 许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
基于 Dan Vega 的课程开发的学习项目 🚀
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。