用途
本技能用于把 ColabFold(AlphaFold2-Multimer)封装成 ToolUniverse 的远程工具,完成环境搭建、启动、验证和故障排查,并可选通过 ToolUniverse Connect 进行中继共享。它面向需要在本地或受控环境中运行蛋白质结构预测、又不希望直接使用官方 CLI 的用户。
主要能力
- 提供双环境搭建流程:ToolUniverse 的 MCP 服务器环境与 Python 3.11 的模型环境,模型环境通过固定依赖锁文件安装,避免版本漂移。
- 通过
tu remote setup colabfold自动执行预检、环境、工具包、权重和冒烟测试五个步骤,支持--only单步执行。 - 冒烟测试会实际发送一次请求,校验输出文件(
*_unrelaxed_rank_*.pdb和非空 structures),并记录峰值显存到~/.cache/tooluniverse/measured/colabfold.json。 - 提供本地 Streamable HTTP MCP 端点(默认
http://127.0.0.1:8051/mcp),可通过 FastMCP 客户端发现和调用colabfold_predict工具。 - 支持通过
tu remote login和tu remote share colabfold进行浏览器设备授权和中继共享,密钥保存在本地 0600 配置文件,不显示明文。 - 资料包含针对 a3m 输入格式的精确说明:单链 a3m 与复合物 a3m 的头部格式、对齐宽度计算方式,以及 MSA-free 哨兵序列的低 pLDDT 预期。
- 提供 GPU 与并发调优建议:单 worker 设计、显存预算平坦(100/200/400 残基均为 4.0 GiB)、XLA 预分配关闭、空闲超时 300 秒等。
使用方式
前提条件:在 Linux 上从 ToolUniverse 仓库根目录运行,Python 3.12.3;需要 CUDA GPU;模型环境需要 Python 3.11(uv venv --seed --managed-python --python 3.11 ~/colabfold-venv)。数据、权重、缓存和凭据应放在 Git 之外。绑定回环地址;非回环绑定需要 TOOLUNIVERSE_API_TOKEN,且不得放入参数或结果。
主要步骤:
- 运行标准库合约检查:
python scripts/remote_validation/setup_skill_preflight.py --implementation colabfold,之后可加--check-provider-env、--live、--check-connect-prereqs。 - 创建两个环境:MCP 服务器环境(
python3 -m venv .venvs/colabfold,激活后安装项目和 fastmcp);模型环境路径由TOOLUNIVERSE_COLABFOLD_PYTHON指定,由tu remote setup --only environment从锁文件填充。 - 设置环境变量并运行
tu remote setup colabfold,或分步执行 preflight/environment/kit/weights/smoke。 - 本地启动:
python -m tooluniverse.remote.colabfold.colabfold_tool,然后通过 FastMCP 客户端确认发现包含colabfold_predict。 - 可选共享:安装固定的
tuplatform-connectwheel,执行tu doctor和tu serve --share,或使用tu remote share colabfold。 - 调用示例:使用胰岛素(A 链 21、B 链 30)的两链 a3m,参数
num_models=1、num_recycles=1、seed=0,通过本地 MCP 端点调用colabfold_predict。成功返回包含n_structures、scores(含 mean_plddt、ptm、iptm)、best、query_length、chains、msa_rows、msa_source、engine_rebuilt、weights_held_by等字段;structures需显式传return_structures: true才返回。
适用场景
- 在具备 CUDA GPU 的 Linux 主机上私有部署 ColabFold 远程工具,并通过 MCP 接口调用。
- 需要固定依赖版本、可重复环境搭建和冒烟验证的科研或工程场景。
- 需要在本地或受控网络中通过 ToolUniverse Connect 共享预测能力,且能接受浏览器设备授权流程。
限制
- 资料明确说明公开出版、跨用户隔离、并发、恢复和科学准确性尚未验证,建议保持私有部署。
- 该实现未经过 2026-08-16 平台矩阵测试,未通过 Platform 实际调用;公开出版、独立调用者授权/隔离、饱和度和持久监督均未测试。
- 单 worker 一次只处理一个请求,第二个请求会排队;无 padding 桶,不同总长度各自触发 XLA 编译。
- 某些参数(如
use_bfloat16、use_templates、num_relax、msa_mode)在请求时会被按名拒绝;num_models x num_seeds > 5会因超时限制被拒绝。 - 单序列 a3m 会导致 pLDDT 约 35-44,属于预期结果而非故障。
- 模板被按名拒绝,因为上游针对 a3m 输入的模板路径会调用同一远程服务;不需要本地 MMseqs2 数据库,请求时不拉取任何数据。
- 资料未提供收费、价格或商业授权信息。