mcpField
B
breedsim-mcp

breedsim-mcp

ローカル
github.com科学・教育03 日前に更新

breedsim-mcp について

breedsim-mcpは、AIエージェントからAlphaSimRの育種プログラムシミュレーションを実行できるMCPサーバーです。単一の確率的な実行結果ではなく、反復結果の分布と信頼区間付きのペア比較を返します。

主な機能

  1. 01創始集団の作成と由来情報の報告
  2. 02育種プログラムの反復シミュレーション
  3. 03サイクルごとの平均・標準偏差・95%信頼区間
  4. 04ペア差分によるプログラム比較
  5. 05表現型選抜とゲノム選抜への対応

活用シーン

  1. 01育種プログラムの各サイクルの結果を推定
  2. 02共通の乱数シードで2つの選抜方式を比較
  3. 03表現型選抜とゲノム選抜を評価

MCP 対応

このMCPサーバーは、集団作成、プログラム実行、プログラム比較などのAlphaSimR機能をAIエージェントに提供します。stdioで通信します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"musharna-breedsim": {
"command": "uvx",
"args": [
"breedsim-mcp"
],
"env": {
"OMP_NUM_THREADS": "<OMP_NUM_THREADS>"
}
}
}
}
起動コマンドuvx breedsim-mcp
設定が必要な環境変数
OMP_NUM_THREADSPinned to '1' at import so AlphaSimR results are reproducible; overriding it makes runs non-deterministic and the server reports that in every response.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypibreedsim-mcp0.6.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

breedsim-mcp

breedsim-mcp は、AI エージェントがAlphaSimRによる 育種プログラムのシミュレーションを実行できる MCP サーバーです。単一の確率的な 実行結果ではなく、反復間のばらつきを返すため、エージェントは選抜スキームによる 利得と、その確実性を説明できます。

CI PyPI Python License DOI Glama

反復を行う理由

単一のシミュレーション実行は結果とは言えないため、この API は単一の実行結果を返しません。同一の3サイクルプログラムを5つのシードで実行したところ、遺伝的利得の平均は [1.151, 1.841, 1.424, 1.429, 1.473]、 報告対象の値そのものに対する標準偏差は0.247でした(v0.1.0の構築時にAlphaSimR 2.1.0で2026-07-29に一度測定)。そのため、run_program は反復回数の下限を設定し、サイクルごとの平均値、標準偏差、信頼区間を返します。点推定値に集約するフラグはありません。

インストール

uv pip install 以外にも、以下が必要です。

  • R ≥ 4.3 と共有ライブラリ(libR.so)
  • AlphaSimR。コンパイルには Rcpp/RcppArmadillo を使用し、数分かかります
  • libtirpc-dev。これがないと rpy2 のリンクに失敗します(cannot find -ltirpc)
  • rpy2 <3.6。3.6では R ≥ 4.4 が必要な R_getVar にバインドされるためです
sudo apt-get install -y r-base r-base-dev libtirpc-dev
R -e 'install.packages("AlphaSimR", repos="https://cloud.r-project.org")'
uv add breedsim-mcp

conda の Python は使用しないでください。conda には、システムの libicuuc が必要とするバージョンより古い libstdc++ が含まれているため、rpy2 が GLIBCXX_3.4.30 not found というエラーで libR.so の読み込みに失敗します。システムまたは uv 管理下のインタープリターを使用してください。mcp 2.x が必要です。

MCP クライアントの設定

サーバーは breedsim-mcp コンソールスクリプトを介して stdio で通信します。

Claude Code

claude mcp add breedsim -- breedsim-mcp

Claude Desktop(claude_desktop_config.json):

{
  "mcpServers": {
    "breedsim": {
      "command": "breedsim-mcp"
    }
  }
}

実行ファイルが PATH 上にない場合や、AlphaSimR がユーザーライブラリにある場合は、uv 経由で実行し、ライブラリのパスを渡してください。

{
  "mcpServers": {
    "breedsim": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/breedsim-mcp", "breedsim-mcp"],
      "env": { "R_LIBS_USER": "/home/you/R/library" }
    }
  }
}

