Skip to main content
Glama

heroicones-mcp

Un servidor de Protocolo de Contexto de Modelo (MCP) que expone Heroicons como recursos y herramientas para LLM y aplicaciones de agencia. Desarrollado con Bun y el SDK de TypeScript de MCP.

¿Qué es Heroicons?

Heroicons es una popular biblioteca de iconos SVG hechos a mano, diseñada por los creadores de Tailwind CSS. Los iconos están disponibles en varios estilos (contorno, sólido) y son fáciles de integrar en proyectos web.

Related MCP server: SupaUI MCP Server

¿Qué es MCP?

El Protocolo de Contexto del Modelo (MCP) es un estándar para que las herramientas de IA soliciten un contexto específico de fuentes externas a sus datos de entrenamiento principales.

Este servidor MCP permite que los asistentes de codificación de IA y otras aplicaciones de agentes accedan a información sobre Heroicons, lo que permite una mejor asistencia y capacidades de búsqueda de íconos.

Características

  • Expone Heroicons como recursos MCP (estilos Contorno y Sólido)

  • Proporciona herramientas para buscar íconos por nombre o palabras clave.

  • Permite enumerar todos los íconos o íconos dentro de un estilo específico

  • Listo para la integración con Claude Desktop y otros clientes MCP

  • Se puede ejecutar como un servidor HTTP o un servidor MCP basado en stdio

Prerrequisitos

Primeros pasos (desarrollo)

1. Clonar el repositorio

git clone https://github.com/SeeYangZhi/heroicons-mcp.git
cd heroicons-mcp

2. Instala Bun (si no lo tienes)

Consulte la guía de instalación oficial de Bun .
Después de la instalación, reinicie su terminal y verifique:

bun --version

3. Instalar dependencias

bun install

4. Construir el proyecto

Esto compila la fuente TypeScript a JavaScript en el directorio build .

bun run build

Uso

Modo HTTP

Puede ejecutar el servidor HTTP usando npx :

npx heroicons-mcp

Esto inicia el servidor HTTP (predeterminado en el puerto 3000, como se define en src/http.ts ).

O instalar globalmente:

npm install -g heroicons-mcp

Luego ejecuta:

heroicons-mcp

Modo estudio

npx heroicons-mcp --stdio
# or if installed globally
heroicons-mcp --stdio

Desarrollo local

Hay dos formas principales de ejecutar el servidor MCP:

1. Modo HTTP

Adecuado para clientes que admiten la comunicación a través de HTTP.

Para desarrollo (usando Bun):

bun run start
# or directly
bun run src/entry.ts

Esto ejecuta el servidor definido en src/entry.ts , que por defecto utiliza el modo HTTP.

2. Modo estudio

A menudo se utiliza para la integración directa con herramientas como Claude Desktop o MCP Inspector, comunicándose a través de entrada/salida estándar.

Para desarrollo (usando Bun):

bun run src/entry.ts --stdio

Configuración con herramientas de IA

Ejemplo: Claude Desktop

Para utilizar este servidor MCP en Claude Desktop :

  1. Abra el archivo de configuración de Claude Desktop:

code ~/Library/Application\ Support/Claude/claude_desktop_config.json

(O utiliza tu editor preferido) 2. Agrega el servidor a la sección mcpServers .

Opción A: vía npx :

{
  "mcpServers": {
    "heroicons": {
      "command": "npx",
      "args": ["heroicons-mcp", "--stdio"]
    }
  }
}

Opción B: Apuntar directamente a la salida de la compilación (asegúrese de haber compilado el proyecto usando bun run build ):

{
  "mcpServers": {
    "heroicons": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/heroicons-mcp/build/entry.js", "--stdio"]
    }
  }
}

Reemplace /ABSOLUTE/PATH/TO/heroicons-mcp/build/entry.js con la ruta absoluta real a su archivo entry.js compilado.

  1. Guarde el archivo y reinicie Claude Desktop.

  2. Ahora deberías ver el servidor "heroicons" disponible en el panel de herramientas de Claude.

