使用说明

项目简介

本项目是一个基于Spring AI框架实现的MCP (Model Context Protocol) 服务器。它旨在为LLM(大型语言模型)应用提供标准化的上下文服务,支持资源管理、工具注册与执行以及Prompt模板定义等核心MCP功能。

主要功能点

  • 资源 (Resources) 管理: 虽然代码中没有显式展示资源管理的具体实现,但根据MCP服务器的定义,该服务器应具备资源管理能力,用于托管和管理LLM应用所需的各种数据资源。
  • 工具 (Tools) 注册与执行: 项目集成了Spring AI的工具调用框架,通过'MethodToolCallback' 支持将Java方法注册为工具,并允许LLM客户端远程调用这些工具,扩展LLM的功能。
  • Prompt 模板 (Prompts) 定义: 同样,虽然代码中没有直接展示Prompt模板的实现,但作为MCP服务器,它应该支持Prompt模板的定义和渲染,以便为LLM交互提供灵活可定制的模式。
  • 基于SSE的通信: 采用Server-Sent Events (SSE) 作为主要的传输协议,实现了MCP服务器与客户端之间的实时双向通信,用于消息推送和数据传输。
  • JSON-RPC 协议: 使用JSON-RPC协议进行客户端与服务器之间的结构化通信,确保请求和响应的标准化。
  • 会话管理: 支持会话管理,并可以通过配置 'sessionTimeOutSecond' 属性设置会话超时时间,以及支持客户端手动关闭会话。
  • 可扩展性: 基于Spring Boot和Spring AI构建,具有良好的可扩展性和集成能力。

安装步骤

  1. 环境准备: 确保已安装JDK 8 或以上版本,以及Maven。
  2. 下载代码: 从GitHub仓库 https://github.com/AJobs-coding/mcp-server 下载或克隆项目代码。
  3. 编译项目: 在项目根目录下,使用Maven命令 'mvn clean install' 编译项目。编译成功后,会在 'target' 目录下生成可执行的 JAR 文件,例如 'mcp-server-1.0.0.jar' (版本号可能不同)。

服务器配置

MCP客户端需要配置连接到MCP服务器的信息。以下是一个JSON格式的配置示例,你需要根据实际情况进行调整:

{
  "server": {
    "name": "my-mcp-server",  // MCP 服务器的名称,客户端用于标识和管理连接
    "command": "java",       // 启动 MCP 服务器的命令,这里使用 java 命令运行 JAR 包
    "args": [                // 启动命令的参数列表
      "-jar",                //  指定运行 JAR 文件
      "target/mcp-server-1.0.0.jar", //  MCP 服务器 JAR 文件路径,根据实际文件名修改
      "--spring.profiles.active=default" // (可选) 激活 Spring Boot 的 default profile,可以根据需要配置 profile
    ]
  },
  // ... 其他客户端配置 ...
}

参数注释:

  • 'server.name': 自定义的服务器名称,用于在客户端配置中引用。
  • 'server.command': 运行服务器的命令,通常是 'java'。
  • 'server.args': 命令参数列表,
    • '-jar target/mcp-server-1.0.0.jar': 指定要运行的JAR文件路径。请根据实际编译生成的JAR文件名修改路径。
    • '--spring.profiles.active=default': (可选) 用于激活Spring Boot的profile。如果服务器需要特定的profile配置(例如不同的环境配置),可以在这里指定。'default' 是一个常用的默认profile。

注意:

  • 请确保 'target/mcp-server-1.0.0.jar' 路径与实际编译生成的JAR文件路径一致。
  • 可以根据需要添加或修改 'args' 中的 Spring Boot 启动参数,例如修改端口号、配置文件路径等。
  • 如果需要更详细的服务器配置,可以参考 'src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpServerProperties.java' 文件中的配置项,并通过 Spring Boot 的方式进行配置(例如,在 'application.properties' 或 'application.yml' 文件中设置 'spring.ai.mcp.server.*' 属性)。

基本使用方法

  1. 启动 MCP 服务器: 根据上述服务器配置,MCP客户端会执行配置的 'command' 和 'args' 来启动 MCP 服务器。
  2. 客户端连接: MCP 客户端根据MCP协议规范,通过SSE协议连接到MCP服务器的 '/sse' 端点建立连接。
  3. 功能调用: 客户端通过JSON-RPC协议向服务器发送请求,例如:
    • 请求读取资源
    • 请求调用已注册的工具
    • 请求获取Prompt模板
  4. 服务器响应: MCP 服务器接收到客户端请求后,根据请求类型进行处理,并返回JSON-RPC响应或通过SSE发送通知给客户端。
  5. 会话管理: 客户端可以与服务器保持会话,进行多次交互。会话超时或客户端主动请求关闭会话时,会话结束。

客户端使用: 本仓库主要提供的是 MCP 服务器端的实现。要使用该 MCP 服务器,你需要开发或使用兼容 MCP 协议的客户端应用。客户端需要能够发送符合 MCP 协议的 JSON-RPC 请求,并能够处理服务器通过 SSE 发送的响应和通知。 仓库的 'README.md' 中提到了客户端示例代码(Java 'McpAsyncClient'),可以作为客户端开发的参考。

信息

分类

AI与计算