
一个全面的模型上下文协议(MCP)服务器,用于访问人类蛋白质图谱数据,提供关于蛋白质表达、亚细胞定位、病理学等方面的信息。
人类蛋白质图谱MCP服务器使用户能够无缝访问来自人类蛋白质图谱(https://www.proteinatlas.org)的大量蛋白质数据。该服务器提供了以下工具和资源:
基本蛋白质信息
表达数据
亚细胞定位
病理学信息
抗体数据
克隆或下载服务器代码
安装依赖项:
cd proteinatlas-server
npm install
构建服务器:
npm run build
服务器现在可以使用了!
直接运行服务器:
npm start
# 或
node build/index.js
添加到您的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)- 默认:jsonget_protein_by_ensembl使用Ensembl基因ID获取蛋白质信息。
参数:
ensemblId(必需):Ensembl基因ID(例如,ENSG00000139618)format:输出格式(json、tsv、xml、trig)- 默认:jsonget_tissue_expression获取蛋白质的组织特异性表达数据。
参数:
gene(必需):基因符号format:输出格式(json、tsv)- 默认:jsonsearch_by_tissue查找在特定组织中高度表达的蛋白质。
参数:
tissue(必需):组织名称(例如,肝脏、大脑、心脏)expressionLevel:表达水平过滤器(高、中、低、未检测到)format:输出格式(json、tsv)- 默认:jsonmaxResults:最大结果数(1-10000)- 默认:100get_blood_expression获取蛋白质的血细胞表达数据。
get_brain_expression获取蛋白质的脑区表达数据。
get_subcellular_location获取蛋白质的亚细胞定位数据。
search_by_subcellular_location查找定位于特定亚细胞隔室的蛋白质。
参数:
location(必需):亚细胞位置(例如,细胞核、线粒体、细胞质)reliability:可靠性过滤器(批准、增强、支持、不确定)format:输出格式(json、tsv)- 默认:jsonmaxResults:最大结果数(1-10000)- 默认:100get_pathology_data获取蛋白质的癌症和病理学数据。
search_cancer_markers查找与特定癌症相关或具有预后价值的蛋白质。
参数:
cancer:癌症类型(例如,乳腺癌、肺癌)prognostic:预后过滤器(有利、不利)format:输出格式(json、tsv)- 默认:jsonmaxResults:最大结果数(1-10000)- 默认:100advanced_search执行具有多个过滤器和标准的高级搜索。
参数:
query:基础搜索查询tissueSpecific:组织特异性表达过滤器subcellularLocation:亚细胞定位过滤器cancerPrognostic:癌症预后过滤器proteinClass:蛋白质类别过滤器chromosome:染色体过滤器antibodyReliability:抗体可靠性过滤器format:输出格式(json、tsv)- 默认:jsoncolumns:结果中要包含的具体列maxResults:最大结果数(1-10000)- 默认:100batch_protein_lookup同时查找多个蛋白质。
参数:
genes(必需):基因符号数组(最多100个)format:输出格式(json、tsv)- 默认:jsoncolumns:结果中要包含的具体列compare_expression_profiles比较多个蛋白质之间的表达谱。
参数:
genes(必需):要比较的基因符号数组(2-10个)expressionType:表达数据类型(组织、大脑、血液、单细胞)- 默认:组织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}:匹配查询的蛋白质搜索结果// 访问BRCA1的组织表达数据
const resource = await client.readResource("hpa://tissue/BRCA1");
// 搜索与胰岛素相关的蛋白质
const searchResults = await client.readResource("hpa://search/insulin");
此服务器访问的数据包括:
服务器提供了全面的错误处理:
// 搜索BRCA1蛋白质
const result = await callTool("search_proteins", {
query: "BRCA1",
format: "json",
});
// 获取多个基因的组织表达
const comparison = await callTool("compare_expression_profiles", {
genes: ["BRCA1", "BRCA2", "TP53"],
expressionType: "tissue",
});
// 查找乳腺癌预后标志物
const markers = await callTool("search_cancer_markers", {
cancer: "乳腺癌",
prognostic: "不利",
maxResults: 50,
});
// 同时查找多个蛋白质
const batchResult = await callTool("batch_protein_lookup", {
genes: ["BRCA1", "BRCA2", "TP53", "EGFR", "MYC"],
format: "json",
});
# 安装依赖项
npm install
# 构建项目
npm run build
# 在开发模式下运行
npm run dev
# 运行服务器
npm start
# 使用MCP客户端或直接stdio通信进行测试
欢迎贡献!请确保:
MIT许可证 - 详情见LICENSE文件。
对于问题和疑问:
此服务器为研究和教育目的提供了对人类蛋白质图谱数据的程序化访问。请在出版物中使用此数据时引用适当的来源。
如果您在研究或出版物中使用了这个项目,请按照以下方式引用它:
author = {Moudather Chelbi},
title = {人类蛋白质图谱MCP服务器},
year = {2025},
howpublished = {https://github.com/Augmented-Nature/ProteinAtlas-MCP-Server/},
note = {访问日期:2025-06-29}