项目简介
spring-ai-mcp 仓库是 Spring 官方的实验性项目,旨在为 Java 开发者提供一套全面的 SDK 和 Spring Framework 集成方案,用于构建基于 Model Context Protocol (MCP) 的应用。该仓库已毕业并迁移至 MCP Java SDK 和 Spring AI MCP。
注意: 该仓库目前已被存档,不再进行维护。建议使用其迁移后的项目。
主要功能点
- MCP 协议实现: 提供同步和异步的 MCP 客户端和服务器端实现,遵循 Model Context Protocol 规范。
- 核心功能支持: 支持工具注册与发现、资源管理、Prompt 模板处理以及结构化日志记录等 MCP 核心操作。
- 多种传输协议: 支持 Stdio 和 SSE 传输协议,满足不同应用场景的需求。
- Spring 集成: 提供与 Spring AI 的集成模块,方便 Spring 应用快速集成 MCP 功能,并提供 Spring 友好的抽象和自动配置。
- 示例丰富: 提供多个示例 Demo,涵盖 SQLite 数据库集成、文件系统交互、Brave 搜索集成等多种应用场景,方便开发者快速上手。
安装步骤
-
添加 Maven 依赖: 在您的 Maven 项目的 'pom.xml' 文件中添加以下依赖:
<!-- Core MCP --> <dependency> <groupId>org.springframework.experimental</groupId> <artifactId>mcp</artifactId> </dependency> <!-- 可选: WebFlux SSE 传输 --> <dependency> <groupId>org.springframework.experimental</groupId> <artifactId>mcp-webflux-sse-transport</artifactId> </dependency> <!-- 可选: WebMVC SSE 传输 --> <dependency> <groupId>org.springframework.experimental</groupId> <artifactId>mcp-webmvc-sse-transport</artifactId> </dependency> <!-- 可选: Spring AI 集成 --> <dependency> <groupId>org.springframework.experimental</groupId> <artifactId>spring-ai-mcp</artifactId> </dependency> -
添加 Spring Milestones 仓库: 由于该项目为里程碑版本,您需要在 'pom.xml' 文件中添加 Spring Milestones 仓库:
<repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
服务器配置
由于 'spring-ai-mcp' 仓库主要提供的是 SDK 和集成方案,而非开箱即用的 MCP 服务器,因此 没有直接可用的服务器启动命令和参数。
开发者需要 基于该 SDK 构建自己的 MCP 服务器应用。
以下是一些关键配置点,用于指导 MCP 客户端如何连接到基于 spring-ai-mcp SDK 构建的 MCP 服务器 (假设服务器使用 Stdio 传输协议):
{ "serverName": "my-mcp-server", "command": "java", "args": [ "-jar", "path/to/your-mcp-server.jar", // 指向您使用 spring-ai-mcp SDK 构建的服务器应用的 JAR 文件路径 "--arg1", // 您的 MCP 服务器应用可能需要的其他参数 "value1", "--arg2", "value2" ], "env": { "SERVER_ENV_VAR": "env_value" // 您的 MCP 服务器应用可能需要的环境变量 } }
参数注释:
- 'serverName': MCP 服务器的名称,客户端用于标识连接的服务器。
- 'command': 启动 MCP 服务器的命令,通常为 'java' 或 'node' 等可执行命令。
- 'args': 传递给启动命令的参数列表,例如 JAR 文件路径、配置文件路径、端口号等。
- 'env': 环境变量配置,用于设置服务器运行所需的环境变量。
请注意:
- 上述配置信息为 示例 JSON 格式,具体的配置项和参数需要 根据您基于 spring-ai-mcp SDK 构建的 MCP 服务器应用的实际需求 进行调整。
- 客户端需要根据您服务器实际使用的 传输协议 (例如 Stdio, SSE, WebSocket) 选择合适的客户端传输实现,并配置相应的连接信息 (例如 Stdio 的命令和参数,SSE/WebSocket 的 URL 等)。
基本使用方法
- 构建 MCP 服务器: 使用 'spring-ai-mcp' SDK,基于 Spring Boot 或其他 Java 框架,开发 MCP 服务器应用,实现资源管理、工具注册、Prompt 模板渲染等功能。参考仓库中的示例代码和文档。
- 配置并启动 MCP 服务器: 根据您的应用需求配置服务器,例如注册工具、资源、Prompt 模板,并选择合适的传输协议启动服务器。
- 构建 MCP 客户端: 使用 'spring-ai-mcp' SDK 或其他 MCP 客户端 SDK,构建 MCP 客户端应用,配置连接信息 (例如上述示例 JSON 配置) 连接到您构建的 MCP 服务器。
- 客户端与服务器交互: 在客户端应用中,使用 MCP 客户端 SDK 提供的 API,例如 'listTools', 'callTool', 'listResources', 'getPrompt' 等,与 MCP 服务器进行交互,实现上下文信息获取和功能调用。
请参考仓库中提供的文档和示例代码,以获取更详细的使用指导。
信息
分类
开发者工具