Augmented-Nature-UniProt-MCP-Server:基于 Model Context Protocol 的 UniProt 数据库访问服务项目

用户可通过该项目便捷访问 UniProt 蛋白质数据库,进行蛋白质研究、比较基因组学等分析。它提供26个专业生物信息学工具,支持AI助手和MCP客户端直接调用,功能涵盖蛋白质搜索、序列检索、结构分析等。【此简介由AI生成】

分支1Tags0
文件最后提交记录最后更新时间
1 年前
1 年前
8 个月前
1 年前
1 年前
1 年前
1 年前

非官方 UniProt MCP 服务器

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

Augmented Nature 开发

功能

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

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

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

  • 蛋白质比较:多蛋白质的序列和特征分析并排比较
  • 同源物发现:跨不同物种查找同源蛋白质
  • 直系同源物鉴定:为进化研究鉴定直系同源蛋白质
  • 系统发育分析:检索进化关系和系统发育数据

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

  • 3D 结构信息:访问 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 服务器

该服务器设计为通过标准输入输出(stdio)进行通信的 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": "insulin",
  "organism": "human",
  "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": "human"
}

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

示例

基础蛋白质搜索

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

// Tool call
{
  "tool": "search_proteins",
  "arguments": {
    "query": "insulin",
    "organism": "human",
    "size": 10
  }
}

获取详细蛋白质信息

检索有关人胰岛素的全面信息:

// Tool call
{
  "tool": "get_protein_info",
  "arguments": {
    "accession": "P01308"
  }
}

基于基因的搜索

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

// Tool call
{
  "tool": "search_by_gene",
  "arguments": {
    "gene": "BRCA1",
    "organism": "human"
  }
}

检索蛋白质序列

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

// Tool call
{
  "tool": "get_protein_sequence",
  "arguments": {
    "accession": "P01308",
    "format": "fasta"
  }
}

分析蛋白质特征

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

// Tool call
{
  "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          # Main server implementation
├── build/                # Compiled JavaScript output
├── package.json          # Node.js dependencies and scripts
├── tsconfig.json         # TypeScript configuration
└── README.md            # This file

依赖项

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

许可证

MIT 许可证

贡献指南

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

支持

有关问题和疑问:

  1. 查阅 UniProt API 文档
  2. 查看 模型上下文协议规范
  3. 在仓库上提交 issue

关于 Augmented Nature

这款全面的 UniProt MCP Server 由 Augmented Nature 开发,该公司是 AI 驱动的生物信息学和计算生物学解决方案领域的领先创新者。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 获取 3D 结构信息
  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个工具)
  • 比较分析:蛋白质比较、同源/直系同源物识别、系统发育分析
  • 结构生物学:3D结构整合、详细结构域分析、变异分析
  • 系统生物学:通路整合、蛋白质相互作用、功能分类
  • 高级搜索:批量处理、复杂筛选、分类学搜索
  • 文献整合:外部数据库链接、引文、注释可信度
  • 数据导出:多种专用格式(GFF、GenBank、EMBL、XML)
  • 增强Docker支持:采用安全最佳实践的多阶段构建
  • 全面文档:完整的工具参考和示例
  • 由Augmented Nature开发:专业生物信息学平台

引用

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

author = {Moudather Chelbi},
title = {UniProt MCP Server},
year = {2025},
howpublished = {https://github.com/Augmented-Nature/Augmented-Nature-UniProt-MCP-Server/},
note = {Accessed: 2025-06-29}



项目介绍

用户可通过该项目便捷访问 UniProt 蛋白质数据库,进行蛋白质研究、比较基因组学等分析。它提供26个专业生物信息学工具,支持AI助手和MCP客户端直接调用,功能涵盖蛋白质搜索、序列检索、结构分析等。【此简介由AI生成】

定制我的领域