Iconoteka

io.github.turbabaPublished by GitHub account turbabav0.2.3Updated Oct 24, 2026

Search 1,400 open-source icons in 7 weights and 2 styles, and get paste-ready SVG.

VerifiedSTDIODesktop onlyDeveloper ToolsMedia & Design

Overview

AI-generated overview

Iconoteka is a local MCP server that lets an assistant search 1,400 open-source icons and return paste-ready SVG markup.

What you can do
Search icons by meaning or name, with optional category and result limit, returning ranked matches with available weights and styles and related keywords. Fetch SVG markup for one icon or up to 24 at once, choosing weight and style. List all 23 icon categories with icon counts.
When to use it
Useful when an assistant is building interfaces or documents and needs real icon SVG instead of inventing paths or guessing at a library. Good for picking a matching icon by concept and pulling a whole toolbar in one request.
Requirements
Runs as a local process via npx from the npm package iconoteka-mcp; Node.js and npx are needed. No authentication, API keys, environment variables or headers are declared, and the icon data ships inside the package so it works offline.
Before you install
The server only reads and returns icon data; the input shows no credentials, payments, or write actions. Installing via npx runs third-party package code on your machine, and the returned SVG is meant to be pasted into your own projects, so check licensing of the icons before shipping them.

Installation

In SourceWeft

  1. Open Iconoteka in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

iconoteka-mcp

MCP server for Iconoteka — let an AI assistant search 1,400 icons and hand back paste-ready SVG.

Ask for "a notification bell, medium weight" and the assistant returns the real icon, rather than inventing a path or reaching for whatever library it happens to remember.

Setup

Each client stores MCP servers in its own format, so use the entry for yours.

Claude Code

bash
claude mcp add --scope user iconoteka -- npx -y iconoteka-mcp

Codex

bash
codex mcp add iconoteka -- npx -y iconoteka-mcp

Or in ~/.codex/config.toml:

toml
[mcp_servers.iconoteka]command = "npx"args = ["-y", "iconoteka-mcp"]

VS Code (GitHub Copilot)

bash
code --add-mcp '{"name":"iconoteka","command":"npx","args":["-y","iconoteka-mcp"]}'

Or per workspace in .vscode/mcp.json — note the key is servers:

json
{  "servers": {    "iconoteka": {      "command": "npx",      "args": ["-y", "iconoteka-mcp"]    }  }}

Cursor, Claude Desktop, Windsurf and Gemini CLI share one shape, each in its own file:

ClientFile
Cursor~/.cursor/mcp.json, or .cursor/mcp.json in a project
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json (macOS), %APPDATA%\Claude\claude_desktop_config.json (Windows)
Windsurf~/.codeium/windsurf/mcp_config.json
Gemini CLI~/.gemini/settings.json, or .gemini/settings.json in a project
json
{  "mcpServers": {    "iconoteka": {      "command": "npx",      "args": ["-y", "iconoteka-mcp"]    }  }}

Zed — in settings.json, under context_servers:

json
{  "context_servers": {    "iconoteka": {      "command": "npx",      "args": ["-y", "iconoteka-mcp"],      "env": {}    }  }}

It runs offline: the icon data ships inside the package.

Tools

search_icons — find icons by meaning or name. Returns ranked matches with the weights and styles each one has, plus its other keywords.

search_icons({ query: "notification bell" })→ bell  [Interface] ★popular  score 949      variants: 7 weights, fill varies by weight      also matches: notification, notify, reminder, ring, sound

Optional category and limit.

get_icon — SVG markup for one icon, or for several in a single call.

get_icon({ name: "bell", weight: "medium", style: "fill" })→ bell — medium fill — Interface
  <svg width="24" height="24" viewBox="0 0 24 24" …>    <path d="M12 22.25C10.375…" fill="currentColor"/>  </svg>

Pass an array to fetch up to 24 icons at once, so a whole toolbar takes one request:

get_icon({ name: ["bell", "trash", "pen"] })→ one block per icon, separated by ---

weight is thin ultralight light regular medium semibold bold (default regular); style is stroke or fill (default stroke). The path uses currentColor, so it inherits the surrounding text colour.

name takes an icon's own name or the word people reach for: trash, edit and settings each resolve to the right icon.

Most icons have all 14 variants; some have 7 or 8. Ask for one that doesn't exist and the server says what to use instead — for example, "download" has no fill; it is a stroke-only icon. Use style "stroke".

list_categories — all 23 categories with icon counts.

Support

Iconoteka is a free, open-source library created and maintained by one person. Support its future development through a monthly Patreon subscription or a one-time Ko-fi donation.

License

MIT — both this server and the icons. Free for personal and commercial use, including closed-source. No attribution required.

The Iconoteka name and logo are not covered by the MIT grant.

Source: packages/iconoteka-mcp/README.md at commit 918e835

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v0.2.3LatestOct 10, 2026
  2. v0.2.2Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts