Spritefetch

Search and download free CC0 2D sprite sheets and tilesets through MCP or a REST API.

Hosted MCP Server

npx add-mcp 'https://api.spritefetch.dev/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

Run your first asset search in a few minutes over MCP or REST. No key needed to start.

Copy page as Markdown

1. Connect

Connect: Add the server at https://api.spritefetch.dev/mcp to your agent's MCP config, or send requests to https://api.spritefetch.dev. No key needed. Your agent gets three tools: search, get_asset, and download.

// No key needed. Optional: a free API key raises limits.
{ "mcpServers": { "spritefetch": { "url": "https://api.spritefetch.dev/mcp" } } }

2. First search

First search: Ask your agent for an asset in plain words, or call the search endpoint. Check the license fields in the response before you ship.

# No key needed. Optional: a free API key raises limits.
search({ "query": "pixel-art fox run", "license_spdx": "CC0-1.0" })
GET https://api.spritefetch.dev/v1/search?q=pixel-art+fox+run&license_spdx=CC0-1.0

Sample response (trimmed)

{ "results": [{
  "id": "asset_…", "version": 1, "metadata_revision": 2,
  "license_spdx": "CC0-1.0", "attribution_required": false, "verification_status": "reviewed",
  "slicing": { "frame_width": 153, "frame_height": 139, "grid_cols": 6, "grid_rows": 2, "margin": 0, "spacing": 0,
    "pivot": { "x": 76.5, "y": 139 },
    "animations": [{ "name": "run", "frames": [0,1,2,3,4,5,6,7,8,9,10,11], "fps": 24, "loop": true }] },
  "file_url": "https://api.spritefetch.dev/files/asset_…/v/1/orange-fox-run.png",
  "sha256": "5164efbe…",
  "json_url": "https://api.spritefetch.dev/v1/assets/asset_…/v/1/"
}], "next_cursor": "…" }

3. Optional: API key

Optional: Add a free API key for higher limits (60/min and 2,000/day instead of 30/min and 500/day). Send it as Authorization: Bearer <API_KEY>.

Limits are planning defaults.

# Optional: a free API key raises limits (planning defaults: 60/min, 2,000/day per key).
curl -H "Authorization: Bearer <API_KEY>" "https://api.spritefetch.dev/v1/search?q=knight&license_spdx=CC0-1.0"
{ "mcpServers": { "spritefetch": { "url": "https://api.spritefetch.dev/mcp", "headers": { "Authorization": "Bearer <API_KEY>" } } } }

Limits (planning defaults)

AnonymousWith free API key
Search + metadata30 requests/min, 500/day per IP60 requests/min, 2,000/day per key
CC0 public file URLsNo key needed, not countedNo key needed, not counted

Before you ship, check each asset's license fields and include its attribution string where required.

Stable URLs

/assets/{id}/v/{version}/ never changes. /assets/{id}/latest/ may move. id = asset_ + 12 lowercase chars, immutable. Files live at /files/{id}/v/{version}/{filename} and are byte-for-byte immutable.

Parity: UI / REST / MCP

TaskWebsiteRESTMCP tool
Search/search?q=GET /v1/searchsearch
Asset details + license/assets/{id}/v/{version}/GET /v1/assets/{id}/v/{version}/get_asset
DownloadDownload buttonpublic file_url (CC0) or GET …/downloaddownload

Errors (examples)

  • 401: invalid key (search needs no key).
  • 429: limit reached (planning defaults: 30/min and 500/day per IP; 60/min and 2,000/day per key).
  • 410 Gone: a rejected asset (never served publicly).
  • Checksum mismatch: re-download, then report.

Next steps: Licensing guide · Rate limits · Errors · Found a problem or have feedback? Tell us at support@spritefetch.com.