list_methods() で確認してください。この関数はエンジンのバージョンと、このプロセスが現在再現可能な結果を生成できるかどうかを報告します。

ベンチマークでわかること

サーバーを使用した Claude と、R および AlphaSimR をインストールした環境で Claude が独自に AlphaSimR スクリプトを作成する方法を、育種シミュレーションに関する 34 問で比較し、各 3 回実行しました。同点とは、R と AlphaSimR をセットアップしなくても、サーバーが同じ結果を出せることを意味します。すべての実行で正解した問題数を、サーバーと Claude 独自のスクリプトで比較すると、Claude Haiku 5.5 は 34 対 33、Sonnet 5.5 は 28 対 33、Opus 5.5 は 34 対 34 でした(2026-10-18 に再実行)。いずれも有意差はありません(事前登録済み。Holm 補正済み McNemar 検定の p 値は、Haiku で 1.0、Sonnet で 0.25)。Sonnet の差は、シミュレーションを実行せず、育種家の方程式の理論に基づいて回答した実行で生じました。サーバーは Haiku ではより安価でした(34 問中 26 問)。一方、Sonnet と Opus ではより高価でした。ツールを使わない Opus の正解数は 102 問中 51 問でした。

育種シミュレーションに関する 34 問を各 3 回実行したときの、正解数と不正解数を示す積み上げ棒グラフ。Claude 単独:正解 51、不正解 51。Claude と Bash、R、Web:正解 99、不正解 3。Claude と breedsim-mcp:正解 102、不正解 0。LLM を使わないベースラインは、各質問につき 1 回回答:質問の種類ごとに定数を 1 つ使用した場合、正解 12、不正解 22。質問ごとに最適な閉形式を使用した場合、正解 15、不正解 19。

このグラフは Opus 5.5 の初回実行の結果で、AlphaSimR の実行を直接キーにしています。最も優れた既知の公式でも、正解するのは 34 問中 15 問にとどまります。このサーバーを使った Claude は 102 問中 102 問に正解し、独自の R と AlphaSimR を使った場合は 102 問中 99 問に正解しました(有意差なし。正確 McNemar 検定の p 値は 1.0)。単独では 102 問中 51 問に正解しました(どちらのツール構成も単独より優れており、p < 1e-6)。未公開コミットを使った再実行では、サーバーの指示を短縮し、出力を丸めた結果、どちらの構成も 102 問中 102 問に正解し、サーバーの回答あたりのコスト中央値は $0.051 から $0.033 に下がりました。Claude 独自のスクリプトは $0.027 で、34 問すべてでより安価でした(p = 1e-10)。所要時間に有意差はありません。

各質問には AlphaSimR の呼び出しが明記されているため、このテストはシミュレーションを独力で設計するのではなく、指定されたシミュレーションを実行する能力を測るものです。質問の作成とベンチマークの実行は私たち自身で行いました。第三者による再実行も歓迎します。手法、対照条件、その他の制限事項、および別途報告した確率に関する 6 問については、benchmarks/agent_qa をご覧ください。Haiku と Sonnet の実行結果はこちらです: 2026-10-20 の再実行。

ツール

ツール戻り値
list_methodsエンジンのバージョン、ジェネレーター、選抜方法、反復数の下限
found_populationsession_id、創始集団の由来、reproducible、測定された LD
run_programサイクルごとの分布:平均、標準偏差、95% CI
compare_programs2 つのプログラム間の対応のある差と CI
describe_session由来、形質アーキテクチャ、実行したサイクル数

一般的なループ:found_population → run_program → CI と警告を確認します。2 つの方式を比較する場合:found_population → compare_programs → difference を確認します。run_program では selection_method="phenotypic" または "genomic" を指定します。compare_programs では各群に 1 つずつ指定します。

