关于 Unofficial Human Protein Atlas MCP Server
Unofficial Human Protein Atlas MCP Server 提供对 Human Protein Atlas 蛋白质数据的程序化访问,面向研究人员及分析蛋白表达、定位、病理和抗体信息的用户。
主要功能
- 01按蛋白名称、基因或描述搜索
- 02获取组织、血液和脑部表达数据
- 03查询亚细胞定位与病理信息
- 04批量查询并比较表达谱
- 05获取抗体验证与染色数据
适用场景
- 01查找特定基因的表达数据
- 02搜索与癌症相关的蛋白质
- 03比较多个蛋白质的表达谱
- 04查询抗体验证信息
MCP 相关
该 MCP 服务提供 Human Protein Atlas 搜索和检索工具,以及蛋白质、表达、定位、病理和抗体数据的资源模板。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍

非官方 Human Protein Atlas MCP 服务
一个功能全面的 Model Context Protocol(MCP)服务,用于访问 Human Protein Atlas 数据,提供蛋白质表达、亚细胞定位、病理学等信息。
概述
Human Protein Atlas MCP 服务可无缝访问 Human Protein Atlas(https://www.proteinatlas.org)中的海量蛋白质数据。此服务提供以下工具和资源:
- 蛋白质搜索与信息:按名称、基因符号或描述搜索蛋白质
- 组织表达:访问组织特异性表达谱
- 亚细胞定位:获取蛋白质定位数据
- 病理学数据:访问癌症相关蛋白质信息
- 血液与脑部表达:血细胞和脑区的专门表达数据
- 抗体信息:抗体的验证和染色数据
- 批量处理:高效查询多个蛋白质
- 高级搜索:使用多个筛选条件执行复杂查询
功能
核心能力
- 🔍 全面搜索:使用各种标识符和关键词查找蛋白质
- 🧬 多模态数据:访问表达、定位和病理学信息
- 🩸 专门图谱:整合 Blood Atlas 和 Brain Atlas 数据
- 📊 批量处理:高效处理多个蛋白质查询
- 🔬 研究级数据:高质量、经过同行评审的蛋白质信息
- ⚡ 快速响应:针对快速检索数据进行优化
可用数据类型
-
基本蛋白质信息
- 基因符号和 Ensembl ID
- 蛋白质描述和分类
- UniProt 交叉引用
-
表达数据
- 组织特异性 RNA 表达
- 血细胞表达谱
- 脑区表达数据
- 单细胞表达信息
-
亚细胞定位
- 蛋白质定位模式
- 可靠性评分
- 免疫荧光数据
-
病理学信息
- 癌症预后标志物
- 疾病关联
- 治疗靶点
-
抗体数据
- 抗体验证信息
- 染色模式
- 可靠性评估
安装
先决条件
- Node.js 18 或更高版本
- npm 或 yarn 包管理器
设置
-
克隆或下载服务代码
-
安装依赖:
cd proteinatlas-server npm install -
构建服务:
npm run build -
服务现已准备就绪,可以使用!
使用方法
命令行
直接运行服务:
npm start
# or
node build/index.js
MCP 客户端集成
添加到 MCP 客户端配置中:
{
"mcpServers": {
"proteinatlas": {
"command": "node",
"args": ["/path/to/proteinatlas-server/build/index.js"]
}
}
}
可用工具
基本搜索与检索
search_proteins
按名称、基因符号或描述搜索 Human Protein Atlas 中的蛋白质。
参数:
query(必需):搜索查询(基因名称、蛋白质名称或关键词)format:输出格式(json、tsv)- 默认值:jsoncolumns:结果中要包含的特定列maxResults:结果数量上限(1-10000)- 默认值:100compress:是否压缩响应 - 默认值: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
表达分析
get_tissue_expression
获取蛋白质的组织特异性表达数据。
参数:
gene(必需):基因符号format:输出格式(json、tsv)- 默认值:json
search_by_tissue
查找在特定组织中高表达的蛋白质。
参数:
tissue(必需):组织名称(例如,liver、brain、heart)expressionLevel:表达水平筛选条件(high、medium、low、not detected)format:输出格式(json、tsv)- 默认值:jsonmaxResults:最大结果数(1-10000)- 默认值:100
get_blood_expression
获取某种蛋白质的血细胞表达数据。
get_brain_expression
获取某种蛋白质的脑区表达数据。
亚细胞定位
get_subcellular_location
获取某种蛋白质的亚细胞定位数据。
search_by_subcellular_location
查找定位于特定亚细胞区室的蛋白质。
参数:
location(必需):亚细胞定位(例如,nucleus、mitochondria、cytosol)reliability:可靠性筛选条件(approved、enhanced、supported、uncertain)format:输出格式(json、tsv)- 默认值:jsonmaxResults:最大结果数(1-10000)- 默认值:100
病理学与癌症
get_pathology_data
获取某种蛋白质的癌症和病理学数据。
search_cancer_markers
查找与特定癌症相关或具有预后价值的蛋白质。
参数:
cancer:癌症类型(例如,breast cancer、lung cancer)prognostic:预后筛选条件(favorable、unfavorable)format:输出格式(json、tsv)- 默认值:jsonmaxResults:最大结果数(1-10000)- 默认值:100
高级功能
advanced_search
使用多个筛选条件和标准执行高级搜索。
参数:
query:基础搜索查询tissueSpecific:组织特异性表达筛选条件subcellularLocation:亚细胞定位筛选条件cancerPrognostic:癌症预后筛选条件proteinClass:蛋白质类别筛选条件chromosome:染色体筛选条件antibodyReliability:抗体可靠性筛选条件format:输出格式(json、tsv)- 默认值:jsoncolumns:要包含在结果中的特定列maxResults:最大结果数(1-10000)- 默认值:100
batch_protein_lookup
同时查询多种蛋白质。
参数:
genes(必需):基因符号数组(最多 100 个)format:输出格式(json、tsv)- 默认值:jsoncolumns:要包含在结果中的特定列
compare_expression_profiles
比较多种蛋白质的表达谱。
参数:
genes(必需):要比较的基因符号数组(2-10 个)expressionType:表达数据类型(tissue、brain、blood、single_cell)- 默认值:tissueformat:输出格式(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}:与查询匹配的蛋白质搜索结果
资源访问示例
// Access tissue expression data for BRCA1
const resource = await client.readResource("hpa://tissue/BRCA1");
// Search for insulin-related proteins
const searchResults = await client.readResource("hpa://search/insulin");
数据来源
此服务访问以下数据:
- Human Protein Atlas:主要蛋白质图谱数据库
- Tissue Atlas:正常组织表达数据
- Blood Atlas:血细胞表达谱
- Brain Atlas:脑区表达数据
- Pathology Atlas:癌症相关蛋白质数据
- Cell Atlas:单细胞表达信息
速率限制和最佳实践
- 服务会实施适当的速率限制,以遵守 Human Protein Atlas API 的要求
- 对于批量操作,可考虑将大型请求拆分为较小的批次
- 尽可能使用特定的列选择来减少响应大小
- 在适当情况下缓存频繁访问的数据
错误处理
服务提供全面的错误处理:
- 参数无效:针对错误输入提供清晰的错误消息
- 网络问题:针对暂时性故障提供重试机制
- 数据格式错误:妥善处理意外的响应格式
- 速率限制:采用适当的退避策略
示例
基本蛋白质查询
// Search for BRCA1 protein
const result = await callTool("search_proteins", {
query: "BRCA1",
format: "json",
});
组织表达分析
// Get tissue expression for multiple genes
const comparison = await callTool("compare_expression_profiles", {
genes: ["BRCA1", "BRCA2", "TP53"],
expressionType: "tissue",
});
癌症研究
// Find breast cancer prognostic markers
const markers = await callTool("search_cancer_markers", {
cancer: "breast cancer",
prognostic: "unfavorable",
maxResults: 50,
});
批量处理
// Look up multiple proteins at once
const batchResult = await callTool("batch_protein_lookup", {
genes: ["BRCA1", "BRCA2", "TP53", "EGFR", "MYC"],
format: "json",
});
开发
从源代码构建
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode
npm run dev
测试
# Run the server
npm start
# Test with MCP client or direct stdio communication
贡献
欢迎贡献!请确保:
- 代码遵循 TypeScript 最佳实践
- 错误处理全面完善
- 为新功能更新文档
- 为新功能添加测试
许可证
MIT 许可证——详情请参阅 LICENSE 文件。
支持
如有问题或疑问:
- 查看 Human Protein Atlas 文档:https://www.proteinatlas.org/about/help
- 查阅 MCP 规范:https://modelcontextprotocol.io/
- 通过项目代码库提交问题
致谢
- 感谢 Human Protein Atlas 团队提供全面的蛋白质数据库
- 感谢 Model Context Protocol 社区制定标准化通信框架
- 感谢 TypeScript 和 Node.js 社区提供开发工具
此服务为研究和教育用途提供对 Human Protein Atlas 数据的程序化访问。在出版物中使用这些数据时,请引用适当的来源。
引用
如果您在研究或出版物中使用此项目,请按以下方式引用:
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}
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。