mcpField
W
where-my-hug

where-my-hug

ローカル
github.com/bikemeardsley検索12 日前に更新

where-my-hug について

where-my-hugは、機械学習タスクに使えるHugging Faceのモデルやデータセットをエージェントが探し、各工程を利用・ファインチューニング・学習・コード実装に分類します。ハードウェア、ライセンス、技術スタック、データに基づいて選定する開発者向けで、候補をその場で検証します。

主な機能

  1. 01機械学習の要件を工程に分解
  2. 02Hugging Faceのモデルとデータセットを検索
  3. 03USE、TUNE、TRAIN、WRITEに分類
  4. 04実行とファインチューニングのメモリを推定
  5. 05ライセンスや状態、利用上の注意を表示

活用シーン

  1. 01手書き認識モデルを探す
  2. 02カメラ映像の鳥検出モデルを計画
  3. 03レシート情報抽出に使えるモデルを評価

MCP 対応

MCPサーバーを通じて、要件分析、Hugging Face検索、候補の検証を提供します。MCPクライアントから接続でき、Agent Skillとしても利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"bikemeardsley-where-my-hug": {
"command": "npx",
"args": [
"-y",
"where-my-hug"
]
}
}
}
起動コマンドnpx -y where-my-hug

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmwhere-my-hug0.3.1

ツール

3

掲載時のツール一覧 · 2 日前に更新

パラメーター型必須説明
datastringいいえ利用可能、または用意できるトレーニングデータ。例:"none"、"about 300 labeled photos"
needstringはいML のニーズを平易な言葉で説明します。入力、期待する出力、用途を記述してください
stackstringいいえモデルを呼び出す側の情報:言語、ランタイム、フレームワーク
computestringいいえモデルの実行または学習に必要なハードウェア。例:"one 24 GB GPU"、"CPU only"。サイズ判定では、最初に現れる "N GB" をモデルが収まる必要のあるメモリ容量として扱います
licensestringいいえ結果の使用目的。例:"commercial, closed source"、"research only"

詳細

Where My Hug At? のマスコット。丸い線画のキャラクターが両腕を大きく広げ、横目で見ながらハグを待っています

Where My Hug At?

npm Tests In the official MCP Registry On skills.sh On cursor.directory Antigravity plugin On Smithery Where My Hug At? MCP server, quality and maintenance score on Glama Hugging Face
TypeScript Node 22.18 or later MIT license Buy Me a Coffee Donate to ALS research

AI エージェントに、モデルに何をさせたいか伝えてください。Hugging Face を検索して作業の各部分を調べ、すでにそこに存在するものをお知らせします。ぴったり合うもの、ファインチューニングするもの、トレーニングするもの、単なるコードでよいものがわかります。提示するモデルはすべて実在し、最新で、お使いのハードウェアに適したサイズです。

Claude Code、Codex、Copilot、Cursor、Gemini CLI、Cline、Devin、Open WebUI、その他の MCP クライアントで動作するほか、エージェントスキルとしても使えます。

関連ツールのGit for Me!は、GitHub、GitLab、Codeberg 上のオープンソースリポジトリについて、同じことを行います。

モデルに求めることは、まず4つの質問(計算資源、ライセンス、スタック、データ)への回答を踏まえ、入力と出力のある作業に分割されます。モデルの仕事である部分は Find hug に送られ、Hugging Face を4つの方法(ダウンロード数の多い順、トレンド、名前、カードのテキスト)で検索します。検索結果をもとに、使用、調整、トレーニングのいずれかを判定します。コードだけでできる部分は write と表示され、検索は不要です。レポートでは、選んだものをすべて最新情報で確認し、お使いのハードウェアに適したサイズを示します。

目次

試してみる

エージェントに追加します(ここでは 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 です。

フラグ
フラグ条件
UNCHECKEDHugging 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 は両方に該当します。
STALE2年間更新されていません。
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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。