mcpField
S
search-assets

search-assets

github.com/imagekit-developerクリエイティブ・メディア2443 回インストール3 週間前に更新
リポジトリ

search-assets について

search-assetsは、DAM内のファイルを探すためのLuceneフィルターを組み立てるスキルです。フィールドを推測せず、名前、タグ、フォルダー、ファイル属性、アカウント固有のメタデータを検索できます。

主な機能

  1. 01絞り込んだLucene検索条件の作成
  2. 02カスタムメタデータ項目とタグの確認
  3. 03フォルダー、ファイル種別、属性での絞り込み
  4. 04名前、タグ、埋め込みメタデータの検索
  5. 05検索結果の並べ替えとページ分割

活用シーン

  1. 01メタデータやタグでキャンペーン素材を検索
  2. 02寸法、形式、サイズからファイルを特定
  3. 03指定フォルダー内の検索
  4. 04日付や長さの条件に合う素材を取得

インストール

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

$npx skills add https://github.com/imagekit-developer/skills --skill search-assets

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

詳細

search_media_library searchQuery

DAM で search_media_library を、絞り込み条件を厳密に指定して呼び出してください。広範囲のページを取得して、コード内で絞り込まないでください。

推測する前にフィールドを確認する

アカウントごとに任意のカスタムメタデータフィールドが定義されています。ユーザーが入力する一般的な語句(「Nike」「summer campaign」「EMEA」「approved」など)は、フィールド名、選択肢、タグ、または単なるファイル名である可能性があります。"customMetadata.<name>" を決して作り出さないでください。

name または tags に指定する可能性のある説明的な語句ごとに、次の手順を実行してください。

  1. list_custom_metadata_fields を一度呼び出します。各フィールドの name、label、schema.selectOptions と語句を照合します(大文字と小文字は区別しません)。"customMetadata.<name>" には label ではなく、フィールドの name を使用してください。
  2. その語句を label として list_client_tags を呼び出します。タグが返された場合は、返されたタグの name をそのまま使い、tags IN [...] で絞り込みます。
  3. どちらの呼び出しでも一致しなかった場合に限り、name HAS "…" にフォールバックできます。リテラルなファイル名、拡張子、および「X という名前の/呼ばれる/タイトルの」と明示された語句には、この確認は不要です。

一致しなかった場合はコストがかからないため、フィールドを推測せず、該当するカスタムメタデータ条件を省略してください。「files」「show me」「assets」などの埋め草の語句は除外してください。

選択型:SingleSelect → = / IN、MultiSelect → IN / NOT IN。ユーザーが入力した表記より、返された selectOptions の値を優先してください。テキスト型 → = : HAS、数値型/日付型 → < <= > >=、ブール型 → 引用符なしの true / false を使った =。

入力

入力用途
searchQueryLucene フィルター(以下を参照)。
pathフォルダーの範囲。例:/products。
typefile / file-version / folder / all。searchQuery が省略された場合にのみ有効です。
fileTypeimage / non-image / all。
sortASC_/DESC_ + CREATED(デフォルトは ASC_CREATED)、UPDATED、NAME、SIZE、WIDTH、HEIGHT、DURATION、RELEVANCE、ORIGINAL_CREATION_DATE。HAS と組み合わせる場合は DESC_RELEVANCE を指定してください。*_ORIGINAL_CREATION_DATE は、予約済みフィールド _internal_original_created_datetime で並べ替えます。値がないファイルはアップロード時刻にフォールバックします。
limit / skipページサイズ(最大 1000)とオフセット。デフォルトのページサイズは 20 です。

単純なフォルダー範囲は path に、画像と非画像の区別は fileType に指定してください。searchQuery を指定する場合は、type を searchQuery に含めてください(type = "folder"、または (name HAS "logo") AND type = "folder")。その場合、type 引数は無視され、結果はデフォルトでファイルになります。

構文

  • 演算子: = : < <= > >= IN NOT IN NOT = HAS EXISTS NOT EXISTS
  • 結合: AND、OR。グループ化: ( ... )
  • 引用符: 文字列値は "二重引用符" で囲みます。数値とブール値(true / false)は引用符で囲みません。customMetadata / embeddedMetadata のフィールド名は引用符で囲む必要があります。例:"customMetadata.brand"。
  • : = 前方一致/サブフォルダー内。= = 完全一致。HAS = 大文字と小文字を区別しない全文検索(トークン化)。

