返回市场
蛋白质图谱-MCP-服务器

蛋白质图谱-MCP-服务器

作者:Augmented-Nature3 星标更新:2025-06-29

项目介绍

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
# 或
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(必需):组织名称(例如,肝脏、大脑、心脏)
  • expressionLevel:表达水平过滤器(高、中、低、未检测到)
  • format:输出格式(json、tsv)- 默认:json
  • maxResults:最大结果数(1-10000)- 默认:100

get_blood_expression

获取蛋白质的血细胞表达数据。

get_brain_expression

获取蛋白质的脑区表达数据。

亚细胞定位

get_subcellular_location

获取蛋白质的亚细胞定位数据。

search_by_subcellular_location

查找定位于特定亚细胞隔室的蛋白质。

参数:

  • location(必需):亚细胞位置(例如,细胞核、线粒体、细胞质)
  • reliability:可靠性过滤器(批准、增强、支持、不确定)
  • format:输出格式(json、tsv)- 默认:json
  • maxResults:最大结果数(1-10000)- 默认:100

病理学和癌症

get_pathology_data

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

search_cancer_markers

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

参数:

  • cancer:癌症类型(例如,乳腺癌、肺癌)
  • prognostic:预后过滤器(有利、不利)
  • format:输出格式(json、tsv)- 默认:json
  • maxResults:最大结果数(1-10000)- 默认:100

高级功能

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:表达数据类型(组织、大脑、血液、单细胞)- 默认:组织
  • 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");

数据来源

此服务器访问的数据包括:

  • 人类蛋白质图谱:主要蛋白质图谱数据库
  • 组织图谱:正常组织表达数据
  • 血液图谱:血细胞表达谱
  • 大脑图谱:脑区表达数据
  • 病理学图谱:与癌症相关的蛋白质数据
  • 细胞图谱:单细胞表达信息

速率限制和最佳实践

  • 服务器实现了适当的速率限制以尊重人类蛋白质图谱API
  • 对于批处理操作,考虑将大型请求分解成较小的部分
  • 尽可能使用特定列选择以减少响应大小
  • 在适当的情况下缓存频繁访问的数据

错误处理

服务器提供了全面的错误处理:

  • 无效参数:对于不正确的输入提供清晰的错误消息
  • 网络问题:瞬时故障的重试逻辑
  • 数据格式错误:对意外响应格式的优雅处理
  • 速率限制:适当的退避策略

示例

基本蛋白质查找

// 搜索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通信进行测试

贡献

欢迎贡献!请确保:

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

许可证

MIT许可证 - 详情见LICENSE文件。

支持

对于问题和疑问:

  1. 查看人类蛋白质图谱文档:https://www.proteinatlas.org/about/help
  2. 查阅MCP规范:https://modelcontextprotocol.io/
  3. 通过项目仓库提交问题

致谢

  • 人类蛋白质图谱团队提供了全面的蛋白质数据库
  • 模型上下文协议社区提供了标准化的通信框架
  • TypeScript和Node.js社区提供了开发工具

此服务器为研究和教育目的提供了对人类蛋白质图谱数据的程序化访问。请在出版物中使用此数据时引用适当的来源。

引用

如果您在研究或出版物中使用了这个项目,请按照以下方式引用它:

author = {Moudather Chelbi},
title = {人类蛋白质图谱MCP服务器},
year = {2025},
howpublished = {https://github.com/Augmented-Nature/ProteinAtlas-MCP-Server/},
note = {访问日期:2025-06-29}