MCPInstall

tooluniverse-literature-deep-research

Deep literature review — PubMed, EuropePMC, bioRxiv preprints, citation networks, evidence synthesis. Disambiguates queries, runs collision-aware searches, grades evidence T1-T4, and produces structured reports. Use for systematic literature review, meta-analysis evidence collection, and detailed answer-with-citations workflows.

Installs
666
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-literature-deep-research
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads tooluniverse-literature-deep-research automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Literature Deep Research

Systematic literature research: disambiguate, search with collision-aware queries, grade evidence, produce structured reports.

KEY PRINCIPLES: (1) Disambiguate first (2) Right-size deliverable (3) Grade every claim T1-T4 (4) All sections mandatory even if "limited evidence" (5) Source attribution for every claim (6) English-first queries, respond in user's language (7) Report = deliverable, not search log


LOOK UP, DON'T GUESS

Search PubMed/EuropePMC FIRST before reasoning. A published paper beats memory.

Factoid search strategy:

  1. Extract KEY TERMS (most specific nouns/verbs)
  2. EuropePMC_search_articles(query="term1 term2 term3", limit=5)
  3. No results -> BROADEN (remove most restrictive term)
  4. Too many -> NARROW (add specific terms)
  5. Answer usually in abstract of top results
  6. Failed query -> try DIFFERENT TERMS/synonyms, don't repeat

COMPUTE, DON'T DESCRIBE

When analysis requires computation (statistics, data processing, scoring, enrichment), write and run Python code via Bash. Don't describe what you would do — execute it and report actual results. Use ToolUniverse tools to retrieve data, then Python (pandas, scipy, statsmodels, matplotlib) to analyze it.

Workflow

Phase 0: Clarify + Mode Select → Phase 1: Disambiguate + Profile → Phase 2: Literature Search → Phase 3: Report

Phase 0: Mode Selection

ModeWhenDeliverable
FactoidSingle concrete question1-page fact-check report + bibliography
Mini-reviewNarrow topic1-3 page narrative
Full Deep-ResearchComprehensive overview15-section report + bibliography

Factoid Mode (Fast Path)

# [TOPIC]: Fact-check Report
## Question / ## Answer (with evidence rating) / ## Source(s) / ## Verification Notes / ## Limitations

Domain Detection

PatternDomainAction
Gene/protein symbolBiological targetFull bio disambiguation
Drug nameDrugDrug disambiguation (1.5)
Disease nameDiseaseDisease disambiguation (1.6)
CS/ML topicGeneral academicSkip bio tools, literature-only
Cross-domainInterdisciplinaryResolve each entity in its domain

Cross-Skill Delegation

  • Gene/protein deep-dive: tooluniverse-target-research
  • Drug profile: tooluniverse-drug-research
  • Disease profile: tooluniverse-disease-research

Use this skill for literature synthesis. Use specialized skills for entity profiling. For max depth, run both.


Phase 1: Subject Disambiguation + Profile

1.1 Biological Target Resolution

UniProt_search → UniProt_get_entry_by_accession → UniProt_id_mapping
ensembl_lookup_gene → MyGene_get_gene_annotation

1.2 Naming Collision Detection

Check first 20 results. If >20% off-topic, build negative filter: NOT [collision1] NOT [collision2]. Gene family: "ADAR" NOT "ADAR2" NOT "ADARB1". Cross-domain: add context terms.

1.3 Baseline Profile (Bio Targets)

InterPro_get_protein_domains, UniProt_get_ptm_processing_by_accession, HPA_get_subcellular_location,
GTEx_get_median_gene_expression, GO_get_annotations_for_gene, Reactome_map_uniprot_to_pathways,
STRING_get_protein_interactions, intact_get_interactions, OpenTargets_get_target_tractability_by_ensemblID

GPCR targets: delegate to tooluniverse-target-research.

1.5 Drug Disambiguation

