使用说明

项目简介

本项目是一个基于 Spring AI 和 Model Context Protocol (MCP) 的信用评分验证系统示例。它演示了如何构建一个 MCP 服务器,该服务器可以集成不同的数据源(内部数据库和外部 Mock API),并通过工具调用 (Tool Calling) 的方式,为大型语言模型 (LLM) 提供用户信用评分的上下文信息,最终将分析结果通过 Slack 通知发送到指定频道。

主要功能点

  • 集成内外部信用评分数据源:通过工具调用,可以分别从内部数据库和外部 Mock API 获取用户信用评分数据。
  • 基于 Spring AI 工具调用:利用 Spring AI 的工具调用能力,将数据获取逻辑封装为可被 LLM 调用的工具。
  • MCP 服务器实现:实现了 MCP 协议的服务端,可以接收来自 MCP 客户端的请求,并返回符合 MCP 协议的响应。
  • Slack 结果通知:通过集成的 Slack 工具,可以将信用评分分析结果自动发布到指定的 Slack 频道。
  • 可扩展性:项目采用 Spring Boot 构建,易于扩展和集成其他数据源或工具。

安装步骤

  1. 克隆仓库

    git clone https://github.com/lucasnscr/spring-ai-tools-mcp.git
    cd spring-ai-tools-mcp
  2. 使用 Maven 构建项目

    mvn clean install
  3. 运行 Spring Boot 应用

    mvn spring-boot:run

    或者,您也可以将项目打包成可执行的 JAR 文件并运行:

    mvn spring-boot:build-image # 如果需要构建 Docker 镜像
    java -jar target/*.jar

服务器配置

对于 MCP 客户端,需要配置连接到此 MCP 服务器的信息。以下是一个典型的 'mcpServers' 配置示例,用于 'config.json' 或类似的配置文件中:

{
  "mcpServers": {
    "creditScoreService": { // 服务器名称,客户端可以自定义,用于在请求中标识服务器
      "command": "mvn",  // 启动服务器的命令,这里假设您在项目根目录下运行
      "args": [          // 命令参数
        "spring-boot:run" // 使用 Maven 运行 Spring Boot 应用
      ],
      "env": {           // 环境变量,如果服务器需要额外的环境变量,可以在这里配置
      }
    }
  }
}

配置参数说明:

  • 'creditScoreService': MCP 服务器的名称,客户端使用此名称来引用和调用此服务器提供的功能。
  • 'command': 启动 MCP 服务器的命令。对于 Spring Boot 应用,通常使用 Maven 或 Gradle 命令来运行。这里假设已经安装了 Maven,并且在项目根目录下执行此命令。
  • 'args': 启动命令的参数。'spring-boot:run' 是 Maven Spring Boot 插件提供的命令,用于直接运行 Spring Boot 应用。
  • 'env': 环境变量配置。如果您的服务器启动需要特定的环境变量(例如数据库连接信息、API 密钥等),可以在这里配置。本示例中 'env' 为空,表示没有额外的环境变量需求。

注意: 实际部署时,您可能需要根据您的环境和打包方式调整 'command' 和 'args' 配置,例如使用 'java -jar target/*.jar' 运行打包后的 JAR 文件,或者使用 Docker 镜像运行。

基本使用方法

  1. 启动 MCP 服务器:按照上述安装步骤和服务器配置启动 'spring-ai-tools-mcp' 项目。
  2. 配置 MCP 客户端:配置您的 MCP 客户端,使其能够连接到本 MCP 服务器。在客户端的配置文件中,添加上面提供的 'mcpServers' 配置,确保客户端能够找到并连接到正在运行的 'creditScoreService'。
  3. 客户端发起请求:通过 MCP 客户端向 'creditScoreService' 服务器发送请求,请求进行信用评分分析。客户端可以通过 Prompt 模板或者直接调用工具的方式,指示 LLM 使用 'creditScoreService' 提供的工具来获取信用评分信息。
  4. 查看结果:服务器会调用相应的工具获取信用评分数据,并使用 LLM 进行分析。分析结果会通过 Slack 工具发送到配置的 Slack 频道。同时,MCP 客户端也会收到服务器返回的响应,其中可能包含 LLM 生成的文本结果。

示例请求流程:

MCP 客户端可以发送一个包含用户ID的请求,指示 LLM 分析该用户的信用评分。服务器接收到请求后,会:

  • 调用 'UserInternalCreditTool' 和 'UserExternalCreditTool' 工具,分别从内部数据库和外部 Mock API 获取用户信用评分数据。
  • 将获取的数据作为上下文信息提供给 LLM。
  • LLM 基于上下文信息生成信用评分分析报告。
  • 服务器通过 Slack 工具将分析报告发送到指定的 Slack 频道。
  • 服务器将 LLM 生成的分析报告返回给 MCP 客户端。

注意事项

  • 本项目是一个示例,用于演示 MCP 服务器的基本功能和 Spring AI 工具调用的集成。在实际生产环境中,您需要根据具体需求进行修改和扩展。
  • Slack 集成需要配置 Slack Bot Token 和 Team ID 等信息,请参考项目文档或代码中的注释进行配置。
  • 外部 Mock API 的地址和 API Key 在 'WebClientConfig.java' 中配置,您可以根据需要修改为真实的外部信用评分 API。
  • 数据库配置信息需要在 Spring Boot 的配置文件中进行配置(例如 'application.properties' 或 'application.yml')。

信息

分类

AI与计算