npm package: 4everland-nft-uploader
Description: Uploads NFT images and metadata to 4EVERLAND S3 storage
Latest version: 0.1.1

Okay, the server name in `src/index.ts` is updated. Now I will rewrite the `README.md` to reflect the changes to "4EVERLAND NFT Uploader", including the updated functionality, installation steps, usage examples, and the requirement for 4EVERLAND environment variables.

Here is the new content for `README.md`:

```markdown
# 4EVERLAND NFT Uploader MCP Server

[![npm version](https://badge.fury.io/js/4everland-nft-uploader.svg)](https://badge.fury.io/js/4everland-nft-uploader) <!-- Update if published -->

A Model Context Protocol (MCP) server that provides a tool to upload NFT images and metadata to [4EVERLAND](https://www.4everland.org/) S3-compatible storage. It calculates IPFS CIDs for the image and metadata and uses these CIDs as the object keys in the S3 bucket.

## Features

*   Provides an MCP tool `upload_nft_image`.
*   Reads an image file locally.
*   Calculates the IPFS CID (v1, raw codec) for the image content.
*   Generates standard NFT metadata JSON (including name, description, and the calculated IPFS image URI `ipfs://<image_cid>`).
*   Calculates the IPFS CID (v1, raw codec) for the metadata JSON content.
*   Uploads the image file to a configured 4EVERLAND S3 bucket, using the image CID as the object key.
*   Uploads the metadata JSON file to the configured 4EVERLAND S3 bucket, using the metadata CID as the object key.
*   Requires 4EVERLAND S3 credentials (Access Key, Secret Key, Bucket Name) and optionally an endpoint to be configured via environment variables.
*   Returns the calculated CIDs, IPFS URIs, S3 keys, and the metadata content.

## Prerequisites

You need the following environment variables set in the environment where this MCP server runs:

*   `FOUR_EVER_ACCESS_KEY`: Your 4EVERLAND S3 Access Key ID.
*   `FOUR_EVER_SECRET_KEY`: Your 4EVERLAND S3 Secret Access Key.
*   `FOUR_EVER_BUCKET_NAME`: The name of your 4EVERLAND S3 bucket.
*   `FOUR_EVER_ENDPOINT` (Optional): The S3 endpoint URL. Defaults to `https://endpoint.4everland.co`.

## Installation (as an MCP Server)

1.  **Clone or Download:** Get the server code.
    ```bash
    # Example if cloned from Git
    git clone <repository_url> # Replace with your repo URL
    cd 4everland-nft-uploader  # Or your chosen directory name
    npm install
    npm run build
    ```
2.  **Configure MCP Client:** Add the server configuration to your MCP client's settings file (e.g., `settings.mcp_settings.json` for Roo/Cursor). Make sure to use the **absolute path** to the `build/index.js` file within the server's directory and set the required environment variables.

    ```json
    {
      "mcpServers": {
        // ... other servers
        "4everland-nft-uploader": { // Use the new name
          "command": "node",
          "args": [
            // --- IMPORTANT: Replace with the ACTUAL absolute path ---
            // Example Windows: "C:/Users/YourUser/AppData/Roaming/Roo-Code/MCP/4everland-nft-uploader/build/index.js"
            // Example macOS: "/Users/YourUser/Library/Application Support/Roo-Code/MCP/4everland-nft-uploader/build/index.js"
            "<ABSOLUTE_PATH_TO_PROJECT>/build/index.js"
          ],
          "environment": { // Add environment variables here
            "FOUR_EVER_ACCESS_KEY": "YOUR_ACCESS_KEY",
            "FOUR_EVER_SECRET_KEY": "YOUR_SECRET_KEY",
            "FOUR_EVER_BUCKET_NAME": "your-bucket-name"
            // "FOUR_EVER_ENDPOINT": "https://custom.endpoint.com" // Optional
          },
          "disabled": false,
          "alwaysAllow": []
        }
        // ...
      }
    }
    ```
3.  **Restart MCP Client:** Ensure your MCP client recognizes the new server and its environment variables.

## Usage (via MCP Tool)

Use the `upload_nft_image` tool provided by this server through your MCP client.

**Tool:** `upload_nft_image`
**Server Name:** `4everland-nft-uploader` (or whatever you named it in the config)

**Arguments:**

*   `image_path` (string, required): Absolute path to the image file to upload.
*   `name` (string, required): The name for the NFT.
*   `description` (string, required): The description for the NFT.

**Example MCP Client Call:**

```xml
<mcp:call name="upload_nft_image" args="['/path/to/image.png', 'My NFT', 'This is a description']" />
```

**Expected Output:**

```json
{
  "image_cid": "Qm...",
  "metadata_cid": "Qm...",
  "s3_image_key": "nft-images/image.png",
  "s3_metadata_key": "nft-metadata/metadata.json"
}
```

## Notes

*   The `upload_nft_image` tool is designed to work with the `4everland-nft-uploader` server.
*   The `4everland-nft-uploader` server is a simple MCP server that uploads an NFT image and metadata to 4EVERLAND S3 storage.