Skill Tracer
Skills › Scientific Agent Skills › tamarind

tamarind

skill · 210 lines · MIT · skills/tamarind/SKILL.md

The facts

Its description

Provides access to a collection of open-source molecular design and structural biology tools on the Tamarind Bio platform, via its REST API or MCP server — no local GPUs required. Tamarind bundles popular open-source models for structure prediction (AlphaFold, Boltz, Chai, ESMFold), protein, binder, and de novo design (RFdiffusion, ProteinMPNN, BoltzGen), antibody and nanobody design and developability, protein-ligand docking (DiffDock, Autodock Vina), binding-affinity prediction, MSA generation, and molecular dynamics. Use when the user mentions Tamarind or tamarind.bio, wants to run any of these open-source tools in the cloud, references app.tamarind.bio/api or the x-api-key header, or needs to submit batches of sequences for structural or biophysical characterization.

The description the agent reads to decide when to use it.

From its settingsline 3

Files it mentions

references/workflows.md, references/api_reference.md, references/tool_catalog.md, references/examples.md (first 5 of 6 lines)

Files the text names, such as ones to read or write. Found by matching words, so treat them as pointers.

Found by matching wordsline 104 line 172 line 204 line 206 line 207

Licence

MIT, from the skill file

The terms its author shares it under, which let it be shown here.

From its settingsline 4 licence text

Other settings

compatibility: Requires Python 3.10+, a Tamarind Bio account, and an API key from app.tamarind.bio. Uses the `requests` library against the public REST API (these recipes use HTTP directly). Network access required. Optional MCP server at mcp.tamarind.bio/mcp for agent hosts. metadata: name: TAMARIND_API_KEY

More settings at the top of the file, shown as written.

From its settingsline 5 line 6
Other files in this skill (4) Close

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: tamarind
3description: Provides access to a collection of open-source molecular design and structural biology tools on the Tamarind Bio platform, via its REST API or MCP server — no local GPUs required. Tamarind bundles popular open-source models for structure prediction (AlphaFold, Boltz, Chai, ESMFold), protein, binder, and de novo design (RFdiffusion, ProteinMPNN, BoltzGen), antibody and nanobody design and developability, protein-ligand docking (DiffDock, Autodock Vina), binding-affinity prediction, MSA generation, and molecular dynamics. Use when the user mentions Tamarind or tamarind.bio, wants to run any of these open-source tools in the cloud, references app.tamarind.bio/api or the x-api-key header, or needs to submit batches of sequences for structural or biophysical characterization.
4license: MIT
5compatibility: Requires Python 3.10+, a Tamarind Bio account, and an API key from app.tamarind.bio. Uses the `requests` library against the public REST API (these recipes use HTTP directly). Network access required. Optional MCP server at mcp.tamarind.bio/mcp for agent hosts.
6metadata:
7 version: "1.3"
8 last-reviewed: "2026-09-30"
9 skill-author: Tamarind Bio
10 trigger-keywords: protein structure prediction, AlphaFold, Boltz, Chai, ESMFold, protein design, binder design, de novo design, antibody design, nanobody, protein-ligand docking, DiffDock, Autodock Vina, binding affinity, MSA generation, inverse folding, ProteinMPNN, RFdiffusion, BoltzGen, cloud GPU biology, structure prediction API, x-api-key, developability, adme, enzyme, peptide, protein language models, molecular design
11 openclaw:
12 primaryEnv: TAMARIND_API_KEY
13 envVars:
14 - name: TAMARIND_API_KEY
15 required: true
16 description: Tamarind Bio API key sent as the x-api-key header.
17---
19# Tamarind Bio
21Tamarind runs molecular-design and structural-biology tools on managed compute:
22structure prediction, protein and antibody design, docking, binding-affinity
23prediction, MSA generation, and molecular dynamics. Use it when the user requests
24Tamarind, its REST API/MCP server, or cloud execution of these scientific tools.
25For local sequence processing or molecular descriptors, use a local library.

Tamarind Bio

Tamarind runs molecular-design and structural-biology tools on managed compute: structure prediction, protein and antibody design, docking, binding-affinity prediction, MSA generation, and molecular dynamics. Use it when the user requests Tamarind, its REST API/MCP server, or cloud execution of these scientific tools. For local sequence processing or molecular descriptors, use a local library.

