Enrichr MCP Server
The Enrichr MCP Server performs gene set enrichment analysis using the Enrichr API, enabling biological interpretation of gene lists across hundreds of curated databases.
Gene Set Enrichment Analysis (
enrichr_analysis): Analyze gene lists to identify overrepresented biological terms across multiple libraries simultaneously — including Gene Ontology, pathways (KEGG, Reactome, WikiPathways), diseases (HPO, GWAS Catalog, OMIM), tissues/cell types (GTEx, ARCHS4), transcription factors (ChEA, ENCODE), drug targets, microRNA targets, and moreGO Biological Process Enrichment (
go_bp_enrichment): Dedicated tool for focused Gene Ontology Biological Process analysisParallel Querying: All libraries are queried simultaneously for fast, comprehensive multi-database analysis
Statistical Filtering: Returns only significant results (adjusted p-value < 0.05) to reduce noise
Flexible Output Formats: Choose
detailed(full p-values, odds ratios, gene lists),compact(~50% token savings), orminimal(~80% token savings); includes structured JSON for programmatic useConfigurable Libraries & Result Limits: Customize which libraries to query and control the number of terms returned per library (1–100)
TSV File Export: Save complete enrichment results for downstream analysis, bypassing display limits
Provides tools to perform gene set enrichment analysis against literature-mined data from PubMed, enabling the identification of significant associations between genes and published biomedical research.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Enrichr MCP Serveranalyze gene set BRCA1, TP53, PTEN for GO biological process enrichment"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Enrichr MCP Server
A Model Context Protocol (MCP) server that provides gene set enrichment analysis using the Enrichr API. This server supports all available gene set libraries from Enrichr and returns only statistically significant results (corrected-$p$ < 0.05) for LLM tools to interpret.
Installation
Claude Desktop
Download the latest MCPB bundle (.mcpb file) and install it via ☰ (top left) -> File -> Settings, then drag and drop the file into the Settings window.
Cursor / VS Code
Use the buttons below to install with default settings:
Claude Code
claude mcp add enrichr-mcp-server -- npx -y enrichr-mcp-serverOr install as a Claude Code plugin:
/plugin install enrichr-mcp-serverSmithery
npx -y @smithery/cli install enrichr-mcp-server --client claudeManual Configuration
Add to your MCP client config (e.g., .cursor/mcp.json):
{
"mcpServers": {
"enrichr-server": {
"command": "npx",
"args": ["-y", "enrichr-mcp-server"]
}
}
}Related MCP server: pgx-mcp
Features
Two Tools:
enrichr_analysisfor running enrichment,suggest_librariesfor discovering relevant librariesCustom Background Correction: Test against your own background gene set (e.g. only the genes expressed in your assay) instead of the whole genome
Live Library Catalog: The library list is fetched from Enrichr at runtime, so new releases appear automatically and retired libraries are never suggested
Guided Workflow:
enrichment_analysisprompt for end-to-end analysis with interpretation22 Library Categories: Programmatic category mapping for all libraries (pathways, cancer, kinases, etc.)
Parallel Library Queries: All libraries queried in parallel for fast multi-database analysis
Structured Output: Returns both human-readable text and structured JSON for programmatic use
Configurable Output Formats: Detailed, compact, or minimal to manage token usage
TSV Export: Save complete results to TSV files
Tools
suggest_libraries
Discover the most relevant Enrichr libraries for a research question. Use this before enrichr_analysis to pick the best libraries for your specific topic. Searches Enrichr's live library catalog, so it never recommends a library that Enrichr has retired. When two libraries are equally relevant, the newer vintage ranks first (GO_Biological_Process_2026 over ..._2021).
Parameters:
query(required): Research context (e.g., "DNA repair", "breast cancer drug resistance")category(optional): Filter by category (e.g.,cancer,pathways,kinases)maxResults(optional): Max results to return (default: 10, max: 50)
Returns:
Ranked list of libraries with relevance scores, categories, and descriptions
Structured JSON with suggestions array
enrichr_analysis
Perform enrichment analysis across multiple Enrichr libraries in parallel.
Parameters:
genes(required): Array of gene symbols (e.g.,["TP53", "BRCA1", "EGFR"]) — minimum 2libraries(optional): Array of Enrichr library names to query (defaults to configured libraries)background(optional): Custom background gene set — minimum 20 genes. See below.description(optional): Description for the gene listmaxTerms(optional): Maximum terms per library (default: 50)format(optional): Output format:detailed,compact,minimaloutputFile(optional): Path to save complete results as TSV file
Returns:
Text content with formatted significant terms (name, p-values, odds ratio, combined score, overlapping genes)
Structured JSON output with full result data, including
backgroundCorrectedper library
Background correction
By default Enrichr tests your gene list against the whole genome. If your genes
were drawn from a restricted universe — only the genes expressed in your tissue, or
a targeted panel — the whole-genome default overstates significance, often by many
orders of magnitude. Pass background with the universe the list was drawn from:
{
"genes": ["TP53", "BRCA1", "ATM", "CHEK2"],
"background": ["TP53", "BRCA1", "ATM", "CHEK2", "ACTB", "GAPDH", "..."],
"libraries": ["GO_Biological_Process_2026"]
}The difference is not cosmetic. For a 16-gene DNA-damage list, the top GO term moves from an adjusted p of 1.2e-16 (whole genome) to 1.8e-5 (48-gene background), and the number of "significant" terms drops from 359 to 10.
Background correction runs against Enrichr's separate speedrichr service, which is
intermittently unavailable. Failures are retried; if they persist, the library falls
back to uncorrected whole-genome p-values, and the result is flagged
backgroundCorrected: false with a loud WARNING in the text output. A fallback
result is never presented as if it were background-corrected.
Resources
URI | Description |
| Full library catalog organized by category |
| Libraries for a specific category (e.g., |
Prompts
enrichment_analysis
Guided workflow for gene set enrichment analysis. Accepts a gene list and optional research context, then walks through library selection, analysis, and interpretation.
Arguments:
genes(required): Gene symbols, comma or newline separatedcontext(optional): Research context for library selection (triggerssuggest_librariesstep)
Library Categories
All 200+ libraries are organized into 22 categories:
Category | Examples |
| ChEA_2022, ENCODE_TF_ChIP-seq_2015, TRANSFAC_and_JASPAR_PWMs |
| KEGG_2021_Human, Reactome_2022, WikiPathways_2023_Human, MSigDB_Hallmark_2020 |
| GO_Biological_Process_2025, GO_Molecular_Function_2025, Human_Phenotype_Ontology |
| GWAS_Catalog_2023, DrugBank_2022, OMIM_Disease, DisGeNET |
| GTEx_Tissue_Expression_Up, CellMarker_2024, Tabula_Sapiens |
| TargetScan_microRNA_2017, miRTarBase_2022, MiRDB_2019 |
| Epigenomics_Roadmap_HM_ChIP-seq, JASPAR_2022, Cistrome_2023 |
| KEA_2015, PhosphoSitePlus_2023, PTMsigDB_2023 |
| LINCS_L1000_CRISPR_KO_Consensus_Sigs, CRISPR_GenomeWide_2023 |
| HMDB_Metabolites, Metabolomics_Workbench_2023, SMPDB_2023 |
| Aging_Perturbations_from_GEO_down, GenAge_2023, Longevity_Map_2023 |
| InterPro_Domains_2019, Pfam_Domains_2019, UniProt_Keywords_2023 |
| Enrichr_Submissions_TF-Gene_Coocurrence, ARCHS4_TF_Coexp |
| Rummagene_signatures, AutoRIF, GeneRIF |
| COSMIC_Cancer_Gene_Census, TCGA_Mutations_2023, OncoKB_2023, GDSC_2023 |
| Human_Cell_Landscape, scRNAseq_Datasets_2023, SingleCellSignatures_2023 |
| Chromosome_Location, Chromosome_Location_hg19 |
| STRING_Interactions_2023, BioGRID_2023, IntAct_2023, MINT_2023 |
| PDB_Structural_Annotations, AlphaFold_2023 |
| ImmuneSigDB, ImmPort_2023, Immunological_Signatures_MSigDB |
| ESCAPE, Developmental_Signatures_2023 |
| MSigDB_Computational, HGNC_Gene_Families, Open_Targets_2023 |
Use suggest_libraries to search across all categories, or read enrichr://libraries/{category} for the full list in any category.
Configuration
Command Line Options
Option | Short | Description | Default |
|
| Comma-separated list of Enrichr libraries to query |
|
|
| Maximum terms to show per library |
|
|
| Output format: |
|
|
| Save complete results to TSV file | (none) |
|
| Use compact format (same as | (flag) |
| Use minimal format (same as | (flag) | |
|
| Show help message | (flag) |
Format Options
detailed: Full details including p-values, odds ratios, and gene lists (default)compact: Term name + p-value + gene count (saves ~50% tokens)minimal: Just term name + p-value (saves ~80% tokens)
Environment Variables
Variable | Description | Example |
| Comma-separated list of libraries |
|
| Maximum terms per library |
|
| Output format |
|
| TSV output file path |
|
Note: CLI arguments take precedence over environment variables.
Multiple Server Instances
Set up different instances for different research contexts:
{
"mcpServers": {
"enrichr-pathways": {
"command": "npx",
"args": ["-y", "enrichr-mcp-server", "-l", "GO_Biological_Process_2025,KEGG_2021_Human,Reactome_2022"]
},
"enrichr-disease": {
"command": "npx",
"args": ["-y", "enrichr-mcp-server", "-l", "Human_Phenotype_Ontology,OMIM_Disease,ClinVar_2019"]
}
}
}Popular Libraries (Default)
When using the default -l pop configuration:
Library | Description |
| Current Gene Ontology biological process terms. |
| Current KEGG metabolic and signaling pathways. |
| Current Reactome release — curated, peer-reviewed pathways. |
| Hallmark gene sets representing well-defined biological states and processes. |
| ChIP-seq experiments identifying transcription factor-gene interactions. |
| Genome-wide association study results linking genes to traits. |
| Standardized vocabulary of phenotypic abnormalities associated with human diseases. |
| Highly connected hub proteins from protein-protein interaction networks. |
| Drug-gene interactions from the Drug Gene Interaction Database. |
| Manually curated cell type markers for human and mouse. |
API Details
This server uses the Enrichr API:
Add List:
https://maayanlab.cloud/Enrichr/addListEnrichment:
https://maayanlab.cloud/Enrichr/enrichLibrary Catalog:
https://maayanlab.cloud/Enrichr/datasetStatistics— fetched at runtime and cached for 24h, so the library list is never staleBackground-corrected enrichment:
https://maayanlab.cloud/speedrichr/api/{addList,addbackground,backgroundenrich}Supported Libraries: Every library Enrichr currently serves (228 at time of writing)
Note: Enrichr emits bare Infinity literals for the odds ratio when a term's overlap
with the background is complete — which is not valid JSON. This server parses those
responses correctly; a naive JSON.parse on the raw response will throw.
Development
npm run build # Build TypeScript
npm test # Run tests (unit + integration + MCP protocol)
npm run test:watch # Run tests in watch mode
npm run watch # Auto-rebuild on file changes
npm run inspector # Debug with MCP inspectorRequirements
Node.js 18+
Internet connection for Enrichr API access
License
MIT
References
Chen EY, Tan CM, Kou Y, Duan Q, Wang Z, Meirelles GV, Clark NR, Ma'ayan A. Enrichr: interactive and collaborative HTML5 gene list enrichment analysis tool. BMC Bioinformatics. 2013; 128(14).
Kuleshov MV, Jones MR, Rouillard AD, Fernandez NF, Duan Q, Wang Z, Koplev S, Jenkins SL, Jagodnik KM, Lachmann A, McDermott MG, Monteiro CD, Gundersen GW, Ma'ayan A. Enrichr: a comprehensive gene set enrichment analysis web server 2016 update. Nucleic Acids Research. 2016; gkw377.
Xie Z, Bailey A, Kuleshov MV, Clarke DJB., Evangelista JE, Jenkins SL, Lachmann A, Wojciechowicz ML, Kropiwnicki E, Jagodnik KM, Jeon M, & Ma'ayan A. Gene set knowledge discovery with Enrichr. Current Protocols, 1, e90. 2021. doi: 10.1002/cpz1.90
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tianqitang1/enrichr-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server