Pinata
Interactúa con IPFS público y privado a través de la API de Pinata. Requiere una cuenta de Pinata y una clave de API.
Documentación
pinata-mcp
Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona a Claude acceso a Pinata. Esta integración permite que Claude interactúe con IPFS Público y Privado a través de la API de Pinata.
Configuración
Requisitos previos
- Node.js 18+ instalado
- Una cuenta de Pinata con una clave de API (JWT)
- Una URL de puerta de enlace de Pinata
Instalación
La instalación dependerá de si estás usando Claude Code o Claude Desktop.
Claude Code
Ejecuta claude mcp add y sigue las indicaciones con la siguiente información:
Server Name: pinata
Server Scope: Project or Global
Server Command: npx
Command Arguments: pinata-mcp /path/to/allowed/directory
Environment Variables: PINATA_JWT=<YOUR_JWT>,GATEWAY_URL=example.mypinata.cloud
Claude Desktop
Agrega la siguiente configuración a claude_desktop_config.json:
{
"mcpServers": {
"pinata": {
"command": "npx",
"args": [
"pinata-mcp",
"/path/to/allowed/directory",
"/another/allowed/directory"
],
"env": {
"PINATA_JWT": "<YOUR_JWT>",
"GATEWAY_URL": "example.mypinata.cloud"
}
}
}
}
Nota: Los argumentos de directorio son opcionales. Si no se proporcionan, el servidor solo permitirá el acceso al directorio de trabajo actual. Puedes especificar múltiples directorios para permitir el acceso a archivos desde varias ubicaciones.
Herramientas Disponibles
Autenticación
| Herramienta | Descripción |
|---|---|
testAuthentication | Verifica que tu JWT de Pinata sea válido y funcione |
Operaciones de Archivos
| Herramienta | Descripción |
|---|---|
uploadFile | Sube un archivo a Pinata (IPFS público o privado) |
searchFiles | Busca archivos por nombre, CID o tipo MIME |
getFileById | Obtén información detallada de un archivo por ID |
updateFile | Actualiza metadatos de archivos (nombre, pares clave-valor) |
deleteFile | Elimina un archivo de Pinata |
Acceso a Contenido
| Herramienta | Descripción |
|---|---|
createLink | Crea un enlace de puerta de enlace para archivos públicos o privados |
createPrivateDownloadLink | Genera un enlace de descarga temporal para archivos privados |
fetchFromGateway | Obtén contenido de IPFS a través de la puerta de enlace de Pinata |
Operaciones de Grupos
| Herramienta | Descripción |
|---|---|
listGroups | Lista grupos con filtrado opcional |
createGroup | Crea un nuevo grupo para organizar archivos |
getGroup | Obtén detalles de un grupo por ID |
updateGroup | Actualiza información de un grupo |
deleteGroup | Elimina un grupo |
addFileToGroup | Agrega un archivo a un grupo |
removeFileFromGroup | Elimina un archivo de un grupo |
Instrucciones de Pago x402
Herramientas para la monetización de contenido mediante el protocolo x402:
| Herramienta | Descripción |
|---|---|
createPaymentInstruction | Crea requisitos de pago para contenido restringido |
listPaymentInstructions | Lista/filtra instrucciones de pago existentes |
getPaymentInstruction | Obtén detalles de una instrucción de pago específica |
updatePaymentInstruction | Modifica la configuración de instrucciones de pago |
deletePaymentInstruction | Elimina una instrucción de pago |
listPaymentInstructionCids | Lista los CIDs asociados con una instrucción de pago |
addCidToPaymentInstruction | Asocia un CID con una instrucción de pago |
removeCidFromPaymentInstruction | Elimina una asociación de CID |
Firmas CID
Herramientas para la verificación criptográfica de contenido mediante firmas EIP-712:
| Herramienta | Descripción |
|---|---|
addSignature | Agrega una firma criptográfica a un CID |
getSignature | Obtén detalles de firma por CID |
deleteSignature | Elimina una firma |
URLs de Subida Firmadas
| Herramienta | Descripción |
|---|---|
createSignedUploadUrl | Crea una URL prefirmada para subidas desde el lado del cliente |
Pin por CID
| Herramienta | Descripción |
|---|---|
pinByCid | Fija un CID existente de la red IPFS |
queryPinRequests | Consulta el estado de las solicitudes de fijación |
cancelPinRequest | Cancela una solicitud de fijación pendiente |
Vectorize (Búsqueda IA/Semántica)
| Herramienta | Descripción |
|---|---|
vectorizeFile | Vectoriza un archivo para búsqueda semántica |
deleteFileVectors | Elimina vectores de un archivo |
queryVectors | Consulta archivos vectorizados mediante búsqueda semántica |
Utilidades
| Herramienta | Descripción |
|---|---|
listAllowedDirectories | Lista los directorios a los que el servidor puede acceder para operaciones de archivos |
Desarrollo Local
Para probar el servidor MCP localmente durante el desarrollo:
1. Clonar e instalar dependencias
git clone https://github.com/PinataCloud/pinata-mcp.git
cd pinata-mcp
npm install
2. Compilar el proyecto
npm run build
3. Configurar variables de entorno
Crea un archivo .env en la raíz del proyecto (opcional, también puedes pasarlos en la configuración de MCP):
PINATA_JWT=your_pinata_jwt_here
GATEWAY_URL=your-gateway.mypinata.cloud
4. Configurar Claude para usar la compilación local
Claude Code
Ejecuta claude mcp add con la ruta local:
Server Name: pinata-dev
Server Scope: Project
Server Command: node
Command Arguments: /path/to/pinata-mcp/dist/index.js /path/to/allowed/directory
Environment Variables: PINATA_JWT=<YOUR_JWT>,GATEWAY_URL=example.mypinata.cloud
Claude Desktop
Actualiza claude_desktop_config.json para que apunte a tu compilación local:
{
"mcpServers": {
"pinata-dev": {
"command": "node",
"args": [
"/path/to/pinata-mcp/dist/index.js",
"/path/to/allowed/directory"
],
"env": {
"PINATA_JWT": "<YOUR_JWT>",
"GATEWAY_URL": "example.mypinata.cloud"
}
}
}
}
5. Probar cambios
Después de realizar cambios en el código:
- Recompila:
npm run build - Reinicia Claude Code o Claude Desktop para aplicar los cambios
Pruebas con MCP Inspector
Usa el MCP Inspector para probar el servidor:
Interfaz Web (depuración interactiva)
npx @modelcontextprotocol/inspector \
-e PINATA_JWT=your_jwt \
-e GATEWAY_URL=your-gateway.mypinata.cloud \
-- node dist/index.js
Esto abre una interfaz de navegador donde puedes listar herramientas interactivamente, llamarlas con parámetros e inspeccionar las respuestas.
Modo CLI (para scripting/CI)
# List all available tools
npx @modelcontextprotocol/inspector --cli --method tools/list \
-e PINATA_JWT=your_jwt \
-e GATEWAY_URL=your-gateway.mypinata.cloud \
-- node dist/index.js
# Call a specific tool
npx @modelcontextprotocol/inspector --cli --method tools/call \
--tool-name testAuthentication \
-e PINATA_JWT=your_jwt \
-e GATEWAY_URL=your-gateway.mypinata.cloud \
-- node dist/index.js
Ejemplos de Indicaciones para Claude
Test my Pinata connection:
"Test my Pinata authentication to make sure everything is working"
Upload an image to Pinata:
"Upload this image to my Pinata account as a private file named 'My Example Image'"
Search for files:
"Search my Pinata account for all PNG files"
Create a group and add files:
"Create a new group called 'Project Assets' on Pinata, then find all my JSON files and add them to this group"
Fetch content from IPFS:
"Fetch the content with CID QmX... from IPFS"
Create a payment instruction for content monetization:
"Create a payment instruction called 'Premium Content' that requires 0.01 USDC on Base to access"
Pin an existing CID:
"Pin the CID bafkreih5aznjvttude6c3wbvqeebb6rlx5wkbzyppv7garjiubll2ceym4 to my account"
Vectorize files for AI search:
"Vectorize the file with ID abc123 so I can search it semantically"
Query vectorized content:
"Search my vectorized files in group xyz for 'machine learning concepts'"