MCP server
Brapi
io.github.cyanheads/brapi-mcp-server
Checked 26 Oct 2026, 08:29 UTC · Connected to it and listed its tools
Collaborative BrAPI v2.1 MCP workspace: studies, germplasm, genotypes across Breedbase, T3, more.
Working at last checkAbout 14,307 tokens per request once connected22 tools
https://brapi.caseyjhand.com/mcp
At a glance
- Type
- MCP server
- Publisher
- Not verified
- Status
- Working at last check
- Tools
- 22
- Token cost
- About 14,307 tokens per request
- Sets up in
- Claude Code, Claude Desktop, Codex, Gemini CLI, Cursor, VS Code, Antigravity, ChatGPT, OpenAI API, Grok
- Last checked
- 26 Oct 2026, 08:29 UTC
Connect it to your agent
Opens the app, which shows the server and asks you to confirm. For other apps, copy the setup below.
Claude Code
claude mcp add --transport http brapi-mcp-server https://brapi.caseyjhand.com/mcp
Claude Desktop
Settings → Connectors → Add custom connector, and paste the URL.
Codex (config.toml)
[mcp_servers.brapi-mcp-server] url = "https://brapi.caseyjhand.com/mcp"
Gemini CLI
{"mcpServers":{"brapi-mcp-server":{"httpUrl":"https://brapi.caseyjhand.com/mcp"}}}
Cursor
{"mcpServers":{"brapi-mcp-server":{"url":"https://brapi.caseyjhand.com/mcp"}}}
VS Code
{"servers":{"brapi-mcp-server":{"type":"http","url":"https://brapi.caseyjhand.com/mcp"}}}
Antigravity
agy mcp add brapi-mcp-server https://brapi.caseyjhand.com/mcp
ChatGPT
Settings → Apps & Connectors → Advanced settings: turn on Developer mode, then Create a connector and paste the URL. Which plans can do this varies.
OpenAI API (Responses tools)
{"type":"mcp","server_label":"brapi-mcp-server","server_url":"https://brapi.caseyjhand.com/mcp","require_approval":"always"}
Grok (xAI API tools)
{"type":"mcp","server_label":"brapi-mcp-server","server_url":"https://brapi.caseyjhand.com/mcp"}
Tools
brapi_build_phenotype_matrix~893 tokens
Pull observations across one or more studies and pivot them into a germplasm × trait matrix materialized as a canvas dataframe. Returns a dataframe handle (read it with brapi_dataframe_describe and brapi_dataframe_query) plus a summary of dimensions and aggregate method. Long-form output is suitablebrapi_connect~1125 tokens
Open a connection to a BrAPI v2 server, authenticate, and return the full orientation envelope (server identity, capability profile, content summary, suggested next tools). Other BrAPI tools connect an alias the server has a URL configured for (a built-in or operator-configured alias, or `default` obrapi_dataframe_describe~246 tokens
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 (`result.dataframe.tableName`) — pass it as `dataframe` to inspect schema and provenance before writibrapi_dataframe_query~682 tokens
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.tableName`), so the typical flow is find_* → read the name → query here. Use brapi_dataframe_describebrapi_describe_filters~189 tokens
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. Entries reflect the BrAPI v2.1 spec; individual servers may implement subsets.brapi_export_genotype_matrix~770 tokens
Pull genotype calls for a germplasm × variant set and pivot them into a matrix. `matrix-json` registers a wide canvas dataframe; `vcf-lite` adds VCF-subset text in `vcf`; `plink` adds .ped/.map text in `ped`/`map`. Text formats pull /variants metadata and convert zero-based BrAPI start to one-basedbrapi_find_genotype_calls~760 tokens
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 truncated, narrow the filters. results[] holds the leading calls up to `loadLimit` and a 24,000-byte budgbrapi_find_germplasm~947 tokens
Find germplasm by name, synonym, accession number, PUI, crop, or free-text query. Matches across registered synonyms. results[] holds the leading matches up to loadLimit and a 24,000-byte budget; when it holds fewer rows than matched, the matched set is materialized as a dataframe — read it with brabrapi_find_images~759 tokens
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. results[] holds the leading matches up to loadLimit and a 24,000-byte budget; when it holds fewer rows than matched, the matchbrapi_find_locations~1127 tokens
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 countryNames (resolved client-side to alpha-3 — "Uganda" → "UGA"). Optional bbox parameter restrictsbrapi_find_observations~918 tokens
Pull observation records filtered by study, germplasm, variable, season, or observation unit. Without a studies, trials, observationUnits, or observations anchor, a GET query first runs a one-row count probe and skips the bulk pull (warnings says so) when the probe fails or reports more than 5,000 mbrapi_find_studies~800 tokens
Locate studies matching crop, trial type, season, location, or program. Enriches results with program/trial/location context in one call. results[] holds the leading matches up to loadLimit and a 24,000-byte budget; when it holds fewer rows than matched, the matched set is materialized as a dataframbrapi_find_variables~1028 tokens
Find observation variables (traits) by name, trait class, ontology term, or free-text query. Free-text queries are ranked against every fetched row by PUI, name, synonym, and trait text; a candidate carries the ontology PUI of its row as termId when the row has one. results[] holds the leading rowsbrapi_find_variants~703 tokens
Find variant records by variant set, reference sequence, or genomic region (start/end, 0-based inclusive / exclusive per the BrAPI spec; servers may differ). results[] holds the leading matches up to loadLimit and a 24,000-byte budget; when it holds fewer rows than matched, the matched set is materibrapi_germplasm_performance~552 tokens
Aggregate a single germplasm's observations across studies, returning per-variable statistics (n, mean, median, sd, min, max), contributing studies, seasons, and collection coverage. SGN/Breedbase uses advertised germplasm-scoped observation units with embedded measurements, including zeros. Other sbrapi_get_germplasm~264 tokens
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 observation coverage.brapi_get_image~284 tokens
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 or that request fails. No filesystem side-effects.brapi_get_study~258 tokens
Fetch a single study by DbId with its program, trial, and location records resolved where those lookups succeed. Response includes cheap observation/observation-unit/variable counts as drill-down signals.brapi_raw_get~534 tokens
Passthrough to BrAPI GET /{path} without foreign-key resolution. List results (result array or result.data) return a leading preview within loadLimit and a 24,000-byte budget on each serialized row representation; an oversized first row returns no inline rows. Omitted fetched rows remain in a datafrbrapi_raw_search~507 tokens
Passthrough to BrAPI POST /search/{noun}, polling async search IDs. Sends loadLimit as the initial pageSize unless body.page/pageSize drives explicit paging. List previews fit loadLimit and a 24,000-byte budget on each serialized row representation; an oversized first row returns no inline rows. Evebrapi_server_info~278 tokens
Return the full orientation envelope for a BrAPI connection — server identity, capabilities, content counts, suggested finders, and notes. Pass forceRefresh to refetch the cached capability scan; pass an alias to read a non-default connection.brapi_walk_pedigree~683 tokens
Walk germplasm ancestry or descendancy as a deduplicated DAG with cycle detection and depth limits. leafCount counts graph terminals, confirmedLeafCount counts successfully verified leaves, and frontier records unresolved directions. Nodes and edges each fit loadLimit and a 24,000-byte preview budge
Browse
Related MCP servers
- HLA-Verify
HLA nomenclature and match checks against a pinned IPD-IMGT/HLA release. No patient identifiers. - Wavetable Tools
Hyperwave wavetable format lookup, encoder layouts, and float32 mono frame-size calculations. - Brapi
brapi.dev MCP — Brazilian stock + crypto + ETF quotes. - ZeroWidth Prism
Explore ideas in Prism fields, run studies, and read research findings. - Jean — Molecular Biology & Genomics
Validated molecular biology tools: cloning, primers, CRISPR, Sanger, alignment, qPCR, phylogenetics - Biostudies
EBI BioStudies MCP. - ClinicalTrials.gov MCP by usefulapi
Search and read ClinicalTrials.gov studies, sites and outcomes. - Gtex
GTEx MCP.
Badge for your README
[](https://aptlynx.net/servers/io.github.cyanheads/brapi-mcp-server)
Listing text is written by the maker; AptLynx lists tools and does not vouch for them. Find another tool · Browse by topic · For agents