🪐 Serveur Mcp Ipfs (storacha.network) 🛰️
Aperçu
Qu'est-ce que MCP IPFS ?
MCP IPFS (InterPlanetary File System) est un protocole de stockage décentralisé conçu pour rendre le web plus rapide, plus sûr et plus ouvert. Il permet aux utilisateurs de stocker et de partager des fichiers de manière distribuée, garantissant que les données ne dépendent pas d'un serveur ou d'un emplacement unique. En utilisant un réseau pair-à-pair, MCP IPFS améliore la disponibilité des données et la résilience contre la censure.
Caractéristiques de MCP IPFS
- Décentralisation : Contrairement aux systèmes de stockage de fichiers traditionnels, MCP IPFS ne repose pas sur un serveur central. Cela réduit le risque de perte de données et de censure.
- Adressage par contenu : Les fichiers sont identifiés par leur contenu plutôt que par leur emplacement. Cela signifie que même si un fichier est déplacé, il peut toujours être accessible en utilisant son identifiant unique.
- Contrôle de version : MCP IPFS prend en charge la gestion des versions, permettant aux utilisateurs de suivre les modifications et de revenir facilement à des versions précédentes des fichiers.
- Distribution efficace des données : Le protocole optimise le transfert de données en récupérant des fichiers à partir de plusieurs sources simultanément, améliorant ainsi les vitesses de téléchargement.
- Interopérabilité : MCP IPFS peut être intégré à diverses applications et plateformes, le rendant polyvalent pour différents cas d'utilisation.
Comment utiliser MCP IPFS
- Installation : Commencez par installer le logiciel MCP IPFS sur votre appareil. Cela peut généralement être fait via des gestionnaires de paquets ou en téléchargeant les binaires depuis le site officiel.
- Initialisation : Après l'installation, initialisez votre nœud IPFS en utilisant l'interface de ligne de commande. Cela configure votre dépôt local et vous connecte au réseau IPFS.
- Ajout de fichiers : Utilisez la commande
ipfs add <file>
pour télécharger des fichiers sur le réseau IPFS. Cela génère un hachage unique pour chaque fichier, qui peut être utilisé pour le récupérer plus tard. - Récupération de fichiers : Pour accéder à un fichier, utilisez la commande
ipfs cat <hash>
, en remplaçant<hash>
par l'identifiant unique du fichier. - Partage de fichiers : Partagez le hachage généré avec d'autres, leur permettant d'accéder au fichier directement depuis le réseau IPFS.
Questions Fréquemment Posées
Q : Quels sont les avantages d'utiliser MCP IPFS par rapport au stockage de fichiers traditionnel ?
R : MCP IPFS offre une sécurité améliorée, une récupération de données plus rapide et une plus grande résilience contre la perte de données et la censure grâce à sa nature décentralisée.
Q : MCP IPFS est-il adapté pour les gros fichiers ?
R : Oui, MCP IPFS est conçu pour gérer efficacement les gros fichiers en les divisant en morceaux plus petits et en les distribuant à travers le réseau.
Q : Puis-je utiliser MCP IPFS pour des données privées ?
R : Bien que MCP IPFS soit principalement un réseau public, vous pouvez chiffrer vos fichiers avant de les télécharger pour garantir la confidentialité.
Q : Comment MCP IPFS gère-t-il la redondance des données ?
R : La redondance des données est réalisée grâce à son architecture décentralisée, où plusieurs nœuds peuvent stocker des copies du même fichier, garantissant la disponibilité même si certains nœuds sont hors ligne.
Q : Y a-t-il un coût associé à l'utilisation de MCP IPFS ?
R : Utiliser MCP IPFS est gratuit, mais vous pouvez encourir des coûts liés à l'infrastructure si vous choisissez de faire fonctionner vos propres nœuds ou d'utiliser des services tiers pour l'hébergement.
Détail
🪐 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.
Configuration du serveur
{
"mcpServers": {
"mcp-ipfs": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/metorial/mcp-container--alexbakers--mcp-ipfs--mcp-ipfs",
"npm run start"
],
"env": {}
}
}
}