NestDaddy

Brapi Mcp Server

io.github.cyanheads/brapi-mcp-server · v0.11.0

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

Connect Remote server

Terminal
claude mcp add --transport http brapi-mcp-server https://brapi.caseyjhand.com/mcp
~/.cursor/mcp.json
{
  "mcpServers": {
    "brapi-mcp-server": {
      "url": "https://brapi.caseyjhand.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "brapi-mcp-server": {
      "type": "http",
      "url": "https://brapi.caseyjhand.com/mcp"
    }
  }
}
Claude Desktop
Settings > Connectors > Add custom connector
URL: https://brapi.caseyjhand.com/mcp

Tools 22 found in our last check

  • brapi_connect

    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…

  • 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 (read it with brapi_dataframe_describe and brapi_dataframe_query) plus a summary of dimensions and aggregate method. Long-fo…

  • brapi_server_info

    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_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. Entries reflect the BrAPI v2.1 spec; individual servers may implement subsets.

  • brapi_find_studies

    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 mater…

  • brapi_get_study

    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_find_germplasm

    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 datafra…

  • 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 observation coverage.

  • brapi_walk_pedigree

    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,0…

  • brapi_germplasm_performance

    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, inc…

  • brapi_find_variables

    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[] ho…

  • brapi_find_observations

    Pull observation records filtered by study, germplasm, variable, season, or observation unit. SGN/Breedbase uses advertised embedded units for study or germplasm scopes. Other GET observation queries without a study, trial, observation unit, or observation anchor run a one-row c…

  • brapi_find_images

    Filter images by observation unit, observation, study, descriptive ontology term, file name, or MIME type. Named mimeTypes are verified case-insensitively on each scanned row. Returns metadata only — use brapi_get_image to fetch bytes inline. results[] holds the leading matches…

  • 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 or that request fails. No filesystem side-effects.

  • brapi_find_locations

    Find research stations / field sites by country, abbreviation, type, location ID, or free-text. Pass countryCodes directly or use English countryNames to resolve ISO codes. CassavaBase searches alpha-3, alpha-2, and numeric forms for resolved names. Optional bbox restricts rows…

  • brapi_find_variants

    Find variant records by variant set, reference sequence, or genomic region. Named reference and region filters are verified on each scanned row using exact reference names and overlap with the 0-based half-open window [start, end). results[] holds the leading matches up to loadL…

  • 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 truncated, narrow the filters. results[] holds the leading calls up to `loadLimit` a…

  • brapi_export_genotype_matrix

    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 BrAP…

  • 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 (`result.dataframe.tableName`) — pass it as `dataframe` to inspect schema and pr…

  • brapi_dataframe_query

    Run read-only 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 her…

  • brapi_raw_get

    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 ro…

  • brapi_raw_search

    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 return…

Details

Endpointhttps://brapi.caseyjhand.com/mcp (Streamable HTTP)
Package@cyanheads/[email protected] (NPM, stdio)
Package@cyanheads/[email protected] (NPM, streamable-http)
First published11 Nov 2026
Last updated11 Nov 2026
Registry nameio.github.cyanheads/brapi-mcp-server

More ai and media servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.