🚀 非官方人类蛋白质图谱MCP服务器
这是一个全面的模型上下文协议(MCP)服务器,用于访问人类蛋白质图谱(Human Protein Atlas)的数据,可提供蛋白质表达、亚细胞定位、病理学等多方面的信息。
🚀 快速开始
本人类蛋白质图谱MCP服务器可让你无缝访问人类蛋白质图谱(https://www.proteinatlas.org)中丰富的蛋白质数据。该服务器提供以下工具和资源:
- 蛋白质搜索与信息查询:可通过蛋白质名称、基因符号或描述来搜索蛋白质。
- 组织表达:获取特定组织的表达谱。
- 亚细胞定位:检索蛋白质的定位数据。
- 病理学数据:访问与癌症相关的蛋白质信息。
- 血液和大脑表达:提供血细胞和大脑区域的特定表达数据。
- 抗体信息:获取抗体的验证和染色数据。
- 批量处理:可高效查询多个蛋白质。
- 高级搜索:支持使用多个过滤器进行复杂查询。
✨ 主要特性
核心功能
- 🔍 全面搜索:使用各种标识符和关键词查找蛋白质。
- 🧬 多模态数据:可访问表达、定位和病理学信息。
- 🩸 专业图谱:集成了血液图谱和大脑图谱的数据。
- 📊 批量处理:能高效处理多个蛋白质查询。
- 🔬 研究级数据:提供高质量、经过同行评审的蛋白质信息。
- ⚡ 快速响应:经过优化,可快速检索数据。
可用数据类型
- 基本蛋白质信息
- 基因符号和Ensembl ID。
- 蛋白质描述和分类。
- UniProt交叉引用。
- 表达数据
- 特定组织的RNA表达。
- 血细胞表达谱。
- 大脑区域表达数据。
- 单细胞表达信息。
- 亚细胞定位
- 病理学信息
- 抗体数据
📦 安装指南
前提条件
- Node.js 18 或更高版本。
- npm 或 yarn 包管理器。
安装步骤
- 克隆或下载服务器代码。
- 安装依赖项:
cd proteinatlas-server
npm install
- 构建服务器:
npm run build
- 服务器现已可以使用!
💻 使用示例
命令行方式
直接运行服务器:
npm start
node build/index.js
MCP客户端集成
将以下内容添加到你的MCP客户端配置中:
{
"mcpServers": {
"proteinatlas": {
"command": "node",
"args": ["/path/to/proteinatlas-server/build/index.js"]
}
}
}
基础用法
search_proteins
通过蛋白质名称、基因符号或描述在人类蛋白质图谱中搜索蛋白质。
参数:
query(必需):搜索查询词(基因名称、蛋白质名称或关键词)。
format:输出格式(json、tsv),默认为json。
columns:结果中要包含的特定列。
maxResults:最大结果数(1 - 10000),默认为100。
compress:是否压缩响应,默认为false。
示例:
{
"query": "BRCA1",
"format": "json",
"maxResults": 10
}
get_protein_info
通过基因符号获取特定蛋白质的详细信息。
参数:
gene(必需):基因符号(例如,BRCA1、TP53)。
format:输出格式(json、tsv、xml、trig),默认为json。
get_protein_by_ensembl
使用Ensembl基因ID获取蛋白质信息。
参数:
ensemblId(必需):Ensembl基因ID(例如,ENSG00000139618)。
format:输出格式(json、tsv、xml、trig),默认为json。
高级用法
advanced_search
使用多个过滤器和条件进行高级搜索。
参数:
query:基本搜索查询词。
tissueSpecific:特定组织表达过滤器。
subcellularLocation:亚细胞定位过滤器。
cancerPrognostic:癌症预后过滤器。
proteinClass:蛋白质类别过滤器。
chromosome:染色体过滤器。
antibodyReliability:抗体可靠性过滤器。
format:输出格式(json、tsv),默认为json。
columns:结果中要包含的特定列。
maxResults:最大结果数(1 - 10000),默认为100。
batch_protein_lookup
同时查询多个蛋白质。
参数:
genes(必需):基因符号数组(最多100个)。
format:输出格式(json、tsv),默认为json。
columns:结果中要包含的特定列。
compare_expression_profiles
比较多个蛋白质的表达谱。
参数:
genes(必需):要比较的基因符号数组(2 - 10个)。
expressionType:表达数据类型(tissue、brain、blood、single_cell),默认为tissue。
format:输出格式(json、tsv),默认为json。
📚 详细文档
可用资源
服务器提供了几个资源模板,用于直接访问数据:
资源模板
hpa://protein/{gene}:基因符号对应的完整蛋白质图谱数据。
hpa://ensembl/{ensemblId}:Ensembl基因ID对应的完整蛋白质图谱数据。
hpa://tissue/{gene}:基因的特定组织表达数据。
hpa://subcellular/{gene}:基因的亚细胞定位信息。
hpa://pathology/{gene}:基因的癌症和病理学数据。
hpa://blood/{gene}:基因的血细胞表达数据。
hpa://brain/{gene}:基因的大脑区域表达数据。
hpa://antibody/{gene}:基因的抗体验证和染色信息。
hpa://search/{query}:与查询匹配的蛋白质搜索结果。
示例资源访问
const resource = await client.readResource("hpa://tissue/BRCA1");
const searchResults = await client.readResource("hpa://search/insulin");
数据来源
本服务器访问以下数据源:
- 人类蛋白质图谱:主要的蛋白质图谱数据库。
- 组织图谱:正常组织表达数据。
- 血液图谱:血细胞表达谱。
- 大脑图谱:大脑区域表达数据。
- 病理学图谱:与癌症相关的蛋白质数据。
- 细胞图谱:单细胞表达信息。
速率限制和最佳实践
- 服务器实施了适当的速率限制,以遵守人类蛋白质图谱API的规定。
- 对于批量操作,考虑将大请求拆分为较小的块。
- 尽可能使用特定的列选择来减少响应大小。
- 在适当的情况下缓存频繁访问的数据。
错误处理
服务器提供全面的错误处理:
- 参数无效:对于不正确的输入提供清晰的错误消息。
- 网络问题:对临时故障提供重试逻辑。
- 数据格式错误:优雅处理意外的响应格式。
- 速率限制:采用适当的退避策略。
🔧 技术细节
从源代码构建
npm install
npm run build
npm run dev
测试
npm start
🤝 贡献说明
欢迎贡献代码!请确保:
- 代码遵循TypeScript最佳实践。
- 错误处理全面。
- 为新功能更新文档。
- 为新功能包含测试。
📄 许可证
本项目采用MIT许可证,详情请参阅LICENSE文件。
🛠️ 支持与反馈
若有问题和疑问:
- 查看人类蛋白质图谱文档:https://www.proteinatlas.org/about/help
- 查看MCP规范:https://modelcontextprotocol.io/
- 通过项目仓库提交问题。
🙏 致谢
- 感谢人类蛋白质图谱团队提供全面的蛋白质数据库。
- 感谢模型上下文协议社区提供标准化的通信框架。
- 感谢TypeScript和Node.js社区提供的开发工具。
本服务器为研究和教育目的提供对人类蛋白质图谱数据的编程访问。在出版物中使用此数据时,请引用适当的来源。
引用说明
如果您在研究或出版物中使用此项目,请按以下方式引用:
@misc{proteinatlasmcp2025,
author = {Moudather Chelbi},
title = {Human Protein Atlas MCP Server},
year = {2025},
howpublished = {https://github.com/Augmented-Nature/ProteinAtlas-MCP-Server/},
note = {Accessed: 2025-06-29}