蛋白质猎人MCP
MCP(模型上下文协议)服务器 蛋白质猎人 –由Boltz、Chai实验室、PyRosetta和LigandMPNN提供支持的蛋白质设计和分析工具。
这 protein_hunter_mcp 存储库是围绕上游Protein Hunter代码的非官方MCP包装器,由Longevity Genie团队创建,供其LongevityForest AI代理存储库和相关工具使用;这不是Protein Hunter作者的官方项目。
LongevityForest Protein Hunter
仓库: https://github.com/longevity-genie/protein_hunter_mcp
长寿森林生态系统
该项目与 长寿森林 AI代理存储库。生态系统包括:
- 长寿林:具有专业生物信息学试剂的多试剂基因分析库()
- 蛋白质水解蛋白 (此存储库):用于蛋白质结构分析和蛋白质靶标选择的MCP服务器
- 电池2序列4寿命mcp:MCP服务器,它封装了我们对cell2sequence模型的微调,以将其用于年龄预测。
这些工具结合使用,将细胞观察、序列分析和蛋白质结构分析跨多个生物尺度联系起来。
什么是MCP?
模型上下文协议(MCP)是一种开放协议,它规范了应用程序如何向AI助手提供上下文。该服务器通过MCP展示Protein Hunter的功能,使Claude等AI助手能够执行蛋白质设计和分析任务。
需求
硬件要求
此服务器需要大量GPU内存:
- 支持CUDA的GPU
- 大约20-25GB的VRAM(大多数消费级GPU有8-16GB,不够)
- 建议使用具有高VRAM的工作站或云GPU(例如NVIDIA A100、H100)
在实践中,使用此服务器的已部署实例通常比在典型的桌面硬件上运行它更容易。
软件要求
- Python 3.10-3.12
- 紫外线 包管理器
- 支持子模块的Git
安装
- 使用子模块克隆存储库:
git clone --recurse-submodules https://github.com/longevity-genie/protein_hunter_mcp.git
cd protein_hunter_mcp如果你已经克隆了 --recurse-submodules,初始化子模块:
git submodule update --init --recursive- 安装uv (如果尚未安装):
curl -LsSf https://astral.sh/uv/install.sh | sh- 与uv同步依赖关系:
uv sync这将安装:
- 修改了Protein Hunter子模块中的Boltz(具有自定义功能) - 来自sokrypton分叉的Chai实验室 - 所有必需的依赖关系
- 运行安装后脚本:
uv run postinstall.py此脚本将:
- 将Boltz权重下载到 ~/.boltz - 安装PyRosetta(带自动pip→紫外线重定向) - 设置配体MPNN模型参数(如果可用) - 使DAlphaBall.gcc可执行 - 验证安装
包含什么
核心依赖关系
- 波尔茨 v2.2.1支持CUDA-蛋白质结构预测
- 柴实验室 -高级蛋白质建模
- PyRosetta -蛋白质设计与分析
- 配体MPNN -配体条件蛋白设计
附加工具
- ProDy,PyPDB-蛋白质结构分析
- py3Dmol,py2Dmol-分子可视化
- matplotlib,seaborn-绘图和可视化
快速开始
运行MCP服务器
STDIO模式 (适用于Claude Desktop等MCP客户):
uv run protein-hunter-mcp stdioHTTP模式 (用于web集成):
uv run protein-hunter-mcp http --port 3003SSE模式 (用于服务器发送事件):
uv run protein-hunter-mcp sse --port 3003测试服务器
运行hello world测试:
uv run pytest test/test_server.py -v与Claude Desktop一起使用
添加到您的Claude Desktop MCP配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"protein-hunter-mcp": {
"command": "uv",
"args": ["--directory", "/data/sources/protein_hunter_mcp", "run", "server.py", "stdio"]
}
}
}有关详细的使用说明,请参阅 MCP_USAGE.md.
工具使用
设计参数
每个工具都接受特定于其设计类型的参数:
通用参数(所有工具):
design_name/jobname:设计运行的名称num_designs/n_trials:要生成的设计数(默认值:1)num_cycles/n_cycles:优化周期数(Boltz:7,Chai:5)
Boltz特定:
target_protein_sequence:靶蛋白的氨基酸序列template_pdb_code:模板结构的PDB代码(例如“8ZNL”)contact_residues:触点规格的逗号分隔残基位置ligand_ccd_code:化学成分词典代码(例如“SAM”、“ATP”)nucleic_acid_sequence:DNA或RNA序列min/max_design_protein_length:设计蛋白质的长度限制
柴具体:
target_protein_sequence:靶蛋白序列ligand_smiles:用于小分子的SMILES字符串target_length:设计蛋白质的期望长度percent_X:初始序列中未知残基的百分比
业绩说明
- 运行时:H100 GPU(Boltz)上每个设计7-10分钟,Chai 5-10分钟
- 进度跟踪:所有工具都通过MCP上下文报告进度
- GPU支持:通过配置
GPU_ID环境变量或服务器初始化 - 输出:结果包括结构化目录中的PDB文件、序列和指标
发展
安装开发依赖项:
uv sync --extra dev这包括:
- pytest,pytest异步测试
- mypy类型检查
- 褶皱-绒毛和格式化
- ipykernel-支持Jupyter笔记本
运行测试:
uv run pytest故障排除
子模块问题
如果您遇到有关丢失的错误 Protein-Hunter 目录或Boltz导入错误:
# Initialize/update submodules
git submodule update --init --recursive
# If submodule is out of sync
git submodule update --remote --merge
# Reinstall dependencies
uv sync --reinstall-package boltzPyRosetta安装问题
如果PyRosetta安装失败,安装后脚本将使用PATH包装器进行重定向 pip 呼吁 uv pip。检查输出是否存在特定错误。
CUDA问题
确保您安装了CUDA兼容的GPU和驱动程序。Boltz需要CUDA才能获得良好的性能。
内存不足(OOM)错误通常表示GPU没有足够的VRAM。服务器需要大约20-25GB的VRAM;大多数消费级GPU(8-16GB)将不够。在这种情况下,使用服务器的已部署实例或更高内存的GPU(例如A100或H100,通常在云平台上可用)。
缺少配体MPNN或DAlphaBall
这些是Protein Hunter存储库中的可选组件。如果找不到,安装后脚本将跳过它们。
Boltz导入错误
如果你看到 TypeError: Boltz2.predict_step() got an unexpected keyword argument,您可能会使用标准的Boltz包,而不是修改后的版本。确保:
- 蛋白质猎人子模块已初始化(
git submodule update --init --recursive) - 依赖关系已正确同步(
uv sync --reinstall-package boltz)
建筑
这是一个基于紫外线的项目,由最初的基于康达的Protein Hunter设置转换而来。
关键组件
- ProteinHunterMCP服务器 (
server.py)
- 基于FastMCP框架构建 - 支持多种传输模式(STDIO、HTTP、SSE) - 将所有设计工具注册到 ph_ 前缀 - 管理GPU配置(通过 GPU_ID env变量或 --gpu-id 旗帜) - 为示例序列提供MCP资源
- BoltzTools 的 (
boltz.py)
- 8种专门的设计方法,涵盖不同的绑定场景 - 1种先进的全参数控制方法 - 异步执行长时间运行的任务的子流程 - 通过MCP上下文报告进行进度跟踪 - 返回带有CSV摘要和输出路径的结构化结果
- ChaiTools (
chai.py)
- 针对不同用例的4种专门设计方法 - 1种先进的全参数控制方法 - 异步执行子流程并跟踪进度 - 返回包含PDB文件和指标的结构化结果
设计理念
- 接口:每个工具都专注于具有合理默认值的特定用例
- 高级选项:高级方法为高级用户公开所有参数
- 运行时:在H100 GPU上,每个设计的设计运行通常需要7-10分钟
- 结果:工具返回带文件路径和度量的结构化JSON
- 资源:示例序列作为MCP资源提供
技术特性
- 用途
pyproject.toml用于依赖关系管理 - 所有依赖项都可以通过PyPI或git获得
- 安装后脚本处理特殊情况(PyRosetta、模型重量、Protein Hunter设置)
- 异步设计执行与子流程管理
- 通过MCP上下文进行进度报告
- 贯穿始终的类型提示函数签名
项目结构
protein_hunter_mcp/
├── src/
│ └── protein_hunter_mcp/
│ ├── __init__.py
│ ├── server.py # MCP server implementation
│ ├── boltz.py # Boltz design tools (8 methods)
│ ├── chai.py # Chai design tools (4 methods)
│ └── example_sequences.py # Example protein/ligand sequences
├── Protein-Hunter/ # Git submodule with design scripts
│ ├── boltz_ph/ # Boltz design implementation
│ ├── chai_ph/ # Chai design implementation
│ └── results_*/ # Output directories
├── server.py # Server entry point
├── postinstall.py # Post-installation setup script
├── test/ # Test suite
│ └── test_server.py # Server tests
├── pyproject.toml # Project configuration
├── mcp-config.json # MCP client config examples
├── README.md # This file
├── docs/ # Documentation
│ ├── MCP_USAGE.md # Detailed MCP usage guide
│ ├── MIGRATION.md # Migration guide
│ └── PROTEIN_SEQUENCES.md # Documentation for example sequences可用的MCP工具
所有工具都以前缀 ph_ 以避免命名冲突。该服务器在两个平台上公开了12个蛋白质设计工具:
Boltz设计工具(8个工具)
ph_design_protein_binder:为靶蛋白设计蛋白质粘合剂(全X序列的标准结合)ph_design_protein_binder_with_template:使用模板PDB结构设计蛋白质粘合剂ph_design_protein_binder_with_contacts:设计具有特定接触残留物的蛋白质粘合剂ph_design_multimer_binder:为多聚体蛋白质靶标(如二聚体)设计粘合剂ph_design_cyclic_peptide_binder:设计环肽结合剂(10-20个残基)ph_design_small_molecule_binder:为小分子设计蛋白质粘合剂(通过CCD代码)ph_design_nucleic_acid_binder:为DNA或RNA序列设计蛋白质结合剂ph_design_heterogeneous_binder:为多种目标类型(蛋白质+小分子)设计粘合剂
Chai设计工具(4个工具)
ph_chai_design_unconditional_protein:设计所需长度的从头蛋白质ph_chai_design_protein_binder:使用Chai为靶蛋白设计蛋白质粘合剂ph_chai_design_cyclic_peptide_binder:使用Chai设计环肽结合剂ph_chai_design_ligand_binder:为小分子设计蛋白质结合剂(通过SMILES)
MCP资源
服务器提供示例序列和配体作为MCP资源:
protein://example1/pdl1:PDL1序列用于标准粘合剂设计protein://example2/pdl1_short:用于基于模板的设计的更短PDL1变体protein://example3/pdl1_contact:触点规格的PDL1序列protein://example4/multimer:多聚体序列(1GNW二聚体)ligand://example5/sam:SAM配体CCD代码nucleic://example6/rna:用于核酸粘合剂设计的RNA序列ligand://chai/smiles:用于Chai配体粘合剂设计的SMILES字符串protein://chai/generic_target:无条件设计的通用目标序列
即将推出
ph_ligandmpnn_design:使用配体MPNN进行蛋白质设计ph_pyrosetta_refine:使用PyRosetta进行结构优化ph_analyze_structure:蛋白质结构分析ph_visualize:蛋白质结构的3D可视化
许可证
有关详细信息,请参阅LICENSE文件。
