MCP (模型上下文协议)服务器用于OpenGenes数据库
此服务器实现了OpenGenes的模型上下文协议(MCP),提供了一个标准化接口来访问衰老和长寿研究数据。MCP使AI助手和代理能够通过结构化接口查询全面的生物医学数据集。
服务器会自动从Hugging Face Hub下载最新的OpenGenes数据库和文档(特别是从opengenes文件夹),确保您始终可以访问最新数据而无需手动管理文件。
OpenGenes数据库包含:
如果您想了解更多关于模型上下文协议是什么以及如何更有效地使用它,您可以参加DeepLearning AI课程或在YouTube上搜索MCP视频。
这个MCP服务器是**Holy Bio MCP项目的一部分——一个统一的生物信息学研究框架,该框架赢得了2025年Bio x AI黑客马拉松比赛**,并在胜利后继续积极开发和扩展。
Holy Bio MCP框架将多个专门的MCP服务器整合到一个连贯的生态系统中,用于高级生物研究:
这些服务器共同提供了超过50种专门的生物信息学功能,可以在AI驱动的研究工作流程中无缝协作。更多关于完整框架的信息,请参阅github.com/longevity-genie/holy-bio-mcp。
这里是如何在实践中使用OpenGenes MCP服务器与AI助手交互:

