Skip to main content
Glama
mouser-mcp

mouser-mcp

@bradford-tech/mouser-mcp

An MCP server for the Mouser Electronics API: part search, BOM review, carts, order history and — opt-in — orders that are only placed after you type APPROVE into a confirmation prompt shown by the server. Built on @bradford-tech/mouser-sdk.

It runs locally over stdio with your own Mouser API keys. Works with Claude Code and Claude Desktop.

Install

You need a Mouser Search API key, and for carts, order history and ordering an Order API key. Request both from the Mouser API hub.

Claude Code:

claude mcp add mouser \
  --env MOUSER_SEARCH_API_KEY=your-search-key \
  --env MOUSER_ORDER_API_KEY=your-order-key \
  -- npx -y @bradford-tech/mouser-mcp

Claude Desktop: download mouser-<version>.mcpb from the latest release and open it. Desktop asks for the keys in its settings and stores them securely. Or add this to claude_desktop_config.json:

{
  "mcpServers": {
    "mouser": {
      "command": "npx",
      "args": ["-y", "@bradford-tech/mouser-mcp"],
      "env": {
        "MOUSER_SEARCH_API_KEY": "your-search-key",
        "MOUSER_ORDER_API_KEY": "your-order-key"
      }
    }
  }
}

Configuration

Variable

Purpose

MOUSER_SEARCH_API_KEY

Search tools.

MOUSER_ORDER_API_KEY

Cart, order information, order history and ordering tools. Optional; without it those tools explain what's missing.

MOUSER_ENABLE_ORDERS

Set to 1 to add the order placement tools. Off by default.

Requires Node 20 or newer.

Related MCP server: mouser-search-mcp

Tools

Area

Tools

Search

search_parts, get_parts (up to 200 part numbers, e.g. a BOM), list_manufacturers

Cart

get_cart, add_to_cart, update_cart_items, remove_from_cart, manage_scheduled_releases, create_cart_from_order

Order info

get_order_options, list_countries, list_currencies, get_order_history, get_order

Ordering (opt-in)

preview_order, submit_order

Things to know:

  • No parametric search. Mouser can't filter or sort by specifications (capacitance, voltage, price). Search by keyword; Claude filters the returned descriptions.

  • Price breaks. Mouser returns a handful of price breaks per part; quantities above the last break are priced at that break, not extrapolated. Each break has a display price string and a numeric rawPrice for arithmetic.

  • Search results are lighter than lookups. search_parts leaves out links, on-order dates and compliance codes to keep pages small; get_parts returns them.

  • Datasheet links come back only when Mouser's API provides them, and for many parts (e.g. TI and onsemi) it returns an empty value. The product page link always works and links the datasheet.

  • Dates are returned as Mouser sends them (e.g. 2026-11-06T00:00:00, no timezone).

  • Rate limits. Mouser allows 30 calls a minute and 1,000 a day. The server queues calls to stay under the per-minute limit (a 200-line BOM takes about a minute) and says so plainly when the daily limit is reached.

Placing orders

Ordering is off unless MOUSER_ENABLE_ORDERS=1. When on:

  1. Claude builds a cart, then calls preview_order. Mouser prices the order (lines, tax, shipping, total) without placing it. The preview is kept in memory for 20 minutes and can be submitted once.

  2. submit_order takes only the preview's ID. The server checks the cart hasn't changed, fetches fresh figures from Mouser, and shows its own confirmation prompt with the total. If the total changed since the preview, the prompt says so.

  3. The order is placed only if you type APPROVE into that prompt (any case; quotes and surrounding spaces are fine). Anything else — APPROV, yes, cancelling the prompt — cancels it, and that preview can't be used again.

Claude never sees or relays the confirmation word, so it can't approve an order on your behalf. The final charge is Mouser's figure at the moment of submission.

The confirmation prompt needs a client that supports MCP elicitation: Claude Code in interactive mode does; Claude Desktop and non-interactive runs (claude -p, the Agent SDK) don't yet, and submit_order refuses there without contacting Mouser. You can still build carts in any client and check out on mouser.com.

First live order (maintainers)

Order placement ships off by default until it has been verified against the live API:

  1. In interactive Claude Code with MOUSER_ENABLE_ORDERS=1, build a cart with one low-value part and call preview_order. Check the cart on mouser.com is unchanged and no order exists.

  2. Call submit_order. Confirm the prompt appears, shows the total, and that typing APPROV cancels it.

  3. Preview again, submit, type APPROVE. Confirm the order number matches mouser.com.

  4. Call submit_order again with the same preview ID and confirm it's refused.

Development

git clone https://github.com/bradford-tech/mouser-mcp.git
cd mouser-mcp
npm install
npm test
npm run build        # compile to dist/
npm run fix          # prettier + eslint auto-fix, then type-check
npm run live-check   # read-only calls against the real API (keys from a local .env)
bash scripts/pack-mcpb.sh   # build the Claude Desktop bundle (after npm run build)

License

MIT

Available Tools

14 tools
add_to_cartAdd parts to a Mouser cartA

Adds parts to a Mouser cart. Omit cartKey to start a new cart; the returned cartKey identifies it. Does not place an order.

Inputs: items (required), cartKey. Returns: items, cartKey, currency, itemCount, +1 more

create_cart_from_orderCreate a Mouser cart from a past orderA

