IPFS Storacha Network

by alexbakers

3 stars
813 downloads
Not rated
GitHub

About

Enables AI access to the IPFS Storacha Network for decentralized file storage, content addressing, and persistent data management through the w3cli interface.

Details

Author
alexbakers
Repository
alexbakers/mcp-ipfs
GitHub stars
3
Downloads
813
License
MIT License
Categories
File Management, Other, Productivity, Developer Tools, Design, AI, Security, Infrastructure, Frontend

- Wraps the w3 CLI for native integration with storacha.network.
- Provides MCP tools covering a wide range of w3 functionality:
- πŸ”‘ Authentication & Agent: w3_login, w3_reset, w3_account_ls (for checking authorization)
- πŸ“¦ Space Management: w3_space_ls, w3_space_use, w3_space_info, w3_space_add, w3_space_provision (Note: w3_space_create must be run manually due to interactive prompts)
- πŸ’Ύ Data Management: w3_up, w3_ls, w3_rm
- πŸ”— Sharing: w3_open (generates w3s.link URL)
- 🀝 Delegations & Proofs: w3_delegation_create, w3_delegation_ls, w3_delegation_revoke, w3_proof_add, w3_proof_ls
- πŸ” Keys & Tokens: w3_key_create, w3_bridge_generate_tokens
- βš™οΈ Advanced Storage (w3 can ...): Blob, CAR, Upload, Index, Access Claim, Filecoin Info management
- πŸ’³ Account & Billing: w3_plan_get, w3_coupon_create, w3_usage_report

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name IPFS Storacha Network
    Command (node, npx, python, etc.) npx
    Arguments
    • Argument 1 -y
    • Argument 2 mcp-ipfs
    Environment
    • W3_LOGIN_EMAIL your-email@example.com

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

This server can be used with any MCP-compatible client. You need to configure your client to connect to this server.

export W3_LOGIN_EMAIL="your-email@example.com"
node dist/index.js


Or publish it (if you have the rights):

