nullary-ai avatar

Nullary

nullary-ai/nullary

This connects Claude to Nullary's database of negative results in drug discovery, letting you query experimental failures that typically go unpublished. You can search for compounds that didn't work against specific targets, failed assays, and abandoned research directions. Reach for this when you're planning drug discovery experiments and want to avoid repeating work that's already been tried and measured as unsuccessful. The intelligence comes from actual lab data rather than just published literature, which means you're tapping into the 90% of research outcomes that never make it to papers. It's delivered over streamable HTTP, so queries stream results as they're found rather than blocking on large datasets.

tools
35
transport
HTTP
last updated
May 25, 2026

Install

From registry metadata
$ npx add-mcp https://mcp.nullary.ai/mcp --name nullary

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http nullary https://mcp.nullary.ai/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 35 tools

Verified live against the running server on Nov 6, 2026.

search_inactive_compoundsInactive small-molecule compound-target pairs.6 params

Inactive small-molecule compound-target pairs.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_failed_selectivitySmall molecules that failed selectivity.6 params

Small molecules that failed selectivity.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_admet_failuresSmall-molecule ADMET failures.6 params

Small-molecule ADMET failures.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_failed_guidesFailed/ineffective CRISPR guides.6 params

Failed/ineffective CRISPR guides.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_failed_essentiality_screensNon-dependency / failed essentiality screens.6 params

Non-dependency / failed essentiality screens.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_ancestry_specific_failuresAncestry-specific CRISPR failures.6 params

Ancestry-specific CRISPR failures.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_developability_failuresAntibody developability failures.6 params

Antibody developability failures.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_failed_clinical_antibodiesDiscontinued/terminated clinical antibodies.6 params

Discontinued/terminated clinical antibodies.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_failed_peptide_therapeuticsFailed peptide therapeutics.6 params

Failed peptide therapeutics.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_peptide_stability_issuesPeptide stability/half-life failures.6 params

Peptide stability/half-life failures.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_failed_protacsPROTACs that failed degradation/ternary/permeability.6 params

PROTACs that failed degradation/ternary/permeability.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_protac_e3_issuesPROTAC E3-ligase recruitment / ternary failures.6 params

PROTAC E3-ligase recruitment / ternary failures.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_failed_oligonucleotidesASOs/siRNAs that failed engagement/developability.6 params

ASOs/siRNAs that failed engagement/developability.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_oligo_delivery_failuresOligonucleotide delivery failures.6 params

Oligonucleotide delivery failures.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_failed_vaccinesFailed/terminated vaccines (by pathogen/indication).6 params

Failed/terminated vaccines (by pathogen/indication).

Parameters* required
indicationstring
disease/indication
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_vaccine_immunogenicity_failuresFailed vaccine immunogen designs.6 params

Failed vaccine immunogen designs.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_failed_adcsADCs that failed at any stage.6 params

ADCs that failed at any stage.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_adc_linker_failuresADC failures attributed to linker chemistry.6 params

ADC failures attributed to linker chemistry.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_failed_bispecificsBispecifics that failed at any stage.6 params

Bispecifics that failed at any stage.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_bispecific_format_failuresBispecific format/engineering failures.6 params

Bispecific format/engineering failures.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_admet_failures_all_modalitiesADMET failures across ALL modalities.6 params

ADMET failures across ALL modalities.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_drug_drug_interaction_failuresDrug-drug interaction failures.5 params

Drug-drug interaction failures.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_mechanism_failuresApproaches that failed for a mechanism (by target).6 params

Approaches that failed for a mechanism (by target).

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_failed_replicationsFindings that failed to replicate.6 params

Findings that failed to replicate.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_safety_failuresClinical/preclinical safety failures across modalities.6 params

Clinical/preclinical safety failures across modalities.

Parameters* required
compoundstring
compound name, ChEMBL ID, or InChIKey
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
outcomestring
outcome filter (inactive, failed_safety, terminated, …)
targetstring
UniProt accession or gene symbol
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_target_historyALL failed approaches against a target across every modality.4 params

