使用说明
Spring AI MCP服务器示例:MCP课程
此存储库包含一个使用Spring Boot和Spring AI构建的最小模型上下文协议(MCP)服务器。它提供了一些简单的工具,用于在MCP STDIO传输上列出、获取和添加“课程”,使其易于与MCP兼容的客户端集成,如Claude Desktop、OpenAI MCP兼容的开发工具、Cursor或MCP Inspector。
当前日期/时间:2025-08-09 15:52(仅供参考)
里面是什么
- Spring Boot控制台应用程序(无web服务器)配置为通过STDIO作为MCP服务器运行。
- Spring AI Toolcallback自动导出带注释的方法
CourseService作为MCP工具。 - 三个示例工具:
sd_get_courses:列出所有可用的课程。sd_get_course:按课程title.sd_add_course:添加一门给定的新课程Course对象与title和url.
关键类/文件:
src/main/java/dev/iseif/mcpspringai/McpSpringAiApplication.java--Spring Boot入口点。src/main/java/dev/iseif/mcpspringai/AppConfiguration.java--登记簿CourseService作为工具回调。src/main/java/dev/iseif/mcpspringai/CourseService.java--通过以下方式实施工具@Tool注释。src/main/java/dev/iseif/mcpspringai/Course.java--课程的记录类型。src/main/resources/application.properties--MCP服务器名称/版本和STDIO友好日志记录。
先决条件
- Java 17+(建议与Maven/target设置匹配)。
- Maven 3.9+(或使用附带的Maven包装器)。
- 如果要集成,请使用MCP兼容客户端(可选):
- Claude Desktop(通过JSON配置支持MCP提供程序)。
- MCP检查员:
npx @modelcontextprotocol/inspector. - 其他支持MCP的工具/编辑器。
构建
在Windows PowerShell上(使用包装器):
./mvnw.cmd -q -DskipTests package
或者,如果安装了Maven:
mvn -q -DskipTests package
这将在下面生成一个可运行的JAR target/.
运行(STDIO MCP服务器)
这个应用程序是一个专为STDIO传输设计的纯控制台进程。它不得打印横幅或普通控制台日志(已配置)。
直接运行它:
java -jar target/mcp-spring-ai-*.jar
该过程将在STDIN/STDOUT上等待来自客户端的MCP JSON-RPC消息。
配置默认值(请参见 src/main/resources/application.properties):
spring.application.name=mcp-spring-ai
spring.main.web-application-type=none
spring.ai.mcp.server.name=courses-mcp
spring.ai.mcp.server.version=1.0.0
# Required for STDIO transport
spring.main.banner-mode=off
logging.pattern.console=
工具(功能)
这些工具是由Spring AI从 CourseService:
sd_get_courses
- 说明:列出所有可用的课程。
- 参数:无
- 退货:
List<Course>哪里Course是{ title: string, url: string }.
sd_get_course
- 描述:按标题获取课程。
- 参数:
title(string)--与课程名称完全匹配。
- 退货:
Course | null.
sd_add_course
- 说明:添加新课程。
- 参数:
course(对象)--{ title: string, url: string }.
- 退货:
void(无内容)。
初始数据(启动时加载):
- 弹簧靴https://spring.io/projects/spring-boot
- 春天https://spring.io/projects/spring-framework
- 春季安全https://spring.io/projects/spring-security
- Spring数据JPA-https://spring.io/projects/spring-data-jpa
与MCP客户端一起使用
1) MCP检查员(非常适合测试)
如果你有Node.js:
- 安装并运行:
npx @modelcontextprotocol/inspector - 添加新服务器(STDIO):
- 命令:
java - Args:
-jar,F:/development/repos/mcp-spring-ai/target/mcp-spring-ai-<version>.jar - 工作目录:项目根目录(或JAR所在的任何位置)
- 命令:
- 连接后,您应该会看到
courses-mcp服务器及其三个工具。
2) 克劳德桌面
编辑(或创建)您的Claude Desktop MCP配置文件(因操作系统而异)。对于Windows,它通常位于:
%APPDATA%/Claude/claude_desktop_config.json
添加类似于以下内容的提供者条目:
{
"mcpServers": {
"courses-mcp": {
"command": "java",
"args": [
"-jar",
"F:/development/repos/mcp-spring-ai/target/mcp-spring-ai-<version>.jar"
],
"env": {}
}
}
}
重新启动克劳德桌面。它应该发现 courses-mcp 服务器,并允许模型调用工具。
3) 其他MCP兼容工具
有关配置“stdio”MCP服务器的信息,请参阅客户的文档。关键是要启动:
java -jar path/to/mcp-spring-ai-<version>.jar
并连接STDIN/STDOUT。
故障排除
- 预期控制台输出为空白。服务器通过STDIO JSON-RPC进行通信。不要启用正常的控制台日志。
- 如果您看到Spring Boot横幅或日志,请确保
application.properties:spring.main.banner-mode=offlogging.pattern.console=(空)
- 如果客户找不到工具:
- 确保
AppConfiguration被拾取(它在同一个包树中)。 - 确保您构建了项目并运行了构建的JAR,而不是旧版本。
- 确保
- Java版本不匹配:
- 验证
java -version与项目设置兼容。
- 验证
发展
- 运行测试:
./mvnw.cmd test - 快速重建:
./mvnw.cmd -q -DskipTests package - 通过注释服务方法来修改或添加工具
@Tool来自Spring AI。
许可证
该项目仅作为示例提供。如果您计划重新分发,请添加您的首选许可证。