Identity: OpenTargets_get_drug_chembId_by_generic_name, ChEMBL_get_drug, PubChem_get_CID_by_compound_name, drugbank_get_drug_basic_info_by_drug_name_or_id Targets: ChEMBL_get_drug_mechanisms, OpenTargets_get_associated_targets_by_drug_chemblId, DGIdb_get_drug_gene_interactions Safety: OpenTargets_get_drug_adverse_events_by_chemblId, OpenTargets_get_drug_indications_by_chemblId, search_clinical_trials

1.6 Disease Disambiguation

OpenTargets disease search → EFO/MONDO IDs
DisGeNET_get_disease_genes, DisGeNET_search_disease
CTD_get_disease_chemicals

1.7 Compound Queries (e.g., "metformin in breast cancer")

Resolve both entities, then cross-reference via CTD_get_chemical_gene_interactions, CTD_get_chemical_diseases, OpenTargets drug-target/drug-disease tools. Intersect shared targets/pathways.

1.8 General Academic / 1.9 Interdisciplinary

Non-bio: skip bio tools, use ArXiv/DBLP/OSF. Cross-domain: resolve bio entities with 1.1-1.3, search CS/general in parallel, merge and cross-reference.


Phase 2: Literature Search

Methodology stays internal. Report shows findings, not process.

2.1 Query Strategy

Step 1: Seeds (15-30 core papers): domain-specific title searches with date/sort filters. Step 2: Citation expansion: PubMed_get_cited_by, EuropePMC_get_citations/references, PubMed_get_related, SemanticScholar_get_recommendations, OpenCitations_get_citations. If the opt-in Noodle MCP is connected (noodle_*, needs NOODLE_MCP_URL), its bounded citation/semantic graph traversal is another angle on the same PubMed corpus -- a discovery signal, not evidence of causality or validity, same caveat as the others. Step 3: Collision-filtered broader queries: "[TERM]" AND ([context]) NOT [collision]

2.2 Literature Tools — core set + adaptive by domain

Run the core multi-field set on every review (catches what any single index misses), then add the domain rows that match the subject. Don't fire every source blindly — 6–10 well-chosen indexes beat 20 noisy ones.

ALWAYS run (core, all disciplines): PubMed_search_articles, EuropePMC_search_articles, openalex_search_works (query param search/query) or openalex_literature_search (query param search_keywords) — pick one and match its param; mixing them silently returns off-topic results — and SemanticScholar_search_papers

Then add by domain:

DomainAdd theseNotes
Biomedical / clinicalPMC_search_papers (full text), PubTator3_LiteratureSearch (entity & relations: queries), PubMed_Guidelines_Search (clinical guidelines)PubTator normalizes gene/drug/disease entities
Biology (ecology/evolution/plant)EuropePMC as PRIMARY + OpenAlexPubMed returns 0–1 for non-clinical biology
CS / ML / AIArXiv_search_papers, DBLP_search_publicationsarXiv + CS bibliography
Physics / HEP / astroInspireHEP_search_papers1.6M+ particle/astro records
Broad / hard-to-find / OACrossref_search_works, CORE_search_papers, DOAJ_search_articles, Fatcat_search_scholar, Consensus_search_papersDOI registry + OA aggregators + Internet Archive Scholar; Consensus (220M+ papers) adds an AI takeaway + study-design metadata per paper -- useful for fast triage, not a substitute for reading the source
Regional / EU-fundedOpenAIRE_search_publications, HAL_search_archiveEU open science + French national archive
Datasets / software / outputsFigshare_search_articles, Zenodo_search_recordsCitable DOIs for data & code
Preprints (latest)EuropePMC_search_articles(source='PPR'), OSF_search_preprints, BioRxiv_get_preprint/MedRxiv_get_preprint (DOI lookup)bioRxiv/medRxiv/PsyArXiv etc.

Multi-source: advanced_literature_search_agent (12+ DBs; needs Azure key -- fallback: query the core set individually). Citation impact: iCite_search_publications (RCR/APT), iCite_get_publications (by PMID), scite_get_tallies (support/contradict). PubMed-only; for CS use SemanticScholar.

