Skip to main content
Glama
h9-tec

model-family-tree

by h9-tec

Fly through the Model Galaxy → · 942,270 models in one zoomable WebGL map · Explorer → · search any model, walk its pedigree, share a link.

Open Model Family Tree

Every model on the Hugging Face Hub, its ancestry, and a leaderboard of the base models the ecosystem actually builds on. Rebuilt nightly.

Models Links Updated Stars License: MIT

3,161,429 models · 897,225 declare a base model (28%) · 930,179 parent links · 88,174 models have descendants · 45,007 roots in 23,964 families

The most built-on model on the Hub is black-forest-labs/FLUX.1-dev with 43,699 descendants. In the last 90 days it is Qwen/Qwen3.8-27B with 4,531 new ones. The biggest family is Qwen1.5 (71,020).

Install into your agent

claude plugin marketplace add h9-tec/model-family-tree
claude plugin install model-family-tree@model-family-tree

Requires uv on PATH. Then ask Claude: what is unsloth/Qwen2.5-7B-Instruct based on, and which Qwen base has the most finetunes? It answers from the lineage and leaderboard MCP tools.

{"mcpServers": {"model-family-tree": {"command": "uv", "args": ["run", "--frozen", "--no-dev", "--directory", "/path/to/model-family-tree", "python", "mcp/server.py"]}}}

Tools: lineage(id), children(id), leaderboard(kind), family(name), search(query).

Related MCP server: Dev AI Ecosystem MCP

See it

Galaxy

Every model that has an ancestor or a descendant (942,270 points) in one WebGL map. Families are circle-packed clusters, base models are stars, each derivative is a dot colored by relation and sized by downloads. Scroll to zoom from the whole Hub down to one model, click any dot.

Explorer

Type any model id. Its pedigree is drawn as a radial tree: every ancestor path fans out to the left (merges show all parents), the most downloaded descendants to the right, unfoldable level by level, live from the Hub.

Leaderboard

All 88,174 models with descendants, sortable and filterable, plus the curated views below.

Most-descended base models

Unique descendants of every kind: finetunes, adapters (LoRA), quantizations and merges, each counted once however many paths reach it. † marks a base that was deleted or made private but is still referenced. Full top 500 →

#

Model

Descendants

Direct

Last 90d

Finetune / adapter / quantized / merge

Family

1

black-forest-labs/FLUX.1-dev

43,699

43,430

226

678 / 42,878 / 129 / 14

FLUX.1

2

Qwen/Qwen1.5-0.5B

32,564

32,534

0

41 / 32,475 / 46 / 2

Qwen1.5

3

Qwen/Qwen1.5-1.8B

30,656

30,626

0

35 / 30,591 / 28 / 2

Qwen1.5

4

google/gemma-2b

24,115

24,035

11

309 / 23,706 / 89 / 11

Gemma 1

5

Qwen/Qwen2.5-7B

22,660

2,076

3,179

11,720 / 6,856 / 3,490 / 594

Qwen2.5

6

meta-llama/Llama-3.1-8B

21,642

3,259

2,587

9,606 / 6,112 / 5,081 / 843

Llama 3.1

7

meta-llama/Llama-3.1-8B-Instruct

15,242

7,279

1,843

6,908 / 4,047 / 3,575 / 712

Llama 3.1

8

Qwen/Qwen2.5-7B-Instruct

14,290

6,596

2,273

8,239 / 3,862 / 1,779 / 410

Qwen2.5

9

distilbert/distilbert-base-uncased

13,599

13,219

783

13,054 / 395 / 149 / 1

DistilBERT

10

mistralai/Mistral-7B-v0.1

11,598

4,012

67

2,971 / 5,190 / 2,057 / 1,365

Mistral

11

stabilityai/stable-diffusion-xl-base-1.0

11,491

11,009

158

1,417 / 9,974 / 48 / 52

Stable Diffusion

12

Qwen/Qwen3-4B-Instruct-2507

10,991

8,765

1,394

3,341 / 6,503 / 1,050 / 97