示例展示了如何通过AI助手使用自然语言查询OpenGenes数据库,这会被转换成SQL查询通过MCP服务器。您可以在研究问题的聊天界面和基于AI的开发工具(如Cursor、Windsurf、带有Copilot的VS Code)中使用此数据库,以显著提高您的生物信息学生产力,同时在编码时直接访问衰老和长寿研究数据。
MCP是一种协议,弥合了AI系统与专业领域知识之间的差距。它支持:
OpenGenes MCP服务器会自动从Hugging Face Hub上的longevity-genie/bio-mcp-data存储库下载数据。这确保了:
数据文件存储在Hugging Face存储库的opengenes子文件夹中,包括:
open_genes.sqlite - 完整的OpenGenes数据库prompt.txt - 数据库模式文档和使用指南此服务器提供了三种主要工具来与OpenGenes数据库交互:
opengenes_db_query(sql: str) - 对OpenGenes数据库执行只读SQL查询opengenes_get_schema_info() - 获取详细的模式信息,包括表、列和枚举opengenes_example_queries() - 获取带有描述的示例SQL查询列表resource://db-prompt - 完整的数据库模式文档和使用指南resource://schema-summary - 表格及其目的的格式化摘要# 下载并安装uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# 验证安装
uv --version
uvx --version
uvx是一个非常好的工具,如果需要的话它可以运行一个python包。
您可以直接使用uvx运行opengenes-mcp服务器,而无需克隆仓库:
# 在流式http模式下运行服务器(默认)
uvx opengenes-mcp
<details>
<summary>其他uvx模式(STDIO, HTTP, SSE)</summary>
# 或显式指定stdio模式
uvx opengenes-mcp stdio
# 在默认端口(3001)上运行流式HTTP模式的服务器
uvx opengenes-mcp server
# 在特定端口上运行
uvx opengenes-mcp server --port 8000
# 在SSE模式下运行服务器
uvx opengenes-mcp sse
</details>
在使用uvx遇到问题时,通常可以通过清理uv缓存来解决:
uv cache clean
HTTP模式将启动一个Web服务器,您可以在http://localhost:3001/mcp(文档位于http://localhost:3001/docs)访问它。STDIO模式设计用于通过标准输入/输出通信的MCP客户端,而SSE模式使用服务器发送事件进行实时通信。
注意:目前我们没有Swagger/OpenAPI接口,因此直接在浏览器中访问服务器不会显示太多有用信息。要探索可用工具和功能,您应该使用MCP Inspector(见下文)或通过MCP客户端连接以查看可用工具。
这里可以直接复制到您的Claude Desktop或Cursor MCP配置中:
{
"mcpServers": {
"opengenes-mcp": {
"command": "uvx",
"args": ["opengenes-mcp"],
"env": {
"MCP_TRANSPORT": "stdio"
}
}
}
}
我们也提供了针对不同使用场景的预配置JSON文件:
mcp-config-stdio.jsonmcp-config.jsonmcp-config-stdio-debug.json为了直观地了解如何配置MCP服务器与AI客户端,查看我们的配置教程视频(针对姊妹MCP服务器biothings-mcp)。配置原则对于OpenGenes MCP服务器完全相同——只需使用上面提供的适当JSON配置文件。
如果您想检查MCP服务器提供的方法,可以使用npx(您可能需要安装nodejs和npm):
对于使用uvx的STDIO模式:
npx @modelcontextprotocol/inspector --config mcp-config-stdio.json --server opengenes-mcp
对于HTTP模式(确保服务器已运行):
npx @modelcontextprotocol/inspector --config mcp-config.json --server opengenes-mcp
对于本地开发:
npx @modelcontextprotocol/inspector --config mcp-config-stdio-debug.json --server opengenes-mcp
您也可以手动运行Inspector并通过界面配置它:
npx @modelcontextprotocol/inspector
之后,您可以在http://127.0.0.1:6274(注意,如果多次运行Inspector,端口可能会改变)使用MCP Inspector来探索工具和资源。
</details>只需将您的AI客户端(如Cursor、Windsurf、ClaudeDesktop、带有Copilot的VS Code或其他)指向从仓库提供的适当配置文件。
# 克隆仓库
git clone https://github.com/longevity-genie/opengenes-mcp.git
cd opengenes-mcp
uv sync
如果您已经克隆了仓库,可以使用uv运行服务器:
# 本地启动MCP服务器(HTTP模式)
uv run server
# 或启动在STDIO模式
uv run stdio
# 或启动在SSE模式
uv run sse
-- 获取寿命实验最多的前10个基因
SELECT HGNC, COUNT(*) as experiment_count
FROM lifespan_change
WHERE HGNC IS NOT NULL
GROUP BY HGNC
ORDER BY experiment_count DESC
LIMIT 10;
-- 查找延长小鼠寿命的基因
SELECT DISTINCT HGNC, effect_on_lifespan
FROM lifespan_change
WHERE model_organism = 'mouse'
AND effect_on_lifespan = 'increases lifespan'
AND HGNC IS NOT NULL;
-- 获取与基因相关的衰老标志
SELECT HGNC, "hallmarks of aging"
FROM gene_hallmarks
WHERE "hallmarks of aging" LIKE '%mitochondrial%';
-- 根据种族查找长寿关联
SELECT HGNC, "polymorphism type", "nucleotide substitution", ethnicity
FROM longevity_associations
WHERE ethnicity LIKE '%Italian%';
-- 查找既有寿命效应又有长寿关联的基因
SELECT DISTINCT lc.HGNC
FROM lifespan_change lc
INNER JOIN longevity_associations la ON lc.HGNC = la.HGNC
WHERE lc.HGNC IS NOT NULL;
</details>
MCP服务器提供了全面的测试,包括LLM作为裁判的测试,评估复杂查询的质量响应。然而,默认情况下在CI中禁用了基于LLM的测试以节省成本。
如果您想运行使用Gemini模型的MCP函数的LLM代理测试,您需要在项目根目录创建一个.env文件,并添加您的Gemini API密钥:
# 在项目根目录创建一个.env文件
echo "GEMINI_API_KEY=your-gemini-api-key-here" > .env
注意:.env文件和Gemini API密钥仅在运行LLM代理测试时需要。所有其他测试和基本MCP服务器功能无需任何API密钥即可工作。
运行MCP服务器的测试:
uv run pytest -vvv -s
您还可以运行手动测试:
uv run python test/manual_test_questions.py
您可以使用MCP Inspector与本地构建的MCP服务器相同的方式使用uvx。
注意:使用MCP Inspector是可选的。大多数MCP客户端(如Cursor、Windsurf等)一旦配置好就会自动显示此服务器提供的工具。然而,Inspector可用于详细测试和探索。
如果您选择通过npx使用Inspector,请确保已安装Node.js和npm。建议使用nvm(Node Version Manager)来管理Node.js版本。
我们欢迎社区贡献!🎉 不论您是研究人员、开发者还是对衰老和长寿研究感兴趣的爱好者,都有许多方式可以参与进来:
我们特别鼓励您尝试我们的MCP服务器并分享您的反馈! 您使用服务器的经验、遇到的问题以及改进建议对于整个研究社区来说都极其宝贵。
教程、视频和用户故事对我们尤其有价值! 我们正在努力推动生物信息学社区向AI采用转变,研究人员如何使用我们的MCP服务器(这个和其他我们开发的服务器)的实际例子有助于展示实际益处并鼓励更广泛的采用。
git checkout -b feature/amazing-feature)uv run pytest)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)black进行格式化)不要犹豫,打开一个讨论问题!我们友好且总是乐于帮助新手开始。您的贡献有助于推进开放科学和长寿研究。🧬✨
目前,此MCP服务器仅使用完整的OpenGenes数据库的一个子集。完整的OpenGenes数据库包含额外