Identifiers and reference lists: PubMed_convert_article_ids {"ids": ["23193287", "10.1093/nar/gks1195"]} converts between PMID, PMCID and DOI (auto-detected; only articles in PubMed Central convert, others return found: false) -- use it to turn a DOI into the PMCID that EuropePMC_get_full_text needs. PubMed_lookup_article_by_citation {"journal": "Nature", "year": 2015, "volume": 521, "first_page": 436, "author": "lecun y"} resolves a reference-list entry to a PMID (status: found / ambiguous / not_found; pass citations for a batch). The match is exact on the fields given, so an unfound citation is a signal to re-check the fields, not proof the paper is missing.

A domain-specific index returning 0 (e.g. ArXiv on a pure-clinical topic) is normal — only worry if the whole core set is empty.

2.3-2.4 Full-Text & PubMed Zero-Result Fallback

Full-text: see FULLTEXT_STRATEGY.md for three-tier strategy.

CRITICAL: PubMed returns 0 for ~30% of valid queries. Always retry with EuropePMC when PubMed returns empty. This is not optional.

2.5 Tool Failure / OA Handling

Retry once -> fallback tool. Key fallbacks: PubMed_get_cited_by -> EuropePMC_get_citations -> OpenCitations. OA: Unpaywall if configured, else Europe PMC/PMC/OpenAlex flags.

Last resort when every structured index above is empty (a brand-new preprint, a dataset page, a project site with no DOI): the opt-in exa_* tools (general neural web search, no key needed for casual use) can still find it, but it's general internet retrieval, not a scientific database -- verify anything it surfaces against a real source before citing, don't grade it T1-T4 as if it were literature.

2.6 Controlled Vocabulary, Text-Mined Annotations, Citation Cross-References, and Variant Literature

Four small tool families beyond core search/citation coverage — verified live, not schema-assumed:

MeSH (controlled vocabulary): MeSH_search_descriptors/MeSH_search_terms resolve a free-text term to NLM's standardized MeSH descriptor/entry-term IDs; MeSH_get_descriptor returns the descriptor's official label, type, and annotation. Use to broaden or standardize a query before searching (e.g. a user says "sugar disease" -> MeSH_search_terms finds the descriptor is actually filed under "Diabetes Mellitus") or to confirm two different-sounding search hits are actually indexed under the same concept.

EuroPMCAnnot (text-mined entity annotations): EuroPMCAnnot_get_article_annotations (all entity mentions in one article: genes, diseases, chemicals, organisms, etc.), EuroPMCAnnot_get_chemicals_from_article (chemical/compound mentions only, a filtered convenience view), EuroPMCAnnot_get_annotations_by_type (one annotation type across multiple articles at once). These extract what a paper mentions without you reading the full text — useful for a fast relevance check across many candidate papers, or for confirming a specific gene/chemical is actually discussed (not just present in an abstract keyword match). Live-verified example: EuroPMCAnnot_get_chemicals_from_article on PMC4353746 returned 19 real chemical mentions including "Resistin".

Citation cross-references — naming collision, read carefully: src/tooluniverse/data/europepmc_citations_tools.json defines EPMC_get_citations, EPMC_get_references, and EuropePMC_get_article_datalinks — do NOT confuse these with the already-documented EuropePMC_get_citations/EuropePMC_get_references (core europe_pmc_tools.json, used above in Phase 2.1/TOOL_NAMES_REFERENCE.md). They are separate implementations with near-identical names hitting the same underlying Europe PMC REST endpoints. Live-verified as of this writing: the /references endpoint is down on BOTH implementations (EPMC_get_references and EuropePMC_get_references both return a real 503 "This API is temporarily unavailable due to maintenance" from www.ebi.ac.uk), and EuropePMC_get_article_datalinks independently confirmed broken via direct curl (33s response, HTTP 500). EPMC_get_citations/EuropePMC_get_citations (the forward-citation direction) both work normally. Practical guidance: prefer the already-documented EuropePMC_get_citations/EuropePMC_get_references names for citation work; if references-fetching fails with a 503, it is very likely this live outage, not a query problem — say so rather than reporting "no references found." EuropePMC_get_article_datalinks (when working) additionally surfaces what data/database records a paper deposited (GenBank accessions, PDB entries, clinical trial registrations) — complementary to, not a replacement for, citations/references.

