Search 324k icons or generate new ones in the Lucide grammar - grammar-locked lint+critique+repair
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Generate a NEW icon in the Lucide grammar for a concept that doesn't exist yet. Grab-first: returns mode='grab' with matches when a strong existing icon covers the prompt. Otherwise runs the lint + critique + repair loop and returns lint-scored candidates. Subject to quota (errors carry error.code='quota_exceeded').
the concept, e.g. 'portafilter'
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Generate a NEW icon in the Lucide grammar for a concept that doesn't exist yet. Grab-first: returns mode='grab' with matches when a strong existing icon covers the prompt. Otherwise runs the lint + critique + repair loop and returns lint-scored candidates. Subject to quota (errors carry error.code='quota_exceeded').
| Argument | Type | Description |
|---|
| prompt* | string | the concept, e.g. 'portafilter' |
{
"type": "object",
"required": [
"prompt"
],
"properties": {
"prompt": {
"type": "string",
"description": "the concept, e.g. 'portafilter'"
}
}
}Fetch one icon by slug. format='svg' (default) returns the SVG document; 'jsx' returns a lucide-react-compatible TSX component; 'motion' returns a TSX component with a stroke-draw entrance.
| Argument | Type | Description |
|---|---|---|
| slug* | string | |
| format | string |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string"
},
"format": {
"enum": [
"svg",
"jsx",
"motion"
],
"type": "string"
}
}
}Search the iconlab corpus (Lucide static + lucide-animated variants) by concept. Returns scored matches with slugs, sources and licenses.
| Argument | Type | Description |
|---|---|---|
| limit | number | max results, 1-50 (default 12) |
| query* | string | concept, e.g. 'drum' or 'vector database' |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "number",
"description": "max results, 1-50 (default 12)"
},
"query": {
"type": "string",
"description": "concept, e.g. 'drum' or 'vector database'"
}
}
}