原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Brapi MCP Server

作者:cyanheads版本 0.10.1i★ –i电脑或云端
注册名称io.github.cyanheads/brapi-mcp-server

安装

概览

作者提供的说明(英文原文)

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

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:3 项中通过 3 项
  • 在作者的服务器上运行:你向它提出的内容会经过他们的服务器。
  • 可以做 22 件事(工具) brapi_connect, brapi_build_phenotype_matrix, brapi_server_info, brapi_describe_filters …
  • 需要你自己填写: BRAPI_DEFAULT_BASE_URL, BRAPI_ENABLE_WRITES, BRAPI_PAGE_SIZE, MCP_LOG_LEVEL

你需要

  • 在云端运行无需安装任何东西,通过互联网连接
  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

适用于网页版、桌面版和手机版 Claude:

  1. 打开 Settings → Connectors
  2. 点击 Add custom connector
  3. 粘贴下面的地址,然后点击 Add
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Add2https://…3
https://brapi.caseyjhand.com/mcp

或者在你的电脑上运行

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "brapi": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/brapi-mcp-server"
      ],
      "env": {
        "BRAPI_DEFAULT_BASE_URL": "your-value",
        "BRAPI_ENABLE_WRITES": "your-value",
        "BRAPI_PAGE_SIZE": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add --transport http brapi https://brapi.caseyjhand.com/mcp

或者在你的电脑上运行

claude mcp add brapi --env BRAPI_DEFAULT_BASE_URL=your-value --env BRAPI_ENABLE_WRITES=your-value --env BRAPI_PAGE_SIZE=your-value --env MCP_LOG_LEVEL=your-value -- npx -y @cyanheads/brapi-mcp-server

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "brapi": {
      "url": "https://brapi.caseyjhand.com/mcp"
    }
  }
}

或者在你的电脑上运行

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "brapi": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/brapi-mcp-server"
      ],
      "env": {
        "BRAPI_DEFAULT_BASE_URL": "your-value",
        "BRAPI_ENABLE_WRITES": "your-value",
        "BRAPI_PAGE_SIZE": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "brapi": {
      "type": "http",
      "url": "https://brapi.caseyjhand.com/mcp"
    }
  }
}

