返回市场
统一蛋白-MCP-服务器

统一蛋白-MCP-服务器

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

项目介绍

【技术文档摘要】

非官方 UniProt MCP 服务器

这是一个全面的模型上下文协议(MCP)服务器,提供对 UniProt 蛋白质数据库的高级访问。该服务器提供了 26 种专门的生物信息学工具,使 AI 助手和 MCP 客户端能够通过 UniProt 的 REST API 直接进行复杂的蛋白质研究、比较基因组学、结构生物学分析以及系统生物学调查。

Augmented Nature 开发

特性

核心蛋白质分析(5种工具)

  • 蛋白质搜索:按蛋白质名称、关键词或生物体搜索 UniProt 数据库
  • 详细蛋白质信息:检索包括功能、结构和注释在内的综合蛋白质信息
  • 基于基因的搜索:按基因名称或符号查找蛋白质
  • 序列检索:以 FASTA 或 JSON 格式获取氨基酸序列
  • 特征分析:访问功能性域、活性位点、结合位点和其他蛋白质特征

比较与进化分析(4种工具)

  • 蛋白质比较:并排比较多个蛋白质及其序列和特征分析
  • 同源发现:在不同物种中找到同源蛋白质
  • 直系同源物识别:识别用于进化研究的直系同源物
  • 系统发育分析:检索进化关系和系统发育数据

结构与功能分析(4种工具)

  • 三维结构信息:访问 PDB 引用和结构数据
  • 高级域分析:增强的域分析,带有 InterPro、Pfam 和 SMART 注释
  • 变异分析:疾病相关的变异和突变
  • 序列组成:氨基酸组成、疏水性和其他序列属性

生物学背景分析(4种工具)

  • 通路整合:来自 KEGG 和 Reactome 的相关生物通路
  • 蛋白质相互作用:蛋白质-蛋白质相互作用网络
  • 功能分类:按 GO 术语或功能注释搜索
  • 亚细胞定位:按亚细胞定位查找蛋白质

批处理与高级搜索(3种工具)

  • 批处理:高效处理多个蛋白质访问号
  • 高级搜索:具有多个过滤器(长度、质量、生物体、功能)的复杂查询
  • 分类搜索:按详细的分类学分类搜索

文献与交叉引用(3种工具)

  • 外部数据库链接:链接到 PDB、EMBL、RefSeq、Ensembl 等数据库
  • 文献引用:相关出版物和引文
  • 注释质量:不同注释的质量分数和置信水平

数据导出与实用工具(3种工具)

  • 专用导出:以 GFF、GenBank、EMBL 和 XML 格式导出数据
  • 访问号验证:验证 UniProt 访问号的有效性
  • 分类学信息:详细的分类学分类和谱系数据

资源模板

  • 通过 URI 模板直接访问蛋白质数据,实现无缝集成

安装

先决条件

  • Node.js(v16 或更高版本)
  • npm 或 yarn

设置

  1. 克隆仓库:
git clone <repository-url>
cd uniprot-server
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build

Docker

构建 Docker 镜像

构建 Docker 镜像:

docker build -t uniprot-mcp-server .

使用 Docker 运行

运行容器:

docker run -i uniprot-mcp-server

对于 MCP 客户端集成,可以直接使用容器:

{
  "mcpServers": {
    "uniprot": {
      "command": "docker",
      "args": ["run", "-i", "uniprot-mcp-server"],
      "env": {}
    }
  }
}

Docker Compose(可选)

创建一个 docker-compose.yml 文件以便于管理:

version: "3.8"
services:
  uniprot-mcp:
    build: .
    image: uniprot-mcp-server
    stdin_open: true
    tty: true

运行:

docker-compose up

使用方法

作为 MCP 服务器

该服务器设计为通过标准 I/O 通信的 MCP 服务器:

npm start

添加到 MCP 客户端配置

将服务器添加到您的 MCP 客户端配置(例如 Claude Desktop):

{
  "mcpServers": {
    "uniprot": {
      "command": "node",
      "args": ["/path/to/uniprot-server/build/index.js"],
      "env": {}
    }
  }
}