Nota: El comando npx heroicons-mcp --stdio es el método recomendado para el modo stdio.

Herramientas disponibles (MCP)

Este servidor MCP expone las siguientes herramientas a los asistentes de codificación de IA:

  1. lista_todos_los_iconos

  • Descripción: Enumera todos los Heroicons disponibles, opcionalmente filtrados por estilo (contorno, sólido).

  • Parámetros: style (opcional: "contorno" | "sólido")

  1. iconos de búsqueda

  • Descripción: Busca Heroicons por nombre o palabras clave en todos los estilos.

  • Parámetros: query (cadena), style (opcional: "contorno" | "sólido")

  1. obtener_ejemplos_de_uso_de_iconos

  • Descripción: Recupera el uso de ejemplo de JSX para un ícono específico.

  • Parámetros: name (cadena), style (cadena: "contorno" | "sólido")

Ejemplo de uso

Así es como una herramienta de IA podría utilizar este servidor MCP:

  1. El usuario pide a la herramienta de IA : "Encuéntrame un ícono de 'usuario' de Heroicons, preferiblemente del estilo sólido".

  2. La herramienta de IA llama search_icons :

  • query : "usuario"

  • style : "sólido"

  1. El servidor MCP responde con una lista de Heroicons sólidos coincidentes (por ejemplo, UserIcon , UserCircleIcon , UserPlusIcon ).

  2. El usuario solicita a la herramienta : "Mostrar ejemplo de uso de UserIcon".

  3. La herramienta de IA llama a get_icon_usage_examples :

  • name : "Icono de usuario"

  • style : "sólido"

  1. El servidor MCP responde con el ejemplo de código JSX:

import { UserIcon } from "@heroicons/react/24/solid";

function Example() {
  return (
    <div>
      <UserIcon className="w-6 h-6 text-blue-500" />
    </div>
  );
}

Prueba de MCP localmente con Inspector

Puede probar el servidor MCP (modo stdio) localmente usando el Inspector MCP .

Primero, asegúrese de que el proyecto esté construido:

bun run build

Luego, inicie el Inspector y conéctelo a su servidor usando el comando node ./build/entry.js con el indicador --stdio :

npx @modelcontextprotocol/inspector node ./build/entry.js --stdio

Esto abrirá la interfaz del Inspector, lo que le permitirá probar de forma interactiva los recursos y las herramientas expuestos por su servidor MCP.

Scripts de desarrollo

  • bun run dev : inicia el servidor en modo HTTP para desarrollo (usa src/entry.ts ).

  • bun run dev:stdio : inicia el servidor MCP stdio para desarrollo (usa src/entry.ts --stdio ).

  • bun run build : Compila TypeScript a JavaScript (salida en build/ ).

  • bun run lint : limpia el código base usando ESLint.

Recursos

Licencia

Instituto Tecnológico de Massachusetts (MIT)

Available Tools

3 tools
get_icon_usage_examplesB

Get usage examples for an icon

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesIcon component name, e.g. BeakerIcon
styleYesIcon style: solid or outline

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but does not reveal any behavioral traits such as whether it's a read-only operation, potential rate limits, error conditions, or the format of returned examples. For a tool with no annotations, this is a significant gap, warranting a score of 2.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it easy for an agent to parse quickly. This optimal conciseness earns a score of 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 required parameters) and no output schema, the description is minimally adequate. It covers the basic purpose but lacks details on behavioral traits, usage context, and output format, which are important for an agent to use the tool effectively. Without annotations or an output schema, the description should do more, resulting in a score of 3.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with clear descriptions for both parameters ('name' and 'style'), including an enum for 'style'. The description does not add any meaning beyond what the schema provides, such as explaining how 'name' relates to icon components or providing examples of usage. Given the high schema coverage, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'usage examples for an icon', making the purpose understandable. However, it does not explicitly differentiate from sibling tools like 'list_all_icons' or 'search_icons', which might also involve icons but serve different functions. This clarity without sibling distinction justifies a score of 4.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as 'list_all_icons' or 'search_icons'. There is no mention of prerequisites, context, or exclusions, leaving the agent to infer usage based on the tool name alone. This lack of explicit guidelines results in a score of 2.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_all_iconsB

