Skip to main content

data-aggregator-mcp

Search 17 research-data sources at once (data archives, omics repositories and papers) and get one list back. Organism, disease and tissue names are expanded with their synonyms in the 11 sources that accept them, records that share a DOI are collapsed to one, and downloads are checked against the source's checksum where it publishes one.

PyPI Python License: MIT CI Glama DOI

Install in VS Code Install in Cursor

mcp-name: io.github.musharna/data-aggregator-mcp

Live calls over stdio: a search for transcriptome data on Orobanche aegyptiaca that NCBI Taxonomy expands to Phelipanche aegyptiaca and that returns hits from SRA, BioProject, PubMed, OpenAIRE and DataCite; resolving one SRA hit to two FASTQ files with sizes and md5 checksums; fetching an OpenML ARFF file with its md5 verified; and SQL over a remote CSV on Hugging Face without downloading it

Install

Claude Code:

claude mcp add data-aggregator -- uvx data-aggregator-mcp

VS Code and Cursor: the buttons above. Any other MCP client: run uvx data-aggregator-mcp as a stdio server.

Claude Desktop, pip, and the operate extra

Claude Desktop (claude_desktop_config.json) and most other clients:

{
  "mcpServers": {
    "data-aggregator": {
      "command": "uvx",
      "args": ["data-aggregator-mcp"],
      "env": { "NCBI_API_KEY": "your-optional-key" }
    }
  }
}

With pip:

pip install data-aggregator-mcp
data-aggregator-mcp        # or: python -m data_aggregator_mcp

operate (SQL and previews over remote files) needs an optional extra: pip install "data-aggregator-mcp[operate]".

What you can ask

"Find transcriptomes for Orobanche aegyptiaca." The species has been renamed. NCBI Taxonomy maps it to Phelipanche aegyptiaca, and the sources that accept synonyms match both names (the demo above).

"What data came out of this paper?"

resolve("pubmed:40098680")
  links  geo:GSE284240, bioproject:PRJNA1198054, and 18 sra: experiments
  files  PMC11910882.xml   (open-access full text)

"Can I train a model on this dataset?"

resolve("hf:scikit-learn/iris", use="ml-training")
  license_compat  ALLOW: "CC0-1.0 grants the permission(s) required for
                  ml-training: commercial-use, modifications"

The verdict is read from the record's licence metadata. It is advice, not a legal opinion.

resolve also renders citations in any CSL style, checks Crossref for retractions, scores FAIRness, and exports Croissant or RO-Crate. relate reports how a set of records connect (a shared accession, DOI or explicit link).

How a search runs

How one search runs: NCBI Taxonomy maps Orobanche aegyptiaca to its current name, Phelipanche aegyptiaca, and the sources that accept synonyms search both names; the query goes to 17 sources in parallel (10 archives, 6 omics, 1 literature); records that share a DOI become one, keeping the copy that can be downloaded; a record can then be resolved to files and checksums, fetched with the checksum verified where the source publishes one, or queried with SQL without downloading it

A source that fails is named in the result's errors, never dropped silently.

Compared with other servers

Server Searches One search Checksum Remote SQL Licence check
data-aggregator-mcp 17 sources: data archives, omics, papers yes, DOI dedup where published yes yes
Mobus 20 general and ML data platforms yes — row preview yes
paper-search-mcp papers: arXiv, PubMed, OpenAlex, Crossref and more yes, deduplicated — — —
ToolUniverse 1000+ tools: models, datasets, APIs, packages papers — — —
BioMCP genes, variants, trials, drugs, proteins, papers yes (search all) — — —

— means the project's README doesn't describe it (READMEs read 2026-10-04). Where they are ahead: BioMCP reaches clinical trials, ChEMBL and AlphaFold, which this server doesn't; ToolUniverse covers far more ground overall; paper-search-mcp covers far more literature sources; Mobus also compares datasets and checks schema compatibility. More detail: docs/POSITIONING.md.

Sources