Qwen3

13

Qwen/Qwen2.5-1.5B

10,758

1,023

1,640

4,905 / 4,022 / 1,674 / 157

Qwen2.5

14

meta-llama/Meta-Llama-3-8B

10,275

1,724

123

4,206 / 2,069 / 3,013 / 987

Llama 3

15

google/gemma-7b

9,852

9,585

3

453 / 9,294 / 97 / 8

Gemma 1

16

HuggingFaceTB/SmolLM2-360M

9,709

193

1,756

8,761 / 595 / 348 / 5

SmolLM2

17

Qwen/Qwen2.5-0.5B

9,490

1,361

934

5,952 / 2,198 / 1,285 / 55

Qwen2.5

18

Qwen/Qwen3-8B-Base

9,447

842

1,857

4,737 / 2,869 / 1,768 / 72

Qwen3

19

HuggingFaceTB/SmolLM2-360M-Instruct

9,248

377

1,708

8,606 / 362 / 275 / 5

SmolLM2

20

HuggingFaceTB/SmolVLM-500M-Instruct

8,570

92

1,613

8,371 / 133 / 66 / 0

SmolLM2

21

Qwen/Qwen2.5-3B

8,484

1,133

1,346

3,816 / 3,093 / 1,490 / 85

Qwen2.5

22

HuggingFaceTB/SmolVLM2-500M-Video-Instruct

8,469

127

1,593

8,337 / 102 / 30 / 0

SmolLM2

23

lerobot/smolvla_base

8,338

8,292

1,575

8,247 / 85 / 6 / 0

SmolLM2

24

Qwen/Qwen3-8B

7,884

5,040

1,491

3,707 / 2,650 / 1,458 / 68

Qwen3

25

meta-llama/Llama-3.2-3B-Instruct

7,516

3,467

793

3,920 / 1,597 / 1,847 / 152

Llama 3.2

Hot right now: new descendants in the last 90 days

Full top 500 →

#

Model

Descendants

Direct

Last 90d

Finetune / adapter / quantized / merge

Family

1

Qwen/Qwen3.8-27B

4,533

2,272

4,531

824 / 343 / 3,311 / 55

Qwen3.8

2

Qwen/Qwen2.5-7B

22,660

2,076

3,179

11,720 / 6,856 / 3,490 / 594

Qwen2.5

3

Qwen/Qwen3.5-9B-Base

5,855

741

3,059

2,353 / 1,233 / 2,166 / 103

Qwen3.5

4

meta-llama/Llama-3.1-8B

21,642

3,259

2,587

9,606 / 6,112 / 5,081 / 843

Llama 3.1

5

Qwen/Qwen3.5-9B

4,765

2,518

2,398

1,574 / 1,152 / 1,939 / 100

Qwen3.5

6

Qwen/Qwen3.5-4B-Base

4,455

342

2,367

1,733 / 1,205 / 1,481 / 36

Qwen3.5

7

Qwen/Qwen2.5-7B-Instruct

14,290

6,596

2,273

8,239 / 3,862 / 1,779 / 410

Qwen2.5

8

Qwen/Qwen3.5-4B

3,935

2,288

2,040

1,451 / 1,091 / 1,361 / 32

Qwen3.5

9

Qwen/Qwen3-8B-Base

9,447

842

1,857

4,737 / 2,869 / 1,768 / 72

Qwen3

10

meta-llama/Llama-3.1-8B-Instruct

15,242

7,279

1,843

6,908 / 4,047 / 3,575 / 712

Llama 3.1

11

HuggingFaceTB/SmolLM2-360M

9,709

193

1,756

8,761 / 595 / 348 / 5

SmolLM2

12

HuggingFaceTB/SmolLM2-360M-Instruct

9,248

377

1,708

8,606 / 362 / 275 / 5

SmolLM2

13

Qwen/Qwen2.5-1.5B

10,758

1,023

1,640

4,905 / 4,022 / 1,674 / 157

Qwen2.5

14

