用途
Enrichr MCP Server 是一个 Model Context Protocol(MCP)服务器,用于提供基因集富集分析(gene set enrichment analysis),底层调用 Enrichr API。它面向需要通过大语言模型工具进行富集分析的研究场景,支持 Enrichr 当前提供的所有基因集库,并且只返回统计显著的结果(校正 p 值 < 0.05),供 LLM 工具解读。
主要能力
- 两个工具:
enrichr_analysis用于运行富集分析,suggest_libraries用于发现相关基因集库。 - 自定义背景校正:可针对自己的背景基因集(例如仅测定中表达的基因)进行检验,而非使用全基因组。
- 实时库目录:库列表在运行时从 Enrichr 获取,新发布的库会自动出现,已退役的库不会被推荐。
- 引导式工作流:提供
enrichment_analysis提示,支持从库选择、分析到解读的端到端流程。 - 22 个库类别:为所有库提供程序化类别映射(通路、癌症、激酶等)。
- 并行库查询:所有库并行查询,实现快速的多数据库分析。
- 结构化输出:同时返回人类可读文本和结构化 JSON,便于程序化使用。
- 可配置输出格式:detailed、compact 或 minimal,用于管理 token 用量。
- TSV 导出:可将完整结果保存为 TSV 文件。
工具说明
suggest_libraries
为研究问题发现最相关的 Enrichr 库。建议在 enrichr_analysis 之前使用,以为具体主题挑选最合适的库。它搜索 Enrichr 的实时库目录,因此不会推荐 Enrichr 已退役的库。当两个库相关度相同时,更新的版本排在前(例如 GO_Biological_Process_2026 优先于 ..._2021)。
参数:
- query(必填):研究背景(例如 "DNA repair"、"breast cancer drug resistance")。
- category(可选):按类别过滤(例如 cancer、pathways、kinases)。
- maxResults(可选):返回的最大结果数(默认:10,最大:50)。
返回:带相关性评分、类别和描述的库排名列表,以及包含 suggestions 数组的结构化 JSON。
enrichr_analysis
跨多个 Enrichr 库并行执行富集分析。
参数:
- genes(必填):基因符号数组(例如 ["TP53", "BRCA1", "EGFR"])——至少 2 个。
- libraries(可选):要查询的 Enrichr 库名称数组(默认使用配置的库)。
- background(可选):自定义背景基因集——至少 20 个基因。见下文。
- description(可选):基因列表的描述。
- maxTerms(可选):每个库的最大条目数(默认:50)。
- format(可选):输出格式:detailed、compact、minimal。
- outputFile(可选):将完整结果保存为 TSV 文件的路径。
返回:带格式化显著条目(名称、p 值、优势比、组合分数、重叠基因)的文本内容,以及包含完整结果数据的结构化 JSON 输出,其中每个库带有 backgroundCorrected 字段。
背景校正
默认情况下,Enrichr 将你的基因列表与全基因组进行检验。如果你的基因来自受限的基因集合——例如仅组织表达的基因,或靶向 panel——全基因组默认值会夸大显著性,往往夸大许多数量级。可通过 background 传入列表所抽取的基因集合(universe):
差别并非表面性的。对于一个 16 基因的 DNA 损伤列表,最靠前的 GO 条目经调整后的 p 值从 1.2e-16(全基因组)变为 1.8e-5(48 基因背景),且 "显著" 条目数量从 359 降到 10。
背景校正针对 Enrichr 的独立 speedrichr 服务运行,该服务会间歇性不可用。失败会自动重试;若持续失败,库会回退到未校正的全基因组 p 值,结果会被标记为 backgroundCorrected: false,并在文本输出中给出醒目的 WARNING。回退结果永远不会被当作已进行背景校正来呈现。
引导式工作流
enrichment_analysis 提供基因集富集分析的引导式工作流。接受基因列表和可选的研究背景,然后依次完成库选择、分析和解读。
- genes(必填):基因符号,以逗号或换行分隔。
- context(可选):用于库选择的研究背景(触发 suggest_libraries 步骤)。
库类别
所有 200+ 个库被组织为 22 个类别。可使用 suggest_libraries 搜索所有类别,或读取 enrichr://libraries/{category} 获取任意类别的完整列表。
使用方式
下载最新的 MCPB bundle(.mcpb 文件),通过 ☰(左上角)-> File -> Settings 安装,然后将文件拖放到 Settings 窗口。
Cursor / VS Code:使用默认设置安装。
也可作为 Claude Code 插件安装。
手动配置:添加到 MCP 客户端配置(例如 .cursor/mcp.json)。
命令行选项
- detailed:完整细节,包括 p 值、优势比和基因列表(默认)。
- compact:条目名称 + p 值 + 基因数量(节省约 50% token)。
- minimal:仅条目名称 + p 值(节省约 80% token)。
环境变量
注意:CLI 参数优先于环境变量。
多服务器实例
可为不同的研究背景设置不同的实例。
常用库(默认)
使用默认的 -l pop 配置时适用。
依赖的 Enrichr API
- 添加列表:https://maayanlab.cloud/Enrichr/addList
- 富集:https://maayanlab.cloud/Enrichr/enrich
- 库目录:https://maayanlab.cloud/Enrichr/datasetStatistics —— 运行时获取并缓存 24 小时,因此库列表不会过期
- 背景校正富集:https://maayanlab.cloud/speedrichr/api/{addList,addbackground,backgroundenrich}
- 支持的库:Enrichr 当前提供的所有库(撰写时为 228 个)
注意:当某个条目与背景完全重叠时,Enrichr 会输出裸 Infinity 字面量作为优势比,这不是合法的 JSON。本服务器能正确解析这些响应;对原始响应直接使用 JSON.parse 会抛错。
适用场景
- 在 LLM 工具/客户端中执行基因集富集分析。
- 跨多个 Enrichr 数据库进行多数据库富集分析。
- 需要自定义背景基因集校正的富集分析。
- 需要发现适合特定研究主题的基因集库。
限制
- 需要联网访问 Enrichr API。
- 背景校正依赖 speedrichr 服务,该服务间歇性不可用,失败时会回退到未校正结果并标记。
- 部分功能与配置细节(如具体环境变量名称、完整默认库列表、支持的 MCP 客户端范围等)资料中暂未提供。