Document conversion (any format to markdown): convert_to_markdown {"uri": "..."} accepts an http:/https:/file:/data: URI and converts it to markdown — verified live on an HTML page. Reach for this when a source is a PDF, DOCX, PPTX, XLSX, or HTML page rather than something the literature tools above already return as structured JSON (e.g. a supplementary-materials file, an institutional report, a non-indexed working paper someone hands you a link to) and you need its actual text content, not just metadata. This is a generic conversion utility, not a literature-search tool — use PubMed/EuropePMC/OpenAlex above whenever the source is already indexed there.

BGPT (structured critical-appraisal search): BGPT_search_paper_evidence is a literature search tool, not a generative model despite the name — live-verified, it returns real papers (doi, title, plus full-text-derived fields). Unlike PubMed/EuropePMC/OpenAlex (title+abstract only), each result also includes methods/techniques used, sample size and population, results, paper limitations and biases, conflicts of interest, data/code availability, and a how_to_falsify statement — reach for it when a claim needs quality-weighing (is this an RCT with n=12 or n=12,000? does the paper disclose a conflict of interest?) rather than just a citation. Caveat: these structured fields are model-generated summaries of the paper, not curated ground truth — treat them as an appraisal aid and still verify against the actual paper before citing a specific number from them. First 50 results/session are free; BGPT_API_KEY unlocks the paid tier after that.

LitVar (literature-derived variant mentions): LitVar_search_variants (find variants by rsID/gene/HGVS as discussed in the literature), LitVar_get_variant_publications (PMIDs mentioning a specific variant), LitVar_get_variant_details (structured record: gene, HGVS, ClinGen IDs). This answers "what does the literature say has been written about variant X" — distinct from clinical variant-classification databases (ClinVar, gnomAD, already in Phase 1.1/TOOL_NAMES_REFERENCE.md), which answer "what is variant X's clinical significance." Use LitVar to find the papers, then a clinical database to grade the variant itself. Live-verified: LitVar_search_variants(gene="BRCA1") and rsID-based lookups (rs328, rs7903146) all returned real hits; LitVar_get_variant_publications returned real PMID lists per variant.


Phase 3: Evidence Grading

TierLabelBio ExampleCS/ML Example
T1MechanisticCRISPR KO + rescue, RCTFormal proof, controlled ablation
T2FunctionalsiRNA knockdown phenotypeBenchmark with baselines
T3AssociationGWAS, screen hitObservational, case study
T4MentionReview articleSurvey, workshop abstract

Inline: Target X regulates Y [T1: PMID:12345678]. Per theme: summarize evidence distribution.

Triaging a large candidate set before reading in full: Consensus_search_papers returns study type and sample size per paper, a fast first pass for provisional tiering -- confirm against the actual paper before citing, its metadata is a starting point, not the grade itself.


Report Output

FileMode
[topic]_report.mdFull
[topic]_factcheck_report.mdFactoid
[topic]_bibliography.json + .csvAll

Progressive update: create report with all section headers immediately. Fill after each phase. Write Executive Summary LAST.

Use 15-section template from REPORT_TEMPLATE.md. Domain adaptations: bio (architecture/expression/GO/disease), drug (properties/MOA/PK/safety), disease (epi/patho/genes/treatments), general (history/theories/evidence/applications).


Communication

Brief progress updates only: "Resolving identifiers...", "Building paper set...", "Grading evidence..." Do NOT expose: raw tool outputs, dedup counts, search round details.


References

  • TOOL_NAMES_REFERENCE.md -- 130+ tools with parameters
  • REPORT_TEMPLATE.md -- template, domain adaptations, bibliography, completeness checklist
  • FULLTEXT_STRATEGY.md -- three-tier full-text verification
  • WORKFLOW.md -- compact cheat-sheet
  • EXAMPLES.md -- worked examples