HuggingFaceTB/SmolVLM-500M-Instruct

8,570

92

1,613

8,371 / 133 / 66 / 0

SmolLM2

15

HuggingFaceTB/SmolVLM2-500M-Video-Instruct

8,469

127

1,593

8,337 / 102 / 30 / 0

SmolLM2

16

lerobot/smolvla_base

8,338

8,292

1,575

8,247 / 85 / 6 / 0

SmolLM2

17

Qwen/Qwen3-0.6B-Base

6,461

914

1,575

3,751 / 972 / 1,712 / 26

Qwen3

18

Qwen/Qwen3-8B

7,884

5,040

1,491

3,707 / 2,650 / 1,458 / 68

Qwen3

19

Qwen/Qwen3-4B-Instruct-2507

10,991

8,765

1,394

3,341 / 6,503 / 1,050 / 97

Qwen3

20

Qwen/Qwen2.5-3B

8,484

1,133

1,346

3,816 / 3,093 / 1,490 / 85

Qwen2.5

21

krea/Krea-2-Raw

2,902

1,058

1,234

108 / 2,723 / 68 / 3

krea-2-raw

22

Qwen/Qwen3.5-0.8B-Base

2,450

241

1,234

938 / 657 / 846 / 9

Qwen3.5

23

Qwen/Qwen3.6-35B-A3B

2,868

1,666

1,218

495 / 483 / 1,843 / 46

Qwen3.6

24

Qwen/Qwen3-4B-Base

6,675

681

1,149

3,367 / 1,630 / 1,584 / 94

Qwen3

25

Qwen/Qwen3-1.7B-Base

4,805

583

1,097

2,692 / 984 / 1,109 / 20

Qwen3

Finetunes only

Adapters and quantizations inflate the all-time table (tens of thousands of auto-generated LoRAs sit on a few small bases). This view counts descendants whose own relation to their parent is finetune. Full top 500 →

#

Model

Descendants

Direct

Last 90d

Finetune / adapter / quantized / merge

Family

1

distilbert/distilbert-base-uncased

13,599

13,219

783

13,054 / 395 / 149 / 1

DistilBERT

2

Qwen/Qwen2.5-7B

22,660

2,076

3,179

11,720 / 6,856 / 3,490 / 594

Qwen2.5

3

meta-llama/Llama-3.1-8B

21,642

3,259

2,587

9,606 / 6,112 / 5,081 / 843

Llama 3.1

4

HuggingFaceTB/SmolLM2-360M

9,709

193

1,756

8,761 / 595 / 348 / 5

SmolLM2

5

HuggingFaceTB/SmolLM2-360M-Instruct

9,248

377

1,708

8,606 / 362 / 275 / 5

SmolLM2

6

HuggingFaceTB/SmolVLM-500M-Instruct

8,570

92

1,613

8,371 / 133 / 66 / 0

SmolLM2

7

HuggingFaceTB/SmolVLM2-500M-Video-Instruct

8,469

127

1,593

8,337 / 102 / 30 / 0

SmolLM2

8

lerobot/smolvla_base

8,338

8,292

1,575

8,247 / 85 / 6 / 0

SmolLM2

9

Qwen/Qwen2.5-7B-Instruct

14,290

6,596

2,273

8,239 / 3,862 / 1,779 / 410

Qwen2.5

10

google-bert/bert-base-uncased

7,445

7,206

258

7,221 / 147 / 70 / 7

BERT

11

meta-llama/Llama-3.1-8B-Instruct

15,242

7,279

1,843

6,908 / 4,047 / 3,575 / 712

Llama 3.1

12

Qwen/Qwen2.5-0.5B

9,490

1,361

934

5,952 / 2,198 / 1,285 / 55

Qwen2.5

13

Qwen/Qwen2.5-1.5B

10,758

1,023

1,640

4,905 / 4,022 / 1,674 / 157

Qwen2.5

14

Qwen/Qwen3-8B-Base

9,447

842

1,857

4,737 / 2,869 / 1,768 / 72

Qwen3

15