ALL failed approaches against a target across every modality.

Parameters* required
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
target*string
UniProt accession or gene symbol (required)
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_indication_historyALL failed approaches for an indication across every modality.4 params

ALL failed approaches for an indication across every modality.

Parameters* required
indication*string
indication (required)
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
search_pathogen_historyVaccine + antimicrobial + antibody failures for a pathogen.4 params

Vaccine + antimicrobial + antibody failures for a pathogen.

Parameters* required
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
pathogen*string
pathogen name (required)
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
get_compoundA compound (structure, name, max clinical phase) + its full negative profile across modalities/sources.6 params

A compound (structure, name, max clinical phase) + its full negative profile across modalities/sources.

Parameters* required
chembl_idstring
ChEMBL molecule ID, e.g. CHEMBL941.
inchi_keystring
Compound InChIKey (provide one of inchi_key, chembl_id, or pubchem_cid).
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
offsetinteger
Number of findings to skip before this page, for pagination (default 0).default: 0
pubchem_cidinteger
PubChem Compound ID (CID).
tierstring
Confidence tier. 'curated' (default) returns the credible layer; 'all' also includes high-volume screening-grade rows (PubChem HTS inactives, CRISPR non-essential tails).one of curated · alldefault: curated
get_finding_provenanceFull provenance + detail for a single finding by id.1 params

Full provenance + detail for a single finding by id.

Parameters* required
id*string
finding UUID
get_target_landscapeTarget 'graveyard' / exhaustion index: how many distinct compounds/agents have been tried against a target and failed, broken down by modality and outcome. Answers 'how picked-over is this target?'. Accepts a gene symbol (e.g. EGFR) or a UniProt accession (e.g. P00533).1 params

Target 'graveyard' / exhaustion index: how many distinct compounds/agents have been tried against a target and failed, broken down by modality and outcome. Answers 'how picked-over is this target?'. Accepts a gene symbol (e.g. EGFR) or a UniProt accession (e.g. P00533).

Parameters* required
target*string
gene symbol or UniProt accession (required)
list_top_targetsCoverage browse: the most heavily-pursued ('graveyard') targets, ranked by recorded negative findings. Optional family filter (kinase, gpcr, protease, nuclear_receptor, ion_channel, transporter, phosphatase, other).2 params

Coverage browse: the most heavily-pursued ('graveyard') targets, ranked by recorded negative findings. Optional family filter (kinase, gpcr, protease, nuclear_receptor, ion_channel, transporter, phosphatase, other).

Parameters* required
familystring
target family filter (optional)
limitinteger
Maximum number of findings to return (1–100, default 25).default: 25
list_modelsSummary of the Layer-1 inactivity-scoring model registry: how many per-target models, split by family, and median scaffold-split ROC-AUC.

Summary of the Layer-1 inactivity-scoring model registry: how many per-target models, split by family, and median scaffold-split ROC-AUC.

No parameters. Call it with no arguments.

get_model_cardPer-target Layer-1 model card: training counts and held-out scaffold-split metrics (ROC-AUC, PR-AUC, Brier, calibration). Accepts a gene symbol (e.g. EGFR) or UniProt accession (e.g. P00533).1 params

Per-target Layer-1 model card: training counts and held-out scaffold-split metrics (ROC-AUC, PR-AUC, Brier, calibration). Accepts a gene symbol (e.g. EGFR) or UniProt accession (e.g. P00533).

Parameters* required
target*string
gene symbol or UniProt accession (required)
get_coveragePer-modality and per-source coverage stats (honest Phase-1 numbers).

Per-modality and per-source coverage stats (honest Phase-1 numbers).

No parameters. Call it with no arguments.

Sponsors

Readme

Details

Repository
github.com/nullary-ai/nullary
Transport
HTTP
Registry
MCP registry, active
Tools verified
Nov 6, 2026