可用工具

1. search_proteins

按名称、关键词或生物体搜索 UniProt 数据库中的蛋白质。

参数:

  • query(必需):搜索查询(蛋白质名称、关键词或复杂搜索)
  • organism(可选):用于筛选结果的生物体名称或分类学 ID
  • size(可选):返回的结果数量(1-500,默认:25)
  • format(可选):输出格式 - json、tsv、fasta、xml(默认:json)

示例:

{
  "query": "胰岛素",
  "organism": "人类",
  "size": 5
}

2. get_protein_info

通过 UniProt 访问号获取特定蛋白质的详细信息。

参数:

  • accession(必需):UniProt 访问号(例如 P04637)
  • format(可选):输出格式 - json、tsv、fasta、xml(默认:json)

示例:

{
  "accession": "P01308",
  "format": "json"
}

3. search_by_gene

按基因名称或符号搜索蛋白质。

参数:

  • gene(必需):基因名称或符号(例如 BRCA1、INS)
  • organism(可选):用于筛选结果的生物体名称或分类学 ID
  • size(可选):返回的结果数量(1-500,默认:25)

示例:

{
  "gene": "BRCA1",
  "organism": "人类"
}

4. get_protein_sequence

获取蛋白质的氨基酸序列。

参数:

  • accession(必需):UniProt 访问号
  • format(可选):输出格式 - fasta、json(默认:fasta)

示例:

{
  "accession": "P01308",
  "format": "fasta"
}

5. get_protein_features

获取蛋白质的功能特征和域。

参数:

  • accession(必需):UniProt 访问号

示例:

{
  "accession": "P01308"
}

资源模板

该服务器通过 URI 模板直接访问 UniProt 数据:

1. 蛋白质信息

  • URIuniprot://protein/{accession}
  • 描述:UniProt 访问号的完整蛋白质信息
  • 示例uniprot://protein/P01308

2. 蛋白质序列

  • URIuniprot://sequence/{accession}
  • 描述:FASTA 格式的蛋白质序列
  • 示例uniprot://sequence/P01308

3. 搜索结果

  • URIuniprot://search/{query}
  • 描述:匹配查询的蛋白质搜索结果
  • 示例uniprot://search/胰岛素

示例

基本蛋白质搜索

搜索人类的胰岛素蛋白质:

// 工具调用
{
  "tool": "search_proteins",
  "arguments": {
    "query": "胰岛素",
    "organism": "人类",
    "size": 10
  }
}

获取详细蛋白质信息

检索关于人类胰岛素的综合信息:

// 工具调用
{
  "tool": "get_protein_info",
  "arguments": {
    "accession": "P01308"
  }
}

基于基因的搜索

查找与 BRCA1 基因相关的蛋白质:

// 工具调用
{
  "tool": "search_by_gene",
  "arguments": {
    "gene": "BRCA1",
    "organism": "人类"
  }
}

获取蛋白质序列

获取人类胰岛素的氨基酸序列:

// 工具调用
{
  "tool": "get_protein_sequence",
  "arguments": {
    "accession": "P01308",
    "format": "fasta"
  }
}

分析蛋白质特征

获取人类胰岛素的功能域和特征:

// 工具调用
{
  "tool": "get_protein_features",
  "arguments": {
    "accession": "P01308"
  }
}

API 集成

此服务器通过 UniProt REST API 实现程序化访问蛋白质数据。有关 UniProt 的更多信息:

所有 API 请求包括:

  • User-AgentUniProt-MCP-Server/1.0.0
  • 超时:30 秒
  • 基础 URLhttps://rest.uniprot.org(仅限程序化访问)

错误处理

该服务器包括全面的错误处理:

  • 输入验证:所有参数都使用类型检查器进行验证
  • API 错误:捕获网络和 API 错误,并返回描述性消息
  • 超时处理:请求在 30 秒后超时
  • 优雅降级:适当处理部分失败

开发

构建项目

npm run build

开发模式

在监视模式下运行 TypeScript 编译器:

npm run dev

