Hugging Face Hub MCP — models, datasets, spaces
Server defines 10 tools with complete input schemas and basic descriptions. All tools are read-only and follow verb_noun naming (search_*, get_*, list_*, trending_*). Schemas include type definitions and parameter descriptions. However, descriptions are terse (10-50 chars), lack context on WHEN to use each tool, and omit output schema documentation. Parameter descriptions are minimal, many lack guidance on valid ranges, formats, or dependencies. No error handling guidance visible. Missing idempotency hints and chaining IDs in responses.
Detailed dataset info.
Detailed model info — config, tags, downloads, files at root.
Detailed Space info.
List files in a dataset repo.
List files at the root of a model repo.
Browse / search datasets on the Hub.
Browse / search models on the Hub.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields (repo_id, downloads, tags, etc.). Responses are opaque.
Tool descriptions are terse (10-50 chars) and lack context. Missing WHEN to use each tool, prerequisites, and how results differ from similar tools. E.g., search_models vs trending_models distinction unclear.
Parameter descriptions lack constraints and guidance. 'limit' has no min/max bounds (code enforces 1-1000 but description says '1-1000 (default 20)' inconsistently). 'sort' and 'direction' lack enum constraints or valid value lists.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Browse / search Spaces (demo apps).
Currently-trending datasets.
Currently-trending models on the Hub.
No error handling guidance. Code throws generic 'Unknown tool' error. No recovery hints for invalid repo_id, network failures, or rate limits. LLM cannot self-correct.
API key handling via '_apiKey' parameter is non-standard and exposes secrets in tool calls. Should use server-side secret injection via environment variables.