Skip to content
Back to search
100
MCP live v0.5.0 MCP 2026-07-28 streamable-http

io.github.cyanheads/brapi-mcp-server

io.github.cyanheads/brapi-mcp-server

Collaborative BrAPI v2.1 MCP workspace — studies, germplasm, genotypes across Breedbase, T3, more.

Uptime
100.0%
1 direct probes · 30d
Response
941ms
last probe
Tools
22
callable
Resources
9
readable
Prompts
2
available

Tools · 22

brapi_connect

Open a connection to a BrAPI v2 server, authenticate, and return the full orientation envelope (server identity, capability profile, content summary). Required handshake before other BrAPI tools. Supp…

brapi_build_phenotype_matrix

Pull observations across one or more studies and pivot them into a germplasm × trait matrix materialized as a canvas dataframe. Returns a dataframe handle (query with brapi_dataframe_query) plus a sum…

brapi_server_info

Return the full orientation envelope for a registered BrAPI connection — server identity, capabilities, content counts, and notes. Re-running refreshes the cached capability scan; pass an alias to rea…

brapi_describe_filters

List the valid filter names for a BrAPI endpoint (studies, germplasm, observations, variables, images, variants, locations) — companion lookup for the `extraFilters` passthrough on any `find_*` tool. …

brapi_find_studies

Locate studies matching crop, trial type, season, location, or program. Enriches results with program/trial/location context in one call. When the upstream total exceeds loadLimit, the full result set…

brapi_get_study

Fetch a single study by DbId with program, trial, and location fully resolved. Response includes cheap observation/observation-unit/variable counts as drill-down signals.

brapi_find_germplasm

Find germplasm by name, synonym, accession number, PUI, crop, or free-text query. Matches across registered synonyms. When the upstream total exceeds loadLimit, the full result set is materialized as …

brapi_get_germplasm

Fetch a single germplasm by DbId with attributes and direct parents. Response companions report study count, direct parent count, and direct descendant count — signals for pedigree depth and observati…

brapi_walk_pedigree

Walk germplasm ancestry or descendancy as a deduplicated DAG, with multi-generation traversal, cycle detection, and depth limits. Returns nodes + edges plus traversal stats (depthReached, rootCount, l…

brapi_germplasm_performance

Aggregate a single germplasm's observations across every study it appears in, returning per-variable summary statistics (n, mean, median, sd, min, max), the contributing studies, and seasons. Study-an…

brapi_find_variables

Find observation variables (traits) by name, trait class, ontology term, or free-text query. Free-text queries are ranked against the returned set and may resolve to ontology URIs when the server adve…

brapi_find_observations

Pull observation records filtered by study, germplasm, variable, season, or observation unit. When the upstream total exceeds loadLimit, the full result set is materialized as a dataframe — query it w…

brapi_find_images

Filter images by observation unit, observation, study, descriptive ontology term, file name, or MIME type. Returns metadata only — use brapi_get_image to fetch bytes inline. When the upstream total ex…

brapi_get_image

Fetch image bytes for up to 5 imageDbIds and return them inline as `type: image` content blocks. Falls back to the metadata `imageURL` when the server lacks dedicated image-content delivery. No filesy…

brapi_find_locations

Find research stations / field sites by country, abbreviation, type, location ID, or free-text. Countries filter by ISO 3166-1 alpha-3 code via countryCodes, or by free-form English country name via c…

brapi_find_variants

Find variant records by variant set, reference sequence, or genomic region (start/end, 1-based inclusive / exclusive). When the upstream total exceeds loadLimit, the full result set is materialized as…

brapi_find_genotype_calls

Pull genotype calls for a germplasm × variant set. Filter to bound cost — at minimum, set `variantSetDbId` or `germplasmDbIds`. The upstream pull is capped by deployment policy; when the pull is trunc…

brapi_export_genotype_matrix

Pull genotype calls for a germplasm × variant set and pivot them into a matrix. `format` controls the output: `matrix-json` registers a wide germplasm × variant canvas dataframe for SQL analysis; `vcf…

brapi_dataframe_describe

Start here after a spillover. Lists dataframes (or describes one) with columns, row counts, and originating-source provenance. The dataframe name appears inline on every find_* response that spilled (…

brapi_dataframe_query

Run SQL across in-memory dataframes. Dataframes auto-populate when find_* tools spill (named `df_<uuid>`) — the dataframe name appears inline on every find_* response that spilled (`result.dataframe.t…

brapi_raw_get

Passthrough to any BrAPI GET /{path} endpoint. Returns the raw upstream envelope without enrichment or foreign-key resolution. Emits a `suggestion` field when a curated tool exists for the same data. …

brapi_raw_search

Passthrough to any BrAPI POST /search/{noun} endpoint, returning the resolved envelope (async polling resolved upstream). Spills to a canvas dataframe when the upstream advertises more rows than `load…

Resources · 9

brapi-server-info

Orientation envelope for the default BrAPI connection — identity, capabilities, content counts, notes. Same payload as the brapi_server_info tool.

brapi://server/info
brapi-calls

Capability profile for the default BrAPI connection — supported services, their HTTP methods, declared versions, and crops list. Mirrors what /serverinfo + /calls returned at the last load.

brapi://calls
BrAPI filter catalog · germplasm

Filter names accepted by /germplasm on a BrAPI v2.1 server.

brapi://filters/germplasm
BrAPI filter catalog · images

Filter names accepted by /images on a BrAPI v2.1 server.

brapi://filters/images
BrAPI filter catalog · locations

Filter names accepted by /locations on a BrAPI v2.1 server.

brapi://filters/locations
BrAPI filter catalog · observations

Filter names accepted by /observations on a BrAPI v2.1 server.

brapi://filters/observations
BrAPI filter catalog · studies

Filter names accepted by /studies on a BrAPI v2.1 server.

brapi://filters/studies
BrAPI filter catalog · variables

Filter names accepted by /variables on a BrAPI v2.1 server.

brapi://filters/variables
BrAPI filter catalog · variants

Filter names accepted by /variants on a BrAPI v2.1 server.

brapi://filters/variants

Prompts · 2

brapi_eda_study

Run an exploratory-data-analysis pass over a single BrAPI study — structure, variables, coverage, outliers, missing data — using the curated brapi_* tools.

brapi_meta_analysis

Run a cross-study meta-analysis on a germplasm × trait combination — resolve trait, find studies, pull observations, harmonize scales, summarize across studies.

How to use

Add to your Claude Desktop / Cursor / Cline MCP config:

{
  "mcpServers": {
    "io.github.cyanheads/brapi-mcp-server": {
      "url": "https://brapi.caseyjhand.com/mcp",
      "transport": "streamable-http"
    }
  }
}