docs/REFERENCE.mdには、すべてのツールシグネチャ、出力例、警告の表、以下のポイントの根拠となる測定値が記載されています。

  • run_program を 2 回呼び出すのではなく、compare_programs で比較してください。 両群に同じシードを使用し、各ペア内で差を計算するため、共通する偶然の影響が相殺されます。プログラムごとの区間が重なっていても、差がないことを意味するわけではありません。対応のある区間が依然としてゼロを除外する場合があります(警告 overlap_but_different)。対応のある区間にゼロが含まれる場合、favours は null になります。
  • ゲノム選抜には連鎖不平衡が必要です。 selection_method="genomic" は、創始時に設定した SNP チップセット(n_snp_per_chr)に RRBLUP を適合させます。デフォルトかつ唯一の再現可能なジェネレーターである quickHaplo には LD がないため、長時間稼働するプロセスでは再現性のない runMacs を使用してください。このエンジンでは、両方を同時に満たすことはできません。found_population は LD を測定し、マーカーに情報がない場合は警告(no_linkage_disequilibrium)を出します。
  • 再現性。 サーバーは R の起動前、インポート時に OMP_NUM_THREADS=1 を設定します。これがないと、同じシードでも結果が異なります。runMacs の RNG は R セッションごとに 1 回だけシードが設定され、その後の呼び出しで状態が進むため、この長時間稼働プロセスでは再度呼び出すと結果が異なります(reproducible: false)。
  • 警告は説明を提供します。警告によって結果が差し控えられることはありません。
  • 複数形質の選抜。 重み付き指数に基づいて選抜するには、h2 をリストとして渡し、index_weights を指定します。trait_correlation は実際の相関行列である必要があります(等しく相関する n 個の形質の場合、−1/(n−1) 未満にはできません)。無効な行列は拒否され、最も近い有効な行列に置き換えられることはありません。ゲノム選抜では形質ごとに 1 つの RRBLUP モデルを適合させ、推定育種価に指数を適用し、各 traits エントリーで prediction_accuracy を報告します。
  • 種。 species は runMacs にのみ適用されます。runMacs が持つ人口統計学的履歴は GENERIC、CATTLE、WHEAT、MAIZE です。それ以外は拒否されます。デフォルトは MAIZE ですが、植物専用のシミュレーターではありません。
  • 制限。 すべてのサイズパラメーターには上限があり、list_methods() の limits に記載されています。R は単一のインタープリターで、呼び出しは直列化されるため、上限を超える呼び出しが 1 回あると、ほかのすべての呼び出しがブロックされます。大規模なジョブでは、AlphaSimR を直接実行してください。

テスト

CI では R をインストールして AlphaSimR をコンパイルするため、テストスイートは Python 3.11、3.12、3.13 で実際のエンジンを使って実行されます。1 つのテストでは、R エンジンレイヤーをブリーダーの式 R = h²S と照合します(docs/EVAL.md)。このサーバーの創始集団の生成コードや選抜コードを外部の参照値と照合するテストではありません。docs/MUTATION-CHECKS.md には、意図的に作成した 25 個の変異が記録されています。24 個はテストを失敗させ、1 個は同等な変異であるため生き残っています。tests/test_perf_ratchet.py は、時間ではなく、パッケージ関数の呼び出し回数と R の評価回数の厳密なカウントによって各ツールを検証します。

制限事項

  • compare_programs は単一形質に対応しています。1つのペア判定には1つの基準が必要で、複数の形質がある場合はインデックスが基準となりますが、AlphaSimR はこれによるゲインを報告しません。
  • G×E、最適貢献選抜、交配ブロックの最適化、遺伝子型行列のエクスポートには対応していません。
  • ゲノム選抜は RRBLUP のみです。RRBLUP_D、_GCA、_SCA は、加算効果のみを扱う addTraitA のアーキテクチャにはない優性効果と組合せ能力効果を推定します。
  • セッションはメモリ内に保存され、最大8件(LRU)で、再起動後は保持されません。

ライセンス

GPL-3.0-or-later です。これは、GPLv2+ の rpy2 をインポートしているためです。AlphaSimR 自体は MIT ライセンスです。 非公式プロジェクトです。AlphaSimR の作成者、エディンバラ大学、または R Foundation との提携、承認、支援関係はありません。NOTICE をご覧ください。

CHANGELOG.md には、変更内容とその理由が記録されています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。