返回市场
生物实体-MCP服务器

生物实体-MCP服务器

作者:longevity-genie26 星标更新:2025-11-04

项目介绍

MseeP.ai 安全评估徽章

biothings-mcp

测试 PyPI 版本

MCP (模型上下文协议) 服务器用于 Biothings.io

此服务器实现了 Biothings 的模型上下文协议 (MCP),提供了一个标准化接口来访问和操作生物医学数据。MCP 允许 AI 助手和代理通过结构化接口访问权威的数据源中的专业生物医学知识。支持的 Biothings 数据源包括:

如果您想了解更多关于模型上下文协议的内容以及如何更有效地使用它,可以参加 DeepLearning AI 课程 或者在 YouTube 上搜索 MCP 视频。

关于 MCP (模型上下文协议)

MCP 是一种协议,弥合了 AI 系统与专业领域知识之间的差距。它能够实现:

  • 结构化访问:直接连接到权威的生物医学数据源
  • 自然语言查询:简化与专业数据库的交互
  • 类型安全:通过 biothings-typed-client 实现强类型和验证
  • AI 集成:无缝集成 AI 助手和代理

可用的 API 接口

此服务器提供了针对不同 Biothings 数据类型的专用 API 接口,利用了 biothings-typed-client 库。这些接口是通过以下工具处理器实现的:

  • 基因接口GeneTools(封装 GeneClientAsync
  • 变异接口VariantTools(封装 VariantClientAsync
  • 化学接口ChemTools(封装 ChemClientAsync
  • 分类接口TaxonTools(封装 TaxonClientAsync
  • 下载接口DownloadTools(提供文件下载和序列分析能力)

本地文件保存功能

服务器通过 DownloadTools 接口包含了本地文件保存功能,提供:

下载工具

  • download_entrez_data:从 NCBI Entrez 数据库下载数据(返回字符串内容)
  • download_entrez_data_local:从 NCBI Entrez 数据库下载数据并保存到本地文件

输出目录管理

  • 默认位置:文件保存在当前工作目录下的 biothings_output/ 目录中
  • 自定义位置:使用 --output-dir 参数指定自定义输出目录
  • 自动创建:如果不存在,输出目录会自动创建
  • 唯一文件名:自动生成的文件名包含 UUID 前缀以避免冲突

支持的文件格式

  • FASTA.fasta 扩展名用于序列数据
  • GenBank.gb 扩展名用于 GenBank 格式数据
  • 对齐.aln 扩展名用于对齐结果
  • JSON.json 扩展名用于结构化数据
  • 文本.txt 扩展名用于通用文本数据

快速开始

安装 uv

# 下载并安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# 验证安装
uv --version
uvx --version

uvx 是一个非常棒的工具,可以在需要时安装 Python 包。

使用 uvx 运行

您可以直接使用 uvx 运行 biothings-mcp 服务器,而无需克隆仓库:

STDIO 模式(适用于需要标准输入输出的 MCP 客户端,当您想要保存文件时可能会有用)

# 在 STDIO 模式下运行服务器(默认模式)
uvx biothings-mcp

# 或明确指定 stdio 模式
uvx --from biothings-mcp stdio

# 使用自定义输出目录
uvx --from biothings-mcp stdio --output-dir ./my_data

HTTP 流式传输模式(Web 服务器)

# 在默认端口(3001)上以流式传输 HTTP 模式运行服务器
uvx --from biothings-mcp server run

# 在自定义端口上运行
uvx --from biothings-mcp server run --port 8000

# 在自定义主机和端口上运行
uvx --from biothings-mcp server run --host 0.0.0.0 --port 8000

# 使用自定义输出目录
uvx --from biothings-mcp server run --output-dir ./my_data

SSE 模式(服务器发送事件)

# 在默认端口(3001)上以 SSE 模式运行服务器
uvx --from biothings-mcp sse

# 在自定义端口上运行
uvx --from biothings-mcp sse --port 8000

HTTP 流式传输模式将启动一个 Web 服务器,您可以通过 http://localhost:3001/mcp 访问(文档位于 http://localhost:3001/docs)。STDIO 模式设计用于通过标准输入输出通信的 MCP 客户端,而 SSE 模式使用服务器发送事件进行实时通信。

配置您的(Anthropic Claude Desktop, Cursor, Windsurf 等)

我们提供使用代理的 stdio 配置(可能需要 npx 来运行):

  • mcp-config-remote.json - 用于远程配置
  • mcp-config-stdio.json - 用于 localhost 的 stdio 配置,适用于不支持的 MCP 客户端

检查 Biothings MCP 服务器

如果您想检查 MCP 提供的方法,请使用 npx(您可能需要安装 nodejs 和 npm)

测试您的 MCP 设置,请使用 MCP Inspector。

如果您想检查本地流式传输 HTTP 服务器,请使用:

npx @modelcontextprotocol/inspector --config mcp-config.json --server biothings-mcp

对于远程服务器,请添加 -remote 后缀。

如果您想检查本地 stdio 服务器,请使用:

npx @modelcontextprotocol/inspector --config mcp-config-stdio.json --server biothings-mcp

您也可以手动运行 inspector 并在界面中输入服务器参数:

npx @modelcontextprotocol/inspector

之后,您可以在 http://127.0.0.1:6274 使用 MCP Inspector 探索其方法。

仓库设置

# 克隆仓库
git clone https://github.com/longevity-genie/biothings-mcp.git
cd biothings-mcp
uv sync

运行 MCP 服务器

如果您已经克隆了仓库,可以使用 uv 运行服务器:

# 在 HTTP 流式传输模式下启动 MCP 服务器(默认端口 3001)
uv run server run

# 在 STDIO 模式下运行
uv run stdio

# 在 SSE 模式下运行
uv run sse

# 使用自定义端口运行
uv run server run --port 8000

# 使用自定义输出目录运行
uv run server run --output-dir ./my_data

与 AI 系统集成

要将此服务器与兼容 MCP 的 AI 客户端集成,可以使用此仓库提供的预配置 JSON 文件之一:

  • 连接到本地运行的服务器:使用 mcp-config.json。确保首先运行服务器,可以通过 uv run server(参见 运行 MCP 服务器)或 docker-compose up(参见 Docker 部署)。
  • 连接到公开托管的服务器:使用 mcp-config-remote.json。这连接到 https://biothings.longevity-genie.info/mcp,不需要您在本地运行任何东西。

只需将您的 AI 客户端(如 Cursor, Windserve, ClaudeDesktop, VS Code with Copilot,或其他)指向适当的配置文件即可。

这是一个示例,展示了配置后在类似 Cursor 的 MCP 客户端中工具可能的外观:

Cursor 使用示例

已知问题

该库处于测试阶段。目前的主要问题是 LLM 经常愚蠢且不知道如何放置有效的基因和基因变异符号。我们计划通过扩展注释和提供额外的实体解析方法来缓解这一问题。

测试与验证

运行 API 端点的测试:

uv run pytest -vvv -s

您可以使用 MCP inspector 与本地构建的 MCP 服务器相同的方式使用 uvx。

注意:使用 MCP Inspector 是可选的。大多数 MCP 客户端(如 Cursor, Windsurv 等)一旦配置好,会自动显示来自此服务器的所有可用工具。然而,Inspector 对详细测试和探索很有帮助。

如果您选择通过 npx 使用 Inspector,请确保已安装 Node.js 和 npm。推荐使用 nvm(Node 版本管理器)来管理 Node.js 版本。

这将打开一个 Web 界面,您可以在其中探索和测试所有可用工具。

文档

有关 MCP 协议及其实施的详细文档,请参考:

许可证

本项目采用 MIT 许可证。

致谢

我们得到以下机构的支持:

HEALES

HEALES - 健康寿命延长协会

IBIMA

IBIMA - 生物统计学与医学信息学及老龄化研究学院