Pinata

Interaja com IPFS Público e Privado através da API da Pinata. Requer uma conta Pinata e chave de API.

Documentação

pinata-mcp

Um servidor Model Context Protocol (MCP) que fornece ao Claude acesso ao Pinata. Esta integração permite que o Claude interaja com IPFS público e privado através da API do Pinata.

Configuração

Pré-requisitos

  • Node.js 18+ instalado
  • Uma conta Pinata com uma chave de API (JWT)
  • Uma URL de Gateway Pinata

Instalação

A instalação dependerá de se você está usando Claude Code ou Claude Desktop.

Claude Code

Execute claude mcp add e siga as instruções com as seguintes informações:

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

Adicione a seguinte configuração 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: Os argumentos de diretório são opcionais. Se não forem fornecidos, o servidor permitirá apenas acesso ao diretório de trabalho atual. Você pode especificar múltiplos diretórios para permitir acesso a arquivos de múltiplos locais.

Ferramentas Disponíveis

Autenticação

FerramentaDescrição
testAuthenticationVerifique se seu JWT Pinata é válido e está funcionando

Operações de Arquivo

FerramentaDescrição
uploadFileEnvie um arquivo para Pinata (IPFS público ou privado)
searchFilesPesquise arquivos por nome, CID ou tipo MIME
getFileByIdObtenha informações detalhadas do arquivo por ID
updateFileAtualize metadados do arquivo (nome, chave-valores)
deleteFileExclua um arquivo do Pinata

Acesso ao Conteúdo

FerramentaDescrição
createLinkCrie um link de gateway para arquivos públicos ou privados
createPrivateDownloadLinkGere um link de download temporário para arquivos privados
fetchFromGatewayBusque conteúdo do IPFS via gateway Pinata

Operações de Grupo

FerramentaDescrição
listGroupsListe grupos com filtragem opcional
createGroupCrie um novo grupo para organizar arquivos
getGroupObtenha detalhes do grupo por ID
updateGroupAtualize informações do grupo
deleteGroupExclua um grupo
addFileToGroupAdicione um arquivo a um grupo
removeFileFromGroupRemova um arquivo de um grupo

Instruções de Pagamento x402

Ferramentas para monetização de conteúdo usando o protocolo x402:

FerramentaDescrição
createPaymentInstructionCrie requisitos de pagamento para conteúdo restrito
listPaymentInstructionsListe/filtre instruções de pagamento existentes
getPaymentInstructionObtenha detalhes de uma instrução de pagamento específica
updatePaymentInstructionModifique configurações de instrução de pagamento
deletePaymentInstructionRemova uma instrução de pagamento
listPaymentInstructionCidsListe CIDs associados a uma instrução de pagamento
addCidToPaymentInstructionAssocie um CID a uma instrução de pagamento
removeCidFromPaymentInstructionRemova uma associação de CID

Assinaturas CID

Ferramentas para verificação criptográfica de conteúdo usando assinaturas EIP-712:

FerramentaDescrição
addSignatureAdicione uma assinatura criptográfica a um CID
getSignatureObtenha detalhes da assinatura por CID
deleteSignatureRemova uma assinatura

URLs de Upload Assinadas

FerramentaDescrição
createSignedUploadUrlCrie uma URL pré-assinada para uploads do lado do cliente

Pin por CID

FerramentaDescrição
pinByCidFixe um CID existente da rede IPFS
queryPinRequestsConsulte o status das solicitações de pin
cancelPinRequestCancele uma solicitação de pin pendente

Vetorizar (Busca IA/Semântica)

FerramentaDescrição
vectorizeFileVetorize um arquivo para busca semântica
deleteFileVectorsExclua vetores de um arquivo
queryVectorsConsulte arquivos vetorizados usando busca semântica

Utilitários

FerramentaDescrição
listAllowedDirectoriesListe diretórios que o servidor pode acessar para operações de arquivo

Desenvolvimento Local

Para testar o servidor MCP localmente durante o desenvolvimento:

1. Clone e instale as dependências

git clone https://github.com/PinataCloud/pinata-mcp.git
cd pinata-mcp
npm install

2. Compile o projeto

npm run build

3. Configure as variáveis de ambiente

Crie um arquivo .env na raiz do projeto (opcional, você também pode passá-los na configuração MCP):

PINATA_JWT=your_pinata_jwt_here
GATEWAY_URL=your-gateway.mypinata.cloud

4. Configure o Claude para usar a compilação local

Claude Code

Execute claude mcp add com o caminho 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

Atualize claude_desktop_config.json para apontar para sua compilação 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. Testando alterações

Após fazer alterações no código:

  1. Recompile: npm run build
  2. Reinicie o Claude Code ou o Claude Desktop para aplicar as alterações

Testando com o MCP Inspector

Use o MCP Inspector para testar o servidor:

Interface Web (depuração interativa)

npx @modelcontextprotocol/inspector \
  -e PINATA_JWT=your_jwt \
  -e GATEWAY_URL=your-gateway.mypinata.cloud \
  -- node dist/index.js

Isso abre uma interface de navegador onde você pode listar ferramentas interativamente, chamá-las com parâmetros e inspecionar respostas.

Modo CLI (para scripts/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

Exemplos de Prompts 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'"