Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Plant Genomics

PYPI · PLANT-GENOMICS-MCP · SCANNED SEP 20

Plant genomics MCP — 50 tools across 23 backends with cross-source synthesis.

Available components

0 this week 86 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 1 of 32 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 44 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability81
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 9925 tokens (~183/item across 54 items; 50 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage97
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 90% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 50 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 51 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the Plant Genomics MCP server?

Plant Genomics runs locally as a PyPI package, launched with uvx plant-genomics-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · plant-genomics-mcp

# add to Claude Code
claude mcp add musharna-plant-genomics-mcp -- uvx plant-genomics-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "musharna-plant-genomics-mcp": {
      "command": "uvx",
      "args": [
        "plant-genomics-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "musharna-plant-genomics-mcp": {
      "command": "uvx",
      "args": [
        "plant-genomics-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add musharna-plant-genomics-mcp -- uvx plant-genomics-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "musharna-plant-genomics-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "plant-genomics-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add musharna-plant-genomics-mcp --command uvx --arg plant-genomics-mcp
# ~/.hermes/config.yaml
mcp_servers:
  musharna-plant-genomics-mcp:
    command: "uvx"
    args: ["plant-genomics-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "musharna-plant-genomics-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "plant-genomics-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add musharna-plant-genomics-mcp -t stdio -c uvx -a plant-genomics-mcp
// mcp.json
{
  "mcpServers": {
    "musharna-plant-genomics-mcp": {
      "command": "uvx",
      "args": [
        "plant-genomics-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 0
    • Stability: 0.97 → pass security
  • 19 Sept 26 +16
    • Malware scan: unverified → pass security
  • 17 Sept 26 −14
    • Malware scan: pass → unverified security
  • 15 Sept 26 +16
    • Malware scan: unverified → pass security
  • 14 Sept 26 −18
    • Malware scan: pass → unverified security
    • Stability: pass → 0.80 functional
  • 13 Sept 26 0
    • Stability: 0.97 → pass security
  • 12 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 10 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed pypi/plant-genomics-mcp@1.21.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 32 packages
Packages resolved 32
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 50 exposed · ~9,711 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
orthodb_orthologs ~302

Resolve a locus to its OrthoDB ortholog group and cross-species member genes (data.orthodb.org; free, no key). Searches at the Viridiplantae level, then returns the group metadata (name, evolutionary rate) and member genes grouped by organism (organism, gene id, description). organism_count is the true cluster total; the member list is capped with truncated flagged. found=false when the locus maps to no ortholog group. Works for all 12 organisms. NOTE: unlike the other locus tools, organism= does NOT scope the search — the group is resolved from the locus id alone at the Viridiplantae level, and organism is only validated and echoed back. Passing a mismatched organism therefore still returns the locus's real group.

NameTypeReqDescription
limitintegerMax ortholog member rows to return. 'member_count' always reports the true pre-cap total and 'truncated' says whether the cap bit.
locusstringyese.g. AT1G01060 (Arabidopsis), Os01g0100100 (rice RAP-DB)
organismstring|integerPlant organism — accepts canonical slug (arabidopsis_thaliana), scientific or common name, or NCBI taxid. Validated and echoed only: it does NOT scope the OrthoDB search, which keys on the locus id a…
NameTypeReqDescription
foundbooleanyesTrue if the locus maps to an ortholog group
groupGroup metadata {id, name, evolutionary_rate, level_name, …}
locusstringyes
member_countintegeryesMember genes returned (post-cap)
membersarrayPer-gene {organism, gene_id, xref, description}
organismstringyesCanonical organism as requested — echoed, not inferred from the hit. Does not scope the search (see class docstring)
organism_countintegeryesNumber of member organisms in the whole ortholog group (pre-cap) — the true cluster total, unaffected by the member cap below
truncatedbooleanyesTrue if the member list was capped

No examples provided.

panther_family ~200

Fetch the PANTHER protein-family classification for a locus (pantherdb.org; free, no key). Returns the PANTHER family and subfamily (id + name) plus curated GO terms grouped by aspect (molecular_function / biological_process / cellular_component), the PANTHER protein class, and pathways. found=false when PANTHER cannot classify the locus. Complements the sequence-homology tools (gramene_homologs / consensus_homologs) with an evolutionary-family view. Works for all 12 organisms. Defaults to arabidopsis_thaliana; pass organism= for other species.

NameTypeReqDescription
locusstringyese.g. AT1G01060 (Arabidopsis), Os01g0100100 (rice RAP-DB)
organismstring|integerPlant organism — accepts canonical slug (arabidopsis_thaliana), scientific or common name, or NCBI taxid
NameTypeReqDescription
accessionPANTHER mapped accession
family_idPANTHER family id, e.g. PTHR12802
family_name
foundbooleanyesTrue if PANTHER classified the locus
go_biological_processarray
go_cellular_componentarray
go_molecular_functionarray
locusstringyes
pathwaysarray
protein_classarray
subfamily_ide.g. PTHR12802:SF176
subfamily_name

No examples provided.

phytozome_lookup_locus ~193

Fetch a gene record from Phytozome BioMart (phytozome-next.jgi.doe.gov). Defaults to arabidopsis_thaliana; pass organism= for other Phytozome proteomes (slug, scientific/common name, or NCBI taxid — e.g. glycine_max, sorghum_bicolor). Locus is the source-genome gene name (e.g. AT1G01010, Glyma.01G000100). Returns organism_name, gene_name, chromosome, gene_start, gene_end, strand, description.

NameTypeReqDescription
locusstringyese.g. AT1G01010 (Arabidopsis), Glyma.01G000100 (soybean)
organismstring|integerPlant organism — accepts canonical slug (arabidopsis_thaliana), scientific or common name, or NCBI taxid
NameTypeReqDescription
chromosomestringyes
descriptionstringyes
gene_endstringyesString — BioMart TSV is untyped
gene_namestringyes
gene_startstringyesString — BioMart TSV is untyped
organism_namestringyes
strandstringyesString — typically "1" or "-1"

No examples provided.

plantcyc_locus_info ~275

Fetch metabolic annotation for a locus from PlantCyc / the Plant Metabolic Network (pmn.plantcyc.org; free BioCyc web-services API, no key). Walks gene → enzyme → catalyzed reactions → PlantCyc pathways in the organism's PGDB, returning enzymes[] + reactions[] (id/name) + pathways[] (id/name) — the metabolic-pathway view KEGG and GO don't provide. A non-enzymatic gene (e.g. a transcription factor) returns found=false with empty lists, not an error. reaction_count / pathway_count report true totals even when the lists are capped. 11 organisms have a PGDB (arabidopsis, rice, maize, soybean, grape, poplar, tomato, barley, sorghum, medicago, brachypodium); wheat is not yet mapped. Defaults to arabidopsis_thaliana (AraCyc, the best-curated); pass organism= for other species.

NameTypeReqDescription
locusstringyese.g. AT3G51240 (Arabidopsis), Os11g0530600 (rice RAP-DB)
organismstring|integerPlant organism — accepts canonical slug (arabidopsis_thaliana), scientific or common name, or NCBI taxid
NameTypeReqDescription
enzymesarrayyesProduct monomer (enzyme) frame ids
foundbooleanyesTrue if the locus resolved to a metabolic gene
gene_common_nameGene common name in the PGDB
gene_frameResolved PGDB gene frame id
locusstringyes
organismstringyesCanonical organism slug
orgidstringyesPlantCyc PGDB org id, e.g. ARA (AraCyc)
pathway_countintegeryesTotal distinct pathways (pre-cap)
pathwaysarrayyes
reaction_countintegeryesTotal distinct reactions (pre-cap)
reactionsarrayyes

No examples provided.

resolve_locus_to_uniprot ~218

Resolve a plant locus to its canonical UniProtKB record. Prefers reviewed (Swiss-Prot) entries; falls back to unreviewed (TrEMBL) when no curated record exists (common for non-Arabidopsis plants). organism accepts a canonical slug, scientific/common name, or NCBI taxid (default arabidopsis_thaliana; e.g. oryza_sativa, zea_mays). Returns primaryAccession, uniProtkbId, entryType, recommendedName, geneNames, organism, taxonId, sequenceLength, web_url. This is the protein-side entry point — pair with InterPro / AlphaFold / Reactome / structural-bio tools.

NameTypeReqDescription
locusstringyese.g. AT1G01010 (Arabidopsis), Os01g0100100 (rice)
organismstring|integerPlant organism — accepts canonical slug (arabidopsis_thaliana), scientific or common name, or NCBI taxid
NameTypeReqDescription
entryTypestringyese.g. 'UniProtKB reviewed (Swiss-Prot)' or '... (TrEMBL)'
geneNamesarrayGene symbols, e.g. ['NAC001']
locus_querystringyesThe locus identifier the user asked about
organismScientific name
primaryAccessionstringyesUniProt accession, e.g. Q0WV96
recommendedNameRecommended protein name
reviewedbooleanyesTrue if Swiss-Prot (curated)
sequenceLengthProtein length in residues
taxonIdNCBI taxonomy ID
uniProtkbIdstringyesUniProtKB ID, e.g. NAC1_ARATH
upstream_versionUniProt release that produced THIS record, as stated by the upstream's own header (e.g. '2026_02'). null means UniProt did not state one — never that no release exists, and never inferred from a sepa…
web_urlBrowser URL for the UniProt entry

No examples provided.

string_interactions ~175

Fetch protein-protein interaction partners from STRING-DB (string-db.org). Accepts either a UniProt accession or a locus identifier — the latter is resolved via UniProt first. Defaults to arabidopsis_thaliana; pass organism= for other plant species (slug, scientific/common name, or NCBI taxid). Returns first-neighbor partners with the combined STRING score plus per-channel sub-scores (experimental, database, textmining, predicted).

NameTypeReqDescription
limitintegerNumber of partners to return
locus_or_accessionstringyesUniProt accession (Q0WV96) or locus (AT1G01010)
organismstring|integerPlant organism — accepts canonical slug (arabidopsis_thaliana), scientific or common name, or NCBI taxid
NameTypeReqDescription
accessionstringyesUniProt accession actually queried at STRING
organismstringyesPlant organism canonical slug, e.g. arabidopsis_thaliana
partnersarrayyes
querystringyesThe locus or accession the user passed

No examples provided.

tair_locus_info ~131

Fetch the TAIR curator-vetted Arabidopsis locus summary. Served via BAR/ThaleMine (U Toronto, Global Core Biodata Resource 2023) since TAIR's free per-locus REST API is gated behind a paid Phoenix Bioinformatics subscription. Returns TAIR curator summary + Araport11 computational description + NCBI Gene ID + cross-DB aliases (RefSeq, UniProt, TIGR locus-model IDs). Arabidopsis only. Alias of bar_gene_summary.

NameTypeReqDescription
locusstringyesArabidopsis AGI locus, e.g. AT1G01010
NameTypeReqDescription
agiAGI primary identifier echoed by ThaleMine, e.g. "AT1G01010"
aliasesarrayCross-DB aliases from /gaia/aliases/ (RefSeq accessions, UniProt accessions, TIGR locus-model IDs, and TAIR aliases). Empty list if /gaia degraded.
brief_descriptionGene.briefDescription — short blurb (often same as full_name)
computational_descriptionGene.tairComputationalDescription — Araport11-sourced computed description
curator_summaryGene.tairCuratorSummary — the TAIR-curated functional summary prose
full_nameGene name from ThaleMine
locusstringyes
ncbi_gene_idNCBI Gene ID from /gaia/aliases/ — None if BAR has no NCBI cross-ref
source_urlstringyesThaleMine endpoint URL for traceability
speciesstringyes
symbolGene symbol, e.g. "NAC001"
synonymsarrayTAIR aliases (CSV from Gene.tairAliases, split on commas + stripped)
tair_locus_idTAIR locus ID from Gene.secondaryIdentifier, e.g. "locus:2200935"
tair_short_descriptionGene.tairShortDescription — TAIR-specific short description

No examples provided.

tf_binding_motifs ~394

Fetch curated transcription-factor DNA binding motifs for a locus from JASPAR (jaspar.elixir.no; free, no key) — the cis-regulatory view. Resolves the locus → UniProt accession + gene symbol, searches JASPAR by symbol scoped to the organism's taxid, then CONFIRMS each candidate by matching the accession against the profile's uniprot_ids. Returns per motif the JASPAR matrix id, TF class/family, assay type (SELEX / ChIP-seq / PBM / DAP-seq), an IUPAC consensus derived from the position-frequency matrix (e.g. CACGTG, the G-box/ABRE core), motif length, PubMed refs, and an SVG sequence-logo URL. IMPORTANT: JASPAR's name search is fuzzy, so name-similarity hits belonging to a DIFFERENT gene are returned separately in name_only_matches and must NOT be attributed to this locus; only `motifs` is UniProt-confirmed. found=false means the gene has no curated profile (not a TF, or its family is unprofiled for that species) — a normal outcome, not an error. Use jaspar_motif to retrieve the raw matrix for any matrix_id. Coverage is Arabidopsis-heavy (1236 profiles) and thin elsewhere (maize 131, soybean 91, wheat 58, tomato 51, rice 10; Brachypodium and sorghum have none). Defaults to arabidopsis_thaliana; pass organism= for other species.

NameTypeReqDescription
locusstringyese.g. AT2G46830 (Arabidopsis CCA1), Os01g0100100 (rice RAP-DB)
organismstring|integerPlant organism — accepts canonical slug (arabidopsis_thaliana), scientific or common name, or NCBI taxid
NameTypeReqDescription
accessionstringyesResolved UniProt accession
foundbooleanyesTrue if any profile was UniProt-confirmed for this locus
gene_names_searchedarrayGene symbols used as JASPAR search keys
locusstringyes
motif_countintegeryesTotal confirmed profiles (pre-cap)
motifsarrayUniProt-confirmed binding profiles
name_only_matchesarrayName-similarity hits belonging to a DIFFERENT gene [{matrix_id, name, uniprot_ids}] — not this locus's motifs
tax_idintegeryesNCBI taxid the JASPAR search was scoped to
truncatedbooleanyesTrue if the motif list was capped

No examples provided.

vep_annotate ~236

Predict a variant's molecular consequences with Ensembl VEP (rest.ensembl.org; free, no key). Variant-first (not locus-first): supply an Ensembl region (chr:start-end:strand, e.g. '1:10000-10000:1') and an alternate allele (e.g. 'C'); returns the most-severe consequence plus one row per overlapping transcript (consequence terms, IMPACT, and SIFT/PolyPhen when the variant is coding-missense). found=false when Ensembl reports no overlapping feature. Works for all 12 organisms. Defaults to arabidopsis_thaliana; pass organism= for other species.

NameTypeReqDescription
allelestringyesAlternate allele, e.g. 'C' (or 'A/C', an insertion, etc.)
organismstring|integerPlant organism — accepts canonical slug (arabidopsis_thaliana), scientific or common name, or NCBI taxid
regionstringyesEnsembl region chr:start-end:strand, e.g. '1:10000-10000:1'
NameTypeReqDescription
allelestringyesAlternate allele, e.g. 'C'
allele_string
assembly_nameAssembly the call is against
end
foundbooleanyesTrue if VEP returned an overlapping feature
inputVEP echo of the parsed input
most_severe_consequenceMost severe SO term
organismstringyesResolved Ensembl species slug
regionstringyesEnsembl region, e.g. '1:10000-10000:1'
seq_region_name
start
transcript_consequencesarrayPer-transcript {gene_id, transcript_id, consequence_terms, impact, sift_*, …}

No examples provided.

Common questions

What is the Plant Genomics MCP server?

Plant Genomics is an MCP server listed in the public MCP registry as io.github.musharna/plant-genomics-mcp. Plant genomics MCP, 50 tools across 23 backends with cross-source synthesis. This page covers its PyPI package (plant-genomics-mcp).

Is the Plant Genomics MCP server safe to use?

Plant Genomics scores 86 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Plant Genomics MCP server expose?

Plant Genomics exposes 50 tools: ensembl_plants_lookup_locus, get_gene_xrefs, get_sequence, ensembl_region_query, phytozome_lookup_locus, and 45 more. Their descriptions and schemas cost roughly 9,711 tokens of context every time the server is loaded.

Is the Plant Genomics MCP server still maintained?

Plant Genomics is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Plant Genomics MCP server under?

Plant Genomics declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.