plant-genomics-mcp
plant-genomics-mcp is an MCP server that lets AI agents look up plant genes in 24 free public databases, from Ensembl Plants and UniProt to KEGG, STRING and AlphaFold, with curated coverage of 12 plants.
Install
# uv fetches and runs it on demand
claude mcp add plant-genomics --scope local -- uvx plant-genomics-mcp
Other install paths (pipx, Docker, from source)
# pipx — installs the CLI onto your PATH
pipx install plant-genomics-mcp
claude mcp add plant-genomics --scope local -- plant-genomics-mcp
# GHCR Docker image
docker pull ghcr.io/musharna/plant-genomics-mcp:latest
claude mcp add plant-genomics --scope local -- \
docker run --rm -i ghcr.io/musharna/plant-genomics-mcp:latest
# From source
git clone https://github.com/musharna/plant-genomics-mcp.git
cd plant-genomics-mcp
python -m venv .venv && .venv/bin/pip install -e .
claude mcp add plant-genomics --scope local -- "$(pwd)/.venv/bin/plant-genomics-mcp"
Try it
Ask in plain language; the client picks the tools:
"Tell me everything about the Arabidopsis gene AT1G01010 — its function, GO terms, KEGG pathways, protein-interaction partners, and recent papers."
For another species, name it or pass organism= (e.g. rice Os01g0100100,
oryza_sativa). A recorded ortholog run, where Claude checked three sources
and said which one does not back the rice match:
Prompts and full answers for both screenshots: examples/assets/cards/RUN.md.
A worked 64-call run over 114 genes in three organisms, with the 51 gaps it
logged (39 since closed), is in examples/arf_family/PAGE.md.
Per-tool walkthroughs, including the one-call gene dossier
gene_report_AT1G01010.md, are in
examples/.
What the benchmark shows
Claude with the server was compared with Claude using web search. On 36 multi-step gene questions, 3 runs each, Haiku 5.5 got 31 right in every run with the server and 9 with web search: a pre-registered win (Holm-adjusted McNemar p = 2.1e-5), at 0.07 times the cost. Sonnet 5.5 tied (35 and 35; 0.65× the time, 1.49× the cost). With Opus 5.5 (the re-run 2026-10-18) both got all 108 right; the server was faster at the median (0.77×, 95% CI 0.64 to 0.96) and dearer (1.72×, 1.46 to 2.24).
The chart: Opus 5.5 on 52 plant gene-lookup questions, 151 of 156 right with web search and 156 of 156 with the server, not separated (McNemar p = 0.125). The key comes from the databases the server reads, so this tests the lookups, not whether the databases are right. We wrote the questions; an outside re-run is welcome. Method; Haiku and Sonnet.
Tools
58 tools across 24 backends:
| Area | Tools |
|---|---|
| Gene records | ensembl_plants_lookup_locus, phytozome_lookup_locus, get_gene_xrefs, bar_gene_summary, tair_locus_info, maize_gene_model_translation |
| Sequence | get_sequence, blast_sequence |
| Protein and structure | resolve_locus_to_uniprot, uniprot_id_mapping, interpro_domains, alphafold_structure, experimental_structures |
| Function | locus_go_annotations, locus_plant_ontology, locus_gene_rifs, go_enrichment, locus_literature |
| Pathways | kegg_pathways, plantcyc_locus_info |
| Interactions and expression | string_interactions, experimental_interactions, bar_aiv_interactions, atted_coexpression, bar_efp_expression |
| Homology and families | gramene_homologs, ensembl_plants_paralogs, orthodb_orthologs, panther_family, gene_tree_members, entry_members |
| TF motifs | tf_binding_motifs, jaspar_motif |
| Variation | locus_variants, vep_annotate, aragwas_associations, arabidopsis_natural_variation |
| Regions and assemblies | ensembl_region_query, ensembl_plants_assembly |
| Provenance | upstream_release |
| Batch and synthesis | batch_* (12), batch_locus_call, *_synth (3), consensus_homologs, gene_report |
Most take a locus (e.g. AT1G01010) and an optional organism=. Every tool is
marked read-only. What each tool does, the list of backends, the MCP resources
and prompts, all environment variables and the error model:
docs/reference.md.
Configuration
stdio (plant-genomics-mcp, the default) needs no configuration.
plant-genomics-mcp-http serves streamable HTTP at http://host:port/mcp;
there is no public endpoint, so you run it yourself, behind your own token.
| Variable | When | Effect |
|---|---|---|
PLANT_GENOMICS_MCP_HTTP_TOKEN |
HTTP transport only | Bearer token for /mcp; must be ≥32 chars or the HTTP server aborts at startup. Generate openssl rand -hex 32. |
PLANT_GENOMICS_MCP_NCBI_EMAIL |
If you use BLAST | NCBI etiquette contact. Unset → placeholder + per-call warning; NCBI may throttle. |
Development
.venv/bin/pip install -e '.[dev]' # or: uv sync --extra dev
.venv/bin/pytest -q # unit tests
PLANT_GENOMICS_MCP_LIVE=1 .venv/bin/pytest -q # adds live network probes
PLANT_GENOMICS_MCP_STDIO_SMOKE=1 .venv/bin/pytest -q # adds stdio smoke
.venv/bin/ruff check .
A bare uv sync omits the test dependencies. CI runs the unit suite and the
stdio smoke on Python 3.11–3.14 with the network blocked. A weekly job checks
27 loci against a frozen snapshot and pages on drift
(docs/benchmarking.md). Setup: CONTRIBUTING.md.
Release notes: CHANGELOG.md.
License
MIT, see LICENSE. The underlying services (Ensembl Plants,
Phytozome, TAIR, PlantCyc, BAR) have their own terms of use; check them before
bulk querying.
Metadata
Release files for plant-genomics-mcp 1.30.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| plant_genomics_mcp-1.30.0.tar.gz | 4.5 MB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| plant_genomics_mcp-1.30.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.8 MB
Release files / plant_genomics_mcp-1.30.0.tar.gz
| Download URL | plant_genomics_mcp-1.30.0.tar.gz |
|---|---|
| Size | 4.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a2b90e8243c17dbf1aff867e67bbaf4652cddc273a9e79eef9659d2b23d100c9
|
|
BLAKE2b-256 checksum How to use checksums |
945d4bc19533c0808147eb6fa681f8612537ff5a264449fb2d6441a3b3c02077
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / plant_genomics_mcp-1.30.0-py3-none-any.whl
| Download URL | plant_genomics_mcp-1.30.0-py3-none-any.whl |
|---|---|
| Size | 242.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6314e31240883b5b4dbdf67581fd96a79f9fae4367c5bde043519470bd5cee16
|
|
BLAKE2b-256 checksum How to use checksums |
b2efc280c943caf0f8656f1e2d1d18d11337056dc5df509b135b50210cee753e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logSecurity for plant-genomics-mcp 1.30.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for plant_genomics_mcp-1.30.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.