Bevy Manual MCP について
Bevy Manual MCP は、プロジェクトで検出した Bevy のバージョンに対応するドキュメント、API 情報、移行ガイド、サンプルを AI エージェントに提供する Rust 製 MCP サーバーです。バージョン別の索引により、シンボル検索や互換性確認、システムの構文レベルの lint も行えます。
主な機能
- 01バージョン対応の API・文書検索
- 02シンボルの詳細検索と API 差分
- 03実行可能なサンプルと移行ガイド
- 04マニフェストとプラグインの互換性確認
- 05システムの構文レベルの lint
活用シーン
- 01プロジェクトの Bevy 版に対応する API の検索
- 02Bevy のバージョン間の変更確認
- 03システムのアクセスパターンのレビュー
- 04Bevy プラグインのひな型作成
MCP 対応
stdio 経由で MCP クライアントに MCP ツールとバージョン別の `bevy://` リソースを提供します。プロジェクトのバージョンは `Cargo.lock` または `Cargo.toml` から検出でき、明示的な設定も可能です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
bevy-manual-mcp
この MCP は、人間が設計し、開発速度を高めるために AI ツールを使って構築しました。
Bevy はリリースごとに変化する、進化の速いプロジェクトです。ドキュメントは大規模で分散しているため、使用しているバージョンに本当に合った回答を見つけるには、rustdoc のシグネチャ、Bevy Book、移行ガイド、リリースノート、実行可能なサンプルを掘り下げることがよくあります。それでも、別のリリース向けに書かれた情報にたどり着いてしまうことがあります。このサーバーは、その手間をできる限り取り除くことを目指しています。
エージェントに質問すると、プロジェクトで使用している Bevy のバージョンに正確に合わせたナレッジに基づいて回答します。
主なポイント:
-
MCP Registry の名前:
mcp-name: io.github.kinkirill/bevy-manual-mcp -
ネイティブ。 Rust、stdio MCP を使用し、ユーザーの環境で Node や npm は不要です。(この MCP の初期バージョンは JS で、後に TS で書かれました。)
-
小型。 Bevy のバージョンごとに 33 MB のバンドルです(圧縮前のコーパスは 125 MB、tantivy インデックスは 15 MB、zstd 圧縮済み)。
-
高速。 コールドスタートは約 10 ms、概念検索は 22~30 ms、完全一致検索は 1 ms 未満です。
-
誠実。 各ツールは対応できないことを明示します。
bevy_validate_systemsは構文レベルのリンターであり、互換性は"unknown"の場合があり、欠けているメタデータは欠落として報告されます。
インストール
cargo install bevy-manual-mcp
Rust ツールチェーンが必要です。事前ビルド済みバイナリの一覧や npm shim はありません。
サーバーはすぐに応答を開始します。検出された Bevy バージョンのインデックスがインストールされていない場合、バックグラウンドで事前ビルド済みバンドルをダウンロードし(進行状況は stderr に表示)、インストール完了後にインデックスを再読み込みします。サーバーの起動前に明示的にインストールするには:
bevy-manual-mcp fetch-index 0.20.1
bevy-manual-mcp status
インデックスのリリースは Bevy の マイナー バージョンごとです(v0.20)。完全一致するパッチバージョンのコーパスがあればそれを使用し、ない場合は同じマイナーバージョンの最新コーパスがパッチバージョンへの回答に使用されます。ステータス、検索結果、リソースには、プロジェクトのバージョンと、実際にデータを提供したコーパスのバージョンが両方とも表示されます。BEVY_MCP_OFFLINE=1 にすると、バックグラウンドでの取得を含むすべてのダウンロードが無効になります。
使用方法
コマンドをそのまま実行すると MCP サーバー(stdio)が起動します。MCP クライアントはこのコマンドでサーバーを起動します。
bevy-manual-mcp # serve MCP over stdio
bevy-manual-mcp serve # explicit form
bevy-manual-mcp --help
bevy-manual-mcp status # detected version, corpus state, paths
bevy-manual-mcp versions # installed corpora
bevy-manual-mcp search "system ordering"
bevy-manual-mcp lookup Query::iter --json
MCP クライアントの設定
ほとんどのクライアントで必要なのは、コマンドだけです:
{
"mcpServers": {
"bevy-manual-mcp": {
"type": "stdio",
"command": "bevy-manual-mcp",
"env": {
"BEVY_PROJECT_ROOT": "/path/to/your/bevy/game"
}
}
}
}
クライアントの作業ディレクトリが Cargo プロジェクトであれば、BEVY_PROJECT_ROOT は省略できます。バージョンはまず Cargo.lock から、次に Cargo.toml から読み取られます。
ツール
| ツール | 回答できる内容 |
|---|---|
bevy_search | API と文章を横断する検索:シグネチャ、Book、ガイド、サンプル |
bevy_api | 実際のシグネチャ、ドキュメント、関連項目を含む正確なシンボル検索 |
bevy_examples | タスクに使える実行可能なエンジン/Book のサンプル |
bevy_migration | 2 つの Bevy バージョン間の破壊的変更 |
bevy_api_diff | 指定したコンパイル済みバージョン間での単一シンボルの比較 |
bevy_check_version | 最新の公開済み Bevy、パッチ更新か破壊的変更か、プレリリース |
bevy_indexed_versions | このインストールで回答可能な Bevy バージョン |
bevy_index_status | 自己診断:アクティブなバージョン、コーパス、パス |
bevy_mcp_check_release_index | このサーバーの GitHub インデックスリリースに、より新しいコーパス/リビジョンがあるかどうか |
bevy_check_manifest | 有効な Cargo 機能と、シンボルが利用可能かどうか |
bevy_validate_systems | 構文レベルの B0001/B0002 リント(タプル対応、フィルター) |
bevy_explain_error | 貼り付けられたパニック/警告を、バージョンを確認して説明 |
bevy_ecosystem_search | Bevy コーパスとインストール済みプラグインのコーパスを横断検索 |
bevy_ecosystem_compat | ベンダー提供スナップショットに基づくプラグインと Bevy の互換性 |
bevy_generate_plugin | syn で解析された、自己完結型プラグインのひな形 |
bevy_perf_advisor | パフォーマンスに関するトピックと is_changed/is_added の検出 |
bevy_validate_systems は型チェックを行わず、Bevy のランタイムパニックを判定できません。B0001/B0002 のアクセスパターンを認識し、分析が不完全な場合はその旨を示します。bevy_generate_plugin はコンパイラーを実行しないため、compile_verified: false を報告します。bevy_ecosystem_compat はオフライン専用で、評価できない要件演算子に対しては compatible: "unknown" を返します。
リソース
このサーバーは bevy:// リソースとテンプレートも公開します。
bevy://index/versions
bevy://api/<version>/<full::path>
bevy://kind/<version>/<kind>
bevy://module/<version>/<module>
bevy://crate/<version>/<subcrate>
bevy://owner/<version>/<Type>
bevy://doc/<version>/<rustdoc file>
一覧は 50 件ごとにページ分割され、カーソルはクエリに紐付けられます。読み込み時には、指定されたバージョンをオンデマンドで開きます。
設定
ファイル(bevy-mcp.config.json)、環境変数、デフォルト値がこの順に適用されます。環境変数が優先されます。
| 変数 | 意味 |
|---|---|
BEVY_PROJECT_ROOT | バージョン検出に使用する Cargo プロジェクト |
BEVY_VERSION | 明示的なバージョン指定。例:0.20.0 |
BEVY_MCP_DATA_DIR | 永続コーパスのディレクトリ(デフォルト:~/.cache/bevy-mcp/data) |
BEVY_MCP_OFFLINE | 1 にするとダウンロードを無効化 |
BEVY_MCP_INDEX_BASE_URL | fetch-index リリース用のミラー |
BEVY_DOC_DIR | build --doc-dir 用のローカル rustdoc ツリー |
BEVY_WEBSITE_DIR / BEVY_EXAMPLES_DIR | 再ビルド用のローカル文章/サンプルソース |
BEVY_META_DIR | ベンダー提供の bevy-meta ルート(機能グラフ、エラーコード) |
BEVY_MCP_COMPAT_PATH | 明示的な compat.json のパス |
BEVY_MCP_MAX_RESULTS | デフォルトの結果件数。1~20 |
BEVY_MCP_DEBUG | 1 にするとタイミング/進行状況の診断情報を表示 |
設定ファイルでは、プラグインのコーパス用に corpora 配列も指定できます。
{
"corpora": [
{ "crate": "bevy_egui", "version": "0.43.1" },
{ "crate": "bevy_rapier3d", "auto": true }
]
}
プラグインのコーパスは data/corpora/<crate>/<version>/ の下に置かれ、通常の build コマンドでビルドされます。
インデックスの再構築
# From a local `cargo doc` tree (or a docs.rs mirror)
bevy-manual-mcp build --doc-dir target/doc
# Canonical NDJSON input
bevy-manual-mcp build --records records.ndjson --out data/versions/0.20.0
# Release bundle + manifest
bevy-manual-mcp build --doc-dir ~/.cache/bevy-mcp/bevy-0.20.0 \
--pack dist/bevy-0.20.0-fmt1.tar.zst \
--manifest dist/index-manifest.json
8,665 件の rustdoc ページから 0.20.0 を完全に再ビルドする場合、リリースモードで約 30 秒かかり、正規コーパスが生成されます。内容は 253,196 件のレコード、653,264 個のシンボルキー、15.2 MB の tantivy インデックスです。GETTING-API-DOCS.md と HOW-IT-WORKS.md を参照してください。
開発
ディレクトリ構成、テスト、インデックスの再構築、リリースプロセスについては、docs/DEVELOPING.md を参照してください。
ライセンス
MIT。ベンダー提供の Bevy メタデータとウェブサイトの文章については、 docs/THIRD-PARTY-NOTICES.md を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。