或者在你的电脑上运行

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "brapi": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/brapi-mcp-server"
      ],
      "env": {
        "BRAPI_DEFAULT_BASE_URL": "your-value",
        "BRAPI_ENABLE_WRITES": "your-value",
        "BRAPI_PAGE_SIZE": "your-value",
        "MCP_LOG_LEVEL": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

ChatGPT 只能连接互联网上的服务器:

  1. 打开网页版 ChatGPT → Settings → Connectors (Apps)
  2. 点击 Create 或 Add(部分套餐需要先在 Advanced 中开启 Developer mode)
  3. 粘贴下面的地址,起个名字,然后保存
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Create2https://…3
https://brapi.caseyjhand.com/mcp

菜单名称可能因套餐和版本不同而略有差异。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • BRAPI_DEFAULT_BASE_URL env
    Default BrAPI v2 base URL. Optional — connections can be opened at runtime via the brapi_connect tool instead.
  • BRAPI_ENABLE_WRITES env
    Opt-in flag for the write surface (brapi_submit_observations). Off by default — the tool is omitted from tools/list unless the operator opts in.
  • BRAPI_PAGE_SIZE env
    Upstream pageSize used during canvas spillover walks (decoupled from BRAPI_LOAD_LIMIT). Dataframe ceiling = pageSize × 50 pages, capped at 50,000 rows.
  • MCP_LOG_LEVEL env
    Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

工具名称和描述与服务器在 2026年11月7日 报告的完全一致。这些内容由作者撰写,不是我们写的;我们以纯文本形式显示。

  • 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 a

  • 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-for

  • 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 materi

  • 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 datafram

  • 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,00

  • 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, incl

  • 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[] hol

  • brapi_find_observations

    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 repor

  • 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. results[] holds the leading matches up to loadLimit and a 24,000-byte budget; when it holds fewer rows tha

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

  • brapi_find_variants

    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 m

  • 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` an

  • 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 BrAPI

  • 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 pro

  • brapi_dataframe_query

    Run SQL across in-memory dataframes. Dataframes auto-populate when find_* tools spill (named `df_ `) — 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_dat

  • 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 row

  • 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 returns

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 cyanheads 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • ✓ 通过

    端点有响应

    在 111 毫秒内响应(HTTP 200)

  • – 不适用

    使用 OAuth 登录

    无需登录

  • ✓ 通过

    工具描述中没有隐藏指令

    已读取 22 个工具描述,未发现针对 AI 的隐藏指令

与“其他”中的其他服务器比较i

  • 星标数多于此分类中其他 18379 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 18379 个服务器的 69% 更新
  • 基础检查结果等于或优于此分类中其他 18379 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Brapi MCP Server 安全吗?

它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

两种方式都可以:安装在你的电脑上,或者连接云端版本。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.10.1)于20天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。

有什么可以替代它?

同一分类中有:Spec Driven Development, Remote Desktop Commander, NexusWindows

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Spec Driven Development

作者:formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

在你的电脑上运行★ 440MIT14个月前更新
安装

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

在云端运行★ 211前天更新
安装

NexusWindows

作者:pironjulien

Windows computer use in the background: desktop apps driven without your mouse or keyboard.

在你的电脑上运行今天更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

@cyanheads/brapi-mcp-server A collaborative BrAPI v2.1 workspace for multi-agent research via MCP. Search studies, germplasm, genotypes, and more across Breedbase, T3, Sweetpotatobase, and any BrAPI v2-compliant server. 25 Tools • 6 Resources • 2 Prompts

Public Hosted Server: https://brapi.caseyjhand.com/mcp


Overview

Plant-breeding data from any BrAPI (Breeding API) v2 server — Breedbase instances like Cassavabase and Sweetpotatobase, the Triticeae Toolbox (T3), and more, several at once. Search studies, germplasm, observations, and genotypes, walk pedigrees, and build phenotype and genotype matrices, with large results queryable in SQL.

Tools
ToolDescription
brapi_connectAuthenticate to a BrAPI v2 server, register it under an alias, and return the orientation envelope
brapi_server_infoReturn the orientation envelope for an alias, optionally refreshing capabilities
brapi_describe_filtersList valid filter names for an endpoint, for use in any finder's extraFilters
brapi_find_studiesFind studies by crop, trial type, season, location, or program
brapi_get_studyFetch a study with program, trial, and location resolved, plus companion counts
brapi_find_germplasmFind germplasm by name, synonym, accession, PUI, crop, or free text
brapi_get_germplasmFetch a germplasm with attributes, direct parents, and companion counts
brapi_walk_pedigreeWalk ancestry or descendancy as a deduplicated DAG with cycle detection
brapi_find_variablesFind observation variables by name, trait class, or ontology term, with free-text ranking
brapi_find_observationsPull observation records by study, germplasm, variable, season, or unit
brapi_find_imagesFind image metadata by unit, observation, study, ontology term, or MIME type
brapi_get_imageFetch up to 5 images inline as image content blocks
brapi_find_locationsFind research stations by country, type, abbreviation, or bounding box
brapi_find_variantsFind variants by variant set, reference, or genomic region
brapi_find_genotype_callsPull genotype calls through async search, bounded by a deployment pull ceiling
brapi_dataframe_describeList dataframes, or describe one with columns, row count, and provenance
brapi_dataframe_queryRun read-only SQL across dataframes
brapi_dataframe_drop_Opt-in._ Drop a dataframe by name
brapi_dataframe_export_Opt-in, stdio-only._ Export a dataframe to disk as CSV, Parquet, or JSON
brapi_build_phenotype_matrixBuild a germplasm × trait matrix from one or more studies as a dataframe
brapi_germplasm_performancePer-variable aggregates (n, mean, median, sd, min, max) for one germplasm across its studies
brapi_export_genotype_matrixPivot a variant set's calls into a germplasm × variant matrix, with VCF-lite or PLINK text
brapi_submit_observations_Opt-in._ Two-phase observation write: preview validates, apply confirms and writes
brapi_raw_getPassthrough to any GET /{path} endpoint no curated tool covers
brapi_raw_searchPassthrough to any POST /search/{noun} endpoint, with async polling handled
Resources
ResourceDescription
brapi://server/infoOrientation envelope for the default connection
brapi://callsRaw capability profile (/serverinfo + /calls) for the default connection
brapi://study/{studyDbId}One study with program, trial, and location resolved
brapi://germplasm/{germplasmDbId}One germplasm with attributes and parents
brapi://filters/{endpoint}Filter catalog for one endpoint
brapi://variable/{observationVariableDbId}One observation variable (trait, scale, method, ontology)

Every resource reads the default connection and mirrors a tool; tool-only clients and multi-server workflows use the tools.

Prompts
PromptDescription
brapi_eda_studyExploratory-data-analysis playbook for one study, ending in a structured report
brapi_meta_analysisCross-study meta-analysis playbook for a germplasm × trait combination

Capability reference

Identifier filters also accept their BrAPI *DbId / *DbIds spellings where equivalent: for example, imageDbId for imageDbIds, studyDbIds for studies, and observationVariableDbIds for variables. Array filters accept a lone string or multiple IDs. Supply one spelling per filter; conflicting spellings are rejected.

brapi_connect tool
  • baseUrl and auth are optional: omitted values come from BRAPI_ _* env vars, the built-in aliases, then BRAPI_DEFAULT_* (see Per-alias credentials); alias (default default, pattern ^[a-zA-Z0-9_-]+$) keeps several servers registered at once; auth.mode is none, bearer, api_key, sgn (Breedbase /token exchange), or oauth2 (client credentials)
  • Returns the orientation envelope: server identity, auth summary, capabilities (supported, notableGaps), active dialect, content counts, attribution for built-in servers, and nextToolSuggestions naming the entry-point finders this server can serve
  • Typed errors: auth_session_required, auth_base_url_mismatch, alias_base_url_unset, alias_base_url_invalid, private_address_blocked, auth_token_exchange_failed, auth_no_access_token, upstream_unauthorized, upstream_forbidden, capability_discovery_unavailable (retryable); a failed connect leaves any earlier registration under the alias intact
  • Optional for an alias the server has a URL for (default when BRAPI_DEFAULT_BASE_URL is set, a built-in, or a BRAPI_ _BASE_URL alias): any other tool or resource connects it on first use, as brapi_connect with no baseUrl or auth would, and concurrent first calls share one connect. An alias with no URL of its own still fails unknown_alias, even with BRAPI_DEFAULT_* set, so a mistyped alias never reaches the default server. Those tools and resources declare the connect failures they can hit (the token, discovery, auth-wall, alias_base_url_invalid, and private_address_blocked errors above), each with a recovery hint

brapi_server_info tool
  • alias optional; forceRefresh (default false) refetches the capability profile instead of reading the cache
  • Returns the same orientation envelope as brapi_connect

brapi_describe_filters tool
  • endpoint is one of studies, germplasm, observations, variables, images, variants, locations; unknown_endpoint carries availableEndpoints
  • Each filter has name, type, description, and example; the catalog follows the v2.1 spec, and individual servers may honor a subset

brapi_find_studies tool
  • Filters: crop, trialTypes, seasons, locations, programs, trials, studyNames, active; on SGN servers (CassavaBase, Breedbase, Sweetpotatobase), which ignore the location filter on /studies, locations is applied client-side over the scanned studies, and totalCount is the matched count
  • distributions over programName, studyType, seasons, locationName, commonCropName
  • SGN/Breedbase studies lift missing program IDs and names from additionalInfo, preserving the raw metadata.

brapi_get_study tool
  • studyDbId required; resolves program, trial, and location inline; study_not_found when the upstream has no such study
  • On SGN/Breedbase servers, missing program fields come from additionalInfo; when the study has no program ID, the fetched parent trial can supply it for program resolution.
  • Companion counts observationCount, observationUnitCount, variableCount; a count the server can't scope to the study is omitted with a warning, never reported as the server-wide total

brapi_find_germplasm tool
  • Filters: names, germplasmDbIds, germplasmPUIs, accessionNumbers, crops, synonyms, collections, genus, species; text is a client-side substring match on name, PUI, accession, display name, and synonyms that drops non-matching rows. Its first request uses BRAPI_PAGE_SIZE independently of inline loadLimit; it scans every upstream row when the set fits one dataframe walk (50,000 rows at the default page size). Above that, a first-page miss stops after one request and reports the actual rows scanned; it does not establish absence from the catalog, so pair it with a server-side filter.
  • distributions over commonCropName, genus, species, collection, countryOfOriginCode

brapi_get_germplasm tool
  • germplasmDbId required; returns attributes and direct parents; germplasm_not_found when the upstream has no such germplasm
  • Companion counts studyCount, directParentCount, directDescendantCount

brapi_walk_pedigree tool
  • 1–20 root germplasmDbIds (germplasmDbId also accepted); direction is ancestors (default), descendants, or both; maxDepth 1–10 (default 3); the walk stops at 1,000 nodes or 10,000 edges and sets truncated
  • both is the union of the two walks: ancestors expand only through /pedigree and descendants only through /progeny, so a descendant's other parent is not pulled in
  • One edge per parent–child pair; cycleCount counts the edges marked isCycle, where a germplasm becomes its own ancestor — shared ancestors and siblings are not cycles
  • leafCount counts graph terminals, including depth-boundary nodes; confirmedLeafCount counts non-root nodes whose relevant lookups successfully returned no relatives. frontier / frontierCount distinguish depth-limited, safet

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx