Dataset licence facts
Server Details
Licence facts for popular Hugging Face datasets: declared licence, files, sources, conflicts.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- george-kozlitin/dataset-licence
- GitHub Stars
- 0
TDQS
Scored across 2 tools
The two tools are cleanly separated: dataset_licence looks up facts for a single named dataset, while find_datasets performs filtered discovery across the top 5,000 datasets. There is no realistic way to confuse one for the other, and the shared signal vocabulary actually reinforces the boundary.
Both names use consistent snake_case on a shared domain vocabulary (dataset/licence). However, find_datasets follows a verb_noun pattern while dataset_licence is a bare noun phrase, so the verb convention isn't applied uniformly.
Two tools is thin, but for a narrow read-only licence-facts service they map to the two natural operations (single lookup and search). It sits at the borderline of the 1-2 tool range rather than being clearly well-scoped.
Retrieval and filtered search cover the core lifecycle of a read-only facts service, with no create/update needs in this domain. Minor gaps remain: no batch lookup for multiple dataset IDs and no way to enumerate valid licence IDs or task tags for use in filters.
Available Tools
2 toolsdataset_licenceAInspect
Retrieve licence facts for one Hugging Face dataset: declared licence, where it was declared, recorded source datasets, detected licence files and a signal. Each licence value comes with an evidence URL linking to the Hub file, API record, file list or Hub page that was checked, with a commit-specific link where available. For datasets in the daily build, facts come from the build by default. Other public datasets are checked live on the Hugging Face Hub. Signal values: permissive = permissive or share-alike licence reported; restrictive = use restrictions reported; conflict = possible licence conflict; unclear = insufficient or unrecognised licence information. These signals do not establish permission to use a dataset. Licence facts reported by the dataset and its declared sources. Not legal advice, and not a grant of permission to use the dataset.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Dataset ID, for example 'owner/name'. | |
| live | No | Check the Hub now instead of using the facts published by the daily build. Datasets not in the build are always checked live. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden and does a lot: it explains the two data paths (daily build vs live Hub check), that each value carries an evidence URL with commit-specific links, exactly what each signal value means, and it explicitly warns that signals do not establish permission. It omits failure behavior for private/nonexistent datasets and any rate-limit or latency implications of live checks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb and returned fields, and the signal glossary is genuinely useful. Some redundancy: 'These signals do not establish permission to use a dataset' and the closing 'Not legal advice, and not a grant of permission' say the same thing twice, and 'Licence facts reported by the dataset and its declared sources' restates the opening.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the work of enumerating return values, evidence URL semantics, and signal meanings, which is what an agent needs. The remaining gap is edge-case behavior for datasets that cannot be checked (private, gated, or nonexistent), which matters because the live path can fail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented, including the live flag's semantics. The description's statement that build data is used by default for build datasets adds slight nuance about the default, but largely restates the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Retrieve licence facts for one Hugging Face dataset') and enumerates the exact payload: declared licence, declaration location, source datasets, licence files, signal, plus evidence URLs. An agent can distinguish this from the only sibling, find_datasets, which is a search tool, without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Useful build-vs-live guidance ('For datasets in the daily build, facts come from the build by default. Other public datasets are checked live on the Hub') tells the agent when the default path applies. However, there is no explicit statement of when to use this tool versus find_datasets, and no prerequisites for the required id (e.g. private/gated datasets).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_datasetsAInspect
Search the 5,000 most downloaded Hugging Face datasets in the daily build, returning matches in descending order of download count. Optionally filter by signal, task tag and declared licence ID; all supplied filters must match. Returns up to 50 results; licence_evidence links to the Hub file, API record or file list checked for a declared licence. Signal values: permissive = permissive or share-alike licence reported; restrictive = use restrictions reported; conflict = possible licence conflict; unclear = insufficient or unrecognised licence information. These signals do not establish permission to use a dataset. Licence facts reported by the dataset and its declared sources. Not legal advice, and not a grant of permission to use the dataset.
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | Task tag, for example 'text-generation'. | |
| limit | No | Default 20, maximum 50. | |
| signal | No | Signal values: permissive = permissive or share-alike licence reported; restrictive = use restrictions reported; conflict = possible licence conflict; unclear = insufficient or unrecognised licence information. These signals do not establish permission to use a dataset. | |
| licence | No | Declared licence ID, for example 'apache-2.0'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden well: it discloses the corpus (top 5,000, daily build), result ordering, the 50-result cap, AND semantics across filters, and what licence_evidence points to. It also flags that signals are evidence, not permission — an important caveat for a licence tool. Missing only response shape beyond licence_evidence and any freshness/latency notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and filters are correctly front-loaded. However, the four signal definitions duplicate the schema enum verbatim, and the non-permission disclaimer is stated twice ('These signals do not establish permission...' and 'not a grant of permission to use the dataset'), so several sentences do not earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four optional params and no output schema, the description covers ordering, the result cap, filter combination logic, signal meanings and the licence_evidence pointer, which is enough to call it correctly. It stops short of describing the other fields in each returned dataset record, the one remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the signal enum text is copied verbatim from the schema and adds nothing. The one genuine addition is explaining licence_evidence semantics, which compensates slightly because there is no output schema to document it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope: 'Search the 5,000 most downloaded Hugging Face datasets in the daily build, returning matches in descending order of download count.' That is far more precise than a generic search tool, but it never names or contrasts with the sibling dataset_licence, so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains that filters are optional and conjunctive ('all supplied filters must match') and caps results at 50, which is useful invocation context. It gives no explicit when-to-use/when-not guidance and never mentions the sibling dataset_licence as the alternative for licence detail on a single dataset.
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 tool update
- Changed
dataset_licence1 field changed- changed
Input schema / properties / live / descriptionPrevious value: -"Check the Hub now instead of using the weekly index. Datasets outside the index are always checked live."New value: +"Check the Hub now instead of using the facts published by the daily build. Datasets not in the build are always checked live."
1 tool update
- Changed
dataset_licence1 field changed- added
Input schema / properties / liveAdded value: +{ + "description": "Check the Hub now instead of using the weekly index. Datasets outside the index are always checked live.", + "type": "boolean" +}
2 tool updates
- First observed
dataset_licence - First observed
find_datasets
Related MCP Connectors
Find GitHub tools and Hugging Face models: source links, licenses, setup notes and review dates.
Open-source licence risk checks for AI coding agents and dependency trees.
New HF datasets: releases, licenses, updates. $0.01/query. Register in-session — free testnet funds.
Open agentic-web datasets: Agent Trust Index, MCP stats, incident timeline. Read-only, CC-BY-4.0.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAccess to many public datasets right from your LLM application.156MIT

contexteofficial
AlicenseAqualityCmaintenanceSearch and load AI fine-tuning and evaluation datasets, prompts and few-shot contexts from the ContexteTech catalogue, grounded in official European sources, in 9 languages. Dataset download links (JSONL, ShareGPT, Alpaca, CSV) and cost estimates per model.51MIT- AlicenseNot gradedqualityCmaintenanceRuns a read-only MCP server over stdio with tools to search Hugging Face, Kaggle and data.gov at once, inspect a dataset's columns and types, licence terms, byte and row counts, files and last update, and compare licences across several datasets. It enables an assistant to check whether a dataset fits a task and is legally usable before recommending it, reading only public metadata rather than downloading whole datasets.MIT
- AlicenseBqualityDmaintenanceEnables interaction with the Hugging Face Dataset Viewer API, allowing users to browse, search, filter, and analyze datasets hosted on the Hugging Face Hub.831MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.