mcpField
D
Data Aggregator

Data Aggregator

Local
github.com/musharnaSearch4Updated 3d ago

About Data Aggregator

Data Aggregator is an MCP server for researchers and agents that need to locate public research datasets across multiple archives and literature sources. It combines results into a deduplicated list and can resolve records with links, license checks, and research metadata.

Key features

  1. 01Search 21 public data sources at once
  2. 02Deduplicate results across sources
  3. 03Resolve records and linked datasets
  4. 04Check license metadata for a stated use
  5. 05Export Croissant or RO-Crate

Use cases

  1. 01Find datasets for a species or topic
  2. 02Trace datasets associated with a paper
  3. 03Check recorded license permissions for model training
  4. 04Review links shared across research records

MCP support

Exposes search, resolution, relationship, and related research-data operations to MCP clients. An optional operate extra adds SQL and previews over remote files.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"musharna-data-aggregator": {
"command": "uvx",
"args": [
"data-aggregator-mcp"
],
"env": {
"NCBI_API_KEY": "<NCBI_API_KEY>",
"LLM_API_BASE": "<LLM_API_BASE>",
"LLM_API_KEY": "<LLM_API_KEY>",
"LLM_MODEL": "<LLM_MODEL>",
"EMBEDDING_API_BASE": "<EMBEDDING_API_BASE>",
"EMBEDDING_API_KEY": "<EMBEDDING_API_KEY>",
"EMBEDDING_MODEL": "<EMBEDDING_MODEL>",
"DATA_GOV_API_KEY": "<DATA_GOV_API_KEY>",
"UNPAYWALL_EMAIL": "<UNPAYWALL_EMAIL>",
"NCBI_EMAIL": "<NCBI_EMAIL>",
"DATAVERSE_BASE_URL": "<DATAVERSE_BASE_URL>",
"CACHE_TTL_SECONDS": "<CACHE_TTL_SECONDS>"
}
}
}
}
Run commanduvx data-aggregator-mcp
Environment variables to set
NCBI_API_KEYSecretOptional NCBI E-utilities API key; raises the rate limit 3->10 req/s for omics, literature, and taxonomy lookups.
LLM_API_BASEBase URL of an OpenAI-compatible /chat/completions endpoint; enables search(understand=true) and search(multi_query=true).
LLM_API_KEYSecretBearer token for the LLM endpoint (LLM_API_BASE); omit for keyless local servers.
LLM_MODELModel name passed to the LLM endpoint (default: gpt-4o-mini); set to whatever your endpoint serves.
EMBEDDING_API_BASEBase URL of an OpenAI-compatible /embeddings endpoint; enables search(rank=semantic) re-ranking.
EMBEDDING_API_KEYSecretBearer token for the embeddings endpoint (EMBEDDING_API_BASE); omit for keyless local servers.
EMBEDDING_MODELModel name passed to the embeddings endpoint (default: text-embedding-3-small).
DATA_GOV_API_KEYSecretOptional api.data.gov key for the data.gov source; without it requests fall back to the shared public DEMO_KEY, which is aggressively rate-limited.
UNPAYWALL_EMAILEmail address sent to the Unpaywall API; required to enable the Unpaywall PDF fallback leg of literature full-text retrieval.
NCBI_EMAILContact address sent to NCBI's ID converter; falls back to UNPAYWALL_EMAIL when unset.
DATAVERSE_BASE_URLResolve Dataverse DOIs against a different installation (default: https://dataverse.harvard.edu).
CACHE_TTL_SECONDSResolve-cache lifetime in seconds (default: 3600); an unparseable value falls back to the default.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypidata-aggregator-mcp0.75.4

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

data-aggregator-mcp

data-aggregator-mcp is an MCP server that lets AI agents search 21 public research-data sources at once and get back one deduplicated list.

CI PyPI Python License DOI Glama

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

One-click install for VS Code or Cursor:

Install in VS Code Install in Cursor

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 was 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 license 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 21 sources in parallel (11 archives, 9 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.

What each source can fetch, and which checksum it is verified against: docs/sources.md.

What the benchmark shows

An agent using this server was compared with the same agent using web search, on held-out dataset-finding tasks scored by recall against independently built answer keys, 3 runs per task. Mean recall, server against web search: Claude Haiku 5.5 0.47 against 0.32 (higher on 8 of 10 tasks), Sonnet 5.5 0.54 against 0.52 (5 of 10), Opus 5.5 0.72 against 0.58 (6 of 10). With Haiku the server met round 5's pre-registered "better" rule (higher on at least 8 of 10 tasks, interval above 0) but not the stricter bar for a win across model tiers (9 of 10, Holm-adjusted sign test, p = 0.22); Sonnet and Opus met neither. With Opus it returned fewer wrong entries and answered in about a third of the time; with Sonnet it was faster on 9 of 10 tasks; with Haiku it cost less on 9 of 10.

The two latest Opus 5.5 rounds (2026-10-19, rules written before the runs):

Tools given to the agentRound 4 (5 tasks)Round 5 (10 tasks)
this server0.660.72
web search0.660.58
ToolUniverse0.590.63
no tools (memory only)0.020.09

In round 5 this server was higher on 6 of 10 tasks, where the pre-set rule needed 8. Web search hit the 15-minute limit in 11 of 30 runs, and a run that times out scores 0. In runs that finished, web search found more (0.90). The server answered in 203 s against 599 s (median), with fewer tool calls and fewer wrong entries (precision 0.95 against 0.62). It cost more per run than web search ($2.08 against $1.51, API-equivalent).

We chose the tasks and ran the benchmark ourselves; an outside re-run is welcome. Method and controls: benchmarks/h2h; the Haiku and Sonnet runs: 2026-10-20 re-run.

Compared with other servers

ServerSearchesOne searchChecksumRemote SQLLicense check
data-aggregator-mcp21 sources: data archives, omics, papersyes, DOI dedupwhere publishedyesyes
Mobus20 general and ML data platformsyes—row previewyes
paper-search-mcppapers: arXiv, PubMed, OpenAlex, Crossref and moreyes, deduplicated———
ToolUniverse1000+ tools: models, datasets, APIs, packagespapers———
BioMCPgenes, variants, trials, drugs, proteins, papersyes (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; ToolUniverse covers far more ground overall; paper-search-mcp covers far more literature sources; Mobus also compares datasets and checks schema compatibility. More: docs/POSITIONING.md.

Reference and development

Every tool and parameter, the HTTP transport (--transport http) and the environment variables: docs/reference.md. Sources that need every word of a query, and how they are searched: every-word sources. Tests, linting and the live API probes: CONTRIBUTING.md.

License

MIT. See LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.