# cyanheads/@cyanheads/brapi-mcp-server

Source: https://glimind.com/server/glama%2Fcyanheads%2F-cyanheads%2Fbrapi-mcp-server
Registry id: `glama/cyanheads/-cyanheads/brapi-mcp-server`
Status: unknown

## Tools (23)

- `brapi_build_phenotype_matrix`: Build a germplasm × trait matrix from one or more studies and materialize it as a canvas dataframe. Supports wide (pivot) or long shape with configurable per-ce
- `brapi_connect`: Authenticate, register the connection under an alias, cache the capability profile, and return the orientation envelope inline. One call fully orients the agent
- `brapi_dataframe_describe`: Start here after a spillover. Lists dataframes (or describes one) with column schema, row counts, and originating-source provenance.
- `brapi_dataframe_drop`: Opt-in via BRAPI_CANVAS_DROP_ENABLED=true. Drop a dataframe by name. Idempotent. Dataframes also expire via TTL when left unmanaged.
- `brapi_dataframe_export`: Opt-in via BRAPI_EXPORT_DIR=<path>, stdio-only. Export a dataframe to disk (CSV / Parquet / JSON) under the configured directory and return the absolute path fo
- `brapi_dataframe_query`: SELECT SQL across in-memory dataframes (DuckDB-backed). Spilled find_* rows auto-register as df_<uuid>. Read-only — multi-statement, non-SELECT, file-reads, and
- `brapi_describe_filters`: Static BrAPI v2.1 filter catalog for any endpoint — powers extraFilters discovery on every find_* tool.
- `brapi_export_genotype_matrix`: Export genotype calls for a variant set as a germplasm × variant canvas dataframe; also serializes to VCF-lite or PLINK .ped/.map text. Distinct-variant columns
- `brapi_find_genotype_calls`: Pull genotype calls via async-search polling. Upstream pull bounded by BRAPI_GENOTYPE_CALLS_MAX_PULL (default 100k, max 500k).
- `brapi_find_germplasm`: Find germplasm by name, synonym, accession, PUI, crop, or free-text. Distributions + dataframe spillover.
- `brapi_find_images`: Filter image metadata by unit / study / ontology / MIME type. Bytes via brapi_get_image.
- `brapi_find_locations`: Find research stations by country (ISO alpha-3 code, or English country name resolved client-side) / type / abbreviation, with optional client-side bbox filter.
- `brapi_find_observations`: Pull observation records by study / germplasm / variable / season / unit / timestamp. Dataframe spillover.
- `brapi_find_studies`: Find studies by crop / trial type / season / location / program. Distributions + dataframe spillover.
- `brapi_find_variables`: Find observation variables by name / class / ontology / free-text; ranked client-side via OntologyResolver when text is supplied.
- `brapi_find_variants`: Find variant records by variant set, reference, or genomic region (1-based inclusive / exclusive).
- `brapi_germplasm_performance`: Per-variable performance aggregates (n, mean, median, sd, min, max, studyCount) for a single germplasm across all studies where it has observations.
- `brapi_get_germplasm`: Fetch a germplasm with attributes, direct parents, and companion counts (studies, parents, descendants).
- `brapi_get_image`: Fetch image bytes for up to 5 imageDbIds inline as type: image blocks. Prefers /imagecontent, falls back to imageURL.
- `brapi_get_study`: Fetch a study with program / trial / location FKs resolved and companion counts (observations, units, variables).
- `brapi_server_info`: Re-fetch the orientation envelope for a registered alias — identity, auth, capabilities, content counts, attribution, notes.
- `brapi_submit_observations`: Two-phase observation write — mode: preview validates; mode: apply asks the caller to confirm, then fans POST + PUT in parallel. Additive only — no destructive 
- `brapi_walk_pedigree`: BFS-walk ancestry / descendancy as a deduplicated DAG with cycle detection, depth limits, and traversal stats.

Measured by Glimind (https://glimind.com): MCP handshake + tool list only, no tool is ever called. CC BY 4.0.
