dataset-search-mcp
Search and retrieve datasets from Hugging Face's dataset hub, including metadata and downloadable formats.
Search Kaggle datasets with optional API or CLI fallback; returns metadata and supports starter code generation.
Search Zenodo for open-access datasets via REST API, with filtering by format.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dataset-search-mcpsearch for korean weather datasets"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
dataset-search-mcp
Unified Model Context Protocol (MCP) server for open-dataset discovery. Search across Hugging Face, Zenodo, and optionally Kaggle, then generate ready-to-run Colab starter code for any result.
Live demo
You can try the search & ranking logic in a simple UI here: Open Dataset Finder (Hugging Face Spaces)
Related MCP server: HF Dataset MCP
Features
Multi-source search: Hugging Face / Zenodo / Kaggle (when credentials are available)
Sensible ranking (BM25 + fuzzy + light recency weighting)
Kaggle API with automatic CLI fallback
Safe by default: the server returns metadata only (no server-side downloads)
One-click starter snippets for quick experimentation
Repository layout
dataset-search-mcp/
├─ src/
│ └─ dataset_search_mcp/
│ ├─ __init__.py
│ └─ server.py # MCP server + tools
├─ examples/
│ ├─ claude-desktop.settings.json
│ └─ cursor.settings.json
├─ .github/workflows/
│ ├─ ci.yml
│ └─ release.yml
├─ Dockerfile
├─ pyproject.toml
├─ .dockerignore
├─ .gitignore
├─ LICENSE
└─ README.mdInstall (local)
Requires Python 3.9+
pip install -e .
dataset-search-mcpThis starts the MCP server over stdio (awaiting an MCP client).
Docker
Build
docker build -t dataset-search-mcp:local .Quick smoke test (import only)
docker run --rm --entrypoint python dataset-search-mcp:local -c \
"import importlib; m=importlib.import_module('dataset_search_mcp.server'); print('OK', hasattr(m,'main'))"
# Expected: OK TrueManual run (server waits for a client)
docker run -it --rm dataset-search-mcp:localUsing with Claude Desktop
Add the server to Settings → MCP Servers.
Simplest (Docker):
{
"mcpServers": {
"dataset-search-mcp": {
"command": "docker",
"args": ["run","-i","--rm","dataset-search-mcp:local"]
}
}
}With Kaggle credentials:
{
"mcpServers": {
"dataset-search-mcp": {
"command": "docker",
"args": [
"run","-i","--rm",
"-e","KAGGLE_USERNAME=your_username",
"-e","KAGGLE_KEY=your_api_key",
"dataset-search-mcp:local"
]
}
}
}Restart Claude Desktop and open a new chat.
Tools (overview)
search_datasets
Search public datasets across the supported sources.
Args (common):
query(string, required)sources(optional): e.g.["huggingface","zenodo"]Note: the server is tolerant—string forms like"huggingface, zenodo"also work.limit(optional, default 40): per-source cap before rankingformat_filter(optional): e.g."csv"or"json"
Example call (as JSON):
{"query":"korean weather","sources":["huggingface","zenodo"],"limit":10}Returns: a ranked array of items, each with:
source, id, title, description, updated, url, download_url, formats, score.
starter_code
Generate a small Python snippet to quickly try the selected dataset in Colab.
Args (typical):
source(e.g.,"huggingface","zenodo","kaggle")idurl(optional)download_url(optional; if present and CSV, the snippet loads it directly)formats(optional; used to choose the best snippet)
Kaggle credentials (brief)
Provide either environment variables:
export KAGGLE_USERNAME=your_username
export KAGGLE_KEY=your_api_keyor a file:
~/.kaggle/kaggle.json
{"username":"your_username","key":"your_api_key"}Some Kaggle datasets require accepting terms on the website first.
How it works (short)
Hugging Face:
list_datasets()plus optionaldataset_info()for card detailsZenodo: REST search via
GET /api/recordsKaggle: API first; fallback to CLI
datasets list --csvRanking: BM25 + fuzzy matching + light recency factor; duplicates merged on
(source,id)
Quick examples (in chat)
Search HF + Zenodo:
{"query":"korean weather","sources":["huggingface","zenodo"],"limit":10}CSV-only on Zenodo:
{"query":"traffic accident Korea","sources":["zenodo"],"limit":20,"format_filter":"csv"}Then request starter code using one of the returned items’ fields (
source,id,url,download_url,formats).
This server cannot be deployed
Maintenance
Related MCP Connectors
Search, sample and query open reproducible datasets published as immutable Parquet with schemas.
Agent-first data marketplace — AI agents search, purchase, and sell datasets via MCP.
One MCP server over 253 data sources: Reddit, LinkedIn, YouTube, G2, search and AI answers.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn 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.20MIT
- FlicenseAqualityDmaintenanceAn MCP server for the Hugging Face Dataset Viewer API that enables searching, fetching, and filtering datasets on the Hugging Face Hub. It allows users to explore schemas, perform full-text searches, and analyze dataset statistics through natural language.10-
- AlicenseNot gradedqualityBmaintenanceSearch, preview, and analyze datasets from 20+ platforms and millions of datasets via a single MCP connector. Works with Claude instantly2 npm28MIT
- AlicenseNot gradedqualityDmaintenanceConnects open data to LLMs via MCP, enabling easy access to public datasets and publishing new datasets with community help.MIT