FAQ

What does the tooluniverse-literature-deep-research skill do?

Deep literature review — PubMed, EuropePMC, bioRxiv preprints, citation networks, evidence synthesis. Disambiguates queries, runs collision-aware searches, grades evidence T1-T4, and produces structured reports. Use for systematic literature review, meta-analysis evidence collection, and detailed answer-with-citations workflows.

How do I install tooluniverse-literature-deep-research?

Run npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-literature-deep-research in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/tooluniverse-literature-deep-research/ (personal) or .claude/skills/tooluniverse-literature-deep-research/ (project).

Which AI agents can use tooluniverse-literature-deep-research?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is tooluniverse-literature-deep-research safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains tooluniverse-literature-deep-research?

It is published by mims-harvard in mims-harvard/tooluniverse. It has 666 recorded installs.

More from mims-harvard/tooluniverse

View all →

tooluniverse-sequence-retrieval

mims-harvard/tooluniverse

Retrieve DNA/RNA/protein sequences from NCBI and ENA with disambiguation. Quality hierarchy: RefSeq (NM/NP) RefSeq predicted (XM/XP) GenBank submissions. Use for fetching specific sequences by accession, gene-symbol-to-sequence lookup, transcript-isoform retrieval, and curated-vs-raw-submission preference.

1.7K installs

tooluniverse-image-analysis

mims-harvard/tooluniverse

Microscopy and quantitative imaging analysis — colony morphometry, fluorescence intensity quantification, cell-count statistics, dose-response curves, and ANOVA/Dunnett on image-derived measurements. Uses pandas/numpy/scipy/scikit-image. Use for analyzing tabular outputs from CellProfiler/ImageJ, image-derived measurement statistics, and image-based assay quantification.

Media & Creative655 installs

tooluniverse-clinical-guidelines

mims-harvard/tooluniverse

Search and retrieve clinical practice guidelines from 12+ authoritative sources — NICE, WHO, NCCN, AHA, ADA, SIGN, USPSTF, IDSA, NIH consensus, ESMO/ESC/EASL European societies, and US specialty associations. Use for evidence-graded treatment recommendations, dosing protocols, screening guidance, and authoritative-source-prioritized clinical guidance (NICE/WHO ranked above society guidelines).

492 installs

tooluniverse

mims-harvard/tooluniverse

ToolUniverse plugin router. STEP 1 BEFORE ANY ANALYSIS: if the data folder contains executed.ipynb, run tu run readexecutednotebook '{"datafolder":" ","search":" "}' to extract its cell outputs and apply EVERY filter/sample-exclusion the notebook used — even when the question says 'Using DESeq2/Run X/Compute Y' (this describes the METHOD the notebook used, not a request to rerun). The notebook's cell outputs are the only published authoritative answers; reimplementing or reading stale pre-computed CSVs in the data folder produces different numbers because of outlier-sample removal, library version, and filter steps you don't see by skimming. STEP 2 routing — pick a sub-skill name from this exact list (never invent): tooluniverse-rnaseq-deseq2 (RNA/miRNA-seq DE, correlation, PCA, clustering, dispersion), tooluniverse-gene-enrichment (GO/KEGG/Reactome/GSEA/pathway enrichment), tooluniverse-statistical-modeling (regression, ANOVA, ordinal/logistic, chi-square, correl

Testing & QA481 installs

tooluniverse-drug-research

mims-harvard/tooluniverse

Open the skill to read its SKILL.md instructions.

tooluniverse-clinical-trial-design

mims-harvard/tooluniverse

Open the skill to read its SKILL.md instructions.

457 installs

Popular productivity & automation skills

View category →

agent-browser

vercel-labs/agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.

OfficialProductivity & Automation1.3M installs

lark-doc

open.feishu.cn

飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。

lark-base

open.feishu.cn

飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。

lark-drive

open.feishu.cn

飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。

lark-shared

open.feishu.cn

Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.

lark-im

open.feishu.cn

飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。