List all icons from the heroicons library, optionally filtered by style

ParametersJSON Schema
NameRequiredDescriptionDefault
styleNoIcon style: solid or outline (optional)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions listing and optional filtering but doesn't describe key behaviors such as pagination, rate limits, authentication requirements, or what the output format looks like (e.g., list of icon names, metadata). For a tool with no annotations, this leaves significant gaps in understanding how it operates.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('List all icons from the heroicons library') and adds an optional feature ('optionally filtered by style'). There is no wasted text, and it's appropriately sized for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (1 optional parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and parameter intent but lacks details on behavioral aspects like output format or usage constraints. For a listing tool, this is borderline acceptable but could be improved with more context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single parameter 'style' fully documented in the schema (including enum values 'solid' or 'outline'). The description adds minimal value beyond the schema by mentioning 'optionally filtered by style', which aligns with the schema but doesn't provide additional context like default behavior if omitted or how filtering is applied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and resource 'all icons from the heroicons library', which provides a specific purpose. However, it doesn't explicitly differentiate from sibling tools like 'search_icons' or 'get_icon_usage_examples', which likely have different functions (searching vs listing, or getting usage examples vs listing icons).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by mentioning 'optionally filtered by style', suggesting this tool is for listing icons with optional style filtering. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like 'search_icons' (which might allow more complex queries) or 'get_icon_usage_examples' (which focuses on examples rather than listing).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_iconsB

Search for icons from heroicons by name or category

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoCategory to filter by (optional)
limitNoMax results to return
queryYesSearch term for icon name or category
styleNoIcon style: solid or outline

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't mention rate limits, authentication needs, response format, pagination, or error handling. The description only states the basic functionality without operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero wasted words. It's appropriately sized for this tool's complexity and front-loads the core functionality without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with no annotations and no output schema, the description is minimally adequate. It covers the basic purpose but lacks details about return values, error conditions, and behavioral constraints that would be helpful for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters. The description adds minimal value by mentioning 'name or category' search, which aligns with the 'query' parameter but doesn't provide additional semantic context beyond what's in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Search for icons') and resource ('from heroicons'), specifying the search scope ('by name or category'). It distinguishes from 'list_all_icons' by implying filtering, but doesn't explicitly differentiate from 'get_icon_usage_examples'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus siblings is provided. The description implies filtering capabilities but doesn't specify scenarios where search_icons is preferred over list_all_icons or get_icon_usage_examples.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv1.0.0
    • First observedget_icon_usage_examples
    • First observedlist_all_icons
    • First observedsearch_icons

TDQS

A3.7/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: listing all icons, searching icons by criteria, and getting usage examples for a specific icon. There is no overlap in functionality, making it easy for an agent to select the right tool without confusion.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (get_icon_usage_examples, list_all_icons, search_icons) with clear, descriptive verbs. The naming is uniform and predictable across the set.

Tool Count5/5

With 3 tools, this server is well-scoped for its purpose of accessing a heroicons library. Each tool serves a distinct and essential function, making the count appropriate without being too thin or heavy.

Completeness5/5

The tool set provides complete coverage for the domain: listing icons, searching icons, and getting usage examples. This covers the core workflows for accessing and utilizing an icon library, with no obvious gaps or dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    MCP server for Hugeicons integration and documentation This is a TypeScript-based MCP server that provides tools and resources for integrating Hugeicons into various platforms. It implements a Model Context Protocol (MCP) server that helps AI assistants provide accurate guidance for using Hugeicons
    5
    2,051 npm
    26
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    MCP server that allows FE/UI/Designers to retrieve SVG icons via the Iconify API by simply asking LLMs rather than manually searching websites.
    3
    31 npm
    4
    MIT