ICRISAT Data Hub MCP Server
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., "@ICRISAT Data Hub MCP Serversearch for yield trial data from 2025"
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.
# ICRISAT Data Hub
A lightweight, federation-first data hub for ICRISAT teams, modelled on the CGIAR Climate Data Hub asset-mapping approach:
teams drop files ──► inbox (watched) ──► ingest pipeline ──► catalogue ──► MCP server ──► any LLM
(no skills needed) (auto: read, profile, (SQLite + assets.json)
register, flag gaps)Phase 1 supports CSV, Excel (.xlsx/.xls), and Word (.docx) files. External data is registered as YAML pointers (federation — the hub points to data where it lives rather than copying it).
For teams: how to share data (30 seconds, no skills needed)
Option A — drop folder. Copy your file into data/inbox/ (this can be a
shared network drive or a OneDrive-synced folder). That's it. The pipeline
picks it up automatically, catalogues it, and flags anything it couldn't
figure out for review.
Option B — web page. Run scripts\start_web.cmd once, open
http://localhost:8010, drag & drop, optionally fill 5 small fields.
Option C — with metadata. Drop a tiny sidecar next to your file:
yield_trials_2025.csv
yield_trials_2025.meta.yaml # title, team, owner, description, tags, ...or one metadata.yaml for a batch of files. Incomplete uploads get a
pre-filled *_metadata_review.yaml written next to the processed file —
complete it and drop it back in the inbox (or edit via the review CLI).
Related MCP server: mix_server
Setup
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txtRunning the pieces
Component | Command | Purpose |
Inbox watcher |
| auto-ingest dropped files |
One-off scan |
| scheduled/manual ingest |
Web upload + catalogue |
| |
MCP server (stdio) |
| local LLM agents |
MCP server (HTTP) |
| http://localhost:8100/mcp for other machines |
Validate YAML pointers |
| check |
All python -m hub... commands run from the project root with
PYTHONPATH=src (the scripts set this for you).
Connecting an LLM (MCP)
Claude Desktop / opencode (stdio) — add to your MCP config:
{
"mcpServers": {
"icrisat-data-hub": {
"command": "C:\\Users\\HDesalegn\\ICRISAT\\icrisat-data-hub\\.venv\\Scripts\\python.exe",
"args": ["-m", "hub.mcp_server.server"],
"env": { "PYTHONPATH": "C:\\Users\\HDesalegn\\ICRISAT\\icrisat-data-hub\\src" }
}
}
}Other machines/LLMs (HTTP) — start with --http and point clients at
http://<host>:8100/mcp.
MCP tools
Tool | What it does |
| List catalogue, filter by status/team/type/tag |
| Keyword search over titles, descriptions, column names, document text |
| Full metadata + per-sheet schema (columns, dtypes, samples) |
| First N rows of a CSV/Excel asset |
| Read-only SQL (DuckDB) over a CSV/Excel asset |
| Extracted text of a Word asset |
| Federated external sources (YAML pointers) |
| Portfolio stats (counts by status/type/team/access) |
YAML source pointers (federation)
Each external dataset/API/database gets one small YAML in sources/ — see
sources/README.md and sources/examples/. The hub registers and exposes
these through the MCP server without copying the data.
GitHub Pages catalogue app
A static dashboard lives in docs/ and is served at
https://henokd11.github.io/icrisat-data-hub/. It reads docs/data/*.json —
regenerate and commit them after the catalogue changes:
set PYTHONPATH=src
.venv\Scripts\python -m hub.pages
git add docs/data && git commit -m "Refresh catalogue app data" && git pushLayout
config/hub.yaml hub-wide settings (paths, vocab, ports)
data/inbox/ drop zone (watched)
data/processed/ ingested files, organised by team/month
data/failed/ rejected files + .error.txt
data/catalog/ catalog.db (SQLite) + assets.json (exported catalogue)
sources/ YAML pointers to federated external data
src/hub/ pipeline, watcher, web app, MCP server
tests/ pytest suiteThis server cannot be deployed
Maintenance
Related MCP Connectors
Query, join, profile, clean and convert CSV/JSON/Parquet with server-side DuckDB over MCP.
- OleanderOAuthdev.oleander
The all-in-one data stack for agents. Upload files, run SQL, evolve tables, and render charts.
Search, sample and query open reproducible datasets published as immutable Parquet with schemas.
AI access to Quadratic spreadsheets: open files, run Python/SQL, query connected databases.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to index and search across SQLite databases and CSV files to discover table schemas and column metadata. It provides a unified MCP API for data source management and structural exploration through natural language.-
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with local CSV and Parquet data files through natural language queries, facilitating tasks like summarizing datasets or retrieving specific information.5-
- AlicenseNot gradedqualityDmaintenanceEnables LLM agents to load, explore, and analyze CSV and Excel files using DuckDB, with tools for SQL querying, statistical analysis, expense optimization, and anomaly detection.MIT
- AlicenseNot gradedqualityAmaintenanceQuery local CSV, Parquet, JSON and TSV files with real SQL via DuckDB. Gives your AI coding tool ground-truth data access instead of hallucinated answers.4MIT