MCP IPFS Server

Interactúa con la plataforma IPFS de storacha.network usando la CLI de w3.

Documentación

🪐 MCP IPFS Server (storacha.network) 🛰️

Screenshot

Publish Docker Publish NPM npm version smithery badge

Un servidor Node.js que implementa el Model Context Protocol (MCP) para interactuar con la plataforma storacha.network a través de la interfaz de línea de comandos w3 (@web3-storage/w3cli).

Este servidor permite a los modelos de lenguaje 🤖 y otros clientes MCP gestionar espacios de storacha.network, subir/descargar datos, gestionar delegaciones y realizar diversas otras tareas al integrar de forma transparente los comandos de w3.

✨ Características

  • Integra la CLI de w3 para una integración nativa con storacha.network.
  • Proporciona herramientas MCP que cubren una amplia gama de funcionalidades de w3:
    • 🔑 Autenticación y agente: w3_login, w3_reset, w3_account_ls (para verificar la autorización)
    • 📦 Gestión de espacios: w3_space_ls, w3_space_use, w3_space_info, w3_space_add, w3_space_provision (Nota: w3_space_create debe ejecutarse manualmente debido a los mensajes interactivos)
    • 💾 Gestión de datos: w3_up, w3_ls, w3_rm
    • 🔗 Compartir: w3_open (genera una URL w3s.link)
    • 🤝 Delegaciones y pruebas: w3_delegation_create, w3_delegation_ls, w3_delegation_revoke, w3_proof_add, w3_proof_ls
    • 🔐 Claves y tokens: w3_key_create, w3_bridge_generate_tokens
    • ⚙️ Almacenamiento avanzado (w3 can ...): gestión de Blob, CAR, Upload, Index, Access Claim e información de Filecoin
    • 💳 Cuenta y facturación: w3_plan_get, w3_coupon_create, w3_usage_report

🛠️ Requisitos previos

  • Node.js: Versión 22.0.0 o superior (node -v).
  • CLI de w3: El servidor ejecuta comandos de w3 directamente. Asegúrate de que @web3-storage/w3cli esté instalado globalmente y configurado:
    npm install -g @web3-storage/w3cli
    w3 login <your-email@example.com>
    # Follow email verification steps
    
  • Variable de entorno: La herramienta w3_login requiere que la variable de entorno W3_LOGIN_EMAIL esté configurada con el mismo correo electrónico utilizado para w3 login.

🏗️ Estructura del proyecto

El código fuente está organizado de la siguiente manera:

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

🚀 Uso con clientes MCP

Este servidor se puede utilizar con cualquier cliente compatible con MCP. Debes configurar tu cliente para conectarse a este servidor.

Ejemplo: NPX (Recomendado para uso local simple)

Esto asume que npm y los requisitos previos se cumplen.

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

Ejemplo: Docker

Construye la imagen primero (consulta la sección Build) o usa la imagen preconstruida 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"
      }
    }
  }
}

📝 Nota sobre rutas:

Varios comandos de w3 requieren rutas absolutas del sistema de archivos (por ejemplo, w3_up, w3_delegation_create --output, w3_proof_add, w3_can_blob_add, w3_can_store_add).

  • NPX: Proporciona rutas absolutas desde tu máquina host.
  • Docker: Proporciona rutas absolutas dentro del contenedor. Si interactúas con archivos de tu host (por ejemplo, subiendo archivos), debes montar el directorio host relevante en el contenedor usando la bandera -v (por ejemplo, -v /Users/me/project:/Users/me/project) y luego usar la ruta del contenedor (por ejemplo, /Users/me/project/my_file.txt) en los argumentos de la herramienta.

📦 Build

Clona el repositorio e instala las dependencias:

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

Compila el código TypeScript:

npm run build

Luego puedes ejecutar el servidor directamente:

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

O publicarlo (si tienes los permisos):

npm publish

🐳 Docker Build

Construye la imagen de Docker:

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

📜 Licencia

Este servidor MCP está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.