English | 简体中文
A lightweight Model Context Protocol (MCP) server that maps icon-focused keywords directly to Remix Icon metadata. Provide concise keywords (up to 20), receive the top 5 matching icon names and metadata – clean architecture with FlexSearch-powered local search.
- Smart Keyword Input – Supports up to 20 comma-separated keywords while rejecting natural-language sentences for optimal search quality.
- Fixed Top-5 Results – Returns exactly 5 most relevant icons for focused decision-making.
- FlexSearch-backed Index – Uses FlexSearch v0.8's document index for high-performance token lookup over the local Remix Icon catalog.
- Clean Architecture – Domain entities, application use cases, infrastructure adapters, and MCP interface remain isolated for easy testing.
- CLI Ready – Can be run as a standalone CLI tool via
npx remixicon-mcpor integrated into MCP clients. - LLM-ready Responses – Returns ranked candidates, matched tokens, and explicit guidance instructing the model to choose exactly one icon.
# Install as CLI tool globally
npm install -g remixicon-mcp
# Or run directly with npx
npx remixicon-mcp
# For development
pnpm install
pnpm typecheck
pnpm testYou can run the MCP server directly via stdio for testing or integration:
# Run with npx
npx remixicon-mcp
# Or if installed globally
remixicon-mcpConfiguration
Add the following to your claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"remix-icon": {
"command": "npx",
"args": ["-y", "remixicon-mcp"]
}
}
}Setup Steps
- Save the configuration file
- Completely quit and restart Claude Desktop
- The
search_iconstool will be available in your conversations
Option 1: Marketplace Plugin (Recommended)
# In Claude Code, add the marketplace plugin
/plugin marketplace add Remix-Design/remixicon-mcpBenefits:
- Automatic installation and updates
- Complete plugin metadata and versioning
- Rich discovery with keywords and categorization
- Full integration with Claude Code's plugin ecosystem
Option 2: Manual Configuration
# Quick command-line setup
claude mcp add --transport stdio remixicon -- npx -y remixicon-mcpOr manually add to your project's .claude/settings.json:
{
"mcp": {
"servers": {
"remix-icon": {
"command": "npx",
"args": ["-y", "remixicon-mcp"]
}
}
}
}Setup Steps
- Choose one of the installation methods above
- Restart Claude Code for the changes to take effect
- The
search_iconstool will be available in your sessions
Configuration
# Quick command-line setup
codex mcp add remixicon -- npx -y remixicon-mcpSetup Steps
- Run the installation command above
- Restart Codex for the changes to take effect
- The
search_iconstool will be available in your conversations
The server communicates over stdio using JSON-RPC 2.0 via the official @modelcontextprotocol/sdk and exposes a single tool:
Input: keywords string (comma-separated, up to 20 keywords)
Output: Top 5 most relevant icons with metadata
Format: Human-readable summary + structured metadata
JSON-RPC Call:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_icons",
"arguments": {
"keywords": "layout, grid, design"
}
}
}Sample Response: The server returns the top 5 icons that match your keywords, complete with names, categories, and usage information.
.
├── bin/
│ └── run.cjs # CLI entry point for npx execution
├── src/
│ ├── cli/ # CLI runner implementation
│ ├── bootstrap/ # Dependency wiring for Clean Architecture boundaries
│ ├── domain/ # Icon entities and keyword parser
│ ├── application/ # Search use case orchestrating validation and ranking
│ ├── infrastructure/search/ # FlexSearch-backed repository implementation
│ ├── interface/mcp/ # MCP server built with @modelcontextprotocol/sdk
│ └── data/tags.json # Remix Icon tags for search functionality
├── tests/ # Vitest suites covering parser and use case behaviour
├── .claude-plugin/
│ └── marketplace.json # Marketplace metadata for Claude Code plugin discovery
├── package.json # pnpm-friendly manifest and scripts
└── tsconfig.json # Strict TypeScript configuration with Node typings
- Keywords are parsed with Unicode-aware boundaries, supporting up to 20 comma-separated keywords while rejecting sentence-style inputs.
- Enhanced detection differentiates between keyword lists (with delimiters) and natural language sentences (space-separated phrases).
- FlexSearch indexes icon names, tags, usage, and categories; field weights plus token matches drive deterministic scores.
- Fixed top-5 results provide focused, relevant matches without configuration complexity.
- The application layer combines parser validation, repository queries, and response formatting so the interface only handles transport concerns.
- MCP responses include natural-language guidance and machine-readable matches so LLM clients can choose exactly one icon.
- CLI runner enables standalone execution via
npxor global installation for easy integration.
pnpm typecheck # Strict TypeScript check (tsc --noEmit)
pnpm test # Run Vitest suites
pnpm exec biome check --write --unsafe # Format + fix code with Biome