该项目是一个基于Spring Boot和Spring AI实现的Model Context Protocol (MCP) 服务器,专注于集成Cloudflare R2对象存储服务。它将R2的各种操作封装成LLM可调用的工具。
项目简介
这个项目并非从头实现MCP协议,而是利用Spring AI框架提供的MCP服务器能力,将对Cloudflare R2的操作(如创建、删除存储桶,上传、下载、列出、删除对象,获取对象元数据等)暴露为结构化的工具,供支持MCP协议的LLM客户端(如某些AI应用)调用。
主要功能点
- Cloudflare R2集成: 全面支持Cloudflare R2的对象存储操作。
- 工具暴露: 将R2操作(列出/创建/删除桶,上传/下载/列出/删除对象,获取对象元数据)作为工具通过MCP协议提供。
- 文件类型支持: 支持上传和下载各类文件,包括文本和多种二进制格式。
- 灵活的内容处理: 上传时支持直接文本、Base64编码或本地文件路径作为内容来源;下载时可选择返回文本内容或保存到本地文件。
- Spring AI框架: 利用Spring AI简化工具的定义和暴露过程。
安装步骤
- 克隆仓库: 使用Git命令将项目仓库克隆到本地: 'git clone https://github.com/lskun/spring-boot-ai-cloudflare-r2-mcp-server.git'
- 配置Cloudflare R2凭据:
在项目根目录创建或修改 'application.properties' 文件,填入你的Cloudflare R2凭据。这些信息也可以通过环境变量提供。
或者设置环境变量: 'export R2_ACCESS_KEY_ID=your_access_key_id' 'export R2_SECRET_ACCESS_KEY=your_secret_access_key' 'export R2_ENDPOINT=your_r2_endpoint'r2.access-key-id=${R2_ACCESS_KEY_ID} r2.secret-access-key=${R2_SECRET_ACCESS_KEY} r2.endpoint=${R2_ENDPOINT} - 构建项目: 进入项目目录,使用Maven进行构建: 'mvn clean package' 这将在 'target' 目录下生成一个可执行的JAR文件。
服务器配置(供MCP客户端使用)
MCP客户端需要知道如何启动和连接到这个服务器。你可以通过配置MCP客户端,为其提供以下关于该服务器的信息:
- Server Name (服务器名称): 为该服务器指定一个易于识别的名称,例如 "r2-mcp-server"。
- Command (启动命令): 运行该服务器的可执行命令。通常是Java命令加上生成的JAR文件路径。 示例值:'java'
- Args (命令参数): 传递给启动命令的参数列表。 示例值:'["-jar", "target/spring-boot-ai-cloudflare-r2-mcp-server-VERSION-SNAPSHOT.jar"]' 请将 'VERSION' 替换为你构建时生成的JAR文件名中的实际版本号。
MCP客户端会将这些信息整合到其内部配置中(通常是JSON格式),以便在需要时自动启动并连接到该MCP服务器。具体配置方式请参考你的MCP客户端文档,此处仅提供服务器启动所需的关键信息。
基本使用方法
在完成上述安装和配置后,运行构建生成的JAR文件(通常MCP客户端会负责启动,或你可以手动启动)。一旦服务器运行,支持MCP协议并配置了该服务器的LLM客户端即可通过JSON-RPC协议与服务器通信,调用暴露的R2对象存储相关工具。例如,LLM可以通过调用相应的工具函数来列出桶、上传文件、下载文件等。
信息
分类
数据库与文件