使用说明

项目简介

本项目 'spring-ai-mcp-server' 是一个使用 Spring AI 框架构建的 MCP 服务器示例,旨在演示如何使用 Spring AI 快速搭建一个提供结构化数据访问和工具能力的 MCP 后端服务。它使用内存数据库存储虚拟的人员 (Person) 数据,并实现了基本的增删改查 (CRUD) 操作以及基于不同条件的数据查询功能。

主要功能点

  • 资源管理: 托管和管理人员 (Person) 数据资源,数据存储在内存中。
  • 数据访问: 提供人员数据的CRUD操作接口,包括创建、读取、更新和删除人员记录。
  • 工具注册和执行: 通过 Spring AI 的 '@Tool' 注解注册了一系列操作人员数据的工具,例如根据ID查询、按职位搜索、按性别和年龄过滤等。这些工具可以被 LLM 客户端调用以执行数据操作。
  • MCP 服务器实现: 基于 Spring AI MCP Server 能力构建,符合 MCP 协议规范,可以与任何兼容 MCP 协议的 LLM 客户端进行交互。

安装步骤

  1. 安装 Java 24 和 Maven: 确保您的开发环境中已安装 Java 24 或更高版本,并配置了 Maven 构建工具。
  2. 克隆仓库: 从 GitHub 克隆 'spring-ai-mcp-server' 仓库到本地。
  3. 构建项目: 在仓库根目录下,打开命令行终端,执行 Maven 构建命令:
    mvn clean install
    Maven 将下载项目依赖并编译打包,在 'target' 目录下生成可执行的 'spring-ai-mcp-0.0.1-SNAPSHOT.jar' 文件。

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令和参数才能连接到本服务器。以下是 'cagritrk-inmemory-data-mcp-server' 的标准 JSON 格式配置信息,客户端通常会将此配置添加到其 MCP 服务器列表中。

{
  "mcpServers": {
    "cagritrk-inmemory-data-mcp-server": {  // 服务器名称,客户端用于标识和引用
      "command": "java",                     // 启动服务器的命令,这里使用 java 命令
      "args": [                              // 命令参数列表
        "-jar",                             // 指定以 jar 包形式运行
        "<YOUR_PATH>\\spring-ai-mcp\\target\\spring-ai-mcp-0.0.1-SNAPSHOT.jar" //  指向可执行 jar 文件的路径,需要替换为实际路径
      ]
    }
  }
}

注意: '<YOUR_PATH>\spring-ai-mcp\target\spring-ai-mcp-0.0.1-SNAPSHOT.jar' 需要替换为您本地 'spring-ai-mcp-0.0.1-SNAPSHOT.jar' 文件的实际路径。

基本使用方法

  1. 启动 MCP 服务器: 在命令行终端中,导航到 'target' 目录,执行以下命令启动 MCP 服务器:

    java -jar spring-ai-mcp-0.0.1-SNAPSHOT.jar

    服务器成功启动后,将在终端输出日志信息。

  2. 配置 MCP 客户端: 在您的 MCP 客户端应用中,根据上述 服务器配置 部分提供的 JSON 配置信息,配置 'cagritrk-inmemory-data-mcp-server'。确保 'command' 和 'args' 配置正确指向您启动的 MCP 服务器。

  3. 使用 MCP 客户端与服务器交互: 启动并运行您的 MCP 客户端应用。客户端将根据配置连接到 'spring-ai-mcp-server',并可以通过 MCP 协议调用服务器提供的工具 (Tools) 来操作人员数据。例如,客户端可以调用 'ps_get_all_persons' 工具获取所有人员列表,或调用 'ps_filter_by_sex' 工具根据性别过滤人员。 具体工具的使用方法请参考仓库 'README.md' 文件中 Tools of 'cagritrk-inmemory-data-mcp-server' 部分的描述。

提示: 本示例 MCP 服务器主要用于演示 Spring AI MCP Server 的基本用法和工具注册,实际应用中可能需要根据需求扩展功能,例如连接到真实的数据库、实现更复杂的数据操作和权限管理等。

信息

分类

数据库与文件