mcpField
S
spring-ai-mcp-server

spring-ai-mcp-server

本地服务
github.com/moises-paschoalick开发工具270 周前更新

关于 spring-ai-mcp-server

这是一个 Spring AI 学习项目,演示如何构建带有课程管理工具的 MCP 服务,面向学习 MCP 集成的开发者,并通过 STDIO 通信且不提供 Web 界面。

主要功能

  1. 01使用 Spring AI 构建 MCP 服务
  2. 02提供课程列表工具
  3. 03按标题获取课程
  4. 04通过 STDIO 通信

适用场景

  1. 01学习使用 Spring AI 创建 MCP 工具
  2. 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)
主要组件
  1. CoursesApplication:配置 MCP 服务的主类
  2. CourseService:提供用于管理课程的 MCP 工具的服务
  3. 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")
));

🔍 工作原理

  1. 初始化:MCP 服务在没有 Web 界面的情况下启动
  2. 工具注册:CourseService 被注册为 MCP 工具
  3. STDIO 通信:服务通过标准输入/输出进行通信
  4. 与 AI 集成:AI 模型可以通过 MCP 协议使用这些工具

🎓 项目收获

本项目演示了:

  • 如何使用 Spring AI 创建自定义工具
  • 如何配置不带 Web 界面的 MCP 服务
  • 如何使用 @Tool 注解将方法公开为工具
  • 如何通过 MCP 协议与 AI 模型通信
  • 功能性 MCP 服务的基本结构

🤝 贡献

这是一个学习项目,但欢迎贡献!贡献方式:

  1. Fork 项目
  2. 为你的功能创建一个分支(git checkout -b feature/AmazingFeature)
  3. 提交更改(git commit -m 'Add some AmazingFeature')
  4. 推送到该分支(git push origin feature/AmazingFeature)
  5. 创建 Pull Request

📚 更多资源

📄 许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。


基于 Dan Vega 的课程开发的学习项目 🚀

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。