ProteinAtlas-MCP-Server:基于 MCP 协议的蛋白质数据访问服务项目

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

分支1Tags0

Logo

非官方人类蛋白质图谱 MCP 服务器

一个全面的模型上下文协议(MCP)服务器,用于访问人类蛋白质图谱数据,提供有关蛋白质表达、亚细胞定位、病理学等信息。

概述

人类蛋白质图谱 MCP 服务器能够无缝访问来自人类蛋白质图谱(https://www.proteinatlas.org)的海量蛋白质数据存储库。该服务器提供以下工具和资源:

  • 蛋白质搜索与信息:通过名称、基因符号或描述搜索蛋白质
  • 组织表达:访问组织特异性表达谱
  • 亚细胞定位:检索蛋白质定位数据
  • 病理学数据:获取癌症相关蛋白质信息
  • 血液和脑表达:血细胞和脑区的专门表达数据
  • 抗体信息:抗体的验证和染色数据
  • 批量处理:高效查找多种蛋白质
  • 高级搜索:带有多个过滤器的复杂查询

功能

核心能力

  • 🔍 全面搜索:使用各种标识符和关键词查找蛋白质
  • 🧬 多模态数据:访问表达、定位和病理学信息
  • 🩸 专门图谱:血液图谱和脑图谱数据整合
  • 📊 批量处理:高效处理多个蛋白质查询
  • 🔬 研究级数据:高质量、经过同行评审的蛋白质信息
  • ⚡ 快速响应:针对快速数据检索进行优化

可用数据类型

  1. 基本蛋白质信息

    • 基因符号和 Ensembl ID
    • 蛋白质描述和分类
    • UniProt 交叉引用
  2. 表达数据

    • 组织特异性 RNA 表达
    • 血细胞表达谱
    • 脑区表达数据
    • 单细胞表达信息
  3. 亚细胞定位

    • 蛋白质定位模式
    • 可靠性评分
    • 免疫荧光数据
  4. 病理学信息

    • 癌症预后标志物
    • 疾病关联
    • 治疗靶点
  5. 抗体数据

    • 抗体验证信息
    • 染色模式
    • 可靠性评估

安装

前提条件

  • Node.js 18 或更高版本
  • npm 或 yarn 包管理器

设置

  1. 克隆或下载服务器代码

  2. 安装依赖:

    cd proteinatlas-server
    npm install
    
  3. 构建服务器:

    npm run build
    
  4. 服务器现已准备就绪!

使用方法

命令行

直接运行服务器:

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)- 默认值: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

表达分析

get_tissue_expression

获取蛋白质的组织特异性表达数据。

参数:

  • gene(必填):基因符号
  • format:输出格式(json、tsv)- 默认值:json

search_by_tissue

查找在特定组织中高表达的蛋白质。

参数:

  • tissue(必填):组织名称(例如,liver、brain、heart)
  • expressionLevel:表达水平筛选(high、medium、low、not detected)
  • format:输出格式(json、tsv)- 默认值:json
  • maxResults:最大结果数量(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)- 默认值:json
  • maxResults:最大结果数量(1-10000)- 默认值:100

病理学与癌症

get_pathology_data

获取蛋白质的癌症和病理学数据。

search_cancer_markers

查找与特定癌症相关或具有预后价值的蛋白质。

参数:

  • cancer:癌症类型(例如,breast cancer、lung cancer)
  • prognostic:预后筛选(favorable、unfavorable)
  • format:输出格式(json、tsv)- 默认值:json
  • maxResults:最大结果数量(1-10000)- 默认值:100

高级功能

使用多个筛选条件执行高级搜索。

参数:

  • 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}:与查询匹配的蛋白质的搜索结果

资源访问示例

// 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

贡献指南

欢迎贡献代码!请确保:

  1. 代码遵循 TypeScript 最佳实践
  2. 错误处理全面完善
  3. 新功能的文档已更新
  4. 新功能包含相应测试

许可协议

MIT 许可协议 - 详见 LICENSE 文件。

支持

有关问题和疑问:

  1. 查阅 Human Protein Atlas 文档:https://www.proteinatlas.org/about/help
  2. 查看 MCP 规范:https://modelcontextprotocol.io/
  3. 通过项目仓库提交问题

致谢

  • 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}



项目介绍

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

定制我的领域