项目结构

uniprot-server/
├── src/
│   └── index.ts          # 主服务器实现
├── build/                # 编译后的 JavaScript 输出
├── package.json          # Node.js 依赖项和脚本
├── tsconfig.json         # TypeScript 配置
└── README.md            # 本文件

依赖项

  • @modelcontextprotocol/sdk:服务器实现的核心 MCP SDK
  • axios:用于 UniProt API 请求的 HTTP 客户端
  • typescript:开发用的 TypeScript 编译器

许可证

MIT 许可证

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 如适用,请添加测试
  5. 提交拉取请求

支持

对于问题和疑问:

  1. 查看 UniProt API 文档
  2. 查看 模型上下文协议规范
  3. 在仓库上打开一个问题

关于 Augmented Nature

这个全面的 UniProt MCP 服务器是由 Augmented Nature 开发的,该公司是人工智能驱动的生物信息学和计算生物学解决方案的领先创新者。Augmented Nature 专注于创建先进的工具,弥合人工智能和生物研究之间的差距,使研究人员能够从生物数据中获得更深层次的见解。

完整工具参考

核心蛋白质分析工具

  1. search_proteins - 按名称、关键词或生物体搜索 UniProt 数据库
  2. get_protein_info - 通过访问号获取详细蛋白质信息
  3. search_by_gene - 按基因名称或符号查找蛋白质
  4. get_protein_sequence - 检索氨基酸序列
  5. get_protein_features - 访问功能特征和域

比较与进化分析工具

  1. compare_proteins - 并排比较多个蛋白质
  2. get_protein_homologs - 在物种间查找同源蛋白质
  3. get_protein_orthologs - 识别直系同源物
  4. get_phylogenetic_info - 检索进化关系

结构与功能分析工具

  1. get_protein_structure - 访问来自 PDB 的三维结构信息
  2. get_protein_domains_detailed - 增强的域分析(InterPro、Pfam、SMART)
  3. get_protein_variants - 疾病相关的变异和突变
  4. analyze_sequence_composition - 氨基酸组成分析

生物学背景工具

  1. get_protein_pathways - 相关的生物通路(KEGG、Reactome)
  2. get_protein_interactions - 蛋白质-蛋白质相互作用网络
  3. search_by_function - 按 GO 术语或功能注释搜索
  4. search_by_localization - 按亚细胞定位查找蛋白质

批处理与高级搜索工具

  1. batch_protein_lookup - 高效处理多个访问号
  2. advanced_search - 具有多个过滤器的复杂查询
  3. search_by_taxonomy - 按分类学分类搜索

文献与交叉引用工具

  1. get_external_references - 链接到其他数据库(PDB、EMBL、RefSeq 等)
  2. get_literature_references - 相关出版物和引文
  3. get_annotation_confidence - 注释的质量分数

数据导出与实用工具

  1. export_protein_data - 导出至专用格式(GFF、GenBank、EMBL、XML)
  2. validate_accession - 检查访问号的有效性
  3. get_taxonomy_info - 详细的分类学信息

更新日志

v1.0.0 - 综合生物信息平台

  • 主要扩展:增加了 21 个新的专用工具(总计:26 个工具)
  • 比较分析:蛋白质比较、同源/直系同源物识别、系统发育分析
  • 结构生物学:三维结构整合、详细的域分析、变异分析
  • 系统生物学:通路整合、蛋白质相互作用、功能分类
  • 高级搜索:批处理、复杂过滤、分类学搜索
  • 文献整合:外部数据库链接、引文、注释置信度
  • 数据导出:多种专用格式(GFF、GenBank、EMBL、XML)
  • 增强的 Docker 支持:多阶段构建,采用最佳安全实践
  • 全面文档:完整的工具参考和示例
  • 由 Augmented Nature 开发:专业生物信息平台

引用

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

author = {Moudather Chelbi},
title = {UniProt MCP 服务器},
year = {2025},
howpublished = {https://github.com/Augmented-Nature/Augmented-Nature-UniProt-MCP-Server/},
note = {访问日期:2025-06-29}