Mouser Search

Servidor do Protocolo de Contexto de Modelo para a API de Pesquisa Mouser

Documentação

mouser-search-mcp

Servidor Model Context Protocol para a Mouser Electronics Search API.

Expõe a Mouser Search API como ferramentas MCP para que clientes compatíveis com MCP (Claude Code, Claude Desktop, etc.) possam consultar o catálogo de peças da Mouser.

Ferramentas

FerramentaEndpointO que faz
search_by_keywordPOST /api/v1/search/keywordPesquisa por palavra-chave em todo o catálogo (até 50 peças). Suporta paginação e filtros RoHS/em estoque.
search_by_part_numberPOST /api/v1/search/partnumberConsulta de 1 a 10 números de peça (separados por pipe), com correspondência exata opcional.
search_by_keyword_and_manufacturerPOST /api/v2/search/keywordandmanufacturerPesquisa por palavra-chave limitada a um fabricante pelo nome.
search_by_part_number_and_manufacturerPOST /api/v2/search/partnumberandmanufacturerConsulta de número de peça limitada a um fabricante pelo nome.
list_manufacturersGET /api/v2/search/manufacturerlistEnumera nomes de fabricantes (use o resultado para preencher o argumento manufacturer_name nas duas ferramentas filtradas por fabricante).

Pré-requisitos

Instalação

Usando uv (recomendado):

uv pip install -e .

Ou com pip:

pip install -e .

Configuração

O servidor lê a chave da API da variável de ambiente MOUSER_API_KEY. Copie .env.example para .env e preencha com sua chave, ou exporte-a no seu shell.

Execução

O servidor fala MCP via stdio:

MOUSER_API_KEY=... mouser-search-mcp

Uso com Claude Code

Registre o servidor (substitua o caminho e a chave):

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

Uso com Claude Desktop

Adicione a claude_desktop_config.json:

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

Se mouser-search-mcp não estiver no seu PATH, aponte command para o caminho absoluto do script (por exemplo, dentro do bin/ do seu venv).

Notas

  • A Mouser retorna no máximo 50 registros por resposta de pesquisa. Use records + starting_record (pesquisa por palavra-chave v1) ou records + page_number (pesquisa por palavra-chave + fabricante v2) para paginar.
  • search_options aceita None, Rohs, InStock ou RohsAndInStock — apenas um por vez.
  • part_search_options aceita None ou Exact.
  • Os endpoints de carrinho e pedido documentados pela Mouser exigem uma chave de API de Ordering e não são expostos por este servidor — ele cobre apenas pesquisa.

Lançamento

Versionamento e lançamentos são totalmente automatizados por python-semantic-release. Cada push para main executa .github/workflows/release.yml, que:

  1. Inspeciona os commits desde a última tag.
  2. Decide a próxima versão (ou não faz nada se não houver commits dignos de lançamento).
  3. Atualiza version em pyproject.toml, gera o changelog, faz commit e envia uma tag vX.Y.Z.
  4. Constrói wheel + sdist e os envia para o PyPI.
  5. Cria um GitHub Release com notas geradas automaticamente.

Gramática de commits

Os commits devem seguir Conventional Commits. A palavra-chave inicial decide o incremento de versão:

PrefixoIncrementoExemplo
feat:minorfeat: add list_manufacturers tool
fix:patchfix: handle empty Errors array
perf:patchperf: reuse httpx client
feat!: / BREAKING CHANGE: no corpomajorfeat!: rename tools
docs:, chore:, refactor:, test:, ci:, style:nenhum(sem lançamento)

Qualquer outra coisa é ignorada. Se você enviar uma enxurrada de commits pequenos, o semantic-release os agrupa em um único lançamento na próxima execução do workflow.

Configuração única

Estas etapas precisam ser feitas uma vez na interface do GitHub antes que o workflow possa publicar:

  1. Conta PyPI + token — crie uma conta PyPI e, na página de tokens de API, gere um token com escopo de conta (o projeto ainda não existe no PyPI, então não pode ter escopo de projeto no primeiro lançamento; redefina o escopo para mouser-search-mcp após a primeira publicação bem-sucedida).
  2. Segredo do repositório — no GitHub: Settings → Secrets and variables → Actions → New repository secret, nomeie PYPI_API_TOKEN e cole o valor do token.
  3. Permissões do workflow — Settings → Actions → General → Workflow permissions deve ser definido como Read and write permissions para que o semantic-release possa enviar o commit de incremento de versão e a tag.

Depois disso, basta mesclar para main com um commit feat: ou fix: e o resto acontece automaticamente. Para pular um lançamento, use um prefixo sem incremento (docs:, chore:, etc.) ou inclua [skip ci] na mensagem do commit.