skills/tamarind/references/tool_catalog.md
Tamarind exposes hundreds of tools through one uniform job API. The catalog changes frequently — always enumerate at runtime with GET /tools (or MCP getAvailableTools) rather than hardcoding names. This file is a map for interpreting what you get back.
REST GET /tools returns the full list (it does not filter server-side). Filter client-side:
tools = requests.get(f"{BASE}/tools", headers=HEADERS).json() # a list
docking = [t for t in tools if "vina" in t["name"].lower()]
Each REST tool entry carries: name (the type you submit), displayName, description, github, paper, and settings (the inline parameter schema). REST entries do not include categories/tags.
MCP getAvailableTools(search=..., modality=..., function=...) filters server-side and returns entries with categories and tags (category/tag are deprecated aliases of modality/function, still honored).
Don't hardcode the filter vocabulary — it drifts as tools are added. Fetch it live: listModalities() returns the molecule-type axis (protein, antibody, enzyme, peptide, nucleic-acid, small-molecule, small-molecule-binding-protein, cryoem, …); listTags() returns the function axis (structure-prediction, protein-design, binder-design, protein-ligand-docking, binding-affinity, inverse-folding, developability, molecular-dynamics, finetuning, …). Each entry carries value, label, description, and a live toolCount. Every getAvailableTools response also includes availableCategories / availableTags arrays computed from the current catalog. Filter with getAvailableTools(modality=..., function=...).
Verify exact names and availability with /tools — these are common anchors, not an exhaustive or guaranteed list.
Structure prediction / folding
alphafold — AlphaFold; monomer + multimer, MSA + templates, recycles, relaxation.boltz — Boltz-2; structure + affinity, biomolecular complexes incl. ligands.chai — Chai-1; complex structure prediction with optional MSA.esmfold / esmfold2 — fast single-sequence folding.Protein / binder design
rfdiffusion — protein/binder design and motif scaffolding.boltzgen — generative design.bindcraft — binder design.proteinmpnn / ligandmpnn — inverse folding (sequence given backbone; ligand-aware variant).Docking / affinity
boltz / chai — co-fold the ligand into the complex (predict the bound structure); the default for protein-small-molecule docking.autodock-vina — classical docking into a known pocket; the pick for fast, large-scale screening.Antibody
MSA / utilities
getJobSchema(jobType) (MCP) or the /tools entry returns a parameters list. Each parameter has:
name, type (sequence, number, boolean, dropdown, file types like pdb/cif/sdf, …)descr, displayNamerequired, defaultoptions / optionsDescr (for dropdowns), lowerBound / upperBound / lengthLimitconditionals — applies only when another field has a given valueexclude (["api"] / ["batch"]) — omit on that surfacelist: true — accepts multiple values/filesexample — a sample value(Org-gated parameters are filtered server-side: getJobSchema drops a param your account isn't authorized for and never returns the old restrictOrgs key.)
Top-level tool metadata also includes a hint, and getJobSchema returns an exampleJob built from each parameter's example/default — start from that (then validateJob it) rather than hand-building settings.
Always read the schema before constructing settings, and run validateJob to confirm before submitJob.