opengenes - mcp
是一个基于Model Context Protocol(MCP)的服务器,用于访问OpenGenes数据库。它为AI助手和代理提供了标准化接口,可通过结构化接口查询全面的生物医学数据集,助力衰老和长寿研究。
# 下载并安装uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# 验证安装
uv --version
uvx --version
uvx是一个非常实用的工具,它可以在需要时运行Python包。
你可以直接使用uvx运行opengenes - mcp
服务器,而无需克隆仓库:
# 以流式HTTP模式运行服务器(默认)
uvx opengenes - mcp
# 或者显式指定stdio模式
uvx opengenes - mcp stdio
# 在默认(3001)端口以可流式HTTP模式运行服务器
uvx opengenes - mcp server
# 在特定端口运行
uvx opengenes - mcp server --port 8000
# 以SSE模式运行服务器
uvx opengenes - mcp sse
若uvx出现问题,通常可通过清理uv缓存解决:
uv cache clean
HTTP模式将启动一个Web服务器,你可以在http://localhost:3001/mcp
访问(文档位于http://localhost:3001/docs
)。STDIO模式专为通过标准输入输出通信的MCP客户端设计,而SSE模式使用服务器发送事件进行实时通信。
注意:目前我们没有Swagger/OpenAPI接口,因此直接在浏览器中访问服务器不会显示太多有用信息。若要探索可用工具和功能,你应使用MCP Inspector(见下文)或通过MCP客户端连接以查看可用工具。
我们为不同用例提供了预配置的JSON文件:
mcp - config - stdio.json
mcp - config.json
mcp - config - stdio - debug.json
若要获取如何使用AI客户端配置MCP服务器的可视化指南,请查看我们的配置教程视频,该视频针对我们的姊妹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
你也可以手动运行检查器并通过界面进行配置:
npx @modelcontextprotocol/inspector
之后,你可以在http://127.0.0.1:6274 使用MCP Inspector探索工具和资源(注意,若多次运行检查器,端口可能会改变)。
只需将你的AI客户端(如Cursor、Windsurf、ClaudeDesktop、带有Copilot的VS Code或[其他客户端](https://github.com/punkpeye/awesome - mcp - clients))指向使用仓库中适当的配置文件。
# 克隆仓库
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
opengenes
文件夹下载最新的OpenGenes数据库和文档,无需手动管理文件。如快速开始部分所述,需先安装uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
然后可使用uvx运行opengenes - mcp
服务器。
以下是OpenGenes MCP服务器与AI助手实际协作的示例:

此示例展示了如何通过AI助手使用自然语言查询OpenGenes数据库,该查询通过MCP服务器转换为SQL查询。你可以在聊天界面中使用此数据库进行研究问题查询,也可在基于AI的开发工具(如Cursor、Windsurf、带有Copilot的VS Code)中使用,在编码时直接访问衰老和长寿研究数据,显著提高生物信息学工作效率。
如果你想更深入了解Model Context Protocol是什么以及如何更高效地使用它,你可以参加[DeepLearning AI课程](https://www.deeplearning.ai/short - courses/mcp - build - rich - context - ai - apps - with - anthropic/)或在YouTube上搜索MCP相关视频。
OpenGenes MCP服务器自动从Hugging Face Hub上的[longevity - genie/bio - mcp - data](https://huggingface.co/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
- 表格及其用途的格式化摘要-- 获取进行最多寿命实验的前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;
MCP服务器提供了全面的测试,包括使用LLM作为评判的测试,用于评估对复杂查询的响应质量。但为节省成本,基于LLM的测试在CI中默认禁用。
如果你想运行使用Gemini模型的MCP函数的LLM代理测试,需要在项目根目录创建一个.env
文件,并设置你的Gemini API密钥:
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
你可以像使用uvx一样,将MCP Inspector与本地构建的MCP服务器一起使用。
MCP是一种协议,它弥合了AI系统与专业领域知识之间的差距,具有以下特点:
本项目采用MIT许可证。
本项目是[Longevity Genie](https://github.com/longevity - genie)组织的一部分,该组织开发用于健康、遗传学和长寿研究的开源AI助手和库。
我们还为生物医学研究开发了其他专业MCP服务器:
我们得到了以下机构的支持:

HEALES - 健康寿命延长协会
和
[](https://ibima.med.uni - rostock.de/)
[IBIMA - 医学与衰老研究生物统计学与信息学研究所](https://ibima.med.uni - rostock.de/)
我们欢迎社区的贡献!无论你是研究人员、开发者还是对衰老和长寿研究感兴趣的爱好者,都有多种方式参与其中:
git checkout -b feature/amazing - feature
)uv run pytest
)git commit -m 'Add amazing feature'
)git push origin feature/amazing - feature
)black
进行格式化)如有问题或想法,请随时创建一个issue进行讨论!我们很友好,总是乐意帮助新手入门。你的贡献有助于推动开放科学和长寿研究的发展。
目前,此MCP服务器仅使用了完整OpenGenes数据库的一部分。完整的OpenGenes数据库包含更多的表和数据,尚未包含在我们的MCP实现中。我们需要贡献者帮助扩展对完整数据库的支持! 如果你有兴趣帮助扩展数据库覆盖范围,请参阅我们的贡献部分。
虽然我们提供了全面的测试,包括使用LLM作为评判的评估,但并非所有测试用例都已针对实际的OpenGenes Web界面进行了手动验证。一些自动化测试结果可能需要手动验证以确保准确性。欢迎贡献者帮助提高测试覆盖范围和验证质量。