FacebookAI/xlm-roberta-base

4,726

4,364

204

4,534 / 78 / 113 / 0

XLM-RoBERTa

16

unsloth/Qwen2.5-7B-Instruct

5,312

5,270

876

4,509 / 772 / 29 / 2

Qwen2.5

17

google/gemma-3-4b-pt

6,662

395

583

4,505 / 939 / 1,202 / 16

Gemma 3

18

meta-llama/Meta-Llama-3-8B

10,275

1,724

123

4,206 / 2,069 / 3,013 / 987

Llama 3

19

aubmindlab/bert-base-arabertv02

4,112

4,055

14

4,103 / 5 / 4 / 0

BERT

20

openai/whisper-small

4,718

4,394

355

4,058 / 347 / 313 / 0

Whisper

21

meta-llama/Llama-3.2-3B-Instruct

7,516

3,467

793

3,920 / 1,597 / 1,847 / 152

Llama 3.2

22

Qwen/Qwen2.5-3B

8,484

1,133

1,346

3,816 / 3,093 / 1,490 / 85

Qwen2.5

23

Qwen/Qwen3-0.6B-Base

6,461

914

1,575

3,751 / 972 / 1,712 / 26

Qwen3

24

Qwen/Qwen3-8B

7,884

5,040

1,491

3,707 / 2,650 / 1,458 / 68

Qwen3

25

Qwen/Qwen3-4B-Base

6,675

681

1,149

3,367 / 1,630 / 1,584 / 94

Qwen3

Families

Roots grouped by series name across organizations (so unsloth/Llama-3.1-8B re-uploads count toward Llama 3.1). Grouping is a heuristic with hand overrides in data/families.yaml; PRs welcome. Full table →

#

Family

Descendants

Last 90d

Roots

Finetune / adapter / quantized / merge

Biggest root

1

Qwen1.5

71,020

6

44

223 / 70,433 / 348 / 16

Qwen/Qwen1.5-0.5B

2

Qwen2.5

69,454

8,357

693

33,556 / 19,764 / 14,511 / 1,623

Qwen/Qwen2.5-7B

3

Qwen3

53,881

10,185

641

23,856 / 16,889 / 12,693 / 441

Qwen/Qwen3-4B-Instruct-2507

4

FLUX.1

44,159

256

16

770 / 43,183 / 191 / 15

black-forest-labs/FLUX.1-dev

5

Gemma 1

37,054

54

184

1,751 / 34,349 / 886 / 68

google/gemma-2b

6

Mistral

36,431

1,041

582

10,606 / 11,226 / 11,652 / 2,931

mistralai/Mistral-7B-v0.1

7

Llama 3.1

28,226

2,800

222

11,133 / 6,995 / 8,159 / 1,939

meta-llama/Llama-3.1-8B

8

Llama 3

24,181

415

543

8,062 / 5,859 / 7,794 / 2,466

meta-llama/Meta-Llama-3-8B

9

BERT

23,168

595

305

22,399 / 508 / 253 / 8

google-bert/bert-base-uncased

10

Llama 3.2

21,066

1,623

477

9,673 / 5,712 / 5,085 / 596

meta-llama/Llama-3.2-3B-Instruct

11

Qwen3.5

18,489

8,519

147

6,996 / 3,982 / 7,307 / 203

Qwen/Qwen3.5-9B-Base

12

Gemma 3

18,147

1,411

140

10,568 / 2,976 / 4,382 / 221

google/gemma-3-4b-pt

13

Stable Diffusion

17,845

308

29

3,413 / 14,267 / 95 / 70

stabilityai/stable-diffusion-xl-base-1.0

14

Whisper

15,633

1,639

196

11,637 / 2,332 / 1,657 / 7

openai/whisper-small

15

DistilBERT

15,172

848

81

14,398 / 495 / 278 / 1

distilbert/distilbert-base-uncased

16

SmolLM2

13,552

2,076

59

10,836 / 1,585 / 1,111 / 20

HuggingFaceTB/SmolLM2-360M

