Provides access to both Public and Private IPFS through Pinata's API, enabling file uploads, searches, metadata management, group organization, and content retrieval from IPFS gateways.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Pinata MCPupload my project logo from the assets folder to Pinata as a private file"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
pinata-mcp
A Model Context Protocol (MCP) server that provides Claude with access to Pinata. This integration allows Claude to interact with Public and Private IPFS through Pinata's API.
Setup
Prerequisites
Node.js 18+ installed
A Pinata account with an API key (JWT)
A Pinata Gateway URL
Installation
Installation will depend on whether you are using Claude Code or Claude Desktop.
Claude Code
Run claude mcp add and follow the prompts with the following information:
Claude Desktop
Add the following config to claude_desktop_config.json:
Note: The directory arguments are optional. If not provided, the server will only allow access to the current working directory. You can specify multiple directories to allow file access from multiple locations.
Related MCP server: Spotify MCP Server
Available Tools
Authentication
Tool | Description |
| Verify that your Pinata JWT is valid and working |
File Operations
Tool | Description |
| Upload a file to Pinata (public or private IPFS) |
| Search files by name, CID, or MIME type |
| Get detailed file information by ID |
| Update file metadata (name, key-values) |
| Delete a file from Pinata |
Content Access
Tool | Description |
| Create a gateway link for public or private files |
| Generate a temporary download link for private files |
| Fetch content from IPFS via Pinata gateway |
Group Operations
Tool | Description |
| List groups with optional filtering |
| Create a new group for organizing files |
| Get group details by ID |
| Update group information |
| Delete a group |
| Add a file to a group |
| Remove a file from a group |
x402 Payment Instructions
Tools for content monetization using the x402 protocol:
Tool | Description |
| Create payment requirements for gated content |
| List/filter existing payment instructions |
| Get details of a specific payment instruction |
| Modify payment instruction settings |
| Remove a payment instruction |
| List CIDs associated with a payment instruction |
| Associate a CID with a payment instruction |
| Remove a CID association |
CID Signatures
Tools for cryptographic content verification using EIP-712 signatures:
Tool | Description |
| Add a cryptographic signature to a CID |
| Get signature details by CID |
| Remove a signature |
Signed Upload URLs
Tool | Description |
| Create a presigned URL for client-side uploads |
Pin by CID
Tool | Description |
| Pin an existing CID from the IPFS network |
| Query the status of pin requests |
| Cancel a pending pin request |
Vectorize (AI/Semantic Search)
Tool | Description |
| Vectorize a file for semantic search |
| Delete vectors for a file |
| Query vectorized files using semantic search |
Utilities
Tool | Description |
| List directories the server can access for file operations |
Local Development
To test the MCP server locally during development:
1. Clone and install dependencies
2. Build the project
3. Set up environment variables
Create a .env file in the project root (optional, you can also pass these in the MCP config):
4. Configure Claude to use the local build
Claude Code
Run claude mcp add with the local path:
Claude Desktop
Update claude_desktop_config.json to point to your local build:
5. Testing changes
After making code changes:
Rebuild:
npm run buildRestart Claude Code or Claude Desktop to pick up the changes
Testing with MCP Inspector
Use the MCP Inspector to test the server:
Web UI (interactive debugging)
This opens a browser UI where you can interactively list tools, call them with parameters, and inspect responses.
CLI mode (for scripting/CI)