Skip to main content
Glama
HF Dataset MCP

HF Dataset MCP

by cfahlgren1

HF Dataset MCP

MCP server for the Hugging Face Dataset Viewer API. Search datasets, fetch rows, filter data, and more.

Installation

npx @cfahlgren1/hf-dataset-mcp

Related MCP server: Hugging Face Hub Semantic Search MCP

Configuration

Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "hf-datasets": {
      "command": "npx",
      "args": ["-y", "@cfahlgren1/hf-dataset-mcp"],
      "env": {
        "HF_TOKEN": "hf_..."
      }
    }
  }
}

Environment Variables

Variable

Description

HF_TOKEN

Hugging Face API token (required for private/gated datasets)

HF_DATASETS_SERVER

Custom Dataset Viewer API URL (default: https://datasets-server.huggingface.co)

Tools

search_datasets

Find datasets on the Hugging Face Hub by name, tag, or author.

search_datasets(search?: string, author?: string, filter?: string[], sort?: string, limit?: number)

validate_dataset

Check if a dataset is accessible and which viewer features are available.

validate_dataset(dataset: string)

list_splits

Get all available configurations and splits for a dataset.

list_splits(dataset: string)

get_dataset_info

Get the schema, metadata, and row counts for a dataset configuration.

get_dataset_info(dataset: string, config: string)

get_rows

Fetch a slice of rows from a dataset split.

get_rows(dataset: string, config: string, split: string, offset?: number, length?: number)

search_dataset

Full-text search within a dataset split using BM25 ranking.

search_dataset(dataset: string, config: string, split: string, query: string, offset?: number, length?: number)

filter_rows

Filter dataset rows using SQL-like WHERE conditions.

filter_rows(dataset: string, config: string, split: string, where: string, orderby?: string, offset?: number, length?: number)

WHERE syntax: Column names in double quotes, strings in single quotes. Supports =, <>, >, <, >=, <=, AND, OR, NOT.

Example: "label"=1 AND "text" LIKE '%hello%'

get_dataset_size

Get row counts and byte sizes for all configs and splits.

get_dataset_size(dataset: string)

list_parquet_files

Get URLs for the dataset's Parquet files for direct download or processing.

list_parquet_files(dataset: string)

get_statistics

Get descriptive statistics for each column in a dataset split.

get_statistics(dataset: string, config: string, split: string)

Examples

Find text classification datasets

search_datasets(filter: ["task_categories:text-classification"], sort: "downloads", limit: 10)

Get IMDB dataset info

list_splits(dataset: "stanfordnlp/imdb")
get_dataset_info(dataset: "stanfordnlp/imdb", config: "plain_text")

Fetch rows from a dataset

get_rows(dataset: "stanfordnlp/imdb", config: "plain_text", split: "train", offset: 0, length: 10)

Search for specific content

search_dataset(dataset: "stanfordnlp/imdb", config: "plain_text", split: "train", query: "amazing movie")

Filter rows

filter_rows(dataset: "stanfordnlp/imdb", config: "plain_text", split: "train", where: "\"label\"=1", length: 10)

License

MIT

Available Tools

10 tools
filter_rowsC

Filter dataset rows using SQL-like WHERE conditions

Inputs: dataset (required), config (required), split (required), where (required), +3 more.

get_dataset_infoB

Get the schema, metadata, and row counts for a dataset configuration

Inputs: dataset (required), config (required).

get_dataset_sizeB

Get row counts and byte sizes for all configs and splits

Inputs: dataset (required).

get_rowsC

Fetch a slice of rows from a dataset split

Inputs: dataset (required), config (required), split (required), offset, +1 more.

get_statisticsB

Get descriptive statistics for each column in a dataset split

Inputs: dataset (required), config (required), split (required).

list_parquet_filesA

Get URLs for the dataset's Parquet files for direct download or processing

Inputs: dataset (required).

list_splitsC

Get all available configurations and splits for a dataset

Inputs: dataset (required).

search_datasetB

Full-text search within a dataset split using BM25 ranking

Inputs: dataset (required), config (required), split (required), query (required), +2 more.

search_datasetsA

Find datasets on the Hugging Face Hub by name, tag, or author

Inputs: search, author, filter, sort, +2 more.

validate_datasetC

Check if a dataset is accessible and which viewer features are available

Inputs: dataset (required).

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 10 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose with no overlap: filtering rows, getting metadata, fetching rows, searching datasets, etc. The descriptions clearly differentiate operations like get_rows vs. filter_rows vs. search_dataset, preventing misselection.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern with snake_case (e.g., filter_rows, get_dataset_info, list_splits). The naming is predictable and readable throughout the set, with no deviations in style.

    Tool Count5/5

    With 10 tools, this is well-scoped for a dataset management server. Each tool serves a specific function in exploring, querying, and validating datasets, with no redundant or missing tools that would make the set feel too thin or bloated.

    Completeness5/5

    The toolset provides complete coverage for dataset operations: discovery (search_datasets, list_splits), inspection (get_dataset_info, get_statistics), access (get_rows, list_parquet_files), querying (filter_rows, search_dataset), and validation (validate_dataset). No obvious gaps exist for the domain.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      An unofficial MCP server that provides semantic search capabilities for Hugging Face models and datasets, enabling Claude and other MCP-compatible clients to search, discover, and explore the Hugging Face ecosystem using natural language queries.
      20
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      An MCP server that provides Hugging Face Hub API and Search endpoints through multiple transport protocols (STDIO, SSE, StreamableHTTP, and StreamableHTTPJson), enabling integration with AI model capabilities.
      314
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Unified MCP server for discovering open datasets across Hugging Face, Zenodo, and Kaggle, with ranked search results and one-click Colab starter code generation.
      1
      MIT