项目简介
这是一个基于 Model Context Protocol (MCP) 构建的服务器端应用,旨在为支持MCP协议的LLM客户端提供一个便捷的工具,用于将NFT相关的图片文件及其元数据上传至 4EVERLAND 提供的 S3 兼容存储服务。它会自动处理 IPFS CID 的计算,并使用这些 CID 作为在 S3 存储桶中的对象键,从而实现链上元数据与链下存储的关联。
主要功能点
- 提供一个名为 'upload_nft_image' 的MCP工具。
- 读取本地指定的图片文件内容。
- 根据图片内容计算其 IPFS CID。
- 生成标准的NFT元数据文件(包含名称、描述以及计算得到的图片 IPFS URI)。
- 计算生成的元数据内容的 IPFS CID。
- 将图片文件上传到指定的 4EVERLAND S3 存储桶中,使用图片 CID 作为文件名(对象键)。
- 将元数据文件上传到指定的 4EVERLAND S3 存储桶中,使用元数据 CID 作为文件名(对象键)。
- 需要通过环境变量配置 4EVERLAND S3 的访问密钥、 secret 密钥、存储桶名称以及可选的 Endpoint。
- 返回上传后的图片 CID、元数据 CID、S3 对象键以及元数据内容等信息。
安装步骤
- 获取代码: 克隆或下载此项目的代码到你的本地机器。
- 安装依赖: 在项目目录中运行以下命令安装所需的 Node.js 依赖:
npm install - 构建项目: 运行以下命令编译 TypeScript 代码:
这会在项目目录下生成一个 'build' 文件夹,其中包含可执行的 JavaScript 文件。npm run build
服务器配置
MCP 服务器通常由 MCP 客户端管理和启动。你需要在你的 MCP 客户端(例如 Roo 或 Cursor)的配置文件中添加此服务器的配置。配置信息通常位于一个 JSON 文件中(例如 'settings.mcp_settings.json'),你需要指定服务器的启动命令、参数以及必要的环境变量。
以下是配置的关键信息:
- 服务器名称: 你可以在配置中指定一个唯一的名称,例如 '4everland-nft-uploader'。
- 启动命令 (command): 指定用于启动 Node.js 运行时。通常是 'node'。
- 启动参数 (args): 指定要执行的服务器脚本的绝对路径。你需要将此路径设置为你在安装步骤中构建生成的 'build/index.js' 文件的绝对路径。
- 环境变量 (environment): 这是必须配置的部分。你需要在这里设置连接 4EVERLAND S3 所需的环境变量:
- 'FOUR_EVER_ACCESS_KEY': 你的 4EVERLAND S3 Access Key ID。
- 'FOUR_EVER_SECRET_KEY': 你的 4EVERLAND S3 Secret Access Key。
- 'FOUR_EVER_BUCKET_NAME': 你用于存储的 4EVERLAND S3 存储桶名称。
- 'FOUR_EVER_ENDPOINT' (可选): 4EVERLAND S3 的服务 Endpoint URL。如果未设置,默认为 'https://endpoint.4everland.co'。
- 'FOUR_EVER_TARGET_FOLDER' (可选): 指定上传到存储桶内的哪个子文件夹。
请参考你的MCP客户端文档,将上述信息正确填入其服务器配置中。
基本使用方法
配置完成后,你可以在支持MCP的LLM客户端中通过调用 'upload_nft_image' 工具来使用此服务器的功能。
工具名称: 'upload_nft_image' 服务器名称: 你在客户端配置中为此服务器指定的名称(例如 '4everland-nft-uploader')。
工具参数:
- 'image_path' (字符串, 必填): 需要上传的图片文件的绝对路径。
- 'name' (字符串, 必填): 为此NFT指定的名称。
- 'description' (字符串, 必填): 为此NFT指定的描述。
在LLM客户端中,你可能会使用类似 XML 标签或特定语法来调用工具,例如:
<mcp:call name="upload_nft_image" args="['/绝对/路径/到/你的/图片.png', '我的精彩NFT', '这是一幅很棒的画作!']" />
调用成功后,MCP客户端将收到并显示工具的执行结果,通常包含上传后的图片和元数据文件的 IPFS CID 和它们在 4EVERLAND S3 存储桶中的完整对象键。
信息
分类
数据库与文件