ICRISAT Data Hub MCP Server

ICRISAT Data Hub MCP Server

Enables LLMs to search, preview, and query data assets from ICRISAT's federation-first data hub, supporting CSV, Excel, and Word files with SQL access via DuckDB.

Category
访问服务器

README

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).

Setup

python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt

Running the pieces

Component Command Purpose
Inbox watcher scripts\start_watcher.cmd or python -m hub.watcher auto-ingest dropped files
One-off scan python -m hub.ingest.pipeline --scan scheduled/manual ingest
Web upload + catalogue scripts\start_web.cmd or python -m hub.web.app http://localhost:8010
MCP server (stdio) python -m hub.mcp_server.server local LLM agents
MCP server (HTTP) python -m hub.mcp_server.server --http http://localhost:8100/mcp for other machines
Validate YAML pointers python -m hub.sources check sources/*.yaml

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_assets List catalogue, filter by status/team/type/tag
search_assets Keyword search over titles, descriptions, column names, document text
get_asset Full metadata + per-sheet schema (columns, dtypes, samples)
preview_asset First N rows of a CSV/Excel asset
query_asset Read-only SQL (DuckDB) over a CSV/Excel asset
read_document Extracted text of a Word asset
list_sources Federated external sources (YAML pointers)
get_catalog_summary 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 push

Layout

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 suite

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选