用户可通过该项目便捷获取人类蛋白质图谱数据,用于蛋白质研究与分析。它是一个全面的 Model Context Protocol (MCP) 服务器,支持蛋白质搜索、组织表达、亚细胞定位、病理数据等多模态信息查询及批量处理。【此简介由AI生成】
当前访问频次受限,请登录后继续访问

非官方人类蛋白质图谱 MCP 服务器
一个全面的模型上下文协议(MCP)服务器,用于访问人类蛋白质图谱数据,提供有关蛋白质表达、亚细胞定位、病理学等信息。
概述
人类蛋白质图谱 MCP 服务器能够无缝访问来自人类蛋白质图谱(https://www.proteinatlas.org)的海量蛋白质数据存储库。该服务器提供以下工具和资源:
- 蛋白质搜索与信息:通过名称、基因符号或描述搜索蛋白质
- 组织表达:访问组织特异性表达谱
- 亚细胞定位:检索蛋白质定位数据
- 病理学数据:获取癌症相关蛋白质信息
- 血液和脑表达:血细胞和脑区的专门表达数据
- 抗体信息:抗体的验证和染色数据
- 批量处理:高效查找多种蛋白质
- 高级搜索:带有多个过滤器的复杂查询
功能
核心能力
- 🔍 全面搜索:使用各种标识符和关键词查找蛋白质
- 🧬 多模态数据:访问表达、定位和病理学信息
- 🩸 专门图谱:血液图谱和脑图谱数据整合
- 📊 批量处理:高效处理多个蛋白质查询
- 🔬 研究级数据:高质量、经过同行评审的蛋白质信息
- ⚡ 快速响应:针对快速数据检索进行优化
可用数据类型
-
基本蛋白质信息
- 基因符号和 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
通过名称、基因符号或描述搜索人类蛋白质图谱中的蛋白质。
参数:
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}