dbNSFP MCP server

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"}.

Connect

A remote MCP server over streamable HTTP. Wherever a client asks for authentication, choose none and leave any token field blank.

Claude Code

claude mcp add --transport http dbnsfp https://mcp.dbnsfp.org/mcp

Codex

In ~/.codex/config.toml:

[mcp_servers.dbnsfp]
url = "https://mcp.dbnsfp.org/mcp"

Claude Desktop and claude.ai

Settings → Connectors → Add custom connector, paste https://mcp.dbnsfp.org/mcp.

What you can ask

Query formExample
Coordinates7-140753336-A-T
Position only17-7675088
dbSNP rsIDrs28934578
Gene + protein changeTP53:p.R175H
Transcript accessionNM_004333.6:p.Val600Glu
Gene-levelTP53 — 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.

What comes back

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 profileWhat 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.
identityWho the variant is: coordinates, ref/alt, rsID, gene, HGVSc/HGVSp, MANE and canonical status. The smallest useful answer.
clinicalClinVar assertions and the metadata needed to weigh them — classification, review status, submitter counts, conditions — plus the identity columns.
populationObserved 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_detailAllele 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_predictionIn-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.
conservationCross-species constraint: GERP++, phyloP, phastCons, SiPhy, GPN-MSA.
acmgThe columns an ACMG line of evidence is drawn from: ClinVar, population frequency, one calibrated predictor per family, and conservation.
prediction_extraPredictors 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_rankscoreEvery 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 profileWhat 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.
identityCross-references and naming: Ensembl/Entrez/UniProt/RefSeq/CCDS/UCSC/OMIM ids and alternate symbols.
diseaseDisease associations: OMIM, Orphanet, GenCC (with inheritance), HPO terms, GWAS traits, ClinGen haploinsufficiency.
gene_constraintSelective constraint and dosage sensitivity: gnomAD pLI/LOEUF/MOEUF, ExAC, RVIS, P(HI)/P(rec), LoFtool.
functionFunction, pathways and GO terms (UniProt, KEGG, BioCarta, ConsensusPathDB).
essentialityEssentiality and damage prediction: CRISPR/gene-trap screens, indispensability, GDI.
model_organismMouse (MGI) and zebrafish (ZFIN) orthologue phenotypes.
mouseMouse (MGI) orthologue and its phenotype.
zebrafishZebrafish (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.
expressionTissue expression: UniProt tissue specificity + the 50 HPA consensus tissues. Wide — request it deliberately.
summaryHigh-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.
clinicalDisease 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.
tissueWhere 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.
researchEvery 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.

Scope

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.

Also available