bash
npm publish
```

w3_login

Logs in the user to the w3 service. Parameters: email (string)

w3_reset

Resets the user's w3 session.

w3_account_ls

Lists the accounts associated with the user's w3 login.

w3_space_ls

Lists all spaces available to the user.

w3_space_use

Sets the specified space as the current space. Parameters: space_id (string)

w3_space_info

Retrieves information about a specific space. Parameters: space_id (string)

w3_space_add

Adds a new space for the user. Parameters: space_name (string)

w3_space_provision

Provisions a new space with the specified parameters.

w3_up

Uploads data to the current space. Parameters: file_path (string)

w3_ls

Lists data stored in the current space.

w3_rm

Removes data from the current space. Parameters: file_id (string)

w3_open

Generates a w3s.link URL for sharing the current space.

w3_delegation_create

Creates a new delegation for the current space. Parameters: delegation_details (object)

w3_delegation_ls

Lists all delegations associated with the current space.

w3_delegation_revoke

Revokes a specified delegation. Parameters: delegation_id (string)

w3_proof_add

Adds a proof to the current space. Parameters: proof_details (object)

w3_proof_ls

Lists all proofs associated with the current space.

w3_key_create

Creates a new key for the user. Parameters: key_details (object)

w3_bridge_generate_tokens

Generates tokens for the bridge service.

w3_plan_get

Retrieves the current billing plan for the user.

w3_coupon_create

Creates a new coupon for discounts. Parameters: coupon_details (object)

w3_usage_report

Generates a report of usage statistics for the current space.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "ipfs storacha network": {
            "env": {
                "W3_LOGIN_EMAIL": "your-email@example.com"
            },
            "args": [
                "-y",
                "mcp-ipfs"
            ],
            "command": "npx"
        }
    }
}

Linux

{
    "env": {
        "W3_LOGIN_EMAIL": "your-email@example.com"
    },
    "args": [
        "-y",
        "mcp-ipfs"
    ],
    "command": "npx"
}

Macos

{
    "env": {
        "W3_LOGIN_EMAIL": "your-email@example.com"
    },
    "args": [
        "-y",
        "mcp-ipfs"
    ],
    "command": "npx"
}

Windows

{
    "env": {
        "W3_LOGIN_EMAIL": "your-email@example.com"
    },
    "args": [
        "/c",
        "npx",
        "-y",
        "mcp-ipfs"
    ],
    "command": "cmd"
}

πŸͺ MCP IPFS Server (storacha.network) πŸ›°οΈ

Screenshot

Publish Docker Publish NPM npm version
smithery badge

A Node.js server implementing the Model Context Protocol (MCP) for interacting with the storacha.network platform via the w3 command-line interface (@web3-storage/w3cli).

This server empowers language models πŸ€– and other MCP clients to manage storacha.network spaces, upload/download data, manage delegations, and perform various other tasks by seamlessly wrapping w3 commands.

✨ Features

- Wraps the w3 CLI for native integration with storacha.network.
- Provides MCP tools covering a wide range of w3 functionality:
- πŸ”‘ Authentication & Agent: w3_login, w3_reset, w3_account_ls (for checking authorization)
- πŸ“¦ Space Management: w3_space_ls, w3_space_use, w3_space_info, w3_space_add, w3_space_provision (Note: w3_space_create must be run manually due to interactive prompts)
- πŸ’Ύ Data Management: w3_up, w3_ls, w3_rm
- πŸ”— Sharing: w3_open (generates w3s.link URL)
- 🀝 Delegations & Proofs: w3_delegation_create, w3_delegation_ls, w3_delegation_revoke, w3_proof_add, w3_proof_ls
- πŸ” Keys & Tokens: w3_key_create, w3_bridge_generate_tokens
- βš™οΈ Advanced Storage (w3 can ...): Blob, CAR, Upload, Index, Access Claim, Filecoin Info management
- πŸ’³ Account & Billing: w3_plan_get, w3_coupon_create, w3_usage_report

πŸ› οΈ Prerequisites

- Node.js: Version 22.0.0 or higher (node -v).
- w3 CLI: The server executes w3 commands directly. Ensure @web3-storage/w3cli is installed globally and configured:

  npm install -g @web3-storage/w3cli
w3 login <your-email@example.com>
# Follow email verification steps

- Environment Variable: The w3_login tool requires the W3_LOGIN_EMAIL environment variable to be set to the same email used for w3 login.

πŸ—οΈ Project Structure

The codebase is organized as follows:

src/
β”œβ”€β”€ index.ts          # Main server entry point, MCP setup, request routing
β”œβ”€β”€ schemas.ts        # Zod schemas defining input arguments for each tool
β”œβ”€β”€ tool_handlers.ts  # Implementation logic for each MCP tool
β”œβ”€β”€ utils.ts          # Helper functions (e.g., running w3 commands, parsing JSON)
└── utils/
    └── logger.ts     # Basic logger configuration

πŸš€ Usage with MCP Clients

This server can be used with any MCP-compatible client. You need to configure your client to connect to this server.

Example: NPX (Recommended for simple local use)

This assumes npm and the prerequisites are met.

{
  "mcpServers": {
    "ipfs": {
      "command": "npx",
      "args": ["-y", "mcp-ipfs"],
      "env": {
        "W3_LOGIN_EMAIL": "your-email@example.com"
      }
    }
  }
}

Example: Docker

Build the image first (see Build section) or use the pre-built image alexbakers/mcp-ipfs.

{
  "mcpServers": {
    "mcp-ipfs": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "/path/to/your/project:/path/to/your/project",
        "-e",
        "W3_LOGIN_EMAIL",
        "alexbakers/mcp-ipfs"
      ],
      "env": {
        "W3_LOGIN_EMAIL": "your-email@example.com"
      }
    }
  }
}

πŸ“ Note on Paths:

Several w3 commands require absolute filesystem paths (e.g., w3_up, w3_delegation_create --output, w3_proof_add, w3_can_blob_add, w3_can_store_add).

- NPX: Provide absolute paths from your host machine.
- Docker: Provide absolute paths _inside the container_. If interacting with files from your host (e.g., uploading), you must mount the relevant host directory into the container using the -v flag (e.g., -v /Users/me/project:/Users/me/project) and then use the _container path_ (e.g., /Users/me/project/my_file.txt) in the tool arguments.

πŸ“¦ Build

Clone the repository and install dependencies:

git clone https://github.com/alexbakers/mcp-ipfs.git
cd mcp-ipfs
npm install

Build the TypeScript code:

npm run build

You can then run the server directly:

# Ensure W3_LOGIN_EMAIL is set in your environment
export W3_LOGIN_EMAIL="your-email@example.com"
node dist/index.js

Or publish it (if you have the rights):

npm publish

🐳 Docker Build

Build the Docker image:

# Build locally (replace with your username/repo and desired tag)
docker build -t alexbakers/mcp-ipfs .

πŸ“œ License

This MCP server is licensed under the MIT License. See the LICENSE file for details.

No reviews yet β€” be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.