Variant and gene annotation from dbNSFP 5.4c, over the Model Context Protocol. For AI assistants and programmatic clients.
https://mcp.dbnsfp.org/mcp
No key required. Anonymous callers get 60 lookups per minute and 1000 per day, per IP address. A batch counts as one lookup per variant in it. Over the limit a call returns HTTP 429 with retry-after: 60 and a JSON body {"error": "rate_limited"}.
A remote MCP server over streamable HTTP. Wherever a client asks for authentication, choose none and leave any token field blank.
claude mcp add --transport http dbnsfp https://mcp.dbnsfp.org/mcp
In ~/.codex/config.toml:
[mcp_servers.dbnsfp] url = "https://mcp.dbnsfp.org/mcp"
Settings → Connectors → Add custom connector, paste
https://mcp.dbnsfp.org/mcp.
| Query form | Example |
|---|---|
| Coordinates | 7-140753336-A-T |
| Position only | 17-7675088 |
| dbSNP rsID | rs28934578 |
| Gene + protein change | TP53:p.R175H |
| Transcript accession | NM_004333.6:p.Val600Glu |
| Gene-level | TP53 — disease, constraint, pathways |
Or ask in plain language — “Is TP53 R175H pathogenic?”, “Tell me about the gene CFTR.” — and the client picks the tool.
Builds hg38 (default), hg19, hg18,
hs1. Batch up to 10 variants per call.
Three tools answer these: lookup_variant for one variant,
lookup_variants for a batch, and lookup_gene for gene-level
questions. Name them directly when a client wants an explicit tool allow-list.
Answers are per transcript, and every row states whether that transcript is MANE
Select and whether it is Ensembl canonical — one variant often scores differently on
different transcripts, and many predictors score only some of them. Ask for an
evidence profile rather than naming columns. Omit the profile and you get
basic:
| Variant profile | What it returns |
|---|---|
basic (default) | The default set — identity plus a headline from each evidence class: ClinVar, gnomAD frequency, five predictors (REVEL, AlphaMissense, MetaRNN, BayesDel, ClinPred) and GERP++ conservation. A general-purpose answer. |
identity | Who the variant is: coordinates, ref/alt, rsID, gene, HGVSc/HGVSp, MANE and canonical status. The smallest useful answer. |
clinical | ClinVar assertions and the metadata needed to weigh them — classification, review status, submitter counts, conditions — plus the identity columns. |
population | Observed allele frequencies: gnomAD 4.1 joint and per-population, POPMAX, ALFA and 1000 Genomes. Use this before implying a variant has ever been seen. |
population_detail | Allele frequency from every modern cohort, per population: gnomAD 4.1 joint, All of Us, 1000Gp3, TOPMed, ALFA, dbNSFP POPMAX. Grouped by source, because the sources do not share a population vocabulary — gnomAD NFE excludes Finns and lists FIN separately, while AllofUs and 1000Gp3 EUR include them. Compare within a source, not across. |
missense_prediction | In-silico missense predictors (scores and calls) — SIFT, REVEL, MetaRNN, AlphaMissense, ESM1b, ClinPred and others. Read interpretation_guide first: the letter codes collide between tools and the ensembles are trained on the classical ones. |
conservation | Cross-species constraint: GERP++, phyloP, phastCons, SiPhy, GPN-MSA. |
acmg | The columns an ACMG line of evidence is drawn from: ClinVar, population frequency, one calibrated predictor per family, and conservation. |
prediction_extra | Predictors outside the curated missense_prediction set — BayesDel, MVP and gMVP, MutationAssessor, DANN, VARITY, MisFit, popEVE, GPN_MSA, PHACTboost, MutFormer, Aloft, Eigen. Scores and calls only. Wide and uncurated: ask for it when you need a particular tool. |
prediction_rankscore | Every predictor's *_rankscore twin — its score mapped to a 0-1 rank across dbNSFP, which is what makes two tools comparable. interpretation_guide recommends these for anything comparative, and no other profile returns them. |
| Gene profile | What it returns |
|---|---|
basic (default) | The default set — who the gene is, what it does, and the two numbers most often wanted: gnomAD constraint (pLI/LOEUF), haploinsufficiency, and the OMIM disease association. A general-purpose answer. |
identity | Cross-references and naming: Ensembl/Entrez/UniProt/RefSeq/CCDS/UCSC/OMIM ids and alternate symbols. |
disease | Disease associations: OMIM, Orphanet, GenCC (with inheritance), HPO terms, GWAS traits, ClinGen haploinsufficiency. |
gene_constraint | Selective constraint and dosage sensitivity: gnomAD pLI/LOEUF/MOEUF, ExAC, RVIS, P(HI)/P(rec), LoFtool. |
function | Function, pathways and GO terms (UniProt, KEGG, BioCarta, ConsensusPathDB). |
essentiality | Essentiality and damage prediction: CRISPR/gene-trap screens, indispensability, GDI. |
model_organism | Mouse (MGI) and zebrafish (ZFIN) orthologue phenotypes. |
mouse | Mouse (MGI) orthologue and its phenotype. |
zebrafish | Zebrafish (ZFIN) orthologue and its phenotype, which ZFIN states across three fields: the affected structure, the quality of the change, and whether it is called abnormal. |
expression | Tissue expression: UniProt tissue specificity + the 50 HPA consensus tissues. Wide — request it deliberately. |
summary | High-level gene summary: what it is, what it does, how constrained it is, what it causes, where it is expressed. One field per domain — the 'tell me about this gene' answer. |
clinical | Disease associations for variant interpretation: readable disease names, GenCC inheritance, ClinGen dosage sensitivity and gnomAD constraint. Accession ids are omitted — use the 'disease' profile for those. |
tissue | Where the gene is expressed, in two fields: the UniProt tissue-specificity prose and the HPA consensus call. Use the 'expression' profile only when the per-tissue nTPM values are actually needed. |
research | Every quantitative constraint, intolerance and damage metric, including superseded ExAC releases and the per-disease-class GDI predictions. Wide, and for method development or benchmarking rather than interpretation. |
Underneath the profiles sit 405 variant columns and 150 gene columns — name any of them explicitly when a profile does not fit.
Four tools travel with the data: list_evidence_profiles and
list_columns enumerate what is available,
describe_annotation_fields defines any field — the dbNSFP README text,
plus a note where this service has something to add about how the field behaves
here — and interpretation_guide explains how to read predictor scores whose
letter codes collide between tools.
dbNSFP catalogues all possible non-synonymous SNVs and splice acceptor/donor site SNVs on GENCODE 50. Intronic, synonymous, UTR and intergenic variants, and all indels, are outside its scope — a variant that is not found is usually out of scope rather than unknown. Coverage also varies by prediction tool; a null score means that model did not score that variant. Per-tool coverage is published at benchmark.genos.us.
https://mcp.dbnsfp.org/mcp →
get_service_info.