Raw lines 1 to 26
Uses an outside tool MCP :24
27## Sources and review scope
29The REST contracts and public catalog were reviewed on **2026-09-30**. Examples are
30illustrative until validated against the user's account; this review did not run
31authenticated jobs or establish scientific accuracy for any model.
33- [API index](https://app.tamarind.bio/llms.txt) and
34 [complete guide](https://app.tamarind.bio/llms-full.txt).
35- [Current OpenAPI](https://app.tamarind.bio/api/openapi.json) includes discovery,
36 validation, jobs, files, and newer pipeline/custom-tool surfaces.
37 [openapi.yaml](https://app.tamarind.bio/openapi.yaml) is also available. Check that
38 needed paths exist: the merged spec can return HTTP 200 with only its classic
39 surface when the backend spec cannot be fetched.
40- [Public catalog](https://app.tamarind.bio/tools.json) needs no key; query `?type=`
41 or `?tag=`. It documents public tools and conditional required settings, not
42 every optional parameter or account entitlement.
43- [Product documentation index](https://docs.tamarind.bio/llms.txt) links to
44 Markdown pages, including the [MCP guide](https://docs.tamarind.bio/tamarind/mcp-server.md).
46Fetch the account's current schemas before composing a run. Where the prose guide
47and OpenAPI differ, prefer the operation/schema for field shapes, and record any
48unresolved difference rather than guessing.

Sources and review scope

The REST contracts and public catalog were reviewed on 2026-09-30. Examples are illustrative until validated against the user's account; this review did not run authenticated jobs or establish scientific accuracy for any model.

  • API index and complete guide.
  • Current OpenAPI includes discovery, validation, jobs, files, and newer pipeline/custom-tool surfaces. openapi.yaml is also available. Check that needed paths exist: the merged spec can return HTTP 200 with only its classic surface when the backend spec cannot be fetched.
  • Public catalog needs no key; query ?type= or ?tag=. It documents public tools and conditional required settings, not every optional parameter or account entitlement.
  • Product documentation index links to Markdown pages, including the MCP guide.

Fetch the account's current schemas before composing a run. Where the prose guide and OpenAPI differ, prefer the operation/schema for field shapes, and record any unresolved difference rather than guessing.

Raw lines 27 to 49
Uses an outside tool MCP :44
50## Access
521. Use the user's Tamarind deployment. The shared base is
53 `https://app.tamarind.bio/api`; a dedicated organization deployment has its own
54 host and account data. Every relative REST path below is under `/api`.
552. Obtain a key from the deployment's API settings and read it from
56 `TAMARIND_API_KEY`; send it as `x-api-key`. Keep keys out of files and logs.
573. Check the account's current allowance and compute budget before scaling up.
58 Free usage is a monthly allowance, not an unconditional promise of ten jobs
59 forever; billing and entitlements can change.
61```bash
62# Public discovery requires no credential.
63curl --fail-with-body 'https://app.tamarind.bio/tools.json?type=alphafold'
64# Account-scoped discovery:
65curl --fail-with-body 'https://app.tamarind.bio/api/tools' \
66 -H "x-api-key: $TAMARIND_API_KEY"
67```
69For REST examples install `requests` in the execution environment. The official
70CLI distribution is **`tamarind-cli`**, and its Custom Tools Python client imports
71as `from tamarind import Tamarind`; the unrelated package named `tamarind` is not
72this client. See the [SDK reference](https://app.tamarind.bio/api-docs/custom-tools-sdk-reference).
73Core job recipes below use HTTP directly.

Access

  1. Use the user's Tamarind deployment. The shared base is https://app.tamarind.bio/api; a dedicated organization deployment has its own host and account data. Every relative REST path below is under /api.
  2. Obtain a key from the deployment's API settings and read it from TAMARIND_API_KEY; send it as x-api-key. Keep keys out of files and logs.
  3. Check the account's current allowance and compute budget before scaling up. Free usage is a monthly allowance, not an unconditional promise of ten jobs forever; billing and entitlements can change.
# Public discovery requires no credential.
curl --fail-with-body 'https://app.tamarind.bio/tools.json?type=alphafold'
# Account-scoped discovery:
curl --fail-with-body 'https://app.tamarind.bio/api/tools' \
  -H "x-api-key: $TAMARIND_API_KEY"

For REST examples install requests in the execution environment. The official CLI distribution is **tamarind-cli**, and its Custom Tools Python client imports as from tamarind import Tamarind; the unrelated package named tamarind is not this client. See the SDK reference. Core job recipes below use HTTP directly.

Raw lines 50 to 74
75## Workflow
771. **Discover.** Read `GET /tools` and match the user's scientific task to the tool
78 description. Built-ins return an array; `?custom=true` lists legacy custom
79 tools only. Current custom deployments can be missing from this list: use the
80 known deployed name and its schema before concluding that it is unavailable.
812. **Read the schema.** `GET /tools/{name}/schema` returns a JSON Schema for the
82 `settings` object. `GET /tools` also supplies a trimmed `settings` parameter
83 list. Check task-dependent fields, file extensions, list values, and defaults.
843. **Validate.** Send `POST /validate-job` with `type`, `settings`, and optional
85 `jobName`. Check HTTP status first, then JSON `valid`. On success, inspect and
86 use `normalized` as the settings to submit. Address `unrecognized_settings`
87 if returned, even alongside `valid: true`: an optional-field typo can otherwise
88 silently leave the default in effect. Validation checks fields, not all submit
89 policies, queue limits, or deployment readiness.
904. **Submit once.** `POST /submit-job` takes `jobName`, `type`, `settings`, optional
91 `version` for a custom-tool build, and optional/organization-required
92 `projectTag`. Persist the submitted name and settings. A successful response
93 is plain text, not a JSON receipt. Use the returned stored name.
945. **Poll.** `GET /jobs?jobName=...` returns a row directly. Single-job terminal
95 states are `Complete`, `Stopped`, and `Failed`; handle legacy `Deleted` or an
96 exact-lookup error without looping indefinitely. Poll batch parents using
97 `batchStatus`, and poll newer pipelines on their own run endpoint.
986. **Download and inspect.** `POST /result` returns a JSON string URL on **200**,
99 or **202** with `status: "preparing"`. Retry result retrieval after 202, without
100 resubmitting compute. GET the signed URL without the Tamarind API-key header.
101 Download the archive only for successful runs; request `fileName: "output.log"`
102 for stopped/failed jobs. Verify the scientific outputs after downloading.
104[Workflow recipes](references/workflows.md) implement validation, stored names,
105bounded polling, 202 handling, batch validation, and pagination. They are locally
106smoke-tested with simulated responses; authenticated execution remains untested.

Workflow

  1. Discover. Read GET /tools and match the user's scientific task to the tool description. Built-ins return an array; ?custom=true lists legacy custom tools only. Current custom deployments can be missing from this list: use the known deployed name and its schema before concluding that it is unavailable.
  2. Read the schema. GET /tools/{name}/schema returns a JSON Schema for the settings object. GET /tools also supplies a trimmed settings parameter list. Check task-dependent fields, file extensions, list values, and defaults.
  3. Validate. Send POST /validate-job with type, settings, and optional jobName. Check HTTP status first, then JSON valid. On success, inspect and use normalized as the settings to submit. Address unrecognized_settings if returned, even alongside valid: true: an optional-field typo can otherwise silently leave the default in effect. Validation checks fields, not all submit policies, queue limits, or deployment readiness.
  4. Submit once. POST /submit-job takes jobName, type, settings, optional version for a custom-tool build, and optional/organization-required projectTag. Persist the submitted name and settings. A successful response is plain text, not a JSON receipt. Use the returned stored name.
  5. Poll. GET /jobs?jobName=... returns a row directly. Single-job terminal states are Complete, Stopped, and Failed; handle legacy Deleted or an exact-lookup error without looping indefinitely. Poll batch parents using batchStatus, and poll newer pipelines on their own run endpoint.
  6. Download and inspect. POST /result returns a JSON string URL on 200, or 202 with status: "preparing". Retry result retrieval after 202, without resubmitting compute. GET the signed URL without the Tamarind API-key header. Download the archive only for successful runs; request fileName: "output.log" for stopped/failed jobs. Verify the scientific outputs after downloading.

Workflow recipes implement validation, stored names, bounded polling, 202 handling, batch validation, and pagination. They are locally smoke-tested with simulated responses; authenticated execution remains untested.

Raw lines 75 to 107
Reads a file references/workflows.md :104
108## Picking tools and interpreting results
110Select by inputs, intended output, and modeling assumptions, then confirm the
111candidate in the live catalog. These are anchors, not a guaranteed catalog:
113| Task | Candidates and decisions |
114|---|---|
115| Protein/complex structure | `alphafold` for AF2 monomers/multimers; `boltz`, `chai`, or `protenix` for cofolding including ligands/nucleic acids; `esmfold` for fast single-sequence protein folding. Check `esmfold2` separately: its current catalog includes protein, DNA, RNA, and ligand complexes. |
116| Binder/motif design | `bindcraft`, `boltzgen`, `rfdiffusion`; choose by target type, scaffold constraints, and required structure inputs. |
117| Inverse folding | `proteinmpnn`/`ligandmpnn` consume structures and design sequences. Re-fold designs and compare to the intended backbone/interface. |
118| Small-molecule docking | `autodock-vina` for a fixed receptor and search box; `diffdock` for diffusion docking; `boltz`/`chai` for cofolding. Choose the modeling approach for the task, not to avoid supplying a required input. |
119| Antibody/developability/MSA/MD | Filter descriptions and schemas for the specific task; availability and inputs differ by tool. |
121Confidence scores describe model confidence, not experimental binding, specificity,
122or affinity. Compare designed backbones, interfaces, clashes, chain/residue mapping,
123and developability. Check ligand chemistry and stereochemistry; docking scores
124are not interchangeable with measured binding free energies. Record tool/model,
125input provenance, chain mapping, seeds/samples, MSA/template choices, normalized
126settings, and any user-selected filtering thresholds.
128Honor the user's selected tool and budget. Use authorized defaults for routine
129choices; surface unresolved choices that materially affect the scientific task or
130compute scope before a large campaign. Never silently substitute a different
131scientific task because its inputs are easier to supply.

Picking tools and interpreting results

Select by inputs, intended output, and modeling assumptions, then confirm the candidate in the live catalog. These are anchors, not a guaranteed catalog:

TaskCandidates and decisions
Protein/complex structurealphafold for AF2 monomers/multimers; boltz, chai, or protenix for cofolding including ligands/nucleic acids; esmfold for fast single-sequence protein folding. Check esmfold2 separately: its current catalog includes protein, DNA, RNA, and ligand complexes.
Binder/motif designbindcraft, boltzgen, rfdiffusion; choose by target type, scaffold constraints, and required structure inputs.
Inverse foldingproteinmpnn/ligandmpnn consume structures and design sequences. Re-fold designs and compare to the intended backbone/interface.
Small-molecule dockingautodock-vina for a fixed receptor and search box; diffdock for diffusion docking; boltz/chai for cofolding. Choose the modeling approach for the task, not to avoid supplying a required input.
Antibody/developability/MSA/MDFilter descriptions and schemas for the specific task; availability and inputs differ by tool.

Confidence scores describe model confidence, not experimental binding, specificity, or affinity. Compare designed backbones, interfaces, clashes, chain/residue mapping, and developability. Check ligand chemistry and stereochemistry; docking scores are not interchangeable with measured binding free energies. Record tool/model, input provenance, chain mapping, seeds/samples, MSA/template choices, normalized settings, and any user-selected filtering thresholds.

Honor the user's selected tool and budget. Use authorized defaults for routine choices; surface unresolved choices that materially affect the scientific task or compute scope before a large campaign. Never silently substitute a different scientific task because its inputs are easier to supply.

Raw lines 108 to 132
Names a skill diffdock :118
133## File inputs and chaining
135- Upload a structure with `PUT /upload/{filename}` (binary body; follow the
136 documented redirect), then reference the registered relative name, e.g.
137 `target.pdb` or `inputs/target.pdb` when `?folder=inputs` was used.
138- Confirm names using `GET /files`; it returns a non-paginated array for the
139 selected folder, not a list of a job's outputs.
140- Prefer these paths over inline file content. The current guide says redundant
141 account-email prefixes are stripped; there is no longer a universal
142 double-prefix failure. Arbitrary strings are not necessarily file references.
143- Reuse a completed job's file as `JobName/path/to/file.ext`, matching the next
144 parameter's supported extensions and list/scalar shape. Do not guess filenames.
145- ProteinMPNN designs must feed a folding tool's **sequence** field. A structural
146 template field does not mean "fold this designed sequence". Read generated
147 FASTA/CSV sequences and validate one folding settings object per sequence.
148- Do not author internal fields such as `submit_method`, `msa`, or `monomer_msa`.

File inputs and chaining

  • Upload a structure with PUT /upload/{filename} (binary body; follow the documented redirect), then reference the registered relative name, e.g. target.pdb or inputs/target.pdb when ?folder=inputs was used.
  • Confirm names using GET /files; it returns a non-paginated array for the selected folder, not a list of a job's outputs.
  • Prefer these paths over inline file content. The current guide says redundant account-email prefixes are stripped; there is no longer a universal double-prefix failure. Arbitrary strings are not necessarily file references.
  • Reuse a completed job's file as JobName/path/to/file.ext, matching the next parameter's supported extensions and list/scalar shape. Do not guess filenames.
  • ProteinMPNN designs must feed a folding tool's sequence field. A structural template field does not mean "fold this designed sequence". Read generated FASTA/CSV sequences and validate one folding settings object per sequence.
  • Do not author internal fields such as submit_method, msa, or monomer_msa.
Raw lines 133 to 149
150## Batches and pipelines
152`POST /submit-batch` accepts one `type`, a nonempty `settings` array, `batchName`,
153and optional parallel `jobNames`. Validate **every** row using array-mode
154`/validate-job` (up to 1,000 rows per call), and use each row's normalized settings.
155Submission allows up to **30,000 expanded jobs**, counting design fan-out, and
156has a separate approximately **4.5 MB** request limit. Split on both constraints.
157Do not assume old `weightedHoursBudget`, `maxRuntimeSeconds`, or `gpuType` request
158fields enforce a cap: they are absent from the current batch schema. Use confirmed
159account controls and an agreed job/sample count.
161Poll `GET /jobs?jobName=<batchName>` until `batchStatus` is `Complete`, `Stopped`,
162or `AggregationFailed`. Subjobs can finish before aggregation. Fetch the archive
163through `/result` and handle 202; `resultUrl` is optional and is not a reliable
164readiness signal. Page `GET /jobs?batch=...` using `startKey` to inspect children.
166For new saved workflows use the template/run API under `/pipelines`: read the
167current pipeline graph contract, validate the proposed run with
168`POST /pipelines/validate`, submit with `POST /pipelines/submit` (required
169`name`, `bindings`, and one of `templateId`/`pipeline`), and poll
170`GET /pipelines/runs/{run_id}`. Its statuses are lowercase and separate from job
171statuses. The legacy `/submit-pipeline` and `/run-pipeline` remain documented;
172[API reference](references/api_reference.md) gives their actual required fields.

Batches and pipelines

POST /submit-batch accepts one type, a nonempty settings array, batchName, and optional parallel jobNames. Validate every row using array-mode /validate-job (up to 1,000 rows per call), and use each row's normalized settings. Submission allows up to 30,000 expanded jobs, counting design fan-out, and has a separate approximately 4.5 MB request limit. Split on both constraints. Do not assume old weightedHoursBudget, maxRuntimeSeconds, or gpuType request fields enforce a cap: they are absent from the current batch schema. Use confirmed account controls and an agreed job/sample count.

Poll GET /jobs?jobName=<batchName> until batchStatus is Complete, Stopped, or AggregationFailed. Subjobs can finish before aggregation. Fetch the archive through /result and handle 202; resultUrl is optional and is not a reliable readiness signal. Page GET /jobs?batch=... using startKey to inspect children.

For new saved workflows use the template/run API under /pipelines: read the current pipeline graph contract, validate the proposed run with POST /pipelines/validate, submit with POST /pipelines/submit (required name, bindings, and one of templateId/pipeline), and poll GET /pipelines/runs/{run_id}. Its statuses are lowercase and separate from job statuses. The legacy /submit-pipeline and /run-pipeline remain documented; API reference gives their actual required fields.

Raw lines 150 to 173
Reads a file references/api_reference.md :172
174## MCP alternative
176Connect to `https://mcp.tamarind.bio/mcp` with OAuth 2.1 or the `x-api-key` header.
177The official guide confirms `submitJob`, `submitBatch`, `getJobs`, `getResult`,
178`uploadFile`, and `getFiles`. Read the connected server's `tools/list` schemas
179before using signatures or interpreting result envelopes.
181If the connection advertises discovery/validation helpers such as
182`getAvailableTools`, `getJobSchema`, or `validateJob`, use their current schemas.
183Extra helpers, filter vocabularies, `submitBatch(fromJob=...)`, and upload-through-
184MCP variants are not guaranteed by the public guide. This review's anonymous
185`tools/list` request returned 401, so their current contracts were not verified.
186Use the documented REST equivalents when needed.

MCP alternative

Connect to https://mcp.tamarind.bio/mcp with OAuth 2.1 or the x-api-key header. The official guide confirms submitJob, submitBatch, getJobs, getResult, uploadFile, and getFiles. Read the connected server's tools/list schemas before using signatures or interpreting result envelopes.

If the connection advertises discovery/validation helpers such as getAvailableTools, getJobSchema, or validateJob, use their current schemas. Extra helpers, filter vocabularies, submitBatch(fromJob=...), and upload-through- MCP variants are not guaranteed by the public guide. This review's anonymous tools/list request returned 401, so their current contracts were not verified. Use the documented REST equivalents when needed.

Raw lines 174 to 187
Uses an outside tool MCP :174
188## Recovery
190HTTP auth failures differ by route: classic endpoints can answer **400**, jobs
191can answer **401** or gateway **403**, and usage can answer **401**. A 403 is not
192proof of a budget error. Check status and the actual response body before changing
193settings. Submission errors may be JSON or plain text regardless of Content-Type.
195A timeout/5xx on submit does not prove that nothing queued. Look up the persisted
196name before retrying; for campaigns use `POST /jobs/search` with up to 1,000 names
197per request. Respect rate limits and avoid one-request-per-job polling at scale.
198A 413 rejects the oversized request before creating jobs; split the body or upload
199file content separately. `DELETE /delete-job` is a **soft delete**: it hides the
200job and leaves stored result files intact.

Recovery

HTTP auth failures differ by route: classic endpoints can answer 400, jobs can answer 401 or gateway 403, and usage can answer 401. A 403 is not proof of a budget error. Check status and the actual response body before changing settings. Submission errors may be JSON or plain text regardless of Content-Type.

A timeout/5xx on submit does not prove that nothing queued. Look up the persisted name before retrying; for campaigns use POST /jobs/search with up to 1,000 names per request. Respect rate limits and avoid one-request-per-job polling at scale. A 413 rejects the oversized request before creating jobs; split the body or upload file content separately. DELETE /delete-job is a soft delete: it hides the job and leaves stored result files intact.

Raw lines 188 to 201
202## Reference files
204- [API reference](references/api_reference.md): endpoint shapes, validation,
205 pagination, authentication differences, and legacy/new pipeline boundaries.
206- [Tool catalog](references/tool_catalog.md): schema interpretation and discovery.
207- [Examples](references/examples.md): current catalog-backed settings examples
208 and tool-specific caveats, explicitly bounded by verification scope.
209- [Workflows](references/workflows.md): executable HTTP recipes with local mocked
210 verification; no authenticated scientific jobs were run for this review.

Reference files

  • API reference: endpoint shapes, validation, pagination, authentication differences, and legacy/new pipeline boundaries.
  • Tool catalog: schema interpretation and discovery.
  • Examples: current catalog-backed settings examples and tool-specific caveats, explicitly bounded by verification scope.
  • Workflows: executable HTTP recipes with local mocked verification; no authenticated scientific jobs were run for this review.
Raw lines 202 to 210
Reads a file references/api_reference.md :204
Reads a file references/tool_catalog.md :206
Reads a file references/examples.md :207
Reads a file references/workflows.md :209

From K-Dense-AI/scientific-agent-skills at 5f2bc03, 2026-10-26. Not read by a model yet. Summary and techniques by Claude Opus 5.5 on 2026-11-06.