Labsco
MCP SERVER

Upload files to Pinata IPFS from the client, organise them into groups with key-value metadata, attach an x402 payment instruction to a CID, and query the vectorized ones by meaning instead of by name.

Office Suites & Cloud File StorageVerified
Summary
The same CID can be stored, signed, charged for and searched by meaning without leaving the client.

The payment side is narrower than the storage side: createPaymentInstruction and updatePaymentInstruction state support for USDC with 6 decimals on Base and Base Sepolia only. Semantic search is opt-in per file — queryVectors reaches a group's files after vectorizeFile has run on them, not the whole account. Local uploads are fenced to the directories listAllowedDirectories returns, which is worth checking before pointing uploadFile at a path.

What it is

A Pinata account front end covering 35 tools, spanning IPFS uploads and gateway reads, file groups, x402 payment instructions, EIP-712 signatures and vector search.

What you get
  • Files end to end: uploadFile takes either a file:// URI or base64 content, searchFiles filters by name, CID or MIME type, getFileById returns the detail, updateFile edits the name and key-value pairs, and deleteFile removes it.
  • Links sized to the audience: createLink returns a gateway URL for a public file and a temporary download link for a private one, createPrivateDownloadLink issues the timed link directly, and fetchFromGateway returns the content itself.
  • Grouping as the unit of organisation: createGroup, listGroups, getGroup, updateGroup and deleteGroup, with addFileToGroup and removeFileFromGroup moving files between them.
  • Content already on IPFS: pinByCid pins an existing CID into the account with optional host_nodes and metadata, queryPinRequests reports where each request stands, and cancelPinRequest drops a pending one.
  • Paid access to a CID: createPaymentInstruction sets an amount in USDC and a pay_to address, addCidToPaymentInstruction and removeCidFromPaymentInstruction control what it covers, and listPaymentInstructions, getPaymentInstruction, listPaymentInstructionCids, updatePaymentInstruction and deletePaymentInstruction handle the rest.
  • Provenance and semantic lookup: addSignature attaches an EIP-712 signature to a CID with getSignature and deleteSignature alongside it, while vectorizeFile, queryVectors and deleteFileVectors give a group a text query that matches on meaning.
  • Uploads that do not go through the client: createSignedUploadUrl issues a URL constrained by allow_mime_types, max_file_size and an expiry, so a browser can upload without holding the API key.
Requirements

A Pinata account and a working Pinata JWT — testAuthentication is the call that confirms it. Uploads from the local machine read only the directories that listAllowedDirectories reports, and a payment instruction needs an address to pay to.

Setup effort

One command — npx -y pinata-mcp