Skip to content
Conduit

mcp server

asset-finder-mcp

MCP server for AI agents to search icons, logos, stock photos, vectors, and emoji — 700k+ assets from 7 sources in one tool

Erfangit23/asset-finder-mcpcommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • Node.js 20 or newer
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "asset-finder-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "asset-finder-mcp"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 17, 2026

Asset Finder MCP

The all-in-one asset search MCP server for AI coding agents

Find icons, logos, stock photos, vectors, and emoji — all from a single tool call.

CI npm version License: MIT Node.js


Why?

AI coding agents (Cursor, Claude Code, Windsurf, Cline) build UIs every day — but when they need an icon, a logo, or a stock photo, the human has to go find it manually. Asset Finder MCP fixes this. Your AI agent can now search 700,000+ assets and pick the right one, in real-time, without leaving the editor.

What It Does

ToolDescriptionSources
search_iconsSearch 200,000+ UI iconsIconify
search_logosFind brand & company logosLogo.dev
search_stock_photosSearch free stock photographyPexels, Unsplash, Pixabay
search_vectorsSearch 500,000+ SVG vectorsSVG Repo
search_emojiSearch open-source emojiOpenMoji
suggest_assetDescribe what you need → get ranked matchesAll sources
get_assetGet full details for a specific assetAll sources
list_providersShow available asset sources—

Quick Start

One-line install (no API keys needed):

{
  "mcpServers": {
    "asset-finder": {
      "command": "npx",
      "args": ["-y", "asset-finder-mcp"]
    }
  }
}

That's it. The server starts immediately with 3 free providers (Iconify, SVG Repo, OpenMoji) — no signup, no keys, no config.

With stock photos and logos (optional API keys):

{
  "mcpServers": {
    "asset-finder": {
      "command": "npx",
      "args": ["-y", "asset-finder-mcp"],
      "env": {
        "PEXELS_API_KEY": "your-key",
        "UNSPLASH_ACCESS_KEY": "your-key",
        "PIXABAY_API_KEY": "your-key",
        "LOGO_DEV_TOKEN": "your-token"
      }
    }
  }
}

Get free API keys:

Install in Your Editor

Edit claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "asset-finder": {
      "command": "npx",
      "args": ["-y", "asset-finder-mcp"]
    }
  }
}

Create .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "asset-finder": {
      "command": "npx",
      "args": ["-y", "asset-finder-mcp"]
    }
  }
}

Edit ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "asset-finder": {
      "command": "npx",
      "args": ["-y", "asset-finder-mcp"]
    }
  }
}

Add to your MCP settings:

{
  "mcpServers": {
    "asset-finder": {
      "command": "npx",
      "args": ["-y", "asset-finder-mcp"]
    }
  }
}
git clone https://github.com/Erfangit23/asset-finder-mcp.git
cd asset-finder-mcp
npm install
npm run build
npm start

The suggest_asset Tool (The Killer Feature)

Instead of knowing which tool to call, just describe what you need:

"suggest_asset" with description: "modern minimalist icon for a settings menu, blue color"
→ searches Iconify + SVG Repo, returns ranked results

"suggest_asset" with description: "Stripe company logo"
→ searches Logo.dev, returns the Stripe logo

"suggest_asset" with description: "professional headshot photo for a team page"
→ searches Pexels + Unsplash + Pixabay, returns photos

"suggest_asset" with description: "cute cat emoji"
→ searches OpenMoji, returns matching emoji

The tool auto-detects the asset type from your description and searches the right providers.

Example: AI Agent Workflow

  1. You ask Cursor: "Build a settings page with a gear icon and a mountain background image"
  2. Cursor calls: suggest_asset("gear settings icon") → gets SVG icon URL
  3. Cursor calls: suggest_asset("mountain landscape background") → gets stock photo URL
  4. Cursor writes: The full HTML/CSS with real assets embedded — no placeholders

Asset Catalog

SourceTypeCountAPI KeyLicense
IconifyIcons200,000+NoVarious (per icon set)
SVG RepoVectors500,000+NoVarious (CC0, CC-BY, etc.)
OpenMojiEmoji4,000+NoCC BY-SA 4.0
PexelsStock PhotosMillionsYesFree for commercial use
UnsplashStock PhotosMillionsYesUnsplash License
PixabayPhotos & Vectors2M+YesPixabay Content License
Logo.devBrand Logos50,000+YesFree for commercial use

Features

  • Zero-config start — works immediately with 3 free providers, no signup
  • Multi-source aggregation — one tool call, results from all providers
  • AI-friendly output — license info, dimensions, format, tags in every result
  • License-aware filtering — filter by MIT, CC0, CC-BY, commercial-use, etc.
  • Smart suggestion — describe in natural language, get the right asset type
  • In-memory caching — LRU cache reduces API calls and latency
  • TypeScript — fully typed, declaration files included
  • Tested — unit tests for cache, normalization, and filtering

Project Structure

asset-finder-mcp/
├── src/
│   ├── index.ts                  # MCP server entry point
│   ├── config.ts                 # Environment config loader
│   ├── types.ts                  # Shared type definitions
│   ├── tools/
│   │   ├── search-tools.ts       # search_icons, search_logos, search_stock_photos, search_vectors, search_emoji
│   │   ├── suggest-asset.ts      # suggest_asset (smart multi-provider search)
│   │   ├── get-asset.ts          # get_asset (fetch by ID)
│   │   └── list-providers.ts     # list_providers (show available sources)
│   ├── providers/
│   │   ├── iconify.ts            # 200k+ icons (free, no key)
│   │   ├── svgrepo.ts            # 500k+ SVG vectors (free, no key)
│   │   ├── openmoji.ts           # Open-source emoji (free, no key)
│   │   ├── pexels.ts             # Stock photos (free, key needed)
│   │   ├── unsplash.ts           # Stock photos (free, key needed)
│   │   ├── pixabay.ts            # Photos & vectors (free, key needed)
│   │   └── logo-dev.ts           # Brand logos (free, token needed)
│   └── utils/
│       ├── cache.ts              # LRU cache
│       ├── normalize.ts          # Result normalization & AI formatting
│       └── license-filter.ts     # License/format/color filtering
├── tests/
│   ├── cache.test.ts
│   ├── normalize.test.ts
│   └── license-filter.test.ts
├── examples/
│   ├── claude-desktop.json
│   ├── cursor-config.json
│   └── windsurf-config.json
├── docs/
│   ├── INSTALL.md
│   └── PROVIDERS.md
├── .github/workflows/ci.yml
├── .env.example
├── package.json
├── tsconfig.json
└── LICENSE

Contributing

Contributions are welcome! Here's how to add a new provider:

  1. Create src/providers/your-provider.ts implementing the Provider interface
  2. Register it in src/index.ts
  3. Add tests
  4. Update docs/PROVIDERS.md
  5. Submit a PR

License

MIT — see LICENSE

Links


If this project helped you, give it a star!

↑↓ navigate openesc close