Mouser Search

Servidor del Protocolo de Contexto de Modelo para la API de Búsqueda de Mouser

Documentación

mouser-search-mcp

Servidor del Protocolo de Contexto de Modelo para la API de Búsqueda de Mouser Electronics.

Expone la API de Búsqueda de Mouser como herramientas MCP para que clientes compatibles con MCP (Claude Code, Claude Desktop, etc.) puedan consultar el catálogo de piezas de Mouser.

Herramientas

HerramientaEndpointQué hace
search_by_keywordPOST /api/v1/search/keywordBúsqueda por palabras clave en todo el catálogo (hasta 50 piezas). Admite paginación y filtros de RoHS/disponibilidad en stock.
search_by_part_numberPOST /api/v1/search/partnumberConsulta de 1 a 10 números de pieza (separados por tubería), con coincidencia exacta opcional.
search_by_keyword_and_manufacturerPOST /api/v2/search/keywordandmanufacturerBúsqueda por palabras clave limitada a un fabricante por nombre.
search_by_part_number_and_manufacturerPOST /api/v2/search/partnumberandmanufacturerConsulta de número de pieza limitada a un fabricante por nombre.
list_manufacturersGET /api/v2/search/manufacturerlistEnumera nombres de fabricantes (usa el resultado para completar el argumento manufacturer_name en las dos herramientas filtradas por fabricante).

Requisitos previos

Instalación

Usando uv (recomendado):

uv pip install -e .

O con pip:

pip install -e .

Configuración

El servidor lee la clave de API de la variable de entorno MOUSER_API_KEY. Copia .env.example a .env y completa tu clave, o expórtala en tu terminal.

Ejecución

El servidor habla MCP a través de stdio:

MOUSER_API_KEY=... mouser-search-mcp

Uso con Claude Code

Registra el servidor (reemplaza la ruta y la clave):

claude mcp add mouser-search \
  --env MOUSER_API_KEY=your-key \
  -- mouser-search-mcp

Uso con Claude Desktop

Añade a claude_desktop_config.json:

{
  "mcpServers": {
    "mouser-search": {
      "command": "mouser-search-mcp",
      "env": {
        "MOUSER_API_KEY": "your-key"
      }
    }
  }
}

Si mouser-search-mcp no está en tu PATH, apunta command a la ruta absoluta del script (por ejemplo, dentro del bin/ de tu entorno virtual).

Notas

  • Mouser devuelve como máximo 50 registros por respuesta de búsqueda. Usa records + starting_record (búsqueda por palabras clave v1) o records + page_number (búsqueda por palabras clave + fabricante v2) para paginar.
  • search_options acepta None, Rohs, InStock o RohsAndInStock: solo uno a la vez.
  • part_search_options acepta None o Exact.
  • Los endpoints de carrito y pedidos documentados por Mouser requieren una clave de API de Pedidos y no están expuestos por este servidor: solo cubre búsqueda.

Publicación de versiones

El versionado y las publicaciones están totalmente automatizados por python-semantic-release. Cada push a main ejecuta .github/workflows/release.yml, que:

  1. Inspecciona los commits desde la última etiqueta.
  2. Decide la siguiente versión (o no hace nada si no hay commits que merezcan publicación).
  3. Actualiza version en pyproject.toml, genera el registro de cambios, hace commit y envía una etiqueta vX.Y.Z.
  4. Compila wheel + sdist y los sube a PyPI.
  5. Crea una Release de GitHub con notas generadas automáticamente.

Gramática de commits

Los commits deben seguir Conventional Commits. La palabra clave inicial decide el incremento de versión:

PrefijoIncrementoEjemplo
feat:menorfeat: add list_manufacturers tool
fix:parchefix: handle empty Errors array
perf:parcheperf: reuse httpx client
feat!: / BREAKING CHANGE: en el cuerpomayorfeat!: rename tools
docs:, chore:, refactor:, test:, ci:, style:ninguno(sin publicación)

Cualquier otra cosa se ignora. Si envías una ráfaga de commits pequeños, semantic-release los agrupa en una sola publicación en la siguiente ejecución del flujo de trabajo.

Configuración inicial

Estos pasos deben realizarse una vez en la interfaz de GitHub antes de que el flujo de trabajo pueda publicar:

  1. Cuenta de PyPI + token — crea una cuenta de PyPI y luego, en la página de tokens de API, genera un token con alcance de cuenta (el proyecto aún no existe en PyPI, por lo que no puede tener alcance de proyecto en la primera publicación; vuelve a asignarle alcance a mouser-search-mcp después de la primera publicación exitosa).
  2. Secreto del repositorio — en GitHub: Settings → Secrets and variables → Actions → New repository secret, nómbralo PYPI_API_TOKEN y pega el valor del token.
  3. Permisos del flujo de trabajo — Settings → Actions → General → Workflow permissions debe estar configurado en Read and write permissions para que semantic-release pueda enviar el commit de incremento de versión y la etiqueta.

Después de eso, solo haz merge a main con un commit feat: o fix: y el resto ocurre automáticamente. Para omitir una publicación, usa un prefijo sin incremento (docs:, chore:, etc.) o incluye [skip ci] en el mensaje del commit.