17

Gemma 2

12,322

473

226

5,069 / 3,171 / 3,141 / 941

google/gemma-2-9b

18

Llama 2

11,619

275

413

2,973 / 7,066 / 1,367 / 213

meta-llama/Llama-2-7b-hf

19

Gemma 4

10,784

3,790

126

3,181 / 1,947 / 5,501 / 155

google/gemma-4-31B

20

Qwen2

10,762

200

167

3,162 / 6,024 / 1,488 / 88

Qwen/Qwen2-0.5B

21

DeepSeek-R1

8,878

414

129

2,700 / 1,512 / 3,774 / 892

deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B

22

XLM-RoBERTa

6,305

313

48

5,996 / 137 / 171 / 0

FacebookAI/xlm-roberta-base

23

ViT

6,076

179

66

5,194 / 752 / 130 / 0

google/vit-base-patch16-224-in21k

24

TinyLlama

5,895

111

127

1,431 / 3,491 / 880 / 93

TinyLlama/TinyLlama-1.1B-Chat-v1.0

25

Qwen3.6

5,888

2,244

50

1,096 / 1,118 / 3,577 / 90

Qwen/Qwen3.6-35B-A3B

Organizations

Descendants of every root owned by the organization, deduplicated. Full table →

How it works

  1. Source. The daily cfahlgren1/hub-stats dump of the Hub's /api/models (Apache-2.0), which carries the base_model metadata model authors declare in their cards, plus the legacy base_model: tags as a fallback.

  2. Graph. Child → parent edges with the declared relation (finetune, adapter, quantized, merge). Merges give a DAG, mis-tagged cards give the occasional cycle (67 nodes today); both are handled.

  3. Counts. Descendant sets are built children-first and unioned, so every model is counted once per ancestor. direct is declared children; total is the whole subtree.

  4. Families. Roots (models that declare no parent) are grouped by a series heuristic over the model name, with overrides in data/families.yaml.

  5. Galaxy layout. Each root's subtree is a radial tree (depth rings sized by population, wedges by subtree size); roots are circle-packed inside their family and families into the galaxy, with a port of d3's front-chain packing. Positions ship as a 10 MB binary, ids load lazily in chunks.

  6. Refresh. A GitHub Action rebuilds everything nightly, commits dist/ and README.md, and attaches the full node and edge tables plus the galaxy data to the data-latest release, which the site reads.

Caveats

  • Declared ancestry only. 28% of models declare a base. Untagged re-uploads and GGUF conversions without metadata are invisible, so every number is a floor.

  • Activity, not quality. A base with 30,000 adapters was mostly a tutorial default. Read the finetune-only and 90-day tables alongside the all-time one.

  • Ghost parents. 3,938 referenced bases are no longer public. They stay in the tree, marked †.

  • Families are heuristic. Series detection is a regex over names. Fix a wrong grouping by editing data/families.yaml.

Data files

File

What

dist/leaderboard.json

Top 500 models (all time, 90 days, finetune-only), families, organizations

dist/parents.json

Every model with descendants, compact columns

dist/timeseries.json

Monthly new descendants for the top families and models

dist/children_top.json

Top 25 children by downloads for the 3,000 most-descended parents

dist/llms.txt

Plain-text summary for LLMs

data-latest release

nodes.parquet and edges.parquet, the full graph

Build it yourself

uv sync
uv run python scripts/build.py all        # downloads the dump (~1.6 GB), builds in about 15 seconds
uv run python scripts/build.py build      # rebuild from the cached dump
uv run pytest
  • Arabic AI Atlas: the same idea for one language's ecosystem, with a map.

  • Hugging Face shows the tree for one model on its page; this repo aggregates the whole Hub.

License

Code MIT. Generated data CC BY 4.0, derived from Hub metadata via cfahlgren1/hub-stats (Apache-2.0).

Generated 2026-10-18.

Available Tools

6 tools
childrenB

Direct descendants of a model, most downloaded first (or sort="likes").

