本项目是一个基于Model Context Protocol (MCP) 的服务器实现,旨在为大型语言模型(LLM)客户端提供访问 BioThings.io 平台提供的生物医学数据(如基因、变异、化学物、生物分类信息)以及序列下载和比对等生物信息学工具的能力。通过MCP,AI助手能够以结构化的方式获取和利用这些专业领域的知识。

主要功能点

  • 基因信息访问: 提供按ID获取单个/多个基因信息、通过Lucene查询搜索基因,以及批量查询基因的功能。
  • 变异信息访问: 提供按ID获取单个/多个变异位点信息(支持HGVS、rsID),通过Lucene查询搜索变异,以及批量查询变异的功能。
  • 化学物质信息访问: 提供按ID获取单个/多个化学物质信息(支持InChIKey、PubChem CID),通过查询搜索化学物质,以及批量查询化学物质的功能。
  • 生物分类信息访问: 提供按ID获取单个/多个生物分类信息(支持NCBI Taxonomy ID、学名),通过查询搜索分类信息,以及批量查询分类信息的功能。
  • NCBI Entrez 数据下载: 支持从NCBI Entrez数据库下载指定ID的核苷酸或蛋白质序列等数据(支持FASTA或GenBank格式)。
  • 序列比对: 支持对输入的两个核酸或蛋白质序列执行全局或局部比对。

安装步骤

本项目使用 'uv' 进行包管理(或者您也可以使用 pip)。

  1. 安装 'uv' (如果未安装):
    curl -LsSf https://astral.sh/uv/install.sh | sh
    # 验证安装
    uv --version
  2. 克隆仓库:
    git clone https://github.com/longevity-genie/biothings-mcp.git
    cd biothings-mcp
  3. 安装依赖:
    uv sync

或者,您也可以使用 Docker Compose 启动服务(推荐),这将同时启动 MCP 服务器和 MCP Inspector:

git clone https://github.com/longevity-genie/biothings-mcp.git
cd biothings-mcp
docker-compose up

服务器配置 (供 MCP 客户端参考)

MCP 服务器启动后,MCP 客户端(如 Cursor, Windserve, ClaudeDesktop 等)需要配置连接信息才能与其通信并发现提供的工具。

您可以参考仓库提供的 'mcp-config.json' 或 'mcp-config-remote.json' 文件来配置您的客户端。关键的配置信息通常包括:

  • 连接方式:

    • HTTP/SSE: 服务器会监听一个端口,客户端通过 HTTP 请求连接。您需要提供服务器的 URL(例如:'http://localhost:3001/mcp' 或公共部署的 'https://biothings.longevity-genie.info/mcp')和 传输协议('streamable-http' 或 'sse')。
    • Stdio: 客户端启动服务器进程,并通过标准输入输出进行通信。您需要提供启动服务器的 命令 (command) 及其 参数列表 (args)。例如:
      • 'command': 'uv' (或 'python')
      • 'args': '["run", "server", "--transport", "stdio"]' (或 '["src/biothings_mcp/server.py", "--transport", "stdio"]')
  • 其他信息: 可能还需要提供服务器的 名称 (name) 等识别信息。

请查阅您所使用的 MCP 客户端的文档,了解如何导入或手动配置这些信息。

基本使用方法

  1. 启动 MCP 服务器: 根据您的安装方式,运行 'uv run server' 或 'docker-compose up'。
  2. 配置 MCP 客户端: 在您的 MCP 客户端中,使用上面提到的服务器连接信息进行配置。
  3. AI 助手调用: 成功配置后,您的 AI 助手(LLM)将能够识别并调用该服务器提供的工具(如基因查询、序列下载等)。LLM 会根据工具的描述(在服务器的API定义中提供)来理解工具的功能、所需的参数及其格式,并构造 JSON-RPC 请求发送给服务器。服务器处理请求后,将结果返回给客户端。

重要提示:

  • 某些工具(如查询)需要遵循特定的查询语法(如 Lucene),AI 助手需要理解这些语法才能有效使用。
  • 请注意工具描述中关于使用限制的说明(如调用频率限制)。
  • 下载 NCBI Entrez 数据需要设置 'ENTREZ_EMAIL' 环境变量,否则可能被 NCBI 限制。

信息

分类

网页与API