Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Data Aggregator

PYPI · DATA-AGGREGATOR-MCP

Find & fetch research datasets across 21 archives, omics registries, and literature sources.

0 this week 95 Trust /100

Last scanned (38 minutes ago)

Scores higher than 98% of PyPI servers

Category Education and Research

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 2 of 32 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to musharna/data-aggregator-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 15 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability71
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4414 tokens (~630/item across 7 items; 6 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 97% of tool parameters carry a description.Partial
  • Structured output schemas are declared (83% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 1 Nov 26 +15
    • Malware scan: unverified → pass ▲ security
  • 31 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
  • 29 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 26 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
  • 24 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 23 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
  • 21 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 20 Oct 26 0
    • Package version: 0.75.3 → 0.75.4 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed pypi/data-aggregator-mcp@0.75.4

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem pypi
Reason Verified
Discovered via Registry attestation endpoint
Source repo musharna/data-aggregator-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/musharna/data-aggregator-mcp/.github/workflows/publish.yml@refs/tags/v0.75.4
Rekor log index 3330355626
Predicate type PyPI publish attestation https://docs.pypi.org/attestations/publish/v1
Subject digest sha256:c61aed8556c1554977eaf6e3f056037f53ada50ef3416b851a76951f554108d6

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 32 packages
Packages resolved 32
Stale 1
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 6 exposed · ~4,391 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
fetch ~490

Download a resource's files to local disk and return the PATHS (never the file contents). Tool names in this text are this server's own; your client may list them with a prefix (in Claude Code, mcp__data-aggregator__resolve): call the name it lists. 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 (unverified) + MetaboLights (sha-256-verified) only, MassIVE/jPOST/iProX/PeptideAtlas/Panorama Public/GNPS/Metabolomics Workbench fail loud; DANDI dandisets (302→S3, sha-256-verified); CZ CELLxGENE H5AD/RDS assets (unverified); OpenML ARFF (md5-verified); RCSB PDB .cif/.pdb structure files (unverified); UniProtKB FASTA (unverified); BioStudies study files (unverified); GBIF Darwin Core Archives (unverified); data.gov dataset distributions (unverified). Fails loud if selected files exceed max_bytes unless force=true. Verifies md5/SHA-256 where the source publishes one; files marked unverified get no integrity check. Writes a .dataresource.json sidecar.

NameTypeReqDescription
deststring–Destination dir (default managed cache)
extractboolean–Unpack downloaded zip/tar archives into the destination (default false). Path-traversal-guarded; counts against max_bytes.
filesstring–Glob over file names (default all)
forceboolean–Override max_bytes
idstringyesSource-prefixed id or bare Zenodo id
max_bytesinteger–Byte ceiling before failing loud
NameTypeReqDescription
bytesinteger––
pathsarray––
resumedarray––
skippedarray––
unverifiedarray––

No examples provided.

list_sources ~206

List wired data sources and their capabilities (layer, kinds, supported filters, auth requirement, rate limit, status). Tool names in this text are this server's own; your client may list them with a prefix (in Claude Code, mcp__data-aggregator__resolve): call the name it lists. filters_supported names the search parameters a source applies itself: cursor = it pages past page 1; published_after/published_before/kind = filtered upstream, so its total is filtered (any other source is filtered after fetch); organism/disease/tissue/chemical/assay = the synonym expansion reaches its query.

NameTypeReqDescription
check_healthboolean–When true, probe 5 sources (zenodo, datacite, omics, literature, huggingface) and attach a 'health' field ({status: up|down, latency_ms, detail}) to those entries; every other source gets health: nul…
NameTypeReqDescription
sourcesarrayyes–

No examples provided.

operate ~308

Inspect 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). Tool names in this text are this server's own; your client may list them with a prefix (in Claude Code, mcp__data-aggregator__resolve): call the name it lists. 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.

NameTypeReqDescription
columnsarray–Optional column projection for head.
filestring–File name within the record; optional when exactly one operable file is present.
idstringyesDataResource id (e.g. 'zenodo:1254563')
ninteger–Row count for head/preview
opstringyes–
querystring–Read-only SELECT for op='sql'.

No output schema declared.

No examples provided.

relate ~187

Given 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. Tool names in this text are this server's own; your client may list them with a prefix (in Claude Code, mcp__data-aggregator__resolve): call the name it lists. 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.

NameTypeReqDescription
idsarrayyes2-10 source-prefixed resource ids to relate.
NameTypeReqDescription
errorsobject––
hintsarray––
input_idsarrayyes–
note–––
resolvedarrayyes–

No examples provided.

resolve ~843

Tool names in this text are this server's own; your client may list them with a prefix (in Claude Code, mcp__data-aggregator__resolve): call the name it lists. Fetch the full DataResource for a known id (e.g. 'zenodo:1254563', 'datacite:10.5061/dryad.t4b8gtjgj', 'hf:davidcechak/Arabidopsis_thaliana_DNA_v0', 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.

NameTypeReqDescription
citestring–Optional citation format to render onto the result: 'bibtex', 'ris', 'csl-json', or any CSL style name ('apa', 'mla', 'vancouver', ...). DOI-bearing records render via DOI content negotiation; non-DO…
fairboolean–When true, attach an RDA-grounded FAIRness assessment under fair{}: a 0–100 overall score plus findable/accessible/interoperable/reusable sub-scores, the count of indicators evaluated, and actionable…
formatstring–Optional export to render onto the result. 'croissant' attaches a file-level Croissant JSON-LD manifest (croissant field); 'ro-crate' attaches a minimal RO-Crate 1.1 manifest (ro_crate field); 'prove…
idstringyesSource-prefixed id, bare Zenodo id, or DOI
trustboolean–When true, attach trust signals (retraction status via Crossref) to the result under trust{}. One extra Crossref call; only meaningful for DOI-bearing records (a DataCite data DOI Crossref does not r…
usestring–When set, attach a licence-compatibility advisory under license_compat{} for an intended use of the record. Supported intents: 'commercial', 'redistribute', 'modify', 'ml-training' (training = a deri…
NameTypeReqDescription
access–––
access_modesarray––
accessionsarray––
citation–––
creatorsarray––
croissant–––
description–––
doi–––
errorsobject––
fair–––
filesarray––
fundingarray––
idstringyes–
identifiersobject––
is_latest–––
kindstringyes–
last_updated–––
license–––
license_compat–––
linksarray––
methods–––
metrics–––
mirrorsarray––
organismarray––
provenance–––
ranked_by_copy–––
ro_crate–––
sourcestringyes–
subjectsarray––
superseded_by–––
taxaarray––
titlestringyes–
truncatedobject––
trust–––
unshown_termsarray––
year–––

No examples provided.

search ~2,357

Search 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), CZ CELLxGENE (single-cell datasets), GBIF (biodiversity datasets), data.gov (US government open data), NASA CMR (Earth-science collections), UniProt (protein entries), BioStudies (EMBL-EBI study records), NGDC (BioProjects deposited in China, with their GSA read sets), the Metabolomics Workbench (metabolomics studies), MassIVE (mass-spectrometry datasets: GNPS metabolomics, proteomics), and Kaggle (machine-learning datasets, many with no DOI). Tool names in this text are this server's own; your client may list them with a prefix (in Claude Code, mcp__data-aggregator__resolve): call the name it lists. DataCite, OmicsDI, NCBI omics, CELLxGENE, the Metabolomics Workbench, MassIVE and Kaggle match only records holding every query word: errors.all_words names one that matched none, and a hit of theirs lists in unshown_terms the query words it matched in text the hit leaves out, such as a protocol, which resolve shows. DataCite, OmicsDI, CELLxGENE, the Workbench and MassIVE are also searched for records holding only some of the words, ranked below hits naming more; keep queries to NCBI omics and Kaggle short. Returns compact DataResource records (fields with no value left out; long lists cut to their first few, named in truncated{}); a page holds what fits in one tool result, so it can return fewer than size hits, with errors.page_size saying so and next_cursor continuing; errors.next_page counts hits already fetched that name every query word and co…

NameTypeReqDescription
assaystring–Optional assay/method name. Resolved via EDAM topics (EBI OLS); the query is expanded with the canonical name + exact synonyms (e.g. 'ChIP-seq' also matches 'ChIP-sequencing'/'ChIP-exo'). An unknown…
chemicalstring–Optional chemical/compound name. Resolved via ChEBI (EBI OLS); the query is expanded with the canonical name + exact synonyms (e.g. 'caffeine' also matches '1,3,7-trimethylxanthine'), capped to a bou…
collapse_mirrorsboolean–Opt into conservative cross-repo content dedup (default false). On top of the always-on exact-DOI dedup, folds records that are the SAME dataset deposited under different (or no) DOIs — e.g. a Zenodo…
cursorstring–Opaque pagination token from a prior search's next_cursor. When set, all other search params are read from the cursor.
diseasestring–Optional disease/phenotype name. Resolved via MeSH (NCBI E-utilities); the query is expanded with the canonical descriptor + entry-term synonyms (e.g. 'breast cancer' also matches 'Breast Neoplasms')…
kindstring–Keep only results of this kind.
multi_queryboolean–Opt into diverse multi-query recall expansion: an LLM generates up to a few deliberately-diverse reformulations of your query, each is fanned out across all sources, and the deduped union is re-ranke…
organismstring–Optional organism name. Resolved via NCBI Taxonomy; the query is expanded with the canonical name + synonyms (e.g. 'Orobanche aegyptiaca' also matches 'Phelipanche aegyptiaca'). The expansion is echo…
provenanceboolean–Opt into a whole-search RO-Crate 1.1 Run Crate (default false). Attaches provenance_crate{} — a machine-readable manifest documenting this search: the query, the sources queried, the ontology expansi…
published_afterinteger–Keep results with year >= this.
published_beforeinteger–Keep results with year <= this.
querystring–Free-text search query
rankstring–Result ordering. 'relevance' (default) = hits that name more of the search first (each facet, then each query word, in the title, description, subjects or organism); among equal hits a data deposit (…
sizeinteger–Max results (1-50, default 10)
sourcesarray–Restrict fan-out to these sources (default: all). A dataset is often held only by a general archive (DataCite, Zenodo, DataONE), so leave this unset unless the user names the archives. Available: zen…
tissuestring–Optional tissue/anatomy name. Resolved via UBERON (EBI OLS); the query is expanded with the canonical term + exact synonyms (e.g. 'liver' also matches 'iecur'/'jecur'). The expansion is echoed in tis…
understandboolean–Opt into LLM query understanding: a free-text query is rewritten into a keyword core + structured params (organism/disease/tissue/chemical/assay, kind, year) before fan-out; extracted entities are va…
NameTypeReqDescription
assay_expansion–––
chemical_expansion–––
countintegeryes–
errorsobject––
mesh_expansion–––
next_cursor–––
provenance_crate–––
querystringyes–
query_expansion–––
query_understanding–––
resultsarray––
taxon_expansion–––
tissue_expansion–––
totalintegeryes–
unresolvedarray––

No examples provided.

Install

How do I install the Data Aggregator MCP server?

Data Aggregator runs locally as a PyPI package, launched with uvx data-aggregator-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · data-aggregator-mcp

# add to Claude Code
claude mcp add musharna-data-aggregator-mcp -- uvx data-aggregator-mcp
Common questions

What is the Data Aggregator MCP server?

Data Aggregator is an MCP server listed in the public MCP registry as io.github.musharna/data-aggregator-mcp. Find & fetch research datasets across 21 archives, omics registries, and literature sources. This page covers its PyPI package (data-aggregator-mcp).

Is the Data Aggregator MCP server safe to use?

Data Aggregator scores 95 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Data Aggregator MCP server expose?

Data Aggregator exposes 6 tools: search, resolve, fetch, list_sources, operate, relate. Their descriptions and schemas cost roughly 4,391 tokens of context every time the server is loaded.

Is the Data Aggregator MCP server still maintained?

Data Aggregator is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Data Aggregator MCP server under?

Data Aggregator declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.