Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

A MCP server that provides gene set enrichment analysis using the Enrichr API

README.md

Enrichr MCP Server

<div align="center"> <img src="icon.svg" alt="Enrichr MCP Server Icon" width="128" height="128"> </div>

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.

![Smithery](https://smithery.ai/server/enrichr-mcp-server)

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:

![Install MCP Server](https://cursor.com/install-mcp?name=enrichr-mcp-server&config=eyJjb21tYW5kIjoibnB4IC15IGVucmljaHItbWNwLXNlcnZlciAtLWNvbXBhY3QgLS1tYXgtdGVybXMgMTAwIn0%3D) ![Add to VS Code](https://vscode.dev/redirect?url=vscode%3Amcp/install%3F%257B%2522name%2522%253A%2522enrichr-mcp-server%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522-y%2522%252C%2522enrichr-mcp-server%2522%252C%2522--compact%2522%252C%2522--max-terms%2522%252C%2522100%2522%255D%257D) ![Add to VS Code Insiders](https://vscode.dev/redirect?url=vscode-insiders%3Amcp/install%3F%257B%2522name%2522%253A%2522enrichr-mcp-server%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522-y%2522%252C%2522enrichr-mcp-server%2522%252C%2522--compact%2522%252C%2522--max-terms%2522%252C%2522100%2522%255D%257D)

Claude Code

claude mcp add enrichr-mcp-server -- npx -y enrichr-mcp-server

Or install as a Claude Code plugin: ``bash /plugin install enrichr-mcp-server ``

Smithery

npx -y @smithery/cli install enrichr-mcp-server --client claude

Manual Configuration

Add to your MCP client config (e.g., .cursor/mcp.json):

{
  "mcpServers": {
    "enrichr-server": {
      "command": "npx",
      "args": ["-y", "enrichr-mcp-server"]
    }
  }
}

Features

  • Two Tools: enrichr_analysis for running enrichment, suggest_libraries for discovering relevant libraries
  • Custom 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_analysis prompt for end-to-end analysis with interpretation
  • 22 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 2
  • libraries (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 list
  • maxTerms (optional): Maximum terms per library (default: 50)
  • format (optional): Output format: detailed, compact, minimal
  • outputFile (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 backgroundCorrected per 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 | |-----|-------------| | enrichr://libraries | Full library catalog organized by category | | enrichr://libraries/{category} | Libraries for a specific category (e.g., enrichr://libraries/cancer) |

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 separated
  • context (optional): Research context for library selection (triggers suggest_libraries step)

Library Categories

All 200+ libraries are organized into 22 categories:

| Category | Examples | |----------|----------| | transcription | ChEA_2022, ENCODE_TF_ChIP-seq_2015, TRANSFAC_and_JASPAR_PWMs | | pathways | KEGG_2021_Human, Reactome_2022, WikiPathways_2023_Human, MSigDB_Hallmark_2020 | | ontologies | GO_Biological_Process_2025, GO_Molecular_Function_2025, Human_Phenotype_Ontology | | diseases_drugs | GWAS_Catalog_2023, DrugBank_2022, OMIM_Disease, DisGeNET | | cell_types | GTEx_Tissue_Expression_Up, CellMarker_2024, Tabula_Sapiens | | microRNAs | TargetScan_microRNA_2017, miRTarBase_2022, MiRDB_2019 | | epigenetics | Epigenomics_Roadmap_HM_ChIP-seq, JASPAR_2022, Cistrome_2023 | | kinases | KEA_2015, PhosphoSitePlus_2023, PTMsigDB_2023 | | gene_perturbations | LINCS_L1000_CRISPR_KO_Consensus_Sigs, CRISPR_GenomeWide_2023 | | metabolomics | HMDB_Metabolites, Metabolomics_Workbench_2023, SMPDB_2023 | | aging | Aging_Perturbations_from_GEO_down, GenAge_2023, Longevity_Map_2023 | | protein_families | InterPro_Domains_2019, Pfam_Domains_2019, UniProt_Keywords_2023 | | computational | Enrichr_Submissions_TF-Gene_Coocurrence, ARCHS4_TF_Coexp | | literature | Rummagene_signatures, AutoRIF, GeneRIF | | cancer | COSMIC_Cancer_Gene_Census, TCGA_Mutations_2023, OncoKB_2023, GDSC_2023 | | single_cell | Human_Cell_Landscape, scRNAseq_Datasets_2023, SingleCellSignatures_2023 | | chromosome | Chromosome_Location, Chromosome_Location_hg19 | | protein_interactions | STRING_Interactions_2023, BioGRID_2023, IntAct_2023, MINT_2023 | | structural | PDB_Structural_Annotations, AlphaFold_2023 | | immunology | ImmuneSigDB, ImmPort_2023, Immunological_Signatures_MSigDB | | development | ESCAPE, Developmental_Signatures_2023 | | other | 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 | |--------|-------|-------------|---------| | --libraries <libs> | -l | Comma-separated list of Enrichr libraries to query | pop | | --max-terms <num> | -m | Maximum terms to show per library | 50 | | --format <format> | -f | Output format: detailed, compact, minimal | detailed | | --output <file> | -o | Save complete results to TSV file | _(none)_ | | --compact | -c | Use compact format (same as --format compact) | _(flag)_ | | --minimal | | Use minimal format (same as --format minimal) | _(flag)_ | | --help | -h | 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 | |----------|-------------|---------| | ENRICHR_LIBRARIES | Comma-separated list of libraries | GO_Biological_Process_2025,KEGG_2021_Human | | ENRICHR_MAX_TERMS | Maximum terms per library | 20 | | ENRICHR_FORMAT | Output format | compact | | ENRICHR_OUTPUT_FILE | TSV output file path | /tmp/enrichr_results.tsv |

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 | |---------|-------------| | GO_Biological_Process_2026 | Current Gene Ontology biological process terms. | | KEGG_2026 | Current KEGG metabolic and signaling pathways. | | Reactome_Pathways_2024 | Current Reactome release — curated, peer-reviewed pathways. | | MSigDB_Hallmark_2020 | Hallmark gene sets representing well-defined biological states and processes. | | ChEA_2022 | ChIP-seq experiments identifying transcription factor-gene interactions. | | GWAS_Catalog_2025 | Genome-wide association study results linking genes to traits. | | Human_Phenotype_Ontology | Standardized vocabulary of phenotypic abnormalities associated with human diseases. | | PPI_Hub_Proteins | Highly connected hub proteins from protein-protein interaction networks. | | DGIdb_Drug_Targets_2024 | Drug-gene interactions from the Drug Gene Interaction Database. | | CellMarker_2024 | Manually curated cell type markers for human and mouse. |

API Details

This server uses the Enrichr API:

  • Add List: https://maayanlab.cloud/Enrichr/addList
  • Enrichment: https://maayanlab.cloud/Enrichr/enrich
  • Library Catalog: https://maayanlab.cloud/Enrichr/datasetStatistics — fetched at runtime and cached for 24h, so the library list is never stale
  • Background-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 inspector

Requirements

  • 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

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Other servers.