`relation` filters to finetune, adapter, quantized or merge. Live from the Hub API;
falls back to the nightly top-25 list when offline. Example: children(id="Qwen/Qwen3-8B", relation="finetune")
ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
sortNodownloads
limitNo
relationNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose meaningful behavior: data comes live from the Hub API and falls back to a nightly top-25 list when offline. It does not cover auth requirements, rate limits, or what happens at the limit boundary, so it is partial but genuinely informative.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then layers in the sort option, relation filter, data-source behavior, and an example. Every sentence carries information and there is no padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter tool with no annotations and no output schema, the description covers purpose, relation, sort, and data fallback reasonably well. It still omits limit semantics and any indication of the return shape, which the absent output schema means the description could have supplied.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It enumerates the accepted relation values (finetune, adapter, quantized, merge) and hints at sort alternatives via sort="likes", but leaves the id and limit parameters unexplained and never states the default sort.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Direct descendants of a model', which is concrete and distinguishable from a generic listing. However, it does not explicitly differentiate itself from close siblings like 'family' or 'lineage', leaving the agent to infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied through the example invocation and the relation filter, giving the agent a reasonable sense of when to call it. There is no explicit when-to-use/when-not guidance or comparison against the siblings family, lineage, or search.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

familyC

One model family (e.g. "Qwen2.5", "Llama 3.1", "FLUX.1"): totals, relation breakdown, roots, organizations and the top models in it by descendants.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the response content fairly well (totals, relation breakdown, organizations), but says nothing about read-only semantics, cost, pagination, or error behavior for an unknown family name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that leads with the resource and its concrete examples before listing returned content. No filler, though the sentence-fragment form (no verb) and the dense trailing list slightly reduce crispness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description must cover both scope and behavior. It adequately conveys what data comes back, but leaves the read-only assumption, identifier-matching rules, and the relationship to sibling tools unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single 'name' parameter, so the description must compensate. It partially does by giving concrete examples ('Qwen2.5', 'Llama 3.1', 'FLUX.1'), which conveys the expected identifier format, but it never states matching rules (exact string, case sensitivity, alias handling).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (a single model family) and enumerates the payload it returns: totals, relation breakdown, roots, organizations, and top models by descendants. That is concrete enough for an agent to know what it gets, but the verb is only implied and there is no differentiation from siblings like 'lineage' or 'children', which overlap with the 'roots'/'descendants' content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no exclusions. Siblings 'lineage', 'children', 'stats' and 'leaderboard' all plausibly cover model families, yet the description never states when to pick this tool over them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

leaderboardB

Most-descended base models on the Hub.

kind: all_time (unique descendants of every kind), 90d (new descendants in the last 90
days), finetune (finetune descendants only; filters out LoRA and quantization noise),
families (roots grouped by series across orgs), orgs (by organization owning the roots).
ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoall_time
limitNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It never states that this is a read-only query, how results are ordered, whether pagination is needed for large result sets, or any auth/rate constraints; the only behavioral hint is the filtering semantics implied by 'finetune (filters out LoRA and quantization noise)'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first sentence, followed by a compact enumeration of kind values. It is dense but every clause carries information, with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the dominant parameter (kind) is fully covered. What is missing is routing guidance relative to the five siblings and any note on ordering or result-size behavior, which leaves the agent to guess when this tool is the right pick.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does so thoroughly for the key parameter: every kind value is defined with concrete meaning (all_time, 90d, finetune, families, orgs). limit and offset are left unexplained, but their standard pagination meaning is largely self-evident from the names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (base models on the Hub) and a specific ranking criterion (most-descended), so an agent can tell this is a ranked-listing tool rather than a lookup. It does not, however, distinguish itself from close siblings such as stats, family, or lineage, which an agent must infer from name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus the alternatives (stats, family, lineage, search). The kind enumeration describes modes of the tool itself, not selection criteria against siblings, and no prerequisites or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lineageA

Ancestry of one Hugging Face model: the chain of declared base models up to the root, plus how many descendants the model itself has.

