@cyanheads/brapi-mcp-server
ツール
形状ごとにグループ化された25のツール。接続ツールはセッションをブートストラップし、find_* ツールは要約ページと分布を返し、あふれた行をキャンバスデータフレームにスピルオーバーします。同じセッション上のエージェントはそのデータフレームをクエリしたり、IDで引き渡したりできます。get_* ツールは関連カウント付きの単一レコードを取得し、血統探索、スピルオーバーした行に対する組み込みSQLワークスペース(DuckDBベース)、人間への引き継ぎのためのファイルエクスポート、観察のための追加型書き込みサーフェス、そして生のパススルー脱出ハッチを備えています。
オリエンテーション
ツール | 説明 |
| 認証し、エイリアスで接続を登録し、ケイパビリティプロファイルをキャッシュして、オリエンテーションエンベロープをインラインで返します。1回の呼び出しでエージェントを完全にオリエントします。 |
| 登録済みエイリアスのオリエンテーションエンベロープを再取得します — アイデンティティ、認証、ケイパビリティ、コンテンツ数、帰属、メモ。 |
| 任意のエンドポイントに対する静的なBrAPI v2.1フィルタカタログ — すべての |
取得
ツール | 説明 |
| 作物 / 試験タイプ / シーズン / 場所 / プログラムで研究を検索します。分布 + データフレームのスピルオーバー。 |
| プログラム / 試験 / 場所のFKを解決し、関連カウント(観察、ユニット、変数)付きで研究を取得します。 |
| 名前、シノニム、アクセッション、PUI、作物、またはフリーテキストで遺伝子資源を検索します。分布 + データフレームのスピルオーバー。 |
| 属性、直接の親、および関連カウント(研究、親、子孫)付きで遺伝子資源を取得します。 |
| 祖先 / 子孫を、重複排除されたDAGとしてBFSで探索します。サイクル検出、深さ制限、トラバーサル統計付き。 |
| 名前 / クラス / オントロジー / フリーテキストで観察変数を検索します。 |
| 研究 / 遺伝子資源 / 変数 / シーズン / ユニット / タイムスタンプで観察レコードを取得します。データフレームのスピルオーバー。 |
| ユニット / 研究 / オントロジー / MIMEタイプで画像メタデータをフィルタリングします。バイトは |
| 最大5つのimageDbIdの画像バイトを |
| 国(ISO alpha-3コード、またはクライアント側で解決される英語の国名)/ タイプ / 略称で研究ステーションを検索します。オプションでクライアント側のbboxフィルタを使用できます。 |
| バリアントセット、リファレンス、またはゲノム領域(1始まりのインクルーシブ / エクスクルーシブ)でバリアントレコードを検索します。 |
| 非同期検索のポーリングを介して遺伝子型コールを取得します。上流の取得は |
分析
ツール | 説明 |
| スピルオーバー後はここから始めます。データフレームを一覧表示(または1つを説明)し、列スキーマ、行数、発信元の来歴を表示します。 |
| インメモリデータフレーム(DuckDBベース)に対するSELECT SQL。スピルオーバーした |
|
|
|
|
| 1つ以上の研究から遺伝子資源 × 形質マトリックスを構築し、キャンバスデータフレームとして具体化します。ワイド(ピボット)またはロング形状を、設定可能なセルごとの集計でサポートします。 |
| 観察があるすべての研究にわたる、単一の遺伝子資源に対する変数ごとのパフォーマンス集計(n、平均、中央値、sd、最小、最大、studyCount)。 |
| バリアントセットの遺伝子型コールを、遺伝子資源 × バリアントのキャンバスデータフレームとしてエクスポートします。VCF-liteまたはPLINK |
書き込み(オプトイン: BRAPI_ENABLE_WRITES=true)
ツール | 説明 |
| 2フェーズの観察書き込み — |
脱出ハッチ
ツール | 説明 |
| キュレーションされたツールでカバーされていない任意のBrAPI |
| 非同期ポーリングを透過的に処理する任意の |
エイリアス検出。 組み込みおよびオペレーター設定のエイリアスは、サーバー起動時に
brapi_connectの説明に追加されるため、エージェントはtools/listでインベントリを確認できます。環境変数の変更後は再起動して更新してください。
Related MCP server: Helix MCP Server
リソース
リソースを好むクライアント向けに、キュレーションされたツールサーフェスのURIアドレス可能なミラーです。すべてのリソースはデフォルト接続を使用します — マルチサーバーワークフローはツール経由でルーティングされます。
URIテンプレート | ミラー |
|
|
| 生のケイパビリティプロファイル |
|
|
|
|
|
|
| 観察変数レコード(形質、スケール、メソッド、オントロジー) |
プロンプト
マルチステップのBrAPIワークフローテンプレート — 純粋なユーザーメッセージ生成器であり、副作用はありません。
Name | Args | Purpose |
|
| 1つの研究のためのEDAプレイブック — 方向付け、変数、カバレッジ、欠測データ、外れ値、系譜、構造化レポート。 |
|
| 研究横断的メタ分析 — 形質の解決、研究の発見、調和化、系統ごと × 研究ごとおよび研究横断の要約。 |
マルチエージェントワークフロー
サーバーには2つのステートフルなレイヤーと2つのスコープ軸があります。
Layer | Default scope | Why |
接続状態(エイリアス、交換済みトークン) | テナント + セッション | 資格情報とライブトークン。テナントはユーザー( |
データフレーム( | テナント + セッション | 1つの(テナント、セッション)内では、エージェントは |
1つの(テナント、セッション)内では、データフレームは自己クリーニング型の共有ノートブックとして機能します。同じMCPセッション上の並行エージェント間で df_<uuid> 名を渡し、マルチステップのワークフロー全体で永続化し、任意の位置からクエリ/射影/集約/結合を行えます。名前によるアドレス指定、時間制限付き、そのセッションにスコープされます。
デフォルト(分離)の形状。 MCP_AUTH_MODE=none + HTTPステートフル(デフォルト)では、各MCPセッションが独自の接続状態と独自のキャンバスを切り分けます。同じホストに接続した2人の研究者は、互いの brapi_connect エイリアス、交換されたSGN/OAuthトークン、または書き出された df_<uuid> 行を見ることはできません。Stdioは常に1つのセッションとして動作します(シングルプロセス、並行性なし)。
MCPリビジョン2026-07-28のクライアント。 そのリビジョンはすべてのトランスポートでセッションレスです。リクエストは Mcp-Session-Id を運ばないため、ctx.sessionId は未定義になり、それをネゴシエートするクライアントは MCP_SESSION_MODE=stateful であっても共有テナントワークスペースにフォールバックします。セッション分離は2025年世代のクライアントに適用されます。2026年世代のクライアントに厳格な境界が必要なデプロイメントでは、MCP_AUTH_MODE=jwt/oauth でテナントを切り分ける必要があります。
共有ワークスペースの形状。 1つのテナント内でのクロスセッションコラボレーションには BRAPI_SESSION_ISOLATION=false を設定します。これにより、複数のMCPセッションが接続状態と1つのデフォルトキャンバスを共有します。これはpre-0.5.3デプロイメントの動作と同じです。プランニング、分析、レポート作成のエージェントが別々のMCPクライアントとして実行される一方で、共有された上流の資格情報を使って1人の研究者として動作する場合に有用です。
特権データについて。 df_<uuid> 名はキャンバス内のケイパビリティトークンであり、行レベルのアクセス制御ではありません。同じ(テナント、セッション)バケット内でその名前を保持している人は誰でもその行を読むことができます。デフォルトの分離では、そのバケットは1つのMCPセッションです。BRAPI_SESSION_ISOLATION=false では、バケットはテナント全体に広がります(auth=none の場合はすべての呼び出し元、jwt/oauth の場合は1人のユーザーのセッション)。データフレーム名は認証済み共有リンクのように扱ってください。バケット内でのみ渡し、外部には渡さないでください。24時間のTTLが爆発半径を制限し、来歴トレイル(発信元ツール、baseUrl、クエリ)が監査を支援します。二重の安全策として、brapi_dataframe_describe は共有信頼HTTP上で明示的な dataframe 名を要求し(全件列挙は不可)、brapi_dataframe_query はシステムカタログの読み取り(information_schema、pg_catalog、sqlite_master、duckdb_*)を拒否するため、既知の df_<uuid> 名を持たない呼び出し元はどちらの表面からも探索できません。
BrAPI固有の機能
データフレームのスピルオーバー —
find_*ツールはコンテキスト内の行をloadLimitで上限し、より大きなユニオン(最大5万行/50ページ)をDuckDBバックエンドのdf_<uuid>キャンバスデータフレームとして具体化します。brapi_dataframe_describeで発見し、brapi_dataframe_queryでクエリします(LIMIT/OFFSETによるSQLページング、射影、集約)。SQLゲートで読み取り専用を強制し、デフォルトではセッションスコープです(BRAPI_SESSION_ISOLATION=falseではテナントスコープ)— マルチエージェントワークフロー を参照。マルチサーバーセッション —
ServerRegistryはエイリアスをライブなBrAPI接続にマッピングします。1つのセッションでBreedbase、T3、Sweetpotatobaseを並行してまたぐことができます。組み込みの既知サーバーレジストリ —
bti-cassava、bti-sweetpotato、bti-breedbase-demo、t3-wheat、t3-oat、t3-barleyは環境変数なしでそのまま解決されます。オリエンテーションエンベロープにはCC-BYの帰属表示が含まれます。ケイパビリティ対応の呼び出し —
CapabilityRegistryは接続ごとに/serverinfoをキャッシュし、すべてのツール呼び出しをサポートされていないエンドポイントから保護します。/serverinfoが不十分な場合は/callsにフォールバックします。方言適応 —
spec/brapi-test/breedbase/cassavabase/bms方言は、v2.1の複数形フィルターキーを各サーバーファミリーが尊重する単数形に変換し、壊れていることが分かっているフィルターを除外し、スパースシェイプのエンコーディングを正規化し、GETが複数値フィルターを黙ってダウンキャストする場合にはPOST/search/{noun}にエスカレーションします。/serverinfo(server-name / organization-name)から検出され、BRAPI_<ALIAS>_DIALECTでエイリアスごとに固定できます。検証済みと推測のマッピング数の内訳はオリエンテーションエンベロープに表示され、エージェントは信頼度の下限を一目で確認できます。DuckDB必須 —
@duckdb/node-apiは通常の依存関係です。フレームワークのキャンバスが利用できない場合、起動はフェイルクローズドします。Cloudflare Workersではサポートされていません(そのランタイムにはネイティブバイナリがありません)。非同期検索の透過性 —
brapi_find_genotype_callsとbrapi_raw_searchは、POST /search/{noun}→GET /search/{noun}/{id}の202リトライパターンを自動的に処理します。系譜DAGウォーク —
brapi_walk_pedigreeは、サイクル検出を備えたBFSで祖先/子孫を走査します(BrAPIは呼び出しごとに1世代しか公開しません)。1,000ノードの安全上限がウォークを制限し、到達するとtruncatedを設定します。loadLimitより大きいウォークは、ノードセットとエッジセットを2つのJOIN可能なキャンバスデータフレームにスピルし、制限付きのインラインプレビューを返します。画像コンテンツ —
brapi_get_imageはバイトをMCPのtype: imageブロックとしてインラインで取得し、/images/{id}/imagecontentを優先し、imageURLにフォールバックします。フリーテキスト変数ランキング —
OntologyResolverはクエリ(PUI / 名前 / 同義語 / 形質クラス)に対して変数をスコアリングするため、find_variables text:"..."は/ontologiesがなくてもランク付けされた候補を返します。1つのスキーマでの認証バリアント — タグ付きユニオンは
none/bearer/api_key/sgn(セッショントークン交換)/oauth2(クライアントクレデンシャル)をカバーします。型付きエラー契約 — 宣言されたすべての障害モードは、安定した
data.reason、HTTPスタイルのcode、およびrecovery.hintを保持するため、クライアントは決定的にルーティングできます。
@cyanheads/mcp-ts-core 上に構築 — 宣言的定義、統合エラーハンドリング、プラグ可能な認証(none / jwt / oauth)、交換可能なストレージ、オプションのOTelによる構造化ロギング、STDIO + Streamable HTTPトランスポート。
データフレームの操作
find_* ツールの上流の合計が loadLimit を超えると、完全なユニオンがキャンバスデータフレームとして具体化され、レスポンスにはインラインの dataframe ハンドル({ tableName, rowCount, columns, createdAt, expiresAt, … })が含まれます。SQLセーフな識別子ではない上流の列名(end のような予約語、数字で始まるID)はデータフレーム用にサニタイズされ、ハンドル上の columnLegend は名前を変更した各列を元のキーにマッピングします。SQLはページングの慣用句です。LIMIT/OFFSET でページを移動し、射影(SELECT col1, col2)で列を削減し、集約(COUNT、GROUP BY、AVG)ですべての行を具体化せずに要約できます。
データフレーム名はデフォルトではセッションスコープのケイパビリティトークンです。同じMCPセッション上の他のエージェント(または同じワークフローの後続ステップ)に tableName を渡すと、上流から再取得することなく、名前で同じワークスペースをクエリできます。brapi_dataframe_* ツールはSQL操作などを提供します。クロスセッション/クロステナントのルールについては マルチエージェントワークフロー を参照してください。
1. brapi_find_observations { studies: ["s-422"] }
→ first-page rows inline + dataframe.tableName = "df_<uuid>" (when totalCount > loadLimit)
2. brapi_dataframe_describe { dataframe: "df_<uuid>" }
→ schema + provenance (originating tool, baseUrl, query, expiry)
3. brapi_dataframe_query { sql: "SELECT germplasmName, value FROM df_<uuid> WHERE observationVariableDbId = 'V1' LIMIT 100" }
→ typed columns + bounded rows
4. brapi_dataframe_query { sql: "SELECT COUNT(*) AS n, AVG(CAST(value AS DOUBLE)) AS mean FROM df_<uuid> WHERE observationVariableDbId = 'V1'" }
→ aggregate without round-tripping all rowsデータフレームはTTL(BRAPI_DATASET_TTL_SECONDS、デフォルト24時間)で自動失効します。明示的なクリーンアップのために brapi_dataframe_drop を公開するには、BRAPI_CANVAS_DROP_ENABLED=true を設定します。
はじめに
MCPクライアント設定に追加します。ランナーを1つ選んでください:
{
"mcpServers": {
"brapi-mcp-server": {
"type": "stdio",
"command": "bunx",
"args": ["@cyanheads/brapi-mcp-server@latest"],
"env": { "MCP_TRANSPORT_TYPE": "stdio", "MCP_LOG_LEVEL": "info" }
}
}
}command/args を npx -y @cyanheads/brapi-mcp-server@latest(Bun不要)または docker run -i --rm -e MCP_TRANSPORT_TYPE=stdio ghcr.io/cyanheads/brapi-mcp-server:latest に置き換えます。
Streamable HTTPの場合:
MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http
# Server listens at http://localhost:3010/mcp環境変数は不要です。組み込みの6つのエイリアス(bti-cassava、bti-sweetpotato、bti-breedbase-demo、t3-wheat、t3-oat、t3-barley)はそのまま解決され、エージェントは実行時に brapi_connect を介して他の任意のBrAPI v2 URLに接続できます。資格情報が必要なサーバーでは、エージェント入力よりも環境変数を優先してください。パスワード/トークン/APIキーがLLMコンテキストに残らないようにするためです。エイリアス別の資格情報 を参照してください。
前提条件: Bun v1.3.11+ または Node.js v24+。@duckdb/node-api は必須の依存関係です。Linux/macOS/Windows × x64 および Linux/macOS arm64 でサポートされています(Windows arm64 は不可、Cloudflare Workers も不可)。
設定
すべての変数はオプションです。
変数 | 説明 | デフォルト |
| デフォルトのBrAPI v2ベースURL(例: | — |
| デフォルト接続のSGNセッショントークン認証。 | — |
| デフォルト接続のOAuth2クライアント資格情報。 | — |
| デフォルト接続の静的APIキー。 | ヘッダー |
| 組み込みレジストリから削除するカンマ区切りのエイリアス名(大文字小文字を区別しない)。 | — |
|
|
|
| キャンバススピルオーバーウォーク中に使用される上流の |
|
| 接続ごとの同時実行数の上限。 |
|
| 指数バックオフ付きの429/5xx再試行ポリシー。 |
|
| リクエストごとのHTTPタイムアウト。 |
|
| 重要でないコンパニオンエンリッチメント(FKルックアップ、カウントプローブ)向けのより短いタイムアウト。コンパニオンは再試行予算もバイパスするため、遅い上流はレスポンスを引き延ばす代わりに警告として表面化する。 |
|
| 非同期 |
|
| スピルされた行とともに永続化されるデータフレームの来歴メタデータのTTL。 |
|
| プログラム / 試験 / 場所 / 作物キャッシュのTTL。 |
|
| RFC 1918 / ループバックターゲットを許可。開発専用。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| — |
|
|
|
| トランスポート( |
|
| 認証モード( |
|
|
|
|
エイリアスごとの上書きは BRAPI_<ALIAS>_* パターンに従います。すべての上書きとインラインコメントについては .env.example を参照してください。
エイリアスごとの認証情報
brapi_connect は、エージェントがそれらを省略した場合に baseUrl と auth を環境変数から解決します。認証情報がLLMコンテキストに入ることはありません。優先順位は4層です:
明示的なエージェント入力 — 常に優先されます。
エイリアスごとの環境変数 —
BRAPI_<ALIAS>_*(大文字に変換、ハイフンはアンダースコアに:my-server→BRAPI_MY_SERVER_*)。組み込みの既知サーバーレジストリ — 組み込みエイリアス を参照。
デフォルト環境変数 —
BRAPI_DEFAULT_*。エイリアスがdefaultと異なる場合のみ。組み込みURLの上に重ねられません。デフォルトはデフォルトサーバーに属します。
各エイリアスは 1つ の認証情報ファミリーを持ちます。認証モードはどのフィールドが設定されているかから導出されます:
設定される変数 | 解決される |
|
|
|
|
|
|
|
|
(未設定) |
|
エイリアス内でファミリーを混在させると ValidationError が発生します。
# .env — attach write credentials to the built-in 'bti-cassava' alias
BRAPI_BTI_CASSAVA_USERNAME=alice
BRAPI_BTI_CASSAVA_PASSWORD=...
# (BASE_URL omitted — built-in registry covers it)
# Static API key as alias 'prod'
BRAPI_PROD_BASE_URL=https://my-brapi.example.com/brapi/v2
BRAPI_PROD_API_KEY=...
BRAPI_PROD_API_KEY_HEADER=X-API-Keyその後、エージェントは brapi_connect({ alias: 'bti-cassava' }) を呼び出します — baseUrl も auth も、プロンプト内のシークレットもありません。
組み込みエイリアス
サーバーには、厳選された公開 BrAPI v2 エンドポイントのレジストリが同梱されています。それぞれがそのまま動作します。オリエンテーションエンベロープは、クリエイティブ・コモンズ表示の下で、attribution ブロックにライセンス、引用、ホームページを表示します。
エイリアス | アップストリーム | ホスト | 作物 | 備考 |
| Boyce Thompson Institute | キャッサバ | NextGen Cassava | |
| Boyce Thompson Institute | サツマイモ | ||
| Boyce Thompson Institute | デモ | サンプルデータのみ — オンボーディングとテスト用。 | |
| Triticeae Toolbox (T3) | コムギ | Wheat CAP / IWYP. | |
| Triticeae Toolbox (T3) | エンバク | Global Oat Genetics Database. | |
| Triticeae Toolbox (T3) | オオムギ | T-CAP / US Wheat & Barley Scab Initiative. |
BRAPI_<ALIAS>_BASE_URL を設定すると、ステージングミラーやフォークを指し示すことができます(環境変数は組み込み URL より優先されます — エイリアス内のハイフンは環境変数内でアンダースコアになるため、t3-wheat → BRAPI_T3_WHEAT_BASE_URL となります)。BRAPI_<ALIAS>_USERNAME などを設定すると、組み込み URL の上に資格情報を付与できます — 各 Breedbase インスタンスには独自のユーザーテーブルがあるため、書き込みアクセスには各アップストリームへの個別登録が必要です。BRAPI_BUILTIN_ALIASES_DISABLED=bti-cassava,t3-wheat を使用すると、特定のエントリを削除できます。
引用: 6 つの組み込みエイリアスはすべて、Morales et al. 2022, "Breedbase: a digital ecosystem for modern plant breeding." G3 12(7): jkac078 を参照しています。doi:10.1093/g3journal/jkac078。
サーバーの実行
# Hot-reload dev (Bun runs TS directly)
bun --watch src/index.ts
# Production
bun run rebuild
bun run start # transport via MCP_TRANSPORT_TYPE (stdio default)
bun run start:stdio # or pin explicitly
bun run start:http
# Checks
bun run devcheck # lint + format + typecheck + security + changelog sync
bun run test # Vitest
bun run lint:mcp # validate MCP definitionsDocker
docker build -t brapi-mcp-server .
docker run --rm -p 3010:3010 brapi-mcp-serverデフォルトでは HTTP トランスポート、ステートフルセッションモード(mcp-session-id ライフサイクルを有効化 — BRAPI_SESSION_ISOLATION=true の前提条件。ハイジャック保護には MCP_AUTH_MODE=jwt|oauth の重ね合わせが必要)、ログは /var/log/brapi-mcp-server に出力されます。OTel のピア依存関係はデフォルトでインストールされます — 省略するには --build-arg OTEL_ENABLED=false を使用します。
デプロイメント形態
brapi-mcp-server は 3 つの形態で動作します — 信頼ドメインに合うものを選択してください。違いは、接続状態(登録済みエイリアス、キャッシュされたアップストリームトークン)とデータフレームを何で分離するかです:何もしない、MCP セッション、または認証テナントです。
形態 | 設定 | 分離 | 最適な用途 |
セッションごと(デフォルト) |
| 各 MCP セッションが独自の接続状態とキャンバスを切り出します。同時の HTTP 呼び出し元は、互いのエイリアス、交換済みトークン、 | SSO なしのマルチユーザーホスト。共有信頼認証下での機関・公開デプロイメントのデフォルト。 |
ユーザーごとの資格情報 |
| 各ユーザーの JWT | 機関 SSO(Shibboleth、Okta など)を使用するマルチユーザーホスト — 最も強力な分離。 |
共有ワークスペース |
| すべての呼び出し元が 1 つのテナント内で接続状態と 1 つのキャンバスを共有します。 | ソロ、ラボ、またはすべての呼び出し元が 1 人の研究者で、共有アップストリーム資格情報で並列エージェントを実行するホスティング。 |
形態選択ガイド:
SSO なしのマルチユーザー公開・機関 HTTP。 セッションごとのデフォルトを使用します。各研究者のステートフル HTTP セッションは、すべてが
tenantId='default'に解決される場合でも分離されます。機関 SSO を使用するマルチユーザー。
MCP_AUTH_MODE=jwt(HS256、MCP_AUTH_SECRET_KEY)またはoauth(JWKS、OAUTH_ISSUER_URL+OAUTH_AUDIENCE)。各ユーザーのtidクレームがテナント — 外部スコープ — を切り出します。BRAPI_SESSION_ISOLATION=true(デフォルト)は、並列セッションを実行するユーザーに対して各テナント内でサブスコープ化し、JWT/OAuth アイデンティティバインディングがその上に真のセッションハイジャック保護を提供します。1 人の研究者、並列エージェント。 複数のエージェント(プランナー、アナリスト、レポート作成)が別々の MCP クライアントとして接続するが、1 つのワークスペースを共有する必要がある場合、
BRAPI_SESSION_ISOLATION=falseを設定し、共有信頼に依存します。これが共有ワークスペース形態です。Stdio。 常に 1 セッション。分離は無意味です。このフラグは効果がありません。
MCP リビジョン 2026-07-28 のクライアント。 プロトコル上セッションレスであるため、
BRAPI_SESSION_ISOLATIONの設定に関係なく共有テナントワークスペースに配置されます。ユーザーごとの資格情報形態のみがこれらを分離します。
共有信頼下での二重防御。 BRAPI_SESSION_ISOLATION=false でも、brapi_dataframe_describe は HTTP 上で明示的な dataframe 名を要求し(リスト全体の列挙は不可)、brapi_dataframe_query はシステムカタログの読み取り(information_schema、pg_catalog、sqlite_master、duckdb_*)を拒否します。データフレーム名が機能トークンであり、保持していることがその証明となります。
開発
完全なアーキテクチャルールについては CLAUDE.md を参照してください。要約:
ハンドラーがスローし、フレームワークがキャッチする — ツールロジックに
try/catchはありませんログには
ctx.log、ストレージにはctx.stateを使用 —consoleなし、直接の永続化なし新しいツールは
src/index.tsのcreateApp()のtools配列に登録しますアップストリーム呼び出しをラップする: 生データを検証 → 正規化 → 出力スキーマを返す。欠落フィールドを捏造しない
git clone https://github.com/cyanheads/brapi-mcp-server.git
cd brapi-mcp-server
bun install
cp .env.example .env # edit if you need credentials
bun run devcheck && bun run testPR 歓迎します。
ライセンス
Apache-2.0 — LICENSE を参照してください。
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Query, browse, and automate OmegaAI workspaces from any MCP client. Streamable HTTP with OAuth 2.0.
Create, browse, remix, collaborate on, and run durable AI workflow nodes from MCP hosts.
AI agent registry — search, discover, register, and connect agents via MCP.
- OctopadOAuthapp.octopad
The back-office workspace for your team's AIs: tasks, knowledge and context shared over MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to explore, search, and query API definitions from OpenAPI/Swagger JSON files.59MIT
- FlicenseAqualityCmaintenanceA local-first MCP server providing secure workspace file operations, offline full-text search, and web search/fetch capabilities without requiring API keys.10-
- AlicenseNot gradedqualityCmaintenanceMCP server for querying the GWAS Catalog (EBI/NHGRI), a curated catalog of genome-wide association studies. It enables AI agents to search and retrieve study data via natural language or direct tool calls.7MIT
- AlicenseNot gradedqualityBmaintenanceA vendor-neutral MCP server that lets coding agents search and understand OpenAPI/Swagger documents via stdio tools, without calling real backend APIs.1791MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cyanheads/brapi-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server