用途
biothings-mcp 是一个 MCP(Model Context Protocol)服务器,用于 BioThings,为访问和操作生物医学数据提供标准化接口。MCP 使 AI 助手和智能体能够通过结构化接口访问权威数据源中的专业生物医学知识。该项目属于 Longevity Genie 组织,该组织开发面向健康、遗传学和长寿研究的开源 AI 助手和库。
支持的 BioThings 数据源
- mygene.info — 基因注释与查询服务
- myvariant.info — 变异注释与查询服务
- mychem.info — 化合物注释与查询服务
主要能力
服务器基于 biothings-typed-client 库,为不同 BioThings 数据类型提供专门的 API 接口,通过以下工具处理器实现:
- 基因接口:GeneTools(封装 GeneClientAsync)
- 变异接口:VariantTools(封装 VariantClientAsync)
- 化学接口:ChemTools(封装 ChemClientAsync)
- 分类单元接口:TaxonTools(封装 TaxonClientAsync)
- 下载接口:DownloadTools(提供文件下载和序列分析能力)
DownloadTools 接口提供本地文件保存能力,包括:
- download_entrez_data:从 NCBI Entrez 数据库下载数据(以字符串形式返回内容)
- download_entrez_data_local:从 NCBI Entrez 数据库下载数据并保存到本地文件
使用方式
使用 uvx 运行
uvx 是一个可以按需安装并运行 Python 包的工具。可以直接使用 uvx 运行 biothings-mcp 服务器,而无需克隆仓库。HTTP streamable 模式会启动一个 Web 服务器,可通过 http://localhost:3001/mcp 访问(文档位于 http://localhost:3001/docs)。STDIO 模式面向通过标准输入/输出通信的 MCP 客户端,SSE 模式使用 Server-Sent Events 进行实时通信。
配置 MCP 客户端
项目提供使用代理的 stdio 配置(可能需要 npx 运行):
- mcp-config-remote.json — 远程配置
- mcp-config-stdio.json — 面向不支持远程的 MCP 客户端的 localhost stdio 配置
仓库设置与运行
如果已克隆仓库,可以使用 uv 运行服务器。
与 AI 系统集成
要将此服务器与兼容 MCP 的 AI 客户端集成,可使用仓库中提供的预配置 JSON 文件:
- 连接本地运行的服务器:使用 mcp-config.json,需先通过 uv run server 或 docker-compose up 启动服务器。
- 连接公开托管的服务器:使用 mcp-config-remote.json,连接到 https://biothings.longevity-genie.info/mcp,无需在本地运行任何内容。 将 AI 客户端(如 Cursor、Windsurf、Claude Desktop、VS Code with Copilot 等)指向相应的配置文件即可。
检查服务器
可使用 npx 检查 MCP 提供的方法,可能需要安装 Node.js 和 npm。可使用 MCP Inspector 测试 MCP 设置。检查本地 streamable-http 服务器时使用对应地址,远程服务器添加 -remote 后缀。检查 stdio 本地服务器时使用相应命令。也可手动运行 inspector 并在界面中填入服务器参数,之后可在 http://127.0.0.1:6274 通过 MCP Inspector 探索其方法。
测试与验证
运行 API 端点测试。可像使用 uvx 一样,通过本地构建的 MCP 服务器使用 MCP inspector。注意:使用 MCP Inspector 是可选的,大多数 MCP 客户端(如 Cursor、Windsurf 等)在配置后会自动显示此服务器提供的工具,但 Inspector 对于详细测试和探索很有用。如果选择通过 npx 使用 Inspector,请确保已安装 Node.js 和 npm,建议使用 nvm 管理 Node.js 版本。
输出目录管理
- 默认位置:文件保存到当前工作目录下的 biothings_output/ 目录
- 自定义位置:使用 --output-dir 参数指定自定义输出目录
- 自动创建:如果输出目录不存在会自动创建
- 唯一文件名:自动生成的文件名包含 UUID 前缀以避免冲突
支持的文件格式
- FASTA:.fasta 扩展名,用于序列数据
- GenBank:.gb 扩展名,用于 GenBank 格式数据
- 对齐:.aln 扩展名,用于对齐结果
- JSON:.json 扩展名,用于结构化数据
- 文本:.txt 扩展名,用于一般文本数据
适用场景
适用于需要让 AI 助手或智能体访问权威生物医学数据源的场景,包括基因注释查询、遗传变异查询、化合物注释查询、分类学信息查询,以及从 NCBI Entrez 下载序列数据并保存到本地进行分析。
限制
该库为 beta 质量。当前主要问题是 LLM 常常不够智能,不知道如何填入有效的基因和基因变异符号。项目计划通过扩展注释和提供额外的实体解析方法来缓解这一问题。
项目信息
本项目采用 MIT 许可证。
致谢:BioThings 提供 REST API 和原始客户端库;MCP Protocol 提供协议规范;Pydantic 提供数据验证框架;FastAPI-MCP 提供 MCP 服务器实现。
支持方:HEALES - Healthy Life Extension Society;IBIMA - Institute for Biostatistics and Informatics in Medicine and Ageing Research。
关于 MCP
MCP 是连接 AI 系统与专业领域知识的协议,支持结构化访问、自然语言查询、类型安全(通过 biothings-typed-client 实现强类型和验证)以及 AI 集成。如需了解更多关于 MCP 及如何更高效使用,可参考 DeepLearning AI 课程或搜索 YouTube 上的 MCP 视频。
详细文档可参考:MCP Protocol Documentation、biothings-typed-client Documentation、FastAPI-MCP Documentation。