UCSC基因组浏览器MCP服务器
模型上下文协议(MCP)服务器,提供对UCSC基因组浏览器API的全面访问。此服务器使LLM应用程序能够从UCSC基因组浏览器查询基因组数据、序列、轨迹和元数据。
特性
此MCP服务器公开了12个工具,涵盖了所有主要的UCSC基因组浏览器API端点:
列表和发现工具
- find_genome -使用关键字、登录ID或生物体名称搜索基因组
- list_public_hub -列出所有可用的公共轨道枢纽
- list_ucsc基因组 -列出所有UCSC数据库基因组
- list_genark_genomes -列出GenArk组装中心基因组
- list_hub_genomes -列出特定中心的基因组
- 列表文件 -列出基因组的可下载文件
- list_tracks -列出基因组或中心中的数据轨道
- list_染色体 -列出基因组或轨道中的染色体
- list_schema -获取轨道的架构/字段定义
数据检索工具
- get_sequence -从基因组中检索DNA序列
- 获取跟踪数据 -获取追踪数据(基因、变异、注释等)
- 搜索名称 -在基因组组装中搜索
安装
先决条件
- Python 3.10或更高版本
- 点
从源代码安装
# Clone or download the repository
cd ucsc-genome-mcp-server
# Install in development mode
pip install -e .必需的依赖项
mcp>=0.9.0-模型上下文协议SDKhttpx>=0.27.0-API请求的HTTP客户端
用法
运行服务器
服务器按照MCP协议通过stdio进行通信:
python ucsc_genome_mcp_server.py使用Claude Desktop进行配置
将此添加到您的Claude Desktop配置文件中:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"ucsc-genome-browser": {
"command": "/Users/You/.local/bin/uv",
"args": [
"--directory",
"/Users/Path/To/Repository/ucsc-genome-mcp",
"run",
"ucsc-genome-mcp.py"
],
"env": {},
"metadata": {
"description": "UCSC Genome Browser API",
"version": "1.0.0"
}
}
}工具示例
1.查找基因组
搜索狗的基因组:
{
"query": "dog"
}使用高级运算符搜索:
{
"query": "+white +rhino* -southern",
"browser": "mustExist"
}2.列出可用曲目
列出人类基因组(hg38)的所有轨道:
{
"genome": "hg38"
}列出没有容器信息的曲目:
{
"genome": "hg38",
"track_leaves_only": true
}3.获取DNA序列
获取整个线粒体染色体:
{
"genome": "hg38",
"chrom": "chrM"
}获取特定区域:
{
"genome": "hg38",
"chrom": "chrM",
"start": 4321,
"end": 5678
}获得反向补码:
{
"genome": "hg38",
"chrom": "chrM",
"start": 4321,
"end": 5678,
"reverse_complement": true
}4.获取轨迹数据
获取某个区域的基因注释:
{
"genome": "hg38",
"track": "knownGene",
"chrom": "chr1",
"start": 47000,
"end": 48000
}从装配中心获取轨迹数据:
{
"hub_url": "http://hgdownload.gi.ucsc.edu/hubs/mouseStrains/hub.txt",
"genome": "CAST_EiJ",
"track": "assembly",
"chrom": "chr1"
}5.在基因组内搜索
在人类基因组中搜索BRCA1:
{
"search": "brca1",
"genome": "hg38"
}仅在帮助文档中搜索:
{
"search": "bigBed",
"genome": "hg38",
"categories": "helpDocs"
}API详细信息
基础URL
所有请求均发送至: https://api.genome.ucsc.edu
速率限制
- 建议:每秒最多1个请求
- API具有防止过载的botDelay系统
- 过多的查询可能会导致访问受限
坐标系
- 起始坐标:从0开始(第一个基数为0)
- 结束坐标:1-基(不含)
- 例子:
start=0, end=10检索前10个碱基
支持的曲目类型
这 get_track_data 该工具支持以下轨迹类型:
- 床,bigBed,bigWig
- bigGene,bigGene
- bigChain、bigPsl、bigMaf
- 窄峰、大窄峰
- swing/wig,barChart/bigBarChart
- interface/bigInteract
- 还有更多。..
高级功能
处理大型数据集
对于超过100万条的曲目,请使用分页:
- 按染色体查询:
{
"genome": "hg19",
"track": "knownGene",
"chrom": "chr1"
}- 使用较小区域的开始/结束坐标:
{
"genome": "hg19",
"track": "knownGene",
"chrom": "chr1",
"start": 1000000,
"end": 2000000
}使用轨道中心
跟踪中心允许访问外部基因组数据:
{
"hub_url": "http://hgdownload.gi.ucsc.edu/hubs/mouseStrains/hub.txt",
"genome": "CAST_EiJ",
"track": "ensGene",
"chrom": "chr1"
}错误处理
服务器处理各种错误情况:
- HTTP错误(404、500等)
- 无效参数
- 不存在的基因组/轨道/染色体
- 请求超时(默认30秒)
错误以带有描述性消息的文本响应形式返回。
用例
此MCP服务器使LLM应用程序能够:
- 基因体研究:查询基因位置、序列和注释
- 变体分析:检索SNP和变异数据
- 比较基因组学:访问多个物种的数据
- 序列分析:获取DNA/RNA序列进行分析
- 数据发现:查找可用的数据集和程序集
- 教育的:通过交互式查询了解基因组学
API 文档
有关API完整文档,请访问: https://genome.ucsc.edu/goldenpath/help/api.html
许可证
该项目与UCSC基因组浏览器对接,后者有自己的使用条款: https://genome.ucsc.edu/conditions.html
支持
有关UCSC基因组浏览器API的问题,请联系UCSC。 对于此MCP服务器的问题,请在存储库中提交问题。
发展
项目结构
.
├── ucsc_genome_mcp_server.py # Main server implementation
├── pyproject.toml # Project metadata and dependencies
└── README.md # This file添加新工具
要添加新端点,请执行以下操作:
- 在中添加工具定义
list_tools() - 在中添加处理程序
call_tool() - 用示例更新此README
测试
手动测试单个端点:
# Using curl
curl -L 'https://api.genome.ucsc.edu/list/ucscGenomes'
# Using wget
wget -O- 'https://api.genome.ucsc.edu/getData/sequence?genome=hg38;chrom=chrM;start=4321;end=5678'更新日志
版本0.1.0
- 初始版本
- 支持所有主要的UCSC基因组浏览器API端点
- 12个工具,涵盖列表、发现和数据检索
- 完整的文档和示例
