项目简介

spring-ai-mcp 仓库是 Spring 官方的实验性项目,旨在为 Java 开发者提供一套全面的 SDK 和 Spring Framework 集成方案,用于构建基于 Model Context Protocol (MCP) 的应用。该仓库已毕业并迁移至 MCP Java SDKSpring AI MCP

注意: 该仓库目前已被存档,不再进行维护。建议使用其迁移后的项目。

主要功能点

  • MCP 协议实现: 提供同步和异步的 MCP 客户端和服务器端实现,遵循 Model Context Protocol 规范。
  • 核心功能支持: 支持工具注册与发现、资源管理、Prompt 模板处理以及结构化日志记录等 MCP 核心操作。
  • 多种传输协议: 支持 Stdio 和 SSE 传输协议,满足不同应用场景的需求。
  • Spring 集成: 提供与 Spring AI 的集成模块,方便 Spring 应用快速集成 MCP 功能,并提供 Spring 友好的抽象和自动配置。
  • 示例丰富: 提供多个示例 Demo,涵盖 SQLite 数据库集成、文件系统交互、Brave 搜索集成等多种应用场景,方便开发者快速上手。

安装步骤

  1. 添加 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>
  2. 添加 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 等)。

基本使用方法

  1. 构建 MCP 服务器: 使用 'spring-ai-mcp' SDK,基于 Spring Boot 或其他 Java 框架,开发 MCP 服务器应用,实现资源管理、工具注册、Prompt 模板渲染等功能。参考仓库中的示例代码和文档。
  2. 配置并启动 MCP 服务器: 根据您的应用需求配置服务器,例如注册工具、资源、Prompt 模板,并选择合适的传输协议启动服务器。
  3. 构建 MCP 客户端: 使用 'spring-ai-mcp' SDK 或其他 MCP 客户端 SDK,构建 MCP 客户端应用,配置连接信息 (例如上述示例 JSON 配置) 连接到您构建的 MCP 服务器。
  4. 客户端与服务器交互: 在客户端应用中,使用 MCP 客户端 SDK 提供的 API,例如 'listTools', 'callTool', 'listResources', 'getPrompt' 等,与 MCP 服务器进行交互,实现上下文信息获取和功能调用。

请参考仓库中提供的文档和示例代码,以获取更详细的使用指导。

信息

分类

开发者工具