mcpField
M
mouser

mouser

github.com/aklofasその他1.5k499 回インストール5 日前に更新
リポジトリ

mouser について

mouser は Mouser Search API またはウェブ検索で部品を探し、仕様、価格、在庫、ライフサイクル情報を取得するスキルです。回路図や MPN リストから PDF を同期でき、ダウンロード制限には複数の取得元で対応します。

主な機能

  1. 01キーワード、MPN、メーカーで検索
  2. 02仕様、価格、在庫の取得
  3. 03ライフサイクルと代替品の確認
  4. 04回路図や MPN リストから PDF を同期
  5. 05複数のデータシート取得元を試行

活用シーン

  1. 01DigiKey の在庫切れ時に別の調達先を検索
  2. 02部品価格、在庫、注文条件を比較
  3. 03KiCad プロジェクト用のデータシートを同期

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aklofas/kicad-happy --skill mouser

インストール後、Claude Code で/mouserを入力して読み込まれたか確認します。

同梱ファイルscripts/fetch_datasheet_mouser.pyscripts/sync_datasheets_mouser.py

詳細

Mouser Electronics の部品検索と分析

関連スキル

スキル目的
kicad回路図の分析 — 部品検索用にMPNを抽出します
bomBOM管理 — 販売代理店間の調達を調整します
digikey試作向けの主要調達先(データシートでは直接PDFリンクがあるため優先します)
spiceMouserのパラメトリックデータを使用して、動作SPICEモデルを作成します

Mouserは試作注文向けの二次調達先です。DigiKeyが在庫切れの場合、または価格が高い場合に使用してください。量産注文については、lcsc/jlcpcbを参照してください。BOM管理とエクスポートのワークフローについては、bomを参照してください。データシートについては、DigiKeyのAPI(直接PDFリンクあり)を優先してください。Mouserは自動化されたPDFダウンロードをブロックします。

API認証情報の設定

MouserはシンプルなAPIキー認証を使用します。OAuth、トークン、コールバックURLは不要です。Search APIキーはUUIDで、クエリパラメーターとして渡します。

APIキーの取得
  1. mouser.comにアクセスし、My Mouser → My Accountを開きます
  2. 「APIs」セクションで「Manage」をクリックします
  3. Search APIキーに登録します。部品検索とデータシートのダウンロードに必要なのはこのキーです
  4. Search APIキーには承認が必要な場合があります(最初はステータスが「pending authorization」と表示されます)
認証情報の設定

スクリプトを実行する前に、環境変数を設定してください:

export MOUSER_SEARCH_API_KEY=your-search-api-key-uuid

認証情報が一元管理されたシークレットファイル(例:~/.config/secrets.env)に保存されている場合は、まず読み込んでください:

export $(grep -v '^#' ~/.config/secrets.env | grep -v '^$' | xargs)

Mouser Search APIリファレンス

すべての検索エンドポイントでは、Search APIキーをクエリパラメーターとして使用します:?apiKey=<key>。すべてのPOSTリクエストで、Content-Typeはapplication/jsonです。

V1エンドポイント
キーワード検索
POST /api/v1/search/keyword?apiKey=<key>
{
  "SearchByKeywordRequest": {
    "keyword": "100nF 0402 ceramic capacitor",
    "records": 50,
    "startingRecord": 0,
    "searchOptions": "InStock"
  }
}
  • searchOptions:"None" | "Rohs" | "InStock" | "RohsAndInStock"
  • records:リクエストあたり最大50件
  • startingRecord:ページネーション用のオフセット
部品番号検索
POST /api/v1/search/partnumber?apiKey=<key>
{
  "SearchByPartRequest": {
    "mouserPartNumber": "GRM155R71C104KA88D|RC0402FR-0710KL",
    "partSearchOptions": "Exact"
  }
}
  • 最大10個の部品番号をパイプ区切り(|)で指定します
  • Mouserの部品番号とメーカー部品番号(MPN)の両方に対応します
  • partSearchOptions:"Exact" | "BeginsWith" | "Contains"
V2エンドポイント

V2では、メーカーによる絞り込みとページ番号によるページネーションが追加されています。

キーワードとメーカーによる検索
POST /api/v2/search/keywordandmanufacturer?apiKey=<key>
{
  "SearchByKeywordMfrNameRequest": {
    "keyword": "LMR51450",
    "manufacturerName": "Texas Instruments",
    "records": 25,
    "pageNumber": 1,
    "searchOptions": "InStock"
  }
}

注:ラッパーオブジェクト名はSearchByKeywordMfrNameRequestです(SearchByKeywordMfrRequestではありません。V1の名前は非推奨です)。

