Brapi MCP Server

@cyanheads/brapi-mcp-server A collaborative BrAPI v2.1 workspace for multi-agent research via MCP. Search studies, germplasm, genotypes, & more - across Breedbase, T3, Sweetpotatobase, & any BrAPI v2-compliant server. Its 25 documented tools cover brapi, dataframe, germplasm, observations. It runs locally over stdio via the published package.

People connecting this server to Claude, Cursor, VS Code, or another MCP client. The project is written in TypeScript.

VERIFIED ACTIVE

LAST COMMIT 2026-08-22 · ★ 3 · #187 OF 848 MAINTAINED OTHER · VERIFIED 2026-08-25

Apache-2.0 · TypeScript servers · how we verify → /methodology

01 · Install Brapi MCP Server

before you install - you'll need

Set MCP_LOG_LEVEL, BRAPI_BTI_CASSAVA_USERNAME, BRAPI_BTI_CASSAVA_PASSWORD, BRAPI_PROD_BASE_URL, BRAPI_PROD_API_KEY, BRAPI_PROD_API_KEY_HEADER before connecting. MCP_TRANSPORT_TYPE is optional or environment-specific per the README.

Claude Code

claude mcp add cyanheads-brapi-mcp-server -- npx -y @cyanheads/brapi-mcp-server

Claude Desktop / Cursor / VS Code - add to config

{
  "mcpServers": {
    "cyanheads-brapi-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/brapi-mcp-server"
      ]
    }
  }
}

Same JSON for Cursor. For VS Code, rename the top-level key from `mcpServers` to `servers`.

Using another client? Same JSON, different key

Claude Desktop · mcpServers

Cursor · mcpServers

VS Code · servers

Windsurf · mcpServers

Zed · context_servers

Cline · mcpServers

Roo Code · mcpServers

Continue · mcpServers

LibreChat · mcpServers

Gemini CLI · mcpServers

Codex CLI · mcp_servers

Full setup guides: every client.

02 · Evidence

Security posture

What to check before giving this server access to your agent - from the registry, GitHub, and our own probes. We don't score safety; we show what's verifiable.

runs as local process (stdio) - runs on your machine with your user's permissions

license Apache-2.0 - declared in the repository

npm package @cyanheads/brapi-mcp-server - published under the repo owner's npm scope (@cyanheads)

registry namespace io.github.cyanheads is GitHub-verified and matches the repo owner

03 · What Brapi MCP Server can do

Prose above is summarized from the project's README and registry record - no invented capabilities.

What you can build

With this server connected, an agent can find studies by crop / trial type / season / location / program. Distributions + dataframe spillover, fetch a study with program / trial / location FKs resolved and companion counts (observations, units, variables), find germplasm by name, synonym, accession, PUI, crop, or free-text. Distributions + dataframe spillover, and fetch a germplasm with attributes, direct parents, and companion counts (studies, parents, descendants).

The 25 tools it gives your agent

Extracted from the project's README - what brapi-mcp-server lets an agent do.

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_server_info
- Re-fetch the orientation envelope for a registered alias - identity, auth, capabilities, content counts, attribution, notes.
brapi_describe_filters
- Static BrAPI v2.1 filter catalog for any endpoint - powers extraFilters discovery on every find_ tool.
brapi_find_studies
- Find studies by crop / trial type / season / location / program. Distributions + dataframe spillover.
brapi_get_study
- Fetch a study with program / trial / location FKs resolved and companion counts (observations, units, variables).
brapi_find_germplasm
- Find germplasm by name, synonym, accession, PUI, crop, or free-text. Distributions + dataframe spillover.
brapi_get_germplasm
- Fetch a germplasm with attributes, direct parents, and companion counts (studies, parents, descendants).
brapi_walk_pedigree
- BFS-walk ancestry / descendancy as a deduplicated DAG with cycle detection, depth limits, and traversal stats.
brapi_find_variables
- Find observation variables by name / class / ontology / free-text; ranked client-side via OntologyResolver when text is supplied.
brapi_find_observations
- Pull observation records by study / germplasm / variable / season / unit / timestamp. Dataframe spillover.
brapi_find_images
- Filter image metadata by unit / study / ontology / MIME type. Bytes via brapi_get_image.
brapi_get_image
- Fetch image bytes for up to 5 imageDbIds inline as type: image blocks. Prefers /imagecontent, falls back to imageURL.
show all 25 tools
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_variants
- Find variant records by variant set, reference, or genomic region (1-based inclusive / exclusive).
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_dataframe_describe
- Start here after a spillover. Lists dataframes (or describes one) with column schema, row counts, and originating-source provenance.
brapi_dataframe_query
- SELECT SQL across in-memory dataframes (DuckDB-backed). Spilled find_ rows auto-register as df_. Read-only - multi-statement, non-SELECT, file-reads, and export
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=, stdio-only._ Export a dataframe to disk (CSV / Parquet / JSON) under the configured directory and return the absolute path for th
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_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_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_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_raw_get
- Passthrough to any BrAPI GET /{path} not covered by curated tools. Emits a routing nudge when one applies.
brapi_raw_search
- Passthrough to any POST /search/{noun} with async polling handled transparently. Same nudge pattern.

