Labsco
alexbakers logo

MCP IPFS Server

β˜… 18

from alexbakers

Interact with the storacha.network IPFS platform using the w3 CLI.

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedFreeAdvanced setup

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

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

πŸ—οΈ Project Structure

The codebase is organized as follows:

Copy & paste β€” that's it
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

πŸ“¦ Build

Clone the repository and install dependencies:

Copy & paste β€” that's it
git clone https://github.com/alexbakers/mcp-ipfs.git
cd mcp-ipfs
npm install

Build the TypeScript code:

Copy & paste β€” that's it
npm run build

You can then run the server directly:

Copy & paste β€” that's it
# Ensure W3_LOGIN_EMAIL is set in your environment
export W3_LOGIN_EMAIL="[emailΒ protected]"
node dist/index.js

Or publish it (if you have the rights):

Copy & paste β€” that's it
npm publish

🐳 Docker Build

Build the Docker image:

Copy & paste β€” that's it
# 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.