U

UniProt蛋白质检索

@TakumiY235/uniprot-mcp-server
2 Stars 533 次浏览 TakumiY235 更新于 2026-08-23

启用AI助手直接从UniProt访问蛋白质信息,通过登录号检索蛋白质名称、功能、序列和生物体数据。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "uniprot": {
      "args": [
        "--directory",
        "path/to/uniprot-mcp-server",
        "run",
        "uniprot-mcp-server"
      ],
      "command": "uv"
    }
  }
}

可用工具 (2 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

get_protein_info 1 个参数 需填 1 项

Get protein function and sequence information from UniProt using an accession No.

必填参数:accession

get_batch_protein_info 1 个参数 需填 1 项

Get protein information for multiple accession No.

必填参数:accessions

服务介绍

UniProt MCP 服务器

这是一个提供访问 UniProt 蛋白质信息的模型上下文协议(MCP)服务器。该服务器允许 AI 助手直接从 UniProt 获取蛋白质功能和序列信息。

特性

  • 通过 UniProt 登录号获取蛋白质信息
  • 批量检索多个蛋白质
  • 缓存以提高性能(24小时TTL)
  • 错误处理和日志记录
  • 信息包括:
    • 蛋白质名称
    • 功能描述
    • 完整序列
    • 序列长度
    • 生物体

快速开始

  1. 确保已安装 Python 3.10 或更高版本
  2. 克隆此仓库:
    git clone https://github.com/TakumiY235/uniprot-mcp-server.git
    cd uniprot-mcp-server
    
  3. 安装依赖项:
    # 使用 uv (推荐)
    uv pip install -r requirements.txt
    
    # 或者使用 pip
    pip install -r requirements.txt
    

配置

将以下内容添加到您的 Claude Desktop 配置文件中:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "uniprot": {
      "command": "uv",
      "args": ["--directory", "path/to/uniprot-mcp-server", "run", "uniprot-mcp-server"]
    }
  }
}

使用示例

在 Claude Desktop 中配置服务器后,您可以提出如下问题:

Can you get the protein information for UniProt accession number P98160?

对于批量查询:

Can you get and compare the protein information for both P04637 and P02747?

API 参考

工具

  1. get_protein_info

    • 获取单个蛋白质的信息
    • 必需参数:accession (UniProt 登录号)
    • 示例响应:
      {
        "accession": "P12345",
        "protein_name": "示例蛋白质",
        "function": ["蛋白质功能描述"],
        "sequence": "MLTVX...",
        "length": 123,
        "organism": "智人"
      }
      
  2. get_batch_protein_info

    • 获取多个蛋白质的信息
    • 必需参数:accessions (UniProt 登录号数组)
    • 返回一个包含蛋白质信息对象的数组

开发

设置开发环境

  1. 克隆仓库
  2. 创建虚拟环境:
    python -m venv .venv
    source .venv/bin/activate  # 在 Windows 上: .venv\Scripts\activate
    
  3. 安装开发依赖项:
    pip install -e ".[dev]"
    

运行测试

pytest

代码风格

本项目使用:

  • Black 用于代码格式化
  • isort 用于导入排序
  • flake8 用于代码检查
  • mypy 用于类型检查
  • bandit 用于安全检查
  • safety 用于依赖漏洞检查

运行所有检查:

black .
isort .
flake8 .
mypy .
bandit -r src/
safety check

技术细节

  • 使用 MCP Python SDK 构建
  • 使用 httpx 进行异步 HTTP 请求
  • 实现基于 OrderedDict 的缓存,具有 24 小时 TTL
  • 处理速率限制和重试
  • 提供详细的错误消息

错误处理

服务器处理各种错误场景:

  • 无效的访问编号(404 响应)
  • API 连接问题(网络错误)
  • 请求限制(429 响应)
  • 格式错误的响应(JSON 解析错误)
  • 缓存管理(TTL 和大小限制)

贡献

我们欢迎贡献!请随时提交 Pull Request。以下是您可以贡献的方式:

  1. 叉取仓库
  2. 创建您的功能分支 (git checkout -b feature/amazing-feature)
  3. 提交您的更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开一个 Pull Request

请确保适当更新测试并遵守现有的编码风格。

许可证

此项目根据 MIT 许可证许可 - 有关详细信息,请参阅 LICENSE 文件。

致谢

  • UniProt 提供蛋白质数据 API
  • Anthropic 提供 Model Context Protocol 规范
  • 帮助改进此项目的贡献者

相关 MCP 服务