fuzzy_search_icons
Search for Lucide Icons by name using flexible matching. Retrieve relevant results by entering a query, with options to limit the number of results returned.
Instructions
Fuzzy Search for icons from lucide by icon name
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return | |
| query | Yes | Search term for icon name |
Implementation Reference
- src/utils.ts:132-137 (handler)Executes fuzzy search on icon names using Fuse.js library, applies optional limit to results, and returns a formatted text response.async ({ query, limit }) => { const fuse = SearchService.createFuseSearch(iconMetadata, ["name"]); let results = fuse.search(query); results = SearchService.applyLimit(results, limit); return createTextResponse(results); }
- src/utils.ts:128-131 (schema)Zod input schema for the tool, defining required query string and optional limit number.{ query: z.string().describe("Search term for icon name"), limit: searchSchemas.iconLimit.describe("Max results to return") },
- src/utils.ts:124-138 (registration)Registers the fuzzy_search_icons MCP tool with name, description, input schema, and inline handler function.// Tool: fuzzy_search_icons server.tool( "fuzzy_search_icons", "Fuzzy Search for icons from lucide by icon name", { query: z.string().describe("Search term for icon name"), limit: searchSchemas.iconLimit.describe("Max results to return") }, async ({ query, limit }) => { const fuse = SearchService.createFuseSearch(iconMetadata, ["name"]); let results = fuse.search(query); results = SearchService.applyLimit(results, limit); return createTextResponse(results); } );
- src/utils.ts:55-60 (helper)SearchService helper to create a case-insensitive Fuse.js instance configured for fuzzy matching on specified keys.static createFuseSearch<T>(data: T[], keys: string[]) { return new Fuse(data, { keys, isCaseSensitive: false }); }
- src/utils.ts:13-21 (helper)Utility function to wrap tool output data as MCP-standard text content response.// Common response helper const createTextResponse = (data: any) => ({ content: [ { type: "text" as const, text: JSON.stringify(data, null, 2) } ] });