{"name":"io.github.JPMarhefka/partuno","slug":"jpmarhefka-partuno","title":"Partuno — DigiKey & Mouser MCP Server","description":"DigiKey and Mouser MCP server for component research, BOM analysis, and sourcing.","url":"https://mcp.market/server/jpmarhefka-partuno","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":34,"stars":7,"forks":1,"downloads_week":32,"last_push_at":"2026-10-29T03:54:22.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/JPMarhefka/Partuno","website":"https://github.com/JPMarhefka/Partuno","version":"4.0.1","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"partuno","version":"4.0.1","runtimeHint":"uvx","transport":{"type":"stdio"},"packageArguments":[{"isRequired":true,"value":"partuno-mcp","type":"positional"}],"environmentVariables":[{"description":"Optional DigiKey bearer token for local mode.","isSecret":true,"name":"DIGIKEY_ACCESS_TOKEN"},{"description":"DigiKey OAuth client ID for the operator's integration.","isSecret":true,"name":"DIGIKEY_CLIENT_ID"},{"description":"DigiKey OAuth client secret for the operator's integration.","isSecret":true,"name":"DIGIKEY_CLIENT_SECRET"},{"description":"Optional Mouser Search API key for catalog workflows.","isSecret":true,"name":"MOUSER_SEARCH_API_KEY"},{"description":"Optional Mouser Account API key for order-history and Cart workflows.","isSecret":true,"name":"MOUSER_ACCOUNT_API_KEY"}]}],"tools":[{"name":"add_parts_to_mylist","description":"Add approved products, packaging, and quantities to a DigiKey MyList.","write_action":false,"price_micros":0,"input_schema":null},{"name":"add_products_to_quote","description":"Add explicitly approved product quantities to a DigiKey quote.","write_action":false,"price_micros":0,"input_schema":null},{"name":"analyze_bom","description":"Analyze a BOM for cost, stock, lifecycle, lead time, compliance, PCNs, alternate packaging, and substitutes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"audit_lifecycle","description":"Audit a BOM or MyList for end-of-life risk, last-buy dates, shortages, long lead times, PCNs, and substitutes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"batch_decode_barcodes","description":"Decode a batch of DigiKey barcodes and total received quantities by product number.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compare_barcodes_to_mylist","description":"Compare scanned received quantities against the required quantities in a DigiKey MyList.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compare_component_offers","description":"Compare strict manufacturer-plus-MPN matches at requested quantities across DigiKey and Mouser.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_mylist","description":"Create a DigiKey MyList after the user approves the exact name.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_quote","description":"Create an empty DigiKey quote after explicit approval.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_quote_from_source","description":"Create and populate a quote from an explicitly approved BOM or MyList. The request must contain confirm=true.","write_action":true,"price_micros":0,"input_schema":null},{"name":"decode_barcode","description":"Decode a DigiKey product-bag or packing-list 1D or 2D barcode.","write_action":false,"price_micros":0,"input_schema":null},{"name":"delete_mylist","description":"Permanently delete a DigiKey MyList after identifying it and obtaining explicit approval.","write_action":true,"price_micros":0,"input_schema":null},{"name":"diff_mylist","description":"Dry-run a proposed BOM against a MyList and show additions, updates, removals, duplicates, and unchanged rows.","write_action":false,"price_micros":0,"input_schema":null},{"name":"execute_mouser_cart_change","description":"Execute only the exact, unexpired Mouser cart preview bound to the supplied one-time token.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_alternate_packaging","description":"Get alternate packaging for the same component.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_associated_accounts","description":"Get DigiKey Account IDs associated with the authenticated login.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_category","description":"Get one DigiKey category and its parametric-search context.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_digireel_pricing","description":"Calculate DigiReel pricing for a requested quantity.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_mouser_cart","description":"Read one Mouser cart. This does not modify the cart.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_mouser_order","description":"Read one Mouser order by sales-order number or web-order number.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_mylist","description":"Get one DigiKey MyList.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_mylist_parts","description":"Get every MyList part; compact is bounded and default, while full preserves the raw DigiKey shape.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_pricing_by_quantity","description":"Compare exact, effective-MOQ, BetterValue, and maximum-order options; parent availability remains distinct from package stock.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_product_associations","description":"Get associated products and accessories.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_product_change_notifications","description":"Get PCNs with raw API dates and additive description-date diagnostics.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_product_details","description":"Get current specifications, inventory, lifecycle, classifications, variations, and account pricing for one product.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_product_media","description":"Get a product's datasheets, images, documents, and video links.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_product_pricing","description":"Get current pricing and packaging variations for one DigiKey product.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_quote","description":"Get one DigiKey quote's metadata.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_quote_products","description":"Get the products and locked pricing in a DigiKey quote.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_recommended_products","description":"Get DigiKey recommendations; explicit filters rejected with 404/500 are retried once without filters and marked.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_sales_order","description":"Get shipment, tracking, backorder, and line-item status for one DigiKey sales order.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_substitutions","description":"Find replacement products with the requested limit enforced upstream and locally.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_categories","description":"Get the DigiKey product category tree and category IDs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_manufacturers","description":"List a bounded page of DigiKey manufacturers and their manufacturer IDs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_mylists","description":"List the authenticated user's DigiKey MyLists.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_quotes","description":"List DigiKey quotes for an account.","write_action":false,"price_micros":0,"input_schema":null},{"name":"lookup_packing_list","description":"Retrieve packing-list information by invoice, sales order, or purchase order number.","write_action":false,"price_micros":0,"input_schema":null},{"name":"optimize_bom_pricing","description":"Optimize BOM pricing across package choices; unpriceable alternate packages are isolated in candidate diagnostics.","write_action":false,"price_micros":0,"input_schema":null},{"name":"preview_mouser_cart_change","description":"Read current cart state and preview an exact add, update, remove, replacement, order-copy, or schedule diff.","write_action":false,"price_micros":0,"input_schema":null},{"name":"recommend_components","description":"Find project candidates after critical requirements are known; return pass/fail/unknown evidence and a Pareto shortlist.","write_action":false,"price_micros":0,"input_schema":null},{"name":"remove_mylist_part","description":"Permanently remove one identified part from a DigiKey MyList after explicit approval.","write_action":true,"price_micros":0,"input_schema":null},{"name":"rename_mylist","description":"Rename a DigiKey MyList after the user approves the exact change.","write_action":false,"price_micros":0,"input_schema":null},{"name":"research_product","description":"Get product details plus optional enrichments; partial failures are returned under errors without discarding successful results.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_mouser_order_history","description":"Read the authenticated deployment's Mouser order history by filter or date range.","write_action":true,"price_micros":0,"input_schema":null},{"name":"search_mouser_products","description":"Search Mouser catalog data, availability, lifecycle, compliance, and price breaks. Shipping is unavailable.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_orders","description":"Search the authenticated user's DigiKey orders by date.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_products","description":"Search DigiKey with native filters; a marked fallback removes explicitly non-matching tariff or Marketplace variations only when DigiKey returns them.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sync_mylist","description":"Apply an explicitly approved MyList diff. The request must contain confirm=true.","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_mylist_part","description":"Update an approved MyList part while preserving every field omitted from the request.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-11-03T23:30:42.807Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-03T23:30:42.776Z","components":{"code":{"score":25,"max":25,"notes":["19 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 6 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"partuno","version":"4.0.1","found":true,"weeklyDownloads":32,"dependencyCount":6,"publishedAt":"2026-08-12T22:10:45.996591Z","repositoryUrl":"https://github.com/JPMarhefka/Partuno"}],"repo":{"found":true,"owner":"JPMarhefka","repo":"Partuno","archived":false,"pushedAt":"2026-10-29T03:54:22Z","stars":7,"forks":1,"openIssues":6,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/37427123?v=4","ownerCreatedAt":"2018-03-16T01:53:14Z","license":"Apache-2.0"},"icon":{"url":"https://raw.githubusercontent.com/JPMarhefka/Partuno/main/docs/assets/partuno-plugin-icon.png","source":"registry","width":64,"height":64},"presence":{"stars":7,"forks":1,"downloadsWeek":32,"license":"Apache-2.0","lastPushAt":"2026-10-29T03:54:22.000Z","score":34}}}},"grade_history":[],"reviews":[]}