🪐 Mcp Ipfs サーバー (storacha.network) 🛰️
概要
MCP IPFSとは?
MCP IPFS(InterPlanetary File System)は、ウェブをより速く、安全に、そしてオープンにするために設計された分散ストレージプロトコルです。ユーザーがファイルを分散的に保存し共有できるようにし、データが単一のサーバーや場所に依存しないことを保証します。ピアツーピアネットワークを利用することで、MCP IPFSはデータの可用性を高め、検閲に対する耐性を強化します。
MCP IPFSの特徴
- 分散化: 従来のファイルストレージシステムとは異なり、MCP IPFSは中央サーバーに依存しません。これにより、データ損失や検閲のリスクが減少します。
- コンテンツアドレッシング: ファイルはその位置ではなく、コンテンツによって識別されます。つまり、ファイルが移動しても、そのユニークな識別子を使用してアクセスできます。
- バージョン管理: MCP IPFSはバージョン管理をサポートしており、ユーザーが変更を追跡し、簡単に以前のバージョンに戻ることができます。
- 効率的なデータ配信: プロトコルは、複数のソースから同時にファイルを取得することでデータ転送を最適化し、ダウンロード速度を向上させます。
- 相互運用性: MCP IPFSはさまざまなアプリケーションやプラットフォームと統合できるため、さまざまなユースケースに対応できます。
MCP IPFSの使い方
- インストール: まず、デバイスにMCP IPFSソフトウェアをインストールします。これは通常、パッケージマネージャーを通じて行うか、公式ウェブサイトからバイナリをダウンロードすることで可能です。
- 初期化: インストール後、コマンドラインインターフェースを使用してIPFSノードを初期化します。これにより、ローカルリポジトリが設定され、IPFSネットワークに接続されます。
- ファイルの追加: コマンド
ipfs add <file>
を使用してファイルをIPFSネットワークにアップロードします。これにより、各ファイルにユニークなハッシュが生成され、後でそれを使用して取得できます。 - ファイルの取得: ファイルにアクセスするには、コマンド
ipfs cat <hash>
を使用し、<hash>
をファイルのユニークな識別子に置き換えます。 - ファイルの共有: 生成されたハッシュを他の人と共有し、彼らがIPFSネットワークから直接ファイルにアクセスできるようにします。
よくある質問
Q: 従来のファイルストレージに対するMCP IPFSの利点は何ですか?
A: MCP IPFSは、その分散型の性質により、セキュリティの向上、データ取得の迅速化、データ損失や検閲に対する耐性の強化を提供します。
Q: MCP IPFSは大きなファイルに適していますか?
A: はい、MCP IPFSは大きなファイルを効率的に処理するように設計されており、ファイルを小さなチャンクに分割し、ネットワーク全体に分散させます。
Q: プライベートデータにMCP IPFSを使用できますか?
A: MCP IPFSは主にパブリックネットワークですが、プライバシーを確保するためにファイルをアップロードする前に暗号化することができます。
Q: MCP IPFSはデータの冗長性をどのように処理しますか?
A: データの冗長性は、その分散アーキテクチャによって実現されており、複数のノードが同じファイルのコピーを保存できるため、一部のノードがオフラインになっても可用性が確保されます。
Q: MCP IPFSを使用するのに費用はかかりますか?
A: MCP IPFSの使用は無料ですが、自分のノードを運営したり、ホスティングのためにサードパーティのサービスを利用したりする場合は、インフラに関連するコストが発生する可能性があります。
詳細
🪐 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
- 🔑 Authentication & Agent:
🛠️ Prerequisites
- Node.js: Version 22.0.0 or higher (
node -v
). w3
CLI: The server executesw3
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 theW3_LOGIN_EMAIL
environment variable to be set to the same email used forw3 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.
サーバー設定
{
"mcpServers": {
"mcp-ipfs": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/metorial/mcp-container--alexbakers--mcp-ipfs--mcp-ipfs",
"npm run start"
],
"env": {}
}
}
}