UniProt MCP Server

UniProt MCP Server

镜子 (jìng zi)

MCP-Mirror

研究与数据
访问服务器

README

UniProt MCP 服务器

一个模型上下文协议 (MCP) 服务器,用于提供对 UniProt 蛋白质信息的访问。此服务器允许 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 中配置服务器后,您可以提出如下问题:

你能获取 UniProt 登录号为 P98160 的蛋白质信息吗?

对于批量查询:

你能获取并比较 P04637 和 P02747 的蛋白质信息吗?

API 参考

工具

  1. get_protein_info

    • 获取单个蛋白质的信息
    • 必需参数:accession (UniProt 登录号)
    • 示例响应:
      {
        "accession": "P12345",
        "protein_name": "Example protein",
        "function": ["Description of protein function"],
        "sequence": "MLTVX...",
        "length": 123,
        "organism": "Homo sapiens"
      }
      
  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. Fork 存储库
  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 提供模型上下文协议规范
  • 帮助改进此项目的贡献者

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python