Walks `base_model` metadata live from the Hub (first parent at each step; merges list all
parents in `parents`). Each hop carries the relation (finetune, adapter, quantized, merge)
and the parent's descendant counts from the nightly build.

Example: lineage(id="unsloth/Qwen2.5-7B-Instruct")
ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
max_depthNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the load and does well: it discloses a live walk of `base_model` metadata from the Hub, first-parent-at-each-step semantics, that merges expose all parents in `parents`, that each hop carries a relation type (finetune, adapter, quantized, merge), and that descendant counts come from a nightly build. Auth requirements and rate limits remain undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the one-line purpose, followed by mechanics and a concrete example in three short blocks. Little waste, though the merge/parents parenthetical is dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read tool with no annotations and no output schema, the description covers what the return chain contains (hops with relation and descendant counts) and where the data comes from. The only real gap is the undocumented `max_depth` behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It illustrates `id` with a concrete example, which is useful, but `max_depth` (default 12) is never explained in the description even though it governs how far up the chain the walk goes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource and scope: the ancestry chain of a Hugging Face model plus its own descendant count. An agent can tell this is about upward lineage rather than listing children, though sibling names (children, family) are never cited to sharpen the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied via the example call `lineage(id="...")`. There is no statement of when to prefer this over `children` or `family`, nor any prerequisite or exclusion, so the agent must infer routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

statsB

Headline numbers for the current build: models tracked, links, parents, roots, families, dates.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full behavioral burden. It lists the metric categories but does not disclose read-only status, permissions, what 'current build' resolves to, or any execution constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that names the output and enumerates the metrics with no wasted words. Structure is efficient and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema or annotations, the description covers what is returned at a high level. However, it leaves open what 'current build' means and omits behavioral basics such as read-only nature, making it adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the input schema is empty, so the baseline is 4. The description neither adds nor contradicts parameter information, which is appropriate given there are no parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear purpose: returning headline numbers for the current build, with enumerated metrics (models tracked, links, parents, roots, families, dates). It does not explicitly distinguish itself from siblings such as leaderboard, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, prerequisites, or alternatives are provided. The phrase 'headline numbers' implies a summary use case, but the description never states when this tool should be chosen over siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.1.0
    • First observedchildren
    • First observedfamily
    • First observedleaderboard
    • First observedlineage
    • First observedsearch
    • First observedstats

TDQS

A3.5/5.0

Scored across 6 tools

Disambiguation4/5

The core directional tools are clearly distinct: lineage walks ancestry upward while children lists descendants downward, and search/stats are unambiguous. family vs leaderboard have some conceptual overlap (family gives a single family's totals/roots/orgs while leaderboard ranks families), but the descriptions differentiate them adequately.

Naming Consistency5/5

All six tools use a single, lowercase noun (family, lineage, children, leaderboard, search, stats), with no camelCase/snake_case mixing or verb-noun deviations. The convention is uniform and predictable across the whole set.

Tool Count5/5

Six tools is well within the sweet spot for this domain, and each covers a distinct query type (single-family, ancestry, descendants, rankings, search, aggregate stats). Nothing feels redundant or missing in terms of count.

Completeness4/5

The surface covers the full genealogy lifecycle: upward ancestry, downward descendants, per-family breakdowns, rankings, search, and build stats. Minor gaps exist (e.g. no direct relation-type aggregation or merge-graph view beyond lineage), but core workflows are well served.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables access to the Hugging Face Hub API to search and retrieve information about machine learning models, datasets, and their metadata. Provides comprehensive tools for exploring the Hugging Face ecosystem including model details, dataset information, and parquet file access.
    8
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides AI agents with 6 tools for searching Hugging Face models, GitHub trending repos, analyzing GitHub repositories, fetching dev.to articles, Show HN launches, and Product Hunt daily launches. Built for dev tooling research and AI ecosystem analysis.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Search and retrieve models, datasets, and spaces from Hugging Face Hub. Enables browsing trending items and getting detailed info on repos.
    37 npm
    MIT