MCP server reproducing Nikitin et al. 2025 (antitarget-LD50 computational toxicology) - links antitargets to rodent acute toxicity via docking scores and LD50 analysis
Server has 10 well-documented tools with clear scientific purpose and structured metadata routing. All tools have descriptions (194 - 450 chars, within baseline 34 - 392 range). Most parameters have type definitions and descriptions. However, schemas are minimal (most tools accept 0 - 2 params), output schemas are not formally documented, and error handling lacks recovery guidance. Tool names use domain-specific verbs (antitarget_*, reproduce_*, cluster_*) but do not follow standard verb_noun patterns (get_, list_, search_). No tool annotations (readOnlyHint, destructiveHint) despite all being READ_ONLY. Composition is strong: tools form a deterministic chain via metadata.next_tools, enabling guided workflows. Parameter defaults are safe (null → server default). No secrets exposed. Overall: solid domain-specific implementation with good descriptions, but lacks production-grade schema documentation and error handling patterns.
Scope of the antitarget-affinity vs mouse acute-toxicity (LD50) dataset + pLD50 KDE (Fig. 1). Entry point for "Is there a relationship between antitarget affinity and acute toxicity in mice?" / "Which molecular initiating events correlate with acute toxicity?" / «Есть ли зависимость между аффинностями к антитаргетам и острой токсичностью мышей?» / «Какие молекулярно-инициирующие события могут коррелировать с острой токсичностью?». Canonical question-1 order: antitarget_dataset_overview, antitarget_ld50_association, binders_vs_nonbinders, spearman_correlations, protein_panel. Start here, then follow only the immediate successor returned in metadata.next_tools.
Antitarget-by-antitarget association with acute toxicity (Mann-Whitney U test, binder vs non-binder subsets at configurable threshold). Canonical question-1 step 2 of 5.
Binder vs non-binder acute toxicity (pLD50) comparison across the full dataset and NIH+Brenk-filtered subset. Canonical question-1 step 3 of 5.
t-SNE map of the DRUG-LIKE ANTITARGET/LD50 chemical space (ECFP4), coloured by mouse acute toxicity (pLD50). Scope: the 12,654 small molecules of the Nikitin et al. antitarget dataset. This is NOT the hogweed metabolite map (`chemical_space_clustering` on `heracleum-tox`) and NOT the Cannabis metabolite vs synthetic-pesticide map (`chemical_space` on `cannabis-biopesticide`). Paper Fig. 3.
Tool names do not follow verb_noun convention. Names like 'antitarget_dataset_overview', 'cluster_correlation_heatmap', 'reproduce_figure8_examples' are domain-specific but lack action verbs (get_, describe_, analyze_). LLMs infer intent from verb-first names; these require reading full descriptions to disambiguate.
Output schemas are not formally documented. Tools return dicts with 'answer' and 'metadata' fields, but the structure of 'answer' (numbers, findings, artifacts) and 'metadata' (next_tools, figure links, SHA-256) is described only in docstrings, not in JSON Schema. LLMs cannot parse expected fields without reading prose.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | <=2025-11-25 | v2 |
Butina clustering (Tanimoto distance, ECFP4) + per-cluster Spearman(docking, pLD50) heatmap. Canonical question-2 step 1 of 3.
logP as a potential confounder: Spearman(logP, docking) and Spearman(logP, pLD50) per protein and per cluster. Canonical question-2 step 3 of 3 (terminal).
Physicochemical property profile of the 12,654 DRUG-LIKE SMALL MOLECULES of the antitarget/rodent-LD50 dataset (MW, logP, HBD/HBA, TPSA, rotatable bonds) + histograms. Scope: the Nikitin et al. antitarget dataset only. For the physicochemistry of Heracleum plant metabolites use the `heracleum-tox` server, and for Cannabis sativa metabolites use `cannabis-biopesticide`. Paper Fig. 2 / Section 3.1.1.
Protein panel overview: 44 antitargets (gene symbols, full names, docking score distributions). Canonical question-1 step 5 of 5 (terminal). Transitions to question 2.
Inverse docking: six reference molecules (anisodamine, butaperazine, soman, cannabinoids 1-3) ranked by docking score against all 44 antitargets. Known targets highlighted. Canonical question-2 step 2 of 3.
Per-protein Spearman correlation (docking score vs pLD50) + median and range. Canonical question-1 step 4 of 5.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all 10 tools being READ_ONLY. Annotations enable agents to reason about safety and retry semantics without parsing descriptions.
Error handling lacks recovery guidance. Code shows Mann-Whitney U tests and statistical comparisons, but no documented error cases (e.g., insufficient binders/non-binders, convergence failures, missing data). Errors should guide LLM to retry or adjust parameters.
Parameter 'threshold' (docking score in kcal/mol) lacks explicit range constraints. Description says 'None uses server default' but does not specify valid numeric range, units, or typical values. LLMs may pass invalid values.