Model Context Protocol server for the Mouser Electronics Search API
Server exposes 5 tools with complete input schemas and descriptions. All tools follow verb_noun naming (search_*, list_*) and have clear docstrings. However, descriptions lack LLM-optimization guidance (e.g., no 'when to use' context, no dependency hints between tools). Parameter descriptions are present but generic, many lack format constraints, valid value enumerations, or range limits. Output schemas are undocumented; LLMs cannot predict response structure for downstream chaining. Error handling is absent, no recovery guidance, no actionable error messages. Security is sound (API key injected server-side), but composition could be stronger (e.g., search_by_keyword_and_manufacturer and search_by_part_number_and_manufacturer duplicate logic).
Return the full list of manufacturer names known to the Mouser Search API (V2).
Search Mouser parts by keyword. Returns up to 50 parts per call. Args: keyword: Free-text search term (part number fragment, description, etc.). records: Number of records to return (max 50). starting_record: Offset into the result set for paging. search_options: Filter. One of "None", "Rohs", "InStock", "RohsAndInStock". search_with_signup_language: Search using the language tied to your API key. mouser_pays_customs_and_duties: If true, prices include Mouser-paid duties.
Search Mouser parts by keyword filtered to a specific manufacturer (V2). Args: keyword: Free-text search term. manufacturer_name: Exact manufacturer name. Use `list_manufacturers` to discover valid names. records: Number of records to return (max 50). page_number: 1-based page number (paging unit is `records`). search_options: One of "None", "Rohs", "InStock", "RohsAndInStock". search_with_signup_language: Search using the language tied to your API key. mouser_pays_customs_and_duties: If true, prices include Mouser-paid duties.
Search Mouser parts by part number. Up to 10 part numbers, pipe-separated. Args: mouser_part_number: One or more part numbers separated by `|`. Each part number must be 3-40 characters. Example: "494-JANTX2N2222A|610-2N2222-TL|637-2N2222A". part_search_options: One of "None" or "Exact" (exact-match only). mouser_pays_customs_and_duties: If true, prices include Mouser-paid duties.
Output schemas undocumented. LLMs cannot predict response structure (fields, types, pagination) for downstream tool chaining. Mouser API returns verbose JSON; no guidance on which fields to extract or how to handle pagination.
Parameter descriptions lack format constraints and enumerations. 'search_options' accepts 'None', 'Rohs', 'InStock', 'RohsAndInStock' but is typed as free-form string, LLMs may hallucinate invalid values. Should be enum or include explicit constraint in description.
No error handling or recovery guidance. If API returns 400 (invalid keyword), 401 (bad API key), or 429 (rate limit), LLM receives raw error with no actionable next step. Should return structured errors with retry guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Search Mouser parts by part number filtered to a manufacturer (V2). Args: mouser_part_number: One or more part numbers separated by `|`. Each part number must be 3-40 characters. manufacturer_name: Exact manufacturer name. Use `list_manufacturers` to discover valid names. part_search_options: One of "None" or "Exact" (exact-match only). mouser_pays_customs_and_duties: If true, prices include Mouser-paid duties.
Composition: search_by_keyword_and_manufacturer and search_by_part_number_and_manufacturer duplicate logic from keyword/part_number variants. Consider consolidating or clarifying when to use each. LLMs may struggle to choose between overlapping tools.
Descriptions lack 'when to use' context and dependency hints. E.g., search_by_keyword_and_manufacturer says 'Use list_manufacturers to discover valid names' but does not explain when to prefer this over search_by_keyword. LLMs need explicit guidance.