# Pinata — MCP server on mcp.ai > Connect your Pinata account and use 9 tools for content and files straight from your AI agent. Connect with your own API key. Manage public IPFS files and groups, inspect gateways and upload metadata, and create constrained signed upload URLs through Pinata's V3 APIs. By: mcp.ai · official Page: https://mcp.ai/pinata ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_pinata?ms=1787293560000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/pinata/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/pinata/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/pinata/skill.md Postman collection (v2.1): https://mcp.ai/pinata/postman.json ## Tools - pinata_create_public_group(name: string, is_public?: boolean) — Create a group for organizing files on the connected account's public IPFS network. The connected Pinata JWT must include org:groups:write. - pinata_create_signed_public_upload_url(filename: string, group_id?: string, metadata?: object, cid_version?: string, max_file_size: integer, allow_mime_types: string[]) — Create a 60-second signed URL for one size- and MIME-constrained public IPFS upload. The URL is a secret: use it immediately and never log or persist it. This action does not upload content itself. Th - pinata_delete_public_group(group_id: string) — Permanently delete one public-network group by ID. This destructive action does not delete the files the group organized. The connected Pinata JWT must include org:groups:write. - pinata_get_public_group(group_id: string) — Return one public-network group by its Pinata group ID. The connected Pinata JWT must include org:groups:read. - pinata_list_gateways(page_size?: integer, next_cursor?: string) — Return one page of gateways owned by the connected Pinata account without changing gateway configuration. The connected Pinata JWT must include org:gateways:read. - pinata_list_public_files(cid?: string, name?: string, limit?: integer, order?: string, group_id?: string, mime_type?: string, cid_pending?: boolean, next_cursor?: string) — Return one page of files on the connected account's public IPFS network, optionally filtered by file attributes. The connected Pinata JWT must include org:files:read. - pinata_list_public_groups(name?: string, limit?: integer, is_public?: boolean, next_cursor?: string) — Return one page of groups that organize files on the connected account's public IPFS network. The connected Pinata JWT must include org:groups:read. - pinata_list_upload_metadata(limit?: integer, reverse?: boolean, next_cursor?: string) — List upload-service records, including upload IDs, filenames, CIDs, sizes, group IDs, and timestamps. Use List Public Files instead to search the public IPFS file inventory. - pinata_update_public_group(name?: string, group_id: string, is_public?: boolean) — Update the name, visibility flag, or both for one public-network group. The connected Pinata JWT must include org:groups:write. ## Example prompts - "What can I do in Pinata?" - "Show me a summary of my Pinata account" ## Links Docs: https://mcp.ai/docs/mcps/pinata Website: https://mcp.ai/mcps/pinata