Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PUBMED_API_KEYNoOptional API key for higher NCBI/PubMed rate limits
LLM_TEMPERATURENoForces deterministic LLM clients; set to 00
TRANSBENCH_MODENoOptional toggle: 'live' (default), 'golden', or 'snapshot'
ANTHROPIC_API_KEYYesRequired API key for the engine's own Anthropic calls
PYTHONDONTWRITEBYTECODENoPrevents Python from writing .pyc/__pycache__ during imports1
TRANSBENCH_GOLDEN_BRIEFNoPath to the golden brief file for golden modesnapshots/flagship_golden_brief.json
TRANSBENCH_RETRIEVAL_SNAPSHOTNoPath to the retrieval snapshot file for snapshot modesnapshots/flagship_retrieval_snapshot.json

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
generate_experimentA

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.

search_grounded_evidenceA

Look up PubMed-grounded mechanistic evidence for ANY clinical, pharmacological, or mechanistic question (utility / fallback tool — a lighter-weight sibling of generate_experiment, not limited to any one domain).

ASYNC (submit + poll): runs the SAME full TransBench pipeline as generate_experiment (not a separate, cheaper retrieval path), so it is just as slow (~60-120s) and is likewise non-blocking — it STARTS the run and returns a job handle immediately. You MUST then poll get_experiment_result(job_id) until status is "done"/ "error". On "done", result is the smaller, evidence-focused projection: for each hypothesis its novelty verdict and every retrieved evidence item (each with a resolvable citation, an entailment verdict, and an evidence grade), plus the deduplicated reference list, any contradictions surfaced, and the uncertainty note. Omits axes/ top_experiment/run_manifest.

Args: question: A free-text clinical/pharmacological/mechanistic question (3-8000 characters), any domain.

Returns: Immediately: {"job_id", "status": "running", "poll_tool": "get_experiment_result", "message"}. Poll get_experiment_result(job_id) — on "done" its result is the grounded-evidence projection (carrying the fixed research-only disclaimer), on "error" its result is {"error", "message", "status_code"}. Obviously invalid input is rejected inline (no job).

get_experiment_resultA

Poll for the result of a run started by generate_experiment or search_grounded_evidence (both are async: they return a job_id and run the ~60-120s pipeline in the background). Call this every ~5s with that job_id until it is no longer "running".

Args: job_id: The job_id returned by generate_experiment / search_grounded_evidence.

Returns: - still working: {"status": "running", "job_id"} — poll again. - finished ok: {"status": "done", "job_id", "result": <the full TransBrief, or the evidence projection>}. - failed: {"status": "error", "job_id", "result": {"error", "message", "status_code"}}. - unknown/expired job_id: {"error": "unknown_job", "message", "status_code": 404} — finished results are retained ~30 min (MCP_JOB_TTL_SECONDS) after completion, then evicted.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kayomarz97/TransBench'

If you have feedback or need assistance with the MCP directory API, please join our Discord server