where-my-hug について
where-my-hugは、機械学習タスクに使えるHugging Faceのモデルやデータセットをエージェントが探し、各工程を利用・ファインチューニング・学習・コード実装に分類します。ハードウェア、ライセンス、技術スタック、データに基づいて選定する開発者向けで、候補をその場で検証します。
主な機能
- 01機械学習の要件を工程に分解
- 02Hugging Faceのモデルとデータセットを検索
- 03USE、TUNE、TRAIN、WRITEに分類
- 04実行とファインチューニングのメモリを推定
- 05ライセンスや状態、利用上の注意を表示
活用シーン
- 01手書き認識モデルを探す
- 02カメラ映像の鳥検出モデルを計画
- 03レシート情報抽出に使えるモデルを評価
MCP 対応
MCPサーバーを通じて、要件分析、Hugging Face検索、候補の検証を提供します。MCPクライアントから接続でき、Agent Skillとしても利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 2 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| data | string | いいえ | 利用可能、または用意できるトレーニングデータ。例:"none"、"about 300 labeled photos" |
| need | string | はい | ML のニーズを平易な言葉で説明します。入力、期待する出力、用途を記述してください |
| stack | string | いいえ | モデルを呼び出す側の情報:言語、ランタイム、フレームワーク |
| compute | string | いいえ | モデルの実行または学習に必要なハードウェア。例:"one 24 GB GPU"、"CPU only"。サイズ判定では、最初に現れる "N GB" をモデルが収まる必要のあるメモリ容量として扱います |
| license | string | いいえ | 結果の使用目的。例:"commercial, closed source"、"research only" |
詳細
Where My Hug At?
AI エージェントに、モデルに何をさせたいか伝えてください。Hugging Face を検索して作業の各部分を調べ、すでにそこに存在するものをお知らせします。ぴったり合うもの、ファインチューニングするもの、トレーニングするもの、単なるコードでよいものがわかります。提示するモデルはすべて実在し、最新で、お使いのハードウェアに適したサイズです。
Claude Code、Codex、Copilot、Cursor、Gemini CLI、Cline、Devin、Open WebUI、その他の MCP クライアントで動作するほか、エージェントスキルとしても使えます。
関連ツールのGit for Me!は、GitHub、GitLab、Codeberg 上のオープンソースリポジトリについて、同じことを行います。
目次
- 試してみる
- 仕組み:4つの質問 · 作業の分割 · 検索 · 判定 · 最新情報の確認 · フラグ · サイズ
- 例:レシピカード
- インストール(すべてのエージェント向けの手順:USAGE.md)
- お使いのマシンから送信される情報 · 制限事項 · セキュリティ
- 開発 · ライセンス
試してみる
エージェントに追加します(ここでは Claude Code を使用します。その他すべての方法は以下を参照してください)。
claude mcp add --scope user where-my-hug -- npx -y where-my-hug
次に、こう尋ねてください。
手書きのレシピカードを文字起こしするには、どんなモデルがいい?
エージェントは、推測できないことをいくつか尋ね、作業を部分ごとに分けて、以下の例のようなレポートを返します。レポートに含まれるモデルやデータセットは、直前に Hugging Face で調べたものです。モデルが担える作業なら何でも対応できます。
餌台のカメラを訪れる鳥を見分けるには、どんなモデルがいい?
サポートメールを緊急度ごとに分類するには、どんなモデルがいい?
スキャンしたレシートから合計金額を取り出すには、どんなモデルがいい?
仕組み
1. まず4つの質問
「手書きを読み取るモデル」と尋ねるだけでは、人気のあるものが提示されます。GPUには大きすぎたり、成果物の配布に使えないライセンスだったり、コードで読み込めない形式だったりすることがよくあります。そのため、モデルを提示する前に、まず4つの詳細を確認します。エージェントは会話やコードベースからすでにわかることを補い、残りを尋ねます。
| 質問内容 | 判断できること | |
|---|---|---|
| 計算資源 | どこで実行し、必要であればどこでトレーニングしますか? 24 GB の GPU 1台、CPU のみ、スマートフォン、レンタル GPU | 使用できるモデルのサイズと、そもそもファインチューニングが可能かどうか |
| ライセンス | 成果物をどのような用途に使用できますか? 商用、オープンソース、個人利用 | 使用可能なライセンス |
| スタック | どのような環境からモデルを呼び出しますか? Python サービス、Node、ブラウザー、モバイルアプリ | 使用可能な重みの形式 |
| データ | トレーニングデータはありますか。または用意できますか? なし、ラベル付き写真が約300枚、さらに収集可能 | ファインチューニングやトレーニングが現実的かどうか |
「まだわかりません」でも大丈夫です。その場合は幅広い選択肢が提示され、すべてのモデルについて必要なメモリが表示されるので、レポートを参考に判断できます。
2. 作業を分割する
エージェントは、必要な作業をそれぞれ入力と出力のある部分(写真 → テキスト、テキスト → フィールド)に分けます。モデルの仕事ではない部分(ルール、幾何計算、解析、検索)は WRITE と表示されます。これはコードで正確に実行できます。ほとんどの作業には、そうした部分が1つあります。コードで正確にできる処理をモデルに任せるのは、利点ではなくコストです。
3. 各パーツについて Hugging Face を検索する
エージェントが Hugging Face について記憶している内容は、トレーニング時点のもので、ニッチな情報を見落とします。そのため、記憶から選ぶことはありません。それ以外の各パーツについて、エージェントは検索クエリ(Hub のタスクタグ、いくつかのキーワード、数語で表した用途)を書き、次の4つの方法で検索します。
| 方法 | 見つかるもの |
|---|---|
| タスク別のダウンロード数上位 | 実績のあるもの |
| タスク別のトレンド | エージェントのトレーニング後にリリースされたモデルを含む、新しいもの |
| 各キーワードを含む名前 | ファインチューニングモデルやニッチなモデル |
| モデルカードとデータセットカードの本文 | カードに書かれた内容に基づくニッチな情報。ウェブ検索のような検索です |
検索方法ごとに順番に結果へ反映されるため、ニッチなファインチューニングモデルが、タスクで人気のあるモデルに埋もれることはありません。
4. 見つかった情報から各パーツを決める
| 判定 | 意味 |
|---|---|
| USE | 検索で見つかったモデルが、そのままこの用途に使えます。 |
| TUNE | 近いものがあるため、ファインチューニングします。できれば検索で見つかったデータセットを使います。 |
| TRAIN | 近いものが見つからないため、見つかったデータセットを初期データとしてモデルをトレーニングします。 |
| WRITE | モデルの役割ではないため、コードを記述します。 |
エージェントは、タスク、カード、ダウンロード数、経過年数など、各結果に記載された情報をもとに判断します。検索で見つからなかった、エージェントが知っているモデルを追加することもありますが、その場合は検索で見つかった候補より下位に順位付けされ、レポートには 記憶から と記されます。
5. すべての候補を確認する
すべての候補を Hugging Face でリアルタイムに検索します。存在しない候補は除外し、エージェントはほかの候補を探すために再び検索します。残った候補には、後で問題になりそうな点のフラグを付け、利用可能な計算リソースに照らして規模を評価し、その結果をレポートとして表示します。検索で見つかったものの選ばれなかった候補も一覧表示するため、検索結果が隠されることはありません。検索でモデルが見つかった TRAIN パーツについては、モデルをトレーニングする前に、見つかったモデルを確認するよう案内します。レポート内のすべての情報(ライセンス、サイズ、ダウンロード数、更新状況)は Hugging Face から取得します。
内部では、3つのツールを備えた MCP サーバーが動作します。手順1、2、4を担当する where_my_hug、手順3を担当する where_my_hug_search、手順5を担当する where_my_hug_verify です。
フラグ
| フラグ | 条件 |
|---|---|
| UNCHECKED | Hugging Face から応答がありませんでした(ダウン中、またはレート制限中)。ID は保持され、次回に再度確認されます。 |
| GATED | ダウンロードする前に、Hugging Face で利用規約に同意する必要があります。 |
| NO_LICENSE | カードにライセンスが記載されていません。 |
| NON_COMMERCIAL | 非商用、または研究目的のみの利用規約です(cc-by-nc-*、*-research など)。 |
| OWN_TERMS | 独自の規約、利用制限、または派生物の作成禁止に関する規約です(other、Llama、Gemma、RAIL、-nd-)。NON_COMMERCIAL と併記される場合があります。cc-by-nc-nd は両方に該当します。 |
| STALE | 2年間更新されていません。 |
| LITTLE_USED | 直近1か月のダウンロード数が100未満です。 |
サイズ:ここで実行できるものと、より高い性能が期待できるもの
すべてのモデルについて、実行に必要なメモリを表示します。パラメーターあたり2.4バイトで、半精度にアクティベーション用の領域を加えた値です。ファインチューニングするモデルについては、そのために必要なメモリも表示します。QLoRA ならパラメーターあたり約1バイト、フルファインチューニングなら16バイトです。これらを、指定した計算リソース(最初に示す「N GB」)と比較します。
- 最初に 収まる モデルを、そのパーツの最上位に配置します。
- より大きなモデルは「動作させられる場合」に続きます。まず検索で見つかった候補を並べ、その後に記憶から追加した候補を並べます。 無理をすれば実行可能 なモデルは、4ビット量子化(パラメーターあたり0.6バイト)にするか、より大きな GPU があれば収まります。クラウド が必要なモデルは、それ以上のリソースを必要とします。レポートには、Hugging Face 上でそのモデルを提供しているプロバイダーを記載するか、レンタル GPU が必要と記載します。
- 収まるモデルがないパーツについても、より大きな候補を表示します。ハードウェアを用意できる可能性があるため、代替候補の検索には戻りません。
データセットとして指定されたモデル(またはその逆)は、適切な種類の中で検索されます。ライセンスはカードのメタデータから取得します。具体的には、license、独自規約の場合の license_name(other (qwen-research) として報告)、または license: タグです。
例:レシピカード
上記のプロンプトを使用した、2026-10-14 の24 GB GPU 1台での実行例(抜粋):
_Searched and checked on Hugging Face just now: 7 named, 1 from memory rather than the search, 0 not there and dropped._
## USE · Read the card
**Model: zai-org/GLM-OCR**
license mit · 1.3B parameters (~3.2 GB to run) · 1.7M downloads a month · found: name has ocr, most downloaded for image-to-text
If you can make it work, bigger than one 24 GB GPU:
- Qwen/Qwen3.8-27B: a stretch: ~66.7 GB to run, ~16.7 GB quantized to 4 bits, hosted by novita, cerebras, …
- google/gemma-4-31B-it: a stretch: ~75.1 GB to run, ~18.8 GB quantized to 4 bits, hosted by novita, …
Also: deepseek-ai/DeepSeek-OCR
The search also found, not picked:
- google/gemma-4-26B-A4B-it (11.3M downloads a month): found as most downloaded for image-text-to-text
- openbmb/MiniCPM-V-4.7-35B-A3B (4.2k downloads a month): found as trending for image-text-to-text
## TUNE · Read the hard hands
**Model: microsoft/trocr-base-handwritten**
license mit · 333.3M parameters (~0.8 GB to run; to fine-tune, ~0.3 GB with QLoRA, ~5.3 GB in full) · found: name has handwritten
**Data: Voxel51/iam_handwriting_finevision**
license cc · 1.9k downloads a month · found: name has handwriting
Also: Teklia/IAM-line (stale, from memory)
## WRITE · Parse the amounts
No model: write this one.
そこに挙げられたモデルは、今年リリースされたものを含め、すべて検索で見つかったものです。エージェントが記憶から追加したデータセット1つには、その旨が記されています。
インストール
Node 22.18 以降が必要です。USAGE.md には、20 以上のエージェント向けの手順付きセットアップとリンクがあります:Claude Code と Desktop、Codex、Copilot(CLI と VS Code)、Cursor、Windsurf、Devin、Cline、Gemini CLI、Goose、OpenCode、Zed、Junie、Kiro、Amp、Warp、Continue、LM Studio、Hermes、Mistral Vibe、Open WebUI。簡単な方法は次のとおりです。
Claude Code、Codex、Copilot CLI:プラグインとして使います。ツールに加え、いつ使うべきかを判断できるスキルも利用できます。3 つすべてで同じマーケットプレイスを使えます。
/plugin marketplace add bikemeardsley/where-my-hug # Claude Code
/plugin install where-my-hug@where-my-hug
codex plugin marketplace add bikemeardsley/where-my-hug # Codex
codex plugin add where-my-hug@where-my-hug
copilot plugin marketplace add bikemeardsley/where-my-hug # Copilot CLI
copilot plugin install where-my-hug@where-my-hug
その他の MCP クライアント:クライアントの設定で stdio サーバーを指定します。ほとんどの場合、キー名は mcpServers です(例外については USAGE.md をご覧ください)。
{ "mcpServers": { "where-my-hug": { "command": "npx", "args": ["-y", "where-my-hug"] } } }
Antigravity CLI:プラグインとして使います:agy plugin install https://github.com/bikemeardsley/where-my-hug/tree/main/plugin
Gemini CLI:拡張機能として使います:gemini extensions install https://github.com/bikemeardsley/where-my-hug
エージェントスキルとして:SKILL.md を読み込むエージェント向けです:
npx skills add bikemeardsley/where-my-hug。
HF_TOKEN(任意)。 公開リポジトリはトークンなしで利用できます。アカウントからアクセスできる非公開またはゲート付きリポジトリを含めるには、Hugging Face トークンを HF_TOKEN として渡します(エージェントごとの設定方法はこちら)。Claude Code プラグインではトークンを求められ、安全なストレージに保存されます。トークンがない場合、Hugging Face はどちらの場合も 401 を返すため、非公開リポジトリは見つからないように見えます。
お使いのマシンから送信される情報
エージェントが各パート向けに作成した検索語(タスクタグ、キーワード、作業内容を表す短い語句)と選択した ID が、huggingface.co/api への GET リクエストとして送信されます。トークンを設定した場合は、トークンも送信されます。トークンはその宛先にのみ送られ、レポートには表示されません。入力した要件、手法、レポートは、あなたとエージェントの間だけに留まります。
MCP サーバーまたはスキルのシェルフォールバックとして npx で起動すると、npm レジストリの registry.npmjs.org から where-my-hug パッケージがダウンロードされます。そこに送信されるのは、パッケージのリクエストだけです。
制限事項
- サイズは
safetensorsのメタデータから取得します。GGUF または.binの重みしかないリポジトリではパラメーター数が表示されないため、計算能力に応じたサイズの判定はできません。 - ライセンスのフラグは、ライセンス本文ではなくカードのメタデータを読み取ります。
- Hub の検索機能で見つけられるものだけを検索します。対象は名前、タグ、カードのテキストです。無関係な名前で説明がほとんどないカードのモデルは、見つからない場合があります。
- カードのテキストは、Hub の検索ページの背後にあるドキュメント化されていない API を通じて検索します。この API が変更された場合、その方法は失敗し、結果にその旨が表示されます。他の 3 つの方法は引き続き動作します。
セキュリティ
脆弱性は公開イシューではなく、GitHub Security Advisories を通じて非公開で報告してください。SECURITY.md には、Hugging Face への GET リクエスト以外に、このツールがアクセスするものはないと記載されています。
開発
node src/server.ts # the server, straight from source
npm test # offline: Hugging Face is mocked, and the server is driven over stdio and HTTP
npm run check # types
npm install は JavaScript を build/ にビルドします。npx が実行するのはこの JavaScript です。Node は node_modules 内のパッケージに含まれる型を削除しないためです。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。