用途
ucsc-genome-mcp 是一个 Model Context Protocol(MCP)服务器,旨在让大语言模型应用能够查询 UCSC Genome Browser 的基因组数据、序列、数据轨道和元数据。它通过封装 UCSC Genome Browser API,使 LLM 可以调用多种基因组相关工具,适用于基因组研究、变异分析、比较基因组学、序列分析、数据发现和教学等场景。
主要能力
该服务器暴露 12 个工具,覆盖 UCSC Genome Browser API 的主要端点:
-
列表与发现工具:
- find_genome:使用关键词、登录号或生物体名称搜索基因组。
- list_public_hubs:列出所有可用的公共轨道 hub。
- list_ucsc_genomes:列出所有 UCSC 数据库基因组。
- list_genark_genomes:列出 GenArk 组装 hub 基因组。
- list_hub_genomes:列出特定 hub 中的基因组。
- list_files:列出某个基因组可下载的文件。
- list_tracks:列出基因组或 hub 中的数据轨道。
- list_chromosomes:列出基因组或轨道中的染色体。
- list_schema:获取轨道的字段定义。
-
数据检索工具:
- get_sequence:从基因组中获取 DNA 序列。
- get_track_data:获取轨道数据(基因、变异、注释等)。
- search_genome:在基因组组装内搜索。
使用方式
- 环境要求:Python 3.10 或更高版本。
- 安装方式:从源码安装。
- 依赖项:mcp>=0.9.0(Model Context Protocol SDK),httpx>=0.27.0(用于 API 请求的 HTTP 客户端)。
- 运行:服务器通过 stdio 通信,遵循 MCP 协议。
- 与 Claude Desktop 集成:在 Claude Desktop 配置文件中添加配置即可。
- MacOS 配置文件路径:~/Library/Application Support/Claude/claude_desktop_config.json
- Windows 配置文件路径:%APPDATA%/Claude/claude_desktop_config.json
适用场景
- 基因组研究:查询基因位置、序列和注释。
- 变异分析:检索 SNP 和变异数据。
- 比较基因组学:访问多个物种的数据。
- 序列分析:获取 DNA/RNA 序列用于分析。
- 数据发现:查找可用的数据集和组装。
- 教学:通过交互查询学习基因组学。
限制与注意事项
- 请求频率:建议每秒最多 1 次请求。API 具有 botDelay 系统以防止过载,过度查询可能导致访问受限。
- 坐标系统:起始坐标为 0-based(第一个碱基为 0),结束坐标为 1-based(不包含)。例如 start=0, end=10 获取前 10 个碱基。
- 支持的轨道类型:get_track_data 工具支持 bed、bigBed、bigWig、genePred、bigGenePred、bigChain、bigPsl、bigMaf、narrowPeak、bigNarrowPeak、wiggle/wig、barChart/bigBarChart、interact/bigInteract 等多种类型,以及更多。
- 大数据集处理:对于超过 100 万项的轨道,使用分页;按染色体查询;使用 start/end 坐标指定较小区域。
- 错误处理:服务器处理 HTTP 错误(404、500 等)、无效参数、不存在的基因组/轨道/染色体、请求超时(默认 30 秒),并以文本响应返回描述性错误信息。
- API 请求地址:所有请求发送至 https://api.genome.ucsc.edu。
- 使用条款:本项目与 UCSC Genome Browser 交互,后者有其自身使用条款,详见 https://genome.ucsc.edu/conditions.html。UCSC Genome Browser API 的问题请联系 UCSC,本 MCP 服务器的问题请在仓库中提交 issue。
项目结构说明
- 添加新端点:在 list_tools() 中添加工具定义,在 call_tool() 中添加处理器,并更新 README 中的示例。
- 可手动测试单个端点。
版本
初始版本,支持所有主要 UCSC Genome Browser API 端点,12 个工具覆盖列表、发现和数据检索,包含完整文档和示例。