部品番号とメーカーによる検索
POST /api/v2/search/partnumberandmanufacturer?apiKey=<key>
メーカー一覧
GET /api/v2/search/manufacturerlist?apiKey=<key>

絞り込み検索で使用するメーカー名の全リストを返します。

V1の非推奨エンドポイント

引き続き動作しますが、V2の同等エンドポイントを推奨します:

  • POST /api/v1/search/keywordandmanufacturer → V2を使用
  • POST /api/v1/search/partnumberandmanufacturer → V2を使用
  • GET /api/v1/search/manufacturerlist → V2を使用

検索レスポンスの構造

すべての検索エンドポイントは同じ形式のレスポンスを返します:

{
  "Errors": [],
  "SearchResults": {
    "NumberOfResult": 142,
    "Parts": [...]
  }
}
主要な部品フィールド
フィールド型説明
MouserPartNumberstringMouser の内部部品番号(81-GRM155R71C104KA88 など、プレフィックス付き)
ManufacturerPartNumberstringメーカーの部品番号(MPN)。販売代理店をまたいだ照合に使用します
Manufacturerstringメーカー名
Descriptionstring製品の説明
Categorystring製品カテゴリ
DataSheetUrlstringデータシート PDF の URL(Mouser がホスト。データシートのセクションを参照)
ProductDetailUrlstringMouser の製品ページの URL
ImagePathstring製品画像の URL
Availabilitystring人が読める在庫状況のテキスト(例:"2648712 In Stock")
AvailabilityInStockstring数値形式の在庫数量(文字列)
AvailabilityOnOrderarray入荷予定在庫:[{Quantity, Date}]
LeadTimestring工場のリードタイム(例:"84 Days")
LifecycleStatusstring|null"New Product"、"End of Life" など
IsDiscontinuedstring"true" または "false"(文字列であり、ブール値ではありません)
SuggestedReplacementstring販売終了品の代替品の MPN
Minstring最小注文数量(文字列)
Multstring注文単位数(文字列)
Reelingboolテープ&リール梱包の有無
ROHSStatusstringRoHS 準拠状況
PriceBreaksarray数量別価格:[{Quantity, Price, Currency}]
ProductAttributesarrayパラメトリック仕様:[{AttributeName, AttributeValue}]
AlternatePackagingsarray|null代替梱包品の MPN:[{APMfrPN}]
SurchargeMessagesarray関税/追加料金情報:[{code, message}]
ProductCompliancearrayHTS コード、ECCN:[{ComplianceName, ComplianceValue}]
UnitWeightKgobjectkg 単位の {UnitWeight: <float>}
注意点と落とし穴
  • 価格は通貨記号付きの文字列です:"$0.10" であり、浮動小数点数ではありません。比較する前に解析してください。
  • 在庫数は文字列です:AvailabilityInStock は 2648712 ではなく "2648712" を返します。
  • IsDiscontinued は文字列です:ブール値ではなく、"true" または "false" です。
  • Mouser の部品番号にはプレフィックスが付いています:81-GRM155R71C104KA88 のプレフィックスは Mouser 固有です。相互参照には ManufacturerPartNumber を使用してください。
  • V2 のラッパー名は V1 と異なります:V2 では SearchByKeywordMfrRequest ではなく SearchByKeywordMfrNameRequest を使用します。
  • 関税情報:SurchargeMessages に米国の関税率が含まれる場合があり、コストの見積もりに役立ちます。
  • 注文済み在庫データ:AvailabilityOnOrder には、入荷予定の在庫数量と予定日が示されます。

データシートのダウンロードと同期

Mouser の DataSheetUrl フィールドは、Mouser がホストする URL(mouser.com/datasheet/...)を示します。これらの URL は自動ダウンロードをブロックします。ブラウザーの User-Agent ヘッダーを指定しても、Python/curl/wget で取得すると HTML の「Access denied」ページが返されます。ダウンロードスクリプトは、複数の方法を使ってこの問題に対処します。

  1. Mouser のデータシート URL を直接試す(一部の部品では機能します)
  2. Mouser の製品ページの HTML を解析し、代替のデータシートリンクを探す
  3. メーカー固有の代替 URL パターンを試す

注:Mouser の製品ページは自動リクエストのほとんどに 403 を返すため、方法 2 の成功率は限られます。データシートの入手先としては、DigiKey と LCSC のほうが信頼性があります。

データシートディレクトリの同期

