generate_experiment
Generates a falsifiable hypothesis and a runnable computational experiment from any clinical or biomedical observation, complete with a concrete dataset and prompt for analysis.
Instructions
Generate a grounded translational research brief from ANY clinical or biomedical observation — a disease's drug response/resistance, a drug's adverse effect/toxicity, or any mechanism (not limited to any one domain).
ASYNC (submit + poll): the full pipeline (decompose -> hypothesize ->
retrieve -> grade -> entail -> novelty-check -> design -> assemble) runs
~60-120s, longer on a cold first call — longer than an MCP client will wait
on one call. So this tool does NOT block: it STARTS the run and returns
immediately with a job handle. You MUST then poll
get_experiment_result(job_id) every few seconds until status is
"done" (the full TransBrief is in result) or "error". The
finished brief has decomposed biological axes, up to 3 falsifiable
hypotheses each graded against real PubMed evidence with an auditable
novelty verdict, and ONE runnable computational experiment
(top_experiment) naming a concrete public dataset plus a
claude_science_prompt ready to run in Claude Science.
Args: observation: A free-text clinical/biomedical observation (3-8000 characters) — any disease, drug response/resistance, adverse effect, or mechanism. Examples: "58F, resistant hypertension despite ACEi + CCB + thiazide; elevated hs-CRP" or "30M on amiodarone for AF, developed neutropenia". focus_drug: Optional drug name to focus the analysis on. Omit ("") to let the pipeline infer relevant drugs from the observation itself.
Returns:
Immediately: {"job_id", "status": "running", "poll_tool": "get_experiment_result", "message"}. Poll
get_experiment_result(job_id) for the outcome — on "done" its
result is the full TransBrief (carrying the fixed research-only
disclaimer, BUILD_SPEC.md §0.5; never diagnosis, drug selection, or
dosing), on "error" its result is {"error", "message", "status_code"} (e.g. no/invalid ANTHROPIC_API_KEY). Obviously invalid
input is rejected inline here (no job) as that same error shape.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| focus_drug | No | ||
| observation | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||