Pinata
Interact with Public and Private IPFS through Pinata's API. Requires a Pinata account and API key.
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:
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
Add the following config to 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"
}
}
}
}
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.
Available Tools
Authentication
| Tool | Description |
|---|---|
testAuthentication | Verify that your Pinata JWT is valid and working |
File Operations
| Tool | Description |
|---|---|
uploadFile | Upload a file to Pinata (public or private IPFS) |
searchFiles | Search files by name, CID, or MIME type |
getFileById | Get detailed file information by ID |
updateFile | Update file metadata (name, key-values) |
deleteFile | Delete a file from Pinata |
Content Access
| Tool | Description |
|---|---|
createLink | Create a gateway link for public or private files |
createPrivateDownloadLink | Generate a temporary download link for private files |
fetchFromGateway | Fetch content from IPFS via Pinata gateway |
Group Operations
| Tool | Description |
|---|---|
listGroups | List groups with optional filtering |
createGroup | Create a new group for organizing files |
getGroup | Get group details by ID |
updateGroup | Update group information |
deleteGroup | Delete a group |
addFileToGroup | Add a file to a group |
removeFileFromGroup | Remove a file from a group |
x402 Payment Instructions
Tools for content monetization using the x402 protocol:
| Tool | Description |
|---|---|
createPaymentInstruction | Create payment requirements for gated content |
listPaymentInstructions | List/filter existing payment instructions |
getPaymentInstruction | Get details of a specific payment instruction |
updatePaymentInstruction | Modify payment instruction settings |
deletePaymentInstruction | Remove a payment instruction |
listPaymentInstructionCids | List CIDs associated with a payment instruction |
addCidToPaymentInstruction | Associate a CID with a payment instruction |
removeCidFromPaymentInstruction | Remove a CID association |
CID Signatures
Tools for cryptographic content verification using EIP-712 signatures:
| Tool | Description |
|---|---|
addSignature | Add a cryptographic signature to a CID |
getSignature | Get signature details by CID |
deleteSignature | Remove a signature |
Signed Upload URLs
| Tool | Description |
|---|---|
createSignedUploadUrl | Create a presigned URL for client-side uploads |
Pin by CID
| Tool | Description |
|---|---|
pinByCid | Pin an existing CID from the IPFS network |
queryPinRequests | Query the status of pin requests |
cancelPinRequest | Cancel a pending pin request |
Vectorize (AI/Semantic Search)
| Tool | Description |
|---|---|
vectorizeFile | Vectorize a file for semantic search |
deleteFileVectors | Delete vectors for a file |
queryVectors | Query vectorized files using semantic search |
Utilities
| Tool | Description |
|---|---|
listAllowedDirectories | List directories the server can access for file operations |
Local Development
To test the MCP server locally during development:
1. Clone and install dependencies
git clone https://github.com/PinataCloud/pinata-mcp.git
cd pinata-mcp
npm install
2. Build the project
npm run build
3. Set up environment variables
Create a .env file in the project root (optional, you can also pass these in the MCP config):
PINATA_JWT=your_pinata_jwt_here
GATEWAY_URL=your-gateway.mypinata.cloud
4. Configure Claude to use the local build
Claude Code
Run claude mcp add with the local path:
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
Update claude_desktop_config.json to point to your local build:
{
"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. Testing changes
After making code changes:
- Rebuild:
npm run build - Restart 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)
npx @modelcontextprotocol/inspector \
-e PINATA_JWT=your_jwt \
-e GATEWAY_URL=your-gateway.mypinata.cloud \
-- node dist/index.js
This opens a browser UI where you can interactively list tools, call them with parameters, and inspect responses.
CLI mode (for 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
Example Prompts for 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'"
相關伺服器
Tencent Cloud COS MCP
Quickly integrate with Tencent Cloud Storage (COS) and Data Processing (CI) capabilities powered
CData IBM Cloud Object Storage
A read-only MCP server for IBM Cloud Object Storage, powered by CData. Requires a separate CData JDBC Driver license.
MCP Bilibili Img Uploader
Uploads local images to Bilibili's image hosting service and returns a permanent HTTPS link.
AIStor
An MCP server for interacting with AIStor and MinIO object stores.
Dropbox MCP Server
An MCP server for interacting with Dropbox, allowing clients to manage files and folders.
Storacha MCP Storage Server
An MCP server for Storacha hot storage, enabling AI applications to store and retrieve files using IPFS and CIDs.
Memory Bank MCP
An MCP server for remote memory bank management, enhanced with Supergateway for streamable-http transport. It supports multi-project management and requires persistent storage.
Koneksi MCP Server (Go)
Provides AI assistants with access to Koneksi Storage for secure file storage and backup operations.
Qiniu MCP Server
Access Qiniu's cloud storage, intelligent multimedia services, and CDN operations via the Model Context Protocol.
AWS S3 MCP Server
Manage AWS S3 operations, providing secure access to S3 buckets through pre-signed URLs.