Starts a new Mouser cart containing the parts of a past order, e.g. to reorder. Does not place an order.

Inputs: orderNumber (required). Returns: items, cartKey, currency, itemCount, +1 more

get_cartGet a Mouser cartB
Read-onlyIdempotent

Returns a Mouser cart's items, quantities, prices and merchandise total.

Inputs: cartKey (required). Returns: items, cartKey, currency, itemCount, +1 more

get_orderGet a Mouser orderB
Read-onlyIdempotent

Details of one Mouser order: lines, status, shipping and payment.

Inputs: orderNumber (required).

get_order_historyGet Mouser order historyA
Read-onlyIdempotent

Lists past Mouser orders. Give exactly one lookup: dateFilter (e.g. LastMonth), startDate and endDate together, salesOrderNumber, or webOrderNumber.

Inputs: endDate, startDate, dateFilter, webOrderNumber, +1 more.

get_order_optionsGet Mouser order optionsB
Read-onlyIdempotent

Shipping methods, payment methods, addresses, tax certificates and VAT accounts available for ordering a Mouser cart. Use the returned values when previewing an order.

Inputs: cartKey (required), currencyCode.

get_partsLook up Mouser parts by part numberA
Read-onlyIdempotent

Looks up one or many Mouser or manufacturer part numbers (up to 200, e.g. a BOM) and returns compact summaries: stock, lead time, lifecycle, RoHS, pricing, compliance and links. Part numbers that match nothing are listed in notFound. Lookups are batched 10 per Mouser call. datasheetUrl is included only when Mouser provides one, which it often doesn't; productUrl links to the Mouser page, which has the datasheet.

Inputs: partNumbers (required), exact, manufacturer. Returns: parts, failed, notFound

list_countriesList Mouser countriesB
Read-onlyIdempotent

Countries (and their states) Mouser ships to, optionally for one country code.

Inputs: countryCode.

list_currenciesList Mouser currenciesC
Read-onlyIdempotent

Currencies Mouser accepts, optionally for a shipping country code.

Inputs: shippingCountryCode.

list_manufacturersList Mouser manufacturersA
Read-onlyIdempotent

Mouser's manufacturer names, for the manufacturer argument of search_parts and get_parts. Filter with query (case-insensitive substring); at most 200 names are returned.

Inputs: query. Returns: truncated, manufacturers

manage_scheduled_releasesManage scheduled releases in a Mouser cartA
Destructive

Schedules future ship dates for parts in a Mouser cart. action add or update takes items with release dates and quantities; delete_all removes every scheduled release from the cart.

Inputs: action (required), cartKey (required), items. Returns: items, cartKey, currency, itemCount, +1 more

remove_from_cartRemove a part from a Mouser cartC
DestructiveIdempotent

Removes one part from a Mouser cart.

Inputs: cartKey (required), mouserPartNumber (required). Returns: items, cartKey, currency, itemCount, +1 more

search_partsSearch Mouser partsA
Read-onlyIdempotent

Keyword search of Mouser's catalog, optionally limited to one manufacturer and filtered to in-stock and/or RoHS-compliant parts. Returns the total match count and up to 50 compact part summaries per call; page with offset (with a manufacturer, offset must be a multiple of limit). Mouser has no parametric filtering or sorting (e.g. by capacitance, voltage or price), so filter by the returned descriptions.

Inputs: keyword (required), limit, filter, offset, +1 more. Returns: parts, totalResults

update_cart_itemsUpdate items in a Mouser cartB
Idempotent

Changes quantities or customer part numbers of parts already in a Mouser cart.

Inputs: items (required), cartKey (required). Returns: items, cartKey, currency, itemCount, +1 more

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 14 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: keyword catalog search versus exact part lookup, cart mutation operations, order retrieval, and reference-data lists are well separated. Even related tools like get_cart, add_to_cart, update_cart_items, and remove_from_cart target unambiguous actions.

    Naming Consistency5/5

    All tool names follow a consistent snake_case verb_noun pattern, such as search_parts, get_parts, add_to_cart, and get_order_history. There are no mixed conventions or vague standalone verbs.

    Tool Count5/5

    The 14 tools are well scoped for a Mouser purchasing workflow, covering search, part lookup, cart management, ordering metadata, and order history without excessive branching. Each tool appears to earn its place.

    Completeness4/5

    The surface covers catalog search, BOM-style part lookup, manufacturer discovery, cart creation/mutation, scheduled releases, order options, countries/currencies, and order history/details. Minor gaps remain around checkout/preview-order operations and clearing a cart, but the core workflows are well covered.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      A
      maintenance
      Enables searching and filtering over 1.5 million electronic components across JLCPCB, Mouser, and DigiKey using parametric queries and smart parsing. It supports finding alternative parts, accessing pinout data, and downloading KiCad footprints directly through AI coding assistants.
      14
      143
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Provides tools to search the Mouser Electronics parts catalog via keyword, part number, and manufacturer queries using the Mouser Search API.
      3
      MIT
    • A
      license
      A
      quality
      F
      maintenance
      A Model Context Protocol (MCP) server for the Mouser Electronics API. Enables searching electronic components, managing shopping carts, and tracking orders directly through Claude or other MCP clients.
      9
      5
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Searches electronic components across DigiKey and Mouser, enabling keyword search, part details, and merged offers with price comparison.
      4
      1
      MIT