Source Discover Fetch Checksum
Zenodo ✅ ✅ md5
DataCite → Figshare ✅ ✅ md5
DataCite → Dataverse ✅ ✅ md5
DataCite → OSF ✅ ✅ md5
DataCite → Dryad ✅ manifest only¹ sha-256 (listed)
DataCite → Mendeley & others ✅ — —
NCBI SRA ✅ ✅ (ENA FASTQ) md5
NCBI GEO ✅ ✅ (suppl/) none²
NCBI BioProject ✅ → SRA links —
PubMed / OpenAIRE ✅ ✅ (OA full text) none³
Hugging Face datasets ✅ ✅ (resolve URL) none²
DataONE (eco/env) ✅ ✅ (Member Node) md5 / sha-256
OmicsDI → PRIDE ✅ ✅ (HTTPS FTP) none²
OmicsDI → MetaboLights ✅ ✅ (HTTPS FTP) sha-256
OmicsDI → other MS repos ✅ — —
DataCite → OpenNeuro ✅ ✅ (snapshot) none²
DANDI (neurophysiology) ✅ ✅ (302→S3) sha-256
CZ CELLxGENE (single-cell) ✅ ✅ (H5AD/RDS) none²
OpenML (ML datasets) ✅ ✅ (ARFF) md5
RCSB PDB (structures) ✅ ✅ (.cif/.pdb) none²
UniProtKB (proteins) ✅ ✅ (FASTA) none²
BioStudies (EBI) ✅ ✅ (study files) none²
GBIF (biodiversity) ✅ ✅ (Darwin Core)⁴ none²
data.gov (DCAT-US) ✅ ✅ (file URL)⁴ none³
NASA CMR (Earth science) ✅ —⁵ —
GWAS Catalog ✅ → PMID bridge —

¹ Dryad downloads are token / bot-challenge gated, so fetch returns an error; resolve still lists the files.

² No upstream checksum, so fetch does not verify these bytes. It still returns an error on an HTTP error or when the download exceeds max_bytes.

³ No upstream checksum. Files declared as PDF or XML (literature full text, and data.gov distributions with that mediaType) get an HTML sniff: an HTML login or paywall page served in their place returns an error. Other files are not checked.

⁴ Only records that carry a downloadable file (a GBIF Darwin Core Archive, a data.gov distribution URL); metadata-only records are discovery-only.

⁵ Discovery-only: granule downloads need an Earthdata login, which is not wired. resolve returns the DOI and a data-access portal link.

Reference

Every tool and parameter, the HTTP transport (--transport http), and the environment variables: docs/reference.md.

Develop

uv venv && uv pip install -e ".[dev]"
uv run pytest -q
uv run ruff check src tests
DATA_AGGREGATOR_MCP_LIVE=1 uv run pytest -k live -q   # real-API probes

The README demo (examples/assets/demo.svg) is recorded from live calls by examples/_demo_search.py; its header has the commands to re-record it.

License

MIT — see LICENSE.

Metadata

Release files for data-aggregator-mcp 0.62.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for data-aggregator-mcp 0.62.0
File Size Uploaded
data_aggregator_mcp-0.62.0.tar.gz 1.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for data-aggregator-mcp 0.62.0
File Interpreter ABI Platform
data_aggregator_mcp-0.62.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.5 MB

Release files / data_aggregator_mcp-0.62.0.tar.gz

Download URL data_aggregator_mcp-0.62.0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
9d20a1c706bd72cea0b08c1eb9be82f19a4a8f911e5f5c6689346d1940f75a5f
BLAKE2b-256 checksum
How to use checksums
b18143fee01f41627b934f5f3d200d2cfda8f491c1b7dc756323df81fe5e5ca5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / data_aggregator_mcp-0.62.0-py3-none-any.whl

Download URL data_aggregator_mcp-0.62.0-py3-none-any.whl
Size 299.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b4b425e7b6c3e6688baae7c0bf3535c83b190baff43161ea44d7c9d82a1fae52
BLAKE2b-256 checksum
How to use checksums
11d39f254ef9c35987d9c22600d793d9821c1aa095d0dfc16bc3f11e4e7a40ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release history Release notifications | RSS feed

0.71.0

2 release files

0.70.0

2 release files

This release

0.62.0 This release

2 release files

0.54.1

2 release files

0.54.0

2 release files

0.53.0

2 release files

0.52.0

2 release files

0.51.0

2 release files

0.50.0

2 release files

0.49.0

2 release files

0.48.0

2 release files

0.47.0

2 release files

0.46.1

2 release files

0.46.0

2 release files

0.45.3

2 release files

0.45.2

2 release files

0.45.1

2 release files

0.45.0

2 release files

0.44.0

2 release files

0.43.0

2 release files

0.42.0

2 release files

0.40.0

2 release files

0.39.1

2 release files

0.39.0

2 release files

0.38.0

2 release files

0.37.0

2 release files

0.36.0

2 release files

0.35.0

2 release files

0.34.0

2 release files

0.33.0

2 release files

0.32.0

2 release files

0.31.0

2 release files

0.30.0

2 release files

0.29.0

2 release files

0.28.0

2 release files

0.27.0

2 release files

0.26.0

2 release files

0.25.0

2 release files

0.24.0

2 release files

0.23.0

2 release files

0.22.0

2 release files

0.21.0

2 release files

0.16.0

2 release files

0.11.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page