フィールド

フィールド演算子値に関する注意
name= : IN NOT = NOT IN HAS= は完全一致(大文字と小文字を区別)、: は前方一致、HAS は大文字と小文字を区別しない全文検索
tagsIN NOT IN HAS EXISTS NOT EXISTStags と AITags の両方に一致します
type= IN NOT = NOT IN"file" | "file-version" | "folder"
id= IN NOT = NOT INfileId または folderId
createdAt / updatedAt= < <= > >= IN NOT = NOT INISO 8601 または相対値("1h" "2d" "3w" "4m" "1y")
width / height= < <= > >= IN NOT = NOT INピクセル単位。画像のみ
size= < <= > >= IN NOT = NOT INバイト数(1024)または "1mb" / "10kb"
videoDuration= < <= > >= IN NOT = NOT IN動画のみ。単位付きで引用符で囲みます:"30sec" "1.5min" "2hr"(または s/m/h)。単位のない数値は秒です
format= IN"jpg" "png" "webp" "gif" "svg" "avif" "pdf" "mp4" …
private / published / transparency=ブール値。引用符で囲みません
createdBy= IN NOT = NOT INアップロードしたユーザーのメールアドレス
path= : IN NOT = NOT IN= はフォルダーの完全一致、: はフォルダーとサブフォルダー
"customMetadata.<field>"型に依存フィールド名を引用符で囲みます。list_custom_metadata_fields で確認できます。予約済みの _internal_original_created_datetime(Date、ラベルは "Original creation date")は、この機能を有効にしているアカウントに限り reserved: true として一覧表示されます
"embeddedMetadata.<field>"型に依存DAM スキーマではなく、ファイルから取得します。Keywords は IN/EXISTS、DateTimeOriginal は日付演算子、LocationTaken は地理検索("40,100 5km")をサポートします

例

name HAS "red dress"
name = "red-dress.jpg"
name : "red-dress"
createdAt > "7d" AND size > "2mb"
tags IN ["sale", "summer"]
tags NOT EXISTS
format IN ["jpg", "webp"]
path : "/sales-banner/"
"customMetadata.brand" = "nike"
"customMetadata.Region" IN ["EMEA"]
"customMetadata.rating" > 4.3
"embeddedMetadata.DateTimeOriginal" > "1y"
videoDuration > "1min" AND format = "mp4"
"customMetadata._internal_original_created_datetime" < "2021-01-01"
(size < "1mb" AND width > 500) OR (tags IN ["summer-sale", "banner"])

ユーザーが「Nike のアセット」と言った場合 → list_custom_metadata_fields で brand と Nike を含む選択肢を確認 → "customMetadata.brand" = "Nike"。フィールドまたはタグに一致するものがある場合は、name HAS "Nike" で検索しないでください。

注意点

  • name の = / : は大文字と小文字を区別します。大文字と小文字を区別しない検索には HAS を使用してください。
  • tags の検索では tags と AITags の両方が対象になります。
  • HAS はスペースや句読点でトークンに分割します。最後のトークンは前方一致で照合されます。sort: DESC_RELEVANCE と組み合わせてください。
  • ブール値(private、published、transparency)は引用符で囲まず、文字列値は引用符で囲みます。
  • width / height / transparency は画像のみに適用され、videoDuration は動画のみに適用されます。単位は sec / min / hr であり、minutes / hours ではありません。
  • list_custom_metadata_fields が _internal_original_created_datetime を返す場合にのみ、ASC_ORIGINAL_CREATION_DATE / DESC_ORIGINAL_CREATION_DATE で並べ替えてください。それ以外の場合は *_CREATED を使用してください。
  • "customMetadata.<field>" は、アカウントで定義されているフィールドのみを照合します。トークン全体を引用符で囲んでください。
  • searchQuery が設定されている場合、type ツール引数は無視されます。代わりに、searchQuery に type = "folder"(または type IN [...])を指定してください。

コメント