sync_datasheets_mouser.py を使って、KiCad プロジェクトと同じ階層にある datasheets/ ディレクトリを管理します。DigiKey スキルと同じワークフローおよび manifest.json の形式です。

# Sync datasheets for a KiCad project
python3 <skill-path>/scripts/sync_datasheets_mouser.py <file.kicad_sch>

# Preview what would be downloaded
python3 <skill-path>/scripts/sync_datasheets_mouser.py <file.kicad_sch> --dry-run

# Retry previously failed downloads
python3 <skill-path>/scripts/sync_datasheets_mouser.py <file.kicad_sch> --force

# Custom output directory
python3 <skill-path>/scripts/sync_datasheets_mouser.py <file.kicad_sch> -o ./my-datasheets

# Parallel downloads (3 workers)
python3 <skill-path>/scripts/sync_datasheets_mouser.py <file.kicad_sch> --parallel 3

# Batch mode — sync from a plain MPN list (no KiCad project required)
python3 <skill-path>/scripts/sync_datasheets_mouser.py --mpn-list mpns.txt --output ./datasheets

MPN リストの一括処理モード(KH-312) — MPN のリストはあるものの、参照する KiCad プロジェクトがない場合に使用します(ハーネス用のデータシートの準備、部品ライブラリへの一括登録など)。1 行に 1 つの MPN を記述します。空行と # コメント(行全体およびインライン)はスキップされ、一般的な値(100nF、DNP)は is_real_mpn() で除外され、重複も削除されます。--output を省略した場合、出力先は現在の作業ディレクトリにある ./datasheets/ です。

レート制限 — スクリプトは、デフォルトでリクエスト間に 1.0 秒の間隔を設けて API 呼び出しを調整します(Mouser の Search API は無料プランで 1 分あたり 30 回まで利用でき、1.0 秒の間隔なら十分に制限内に収まります)。上位プランのキーを使用する場合や、さらに遅くしたい場合は、--delay <seconds> で変更できます。

単一データシートのダウンロード

1 件だけダウンロードする場合は、fetch_datasheet_mouser.py を使用します。

# Search by MPN (uses Mouser API)
python3 <skill-path>/scripts/fetch_datasheet_mouser.py --search "TPS61023DRLR" -o datasheet.pdf

# Direct URL download
python3 <skill-path>/scripts/fetch_datasheet_mouser.py "https://example.com/datasheet.pdf" -o datasheet.pdf

# JSON output
python3 <skill-path>/scripts/fetch_datasheet_mouser.py --search "ADP1706" --json
ダウンロード戦略

スクリプトは、以下のソースを順に試します。

  1. 回路図の URL — KiCad シンボルに埋め込まれたデータシート URL を使用します(同期のみ)。
  2. Mouser API 検索 — API レスポンスから DataSheetUrl を取得します。
  3. メーカーの代替ソース — Mouser の URL がブロックされた場合、主要メーカー(TI、Microchip など)の既知の URL パターンを試します。
  4. ヘッドレスブラウザーによるフォールバック — playwright がインストールされている場合、最後の手段としてヘッドレス Chromium を使用します。

すべての方法で失敗した場合は、ユーザーに ProductDetailUrl を提示し、ブラウザーで Mouser の製品ページからダウンロードできるようにします。

Web 検索によるフォールバック

API キーを利用できない場合は、製品ページを直接取得して Mouser を検索します。

  • 検索 URL:https://www.mouser.com/c/?q=<query>
  • 製品ページには、詳細な仕様、価格帯、在庫、データシートが掲載されています。
  • Mouser の検索結果には、ノイズが含まれることがあります(JavaScript を多用したページ)。

クエリには主要なパラメーターを含めてください。

  • 受動部品:値、パッケージ(0402/0603/0805)、許容差、電圧/電力定格、誘電体(C0G/X7R)
  • IC:型番または機能、パッケージ(QFN/SOIC/TSSOP)、主要な仕様(電圧、電流、インターフェース)
  • コネクター:種類(USB-C、JST-PH)、ピン数、ピッチ、実装方法(SMD/THT)、向き

ヒント

  • PartNumber 検索では、最大 10 個の部品番号を | で区切って入力すると、一括検索できます。
  • Min フィールドと Mult フィールドは重要です。最低注文数量が設定されている部品や、指定された数量の倍数で注文する必要がある部品があります。
  • SurchargeMessages に米国の関税率が含まれる場合があります。コストの見積もりに反映してください。
  • AvailabilityOnOrder には、入荷予定日付きの入荷予定在庫が表示されます。
  • 部品を選定する前に、IsDiscontinued と LifecycleStatus を確認してください。

コメント