Latest releases

v0.7.11 · 2026-08-22

mcp-ts-core ^0.12.3 - MCP SDK v2 · Protocol revision 2026-07-28 served on every HTTP endpoint, alongside the 2025 era · Undeclared top-level tool arguments are rejected by name; advertised schemas are JSON Schema…

v0.7.10 · 2026-07-16

concurrent per-study observation pulls · brapi_germplasm_performance and brapi_build_phenotype_matrix now fan their per-study observation pulls out concurrently instead of one study at a time. · Changed…

v0.7.9 · 2026-07-16

genotype-matrix column cap, describe listing budget · Bounds two brapi_export_genotype_matrix response paths that scale with variant count. · Added: · brapi_export_genotype_matrix maxColumns input +…

04 · Who maintains Brapi MCP Server

brapi-mcp-server is maintained by cyanheads. We track 125 MCP servers from cyanheads - 124 actively maintained, 1,730 combined GitHub stars, oldest repo from Dec 2024. Full record: all servers from cyanheads.

  1. mcp-ts-core Agent-native TypeScript framework for building MCP servers with declarative definitions. ★ 148
  2. obsidian-mcp-server Read, write, search, and surgically edit Obsidian notes, tags, and frontmatter via MCP. ★ 668
  3. git-mcp-server Comprehensive Git MCP server enabling native git tools including clone, commit, worktree, & more. ★ 235
  4. pubmed-mcp-server Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms. ★ 137
  5. clinicaltrialsgov-mcp-server Search ClinicalTrials.gov - find studies, retrieve results, match patients to eligible trials. ★ 90
  6. mcp-ts-template TypeScript template for building MCP servers with declarative tooling, observability, and auth. ★ 148

05 · Facts

category
other - ranked #187 of 848 actively-maintained other servers as of 2026-08-25.
release cadence
10+ releases in the last 90 days (latest 2026-08-22)
registry
io.github.cyanheads/brapi-mcp-server (active, first published 2026-04-30 · 42 versions)
packages
npm:@cyanheads/brapi-mcp-server · npm:@cyanheads/brapi-mcp-server

06 · Brapi MCP Server FAQ

Is Brapi MCP Server still maintained?

Yes - as of 2026-08-25, its last commit was 2026-08-22 and it shipped 10+ releases in the last 90 days. We re-verify nightly.

What can Brapi MCP Server do?

With this server connected, an agent can find studies by crop / trial type / season / location / program. Distributions + dataframe spillover, fetch a study with program / trial / location FKs resolved and companion counts (observations, units, variables), find germplasm by name, synonym, accession, PUI, crop, or free-text. Distributions + dataframe spillover, and fetch a germplasm with attributes, direct parents, and companion counts (studies, parents, descendants).

How do I install Brapi MCP Server?

Run `npx -y @cyanheads/brapi-mcp-server`. The README documents 7 environment variables (MCP_TRANSPORT_TYPE, MCP_LOG_LEVEL, BRAPI_BTI_CASSAVA_USERNAME…) to set first. Set MCP_LOG_LEVEL, BRAPI_BTI_CASSAVA_USERNAME, BRAPI_BTI_CASSAVA_PASSWORD, BRAPI_PROD_BASE_URL, BRAPI_PROD_API_KEY, BRAPI_PROD_API_KEY_HEADER before connecting. MCP_TRANSPORT_TYPE is optional or environment-specific per the README. You can also paste the ready-made client config above.

Does Brapi MCP Server run locally?

Yes - it's a stdio server: it runs on your machine (via npx) with your user's permissions. Your data stays local unless the server itself calls external APIs.

07 · Alternatives to Brapi MCP Server