Searches, resolves, relates, inspects, and downloads research data from archives, omics registries, literature, and specialized repositories.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
This server is confirmed live β we successfully called its tools/list endpoint directly (see the verified badge above). We haven't yet sandbox-tested the stdio install command below specifically, which is a separate, ongoing check.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Data Aggregator MCP.
searchSearch public research-data archives, omics registries, and the literature for datasets, software, publications, and sequencing data. Fans out across Zenodo, DataCite (Dryad, Figshare, Dataverse, OSF, Mendeley, OpenNeuro), NCBI omics (GEO, SRA, BioProject), literature (PubMed + OpenAIRE), HuggingFace Hub (datasets), DataONE (eco/environmental federation), OmicsDI (proteomics/metabolomics), RCSB PDB (macromolecular structures), GWAS Catalog (genotype-phenotype studies), OpenML (ML datasets), DANDI (neurophysiology dandisets), and CZ CELLxGENE (single-cell datasets). Returns compact DataResource records; per-source failures are reported in errors{}. Use resolve for the full record (SRA resolve attaches the ENA FASTQ manifest; publication resolve attaches links[] to datasets/accessions, normalized identifiers (pmid/pmcid/doi), and β when open access β a full-text file), then fetch to download files. Pass organism=<name> to expand the query with NCBI-Taxonomy synonyms; results carry normalized taxa[] + plant cross-links. Pass disease=<name> to expand the query with MeSH descriptor synonyms (e.g. 'breast cancer' also matches 'Breast Neoplasms'); the expansion is echoed in mesh_expansion. Pass tissue=<name> to expand the query with UBERON synonyms (e.g. 'liver' also matches 'iecur'/'jecur'); the expansion is echoed in tissue_expansion. Pass chemical=<name> to expand the query with ChEBI compound synonyms (e.g. 'caffeine' also matches '1,3,7-trimethylxanthine'); the expansion is echoed in chemical_expansion. Pass assay=<name> to expand the query with EDAM assay/method synonyms (e.g. 'ChIP-seq' also matches 'ChIP-sequencing'); echoed in assay_expansion. Pass collapse_mirrors=true to opt into conservative cross-repo mirror collapse: same-dataset copies under different/no DOIs are folded into one record, with the folded copies annotated under mirrors[]. An ontology param that matches no term in its registry (e.g. organism='yeast' β NCBI Taxonomy indexes no such common name) is reported in unresolved[] and the search runs WITHOUT that expansion, so a dropped filter is never silent. Clients that support form elicitation are asked for a replacement term before the search runs.
resolveFetch the full DataResource for a known id (e.g. 'zenodo:7654321', 'datacite:10.5061/dryad.x', 'hf:owner/name', a bare Zenodo record id, or a DOI), including the complete files[] manifest. Publication resolve also attaches normalized identifiers (pmid/pmcid/doi) and, when open access, a full-text file. Pass cite=<format> to render a citation onto the result (citation field); omitted means no citation. Pass trust=true to attach retraction status (via Crossref) under trust{}. Pass fair=true to attach an RDA-grounded FAIRness score (0β100 + F/A/I/R sub-scores + actionable gaps) computed from the record under fair{}. Pass use=<intent> (commercial/redistribute/modify/ml-training) to attach a licence-compatibility advisory (ALLOW/REVIEW/DENY, not legal advice) under license_compat{}. Pass format=provenance for a one-call RO-Crate 1.1 data-availability dossier (under provenance{}) composing version-currency, licence+SPDX, FAIR score, retraction status, and the source/DOI/ID chain β it auto-attaches fair + trust.
fetchDownload a resource's files to local disk and return the PATHS (never the file contents). Fetchable backends: Zenodo (md5-verified); SRA via ENA FASTQ (md5-verified); GEO supplementary files (unverified); DataCite sub-repos β Figshare/Dataverse/OSF (md5-verified), OpenNeuro (snapshot manifest, unverified), Dryad is manifest-only (resolve lists files, fetch fails loud), Mendeley + other DataCite repos fail loud; PubMed/OpenAIRE open-access full text (EuropePMC XML / Unpaywall PDF, unverified); HuggingFace Hub (unverified); DataONE Member-Node objects (md5/SHA-256-verified); OmicsDI β PRIDE + MetaboLights only (unverified), MassIVE/GNPS/PeptideAtlas/Metabolomics Workbench fail loud; DANDI dandisets (302βS3, unverified); CZ CELLxGENE H5AD/RDS assets (unverified); OpenML ARFF (md5-verified); RCSB PDB .cif/.pdb structure files (unverified). Fails loud if selected files exceed max_bytes unless force=true. Verifies checksums; writes a .dataresource.json sidecar.
list_sourcesList wired data sources and their capabilities (layer, kinds, supported filters, auth requirement, rate limit, status).
operateInspect or query a remote tabular file (Parquet/CSV/TSV) WITHOUT downloading it. op='schema' returns columns+types; 'preview' a small sample; 'head' the first n rows; 'sql' a read-only SELECT against the file (exposed as the view 'data', e.g. "SELECT * FROM data WHERE x > 1"). op='peek' profiles every column WITHOUT downloading β type, null-rate, approximate distinct count, min/max, and numeric quartiles (a DuckDB SUMMARIZE; like head/sql it reads the whole file, so it honors the source-size ceiling). Addresses a file by catalog id + file name (resolve the id first to see files[] and access_modes). Requires the [operate] extra; fails loud if the file is not an operable tabular file.
relateGiven 2-10 resource ids, return metadata-level join/harmonization HINTS: how the datasets relate and on what key they could be joined. Detects shared accessions (BioProject/SRA/GEO), shared cross-identifiers (doi/pmid/pmcid), explicit links between the inputs, and version lineage. HINTS ONLY β it does not read file columns, fetch files, or execute any join/merge/conversion; each hint names the shared value as evidence. Resolve ids first if you only have a search result. Per-id resolve failures are reported, not fatal.
The musharna/data-aggregator-mcp MCP server provides six tools for discovering and working with public research resources: search, resolve, fetch, list_sources, operate, and relate. It covers general data archives, sequencing and omics registries, publications, machine-learning datasets, biodiversity and environmental catalogs, structures, single-cell data, and other specialized repositories described by the source configuration.
Search results use normalized DataResource records. DOI-based deduplication can combine records that represent the same dataset, and optional mirror collapse folds conservative cross-repository copies into a single result. Publication resolution can expose linked datasets and accessions, normalized identifiers, and open-access full text when available.
search fans a query out to the configured sources and reports source-specific failures in an errors object rather than hiding them. Organism terms can expand through NCBI Taxonomy; disease, tissue, chemical, and assay terms can use MeSH, UBERON, ChEBI, and EDAM synonym registries. Unresolved ontology terms are reported and do not silently become filters. Clients that support form elicitation may be asked for a replacement term.
Use resolve with a catalog identifier, DOI, or supported repository identifier to obtain the complete file manifest. It can also add citation output, Crossref-based retraction status, FAIR scoring, licence-compatibility guidance, or a provenance dossier. fetch writes selected files to local disk, returns paths rather than file contents, verifies checksums where the source provides them, and creates a .dataresource.json sidecar.
operate reads remote Parquet, CSV, or TSV files without downloading them. It supports schema inspection, previews, row retrieval, column profiling, and read-only SQL against a data view. relate compares two to ten resource IDs and returns evidence-based metadata hints based on shared accessions, identifiers, explicit links, or version lineage. It does not join or transform file contents.
Run the musharna/data-aggregator-mcp MCP server with uvx data-aggregator-mcp, or install it with pip and run data-aggregator-mcp or python -m data_aggregator_mcp. The optional operate capability requires the [operate] extra. The default transport is stdio, which lets fetched files be written to the client machine.
The server also supports Streamable HTTP through data-aggregator-mcp --transport http. HTTP mode serves the /mcp/ endpoint and includes host and origin controls. Non-loopback binds require an explicit allowed host. In HTTP deployments, fetch writes to the server filesystem, so returned paths may not be readable by the calling client.
An NCBI_API_KEY may be supplied for NCBI access, but the provided setup does not identify any mandatory credential or paid API dependency.
The source support is not uniform. Some repositories are metadata-only or manifest-only, while others support downloads with verified checksums. fetch fails explicitly for unsupported backends and refuses selections over the configured size ceiling unless forced.
Always refer to the official documentation for the most accurate and up-to-date information.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/musharna-data-aggregator-mcp)<a href="https://allmcps.com/mcp/musharna-data-aggregator-mcp"><img src="https://allmcps.com/api/badge/musharna-data-aggregator-mcp?style=directory" alt="Data Aggregator MCP on AllMCPs" /></a>