AGZ Rust MCP について
AGZ Rust MCP は、Cargo のプロジェクトやワークスペース向けのスタンドアロン stdio サーバーです。オフラインでのソース探索、コンパイルやテスト、実行、ドキュメント検索、Rust Analyzer の機能を備え、変更はワークスペースに直接書き込まず編集パッケージとして扱います。
主な機能
- 01オフラインでのワークスペース確認とソース検索
- 02Cargo のチェック、Clippy、テスト、実行
- 03バージョン指定による crate ドキュメント検索
- 04Rust Analyzer によるナビゲーションと API 調査
- 05書き込みを伴わない変更・修復・リファクタリングパッケージ
活用シーン
- 01コンパイルせずに Cargo ワークスペースを把握
- 02特定のテストやサンプルを実行
- 03依存関係の API やコンパイル診断を調査
- 04ソースを変更せずに検証済み編集を準備
MCP 対応
stdio MCP サーバーとして Rust 開発ツールを提供し、プロンプトとリソースも同梱します。MCP クライアントは、コンパクトなコアツールセットまたは全ツールカタログを選べます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
AGZ Rust MCP
English | Türkçe
AGZ Yazılım の製品です。 agz-rust-mcp は、Cargo と rustc に基づいた汎用 Rust 開発向けのスタンドアロン stdio MCP サーバーです。プロジェクトをオフラインで調査し、対象を絞ったソースコンテキストとコンパイラ診断を収集し、個別のテストを選択して、バイナリやサンプルを実行できます。バージョンを厳密に指定した依存関係のドキュメント、Rust Analyzer によるナビゲーション、書き込みを行わない変更・リファクタリング用パッケージにより、より踏み込んだ作業を支援します。
日常的なワークフロー
ライブラリ、CLI、サービス、複数パッケージの Cargo ワークスペースのいずれでも、同じワークフローを利用できます。フレームワーク固有のプロジェクト構成や、特定の MCP クライアントは必要ありません。
| 必要な作業 | ツール呼び出し |
|---|---|
| コンパイルせずにパッケージ、宣言済みターゲット、機能、依存関係を把握する | workspace(action="inspect") |
| コードを検索し、範囲を指定して行番号付きのソースを読む | workspace(action="search", query="parse_record")、続けて workspace(action="read", path="src/lib.rs", line=1, lineCount=80) |
| 最新のコンパイラ診断を取得する | check(target="check", options={"packages":["my_crate"]}) |
| 実際のテスト名を確認する | test(action="list", packages=["my_crate"]) |
| 完全な名前を指定して、ライブラリテストを1つ実行する | test(action="run", packages=["my_crate"], cargoTarget={"kind":"lib"}, filter="tests::parses_record", exact=true) |
| テストを実行せずにコンパイルする | test(action="compile", packages=["my_crate"]) |
| バイナリまたはサンプルを実行する | run(package="my_crate", target={"kind":"example","name":"demo"}, args=["input.json"], timeoutMs=30000) |
| 不慣れな依存関係の API を調べる | 正確なバージョンを指定して docs を使います。さらに詳しく解決・調査するには api を使います |
クライアントの起動場所が別のディレクトリである場合は、アクティブなプロジェクトの絶対パスを dir に指定します。
関数はテストまたは実行可能なサンプルを通じて実行します。run は型付きの Cargo ランナーです。スペースやシェルのメタ文字を含め、プログラム引数はそのまま渡されます。テストとアプリケーションは、通常の副作用を伴ってプロジェクトコードを実行します。選択項目が空の場合は、テスト合格ではなく NO_TESTS が返されます。
日常的に使う6つのツール(workspace、check、test、run、docs、crate_lookup)をまとめたカタログには、agz-rust-mcp --toolset core を使用します。デフォルトの --toolset full では、既存のすべてのツールに加え、新たに追加されたツールもすべて利用できます。個別の --tools-<name> false スイッチを使って、さらにツールを無効にできます。制限と結果の状態については、完全版リファレンスを参照してください。
インストール
# installer script (Linux x86_64): download install.sh and SHA256SUMS from the
# latest release, verify the script, then run it
bash install.sh
# crates.io (requires Rust 1.88.0 or newer)
cargo install agz-rust-mcp --locked
agz-rust-mcp --version
.sha256 ファイル付きのビルド済み .tar.gz アーカイブを、Linux x86_64、macOS arm64、Windows x86_64 向けに提供しています。0.2.0 までのリリースでは従来の agz-rust-coder-* というアセット名を使用し、0.3.0 以降では agz-rust-mcp-* という名前を使用しています。
OS ごとの手順、注意事項、チェックサムの検証、トラブルシューティングについては、docs/install.md · Türkçe を参照してください。
MCP クライアントのセットアップ
現在のソースには、オフラインで使える4つのスキルも同梱されています:agz-rust-workflow、
agz-rust-repair、agz-rust-refactor、agz-rust-performanceです。1つの実行ファイルが、MCP のプロンプトとリソースを通じてツールとワークフローを提供するため、2つ目の MCP は不要です。ファイルシステムベースのクライアントでは、agz-rust-mcp skills exportを使用できます。
同梱スキルを参照してください。
同梱スキルは0.4.0から利用できます。0.3.0のバイナリには含まれていません。
| クライアント | 設定 | ガイド |
|---|---|---|
| ZCode | ~/.zcode/cli/config.json → mcp.servers.rust | ZCode |
| OpenCode | opencode.jsonc → mcp.rust | OpenCode |
| OpenCode2 | opencode.jsonc → mcp.servers.rust | OpenCode2 |
| Codex | ~/.codex/config.toml → mcp_servers.rust | Codex |
ご利用のクライアントに対応する例を使用してください。OpenCode と OpenCode2 では設定の形式が異なります。
どちらも、インストール済みのagz-rust-mcpバイナリを起動します。接続する前に一度agz-rust-mcp --versionを実行し、クライアントのPATHが異なる場合は絶対パスを使用してください。
現在のディレクトリが、デフォルトで許可されるルートです。クライアントの起動場所が異なる場合は、--allow-root引数を繰り返し指定して明示的なルートを追加してください。クライアントから提供される MCP ルートによって設定済みのアクセス範囲を狭めることはできますが、広げることはできません。
クライアントごとのセットアップについては、docs/install.mdを参照してください。
ドキュメント
次の順にドキュメントをお読みください。
- インストールとクライアントのセットアップ - すべてのインストール方法と クライアント設定。
- ツールと設定のリファレンス - ツール、アクション、結果の セマンティクス、およびすべての設定キー。
- アーキテクチャ - プロセスモデル、プロトコルのライフサイクル、 および権限の境界。
- 検証とベンチマークのプロトコル - スモークテスト、ゲート、および エビデンス。
- セキュリティポリシーおよびコントリビューション。
読み進める順序をすべて記載したバイリンガルの目次は、 docs/README.md / docs/README.tr.mdにあります。
識別情報
| 項目 | 値 |
|---|---|
| クレート、バイナリ、サーバー | agz-rust-mcp |
| MCP レジストリ | io.github.agzyazilim/rust-mcp |
| ソースバージョン | 0.5.0 |
| 初回リリース | 0.1.0 |
| リリースタグ | agz-rust-mcp-v<version> |
| Rust エディション / MSRV | 2024 / 1.88.0 |
| Rust MCP SDK | rmcp 3.1.4 |
| デフォルト / 検出されたプロトコル | 2025-11-25 / 2026-07-28 |
MCP パッケージの所有権マーカー:mcp-name: io.github.agzyazilim/rust-mcp。
ツール
MCP クライアントはツール名にプレフィックスを付ける場合があります(例:rust_*)。接続先サーバーのツールカタログにある名前を使用してください。
| MCP ツール | プレフィックス付きの名前の例 | デフォルト | 目的 |
|---|---|---|---|
workspace | rust_workspace | enabled | Cargo や Rust Analyzer を使わずに、マニフェスト/ロックファイルの確認、ソースの検索、抜粋のオフラインでの読み取りを行います。 |
test | rust_test | enabled | テストを検出、コンパイル、または実行します。正確な名前、無視するテストの制御、上限付き実行に対応しています。 |
run | rust_run | enabled | 正確に指定した Cargo のバイナリ/サンプルを、リテラル引数、期限、出力上限付きで実行します。 |
check | rust_check | enabled | 上限付きで Cargo check、Clippy、テスト、ドキュメント、または全ゲートを実行します。 |
profile | rust_profile | enabled | 観測された Cargo の再ビルド動作を分析し、測定していない高速化を主張することなく、上限付きのビルド証拠を比較します。 |
audit | rust_audit | enabled | Rust ソースをスキャンし、上限付きの静的解析結果を検出します。 |
crate_lookup | rust_crate_lookup | enabled | crates.io でクレートと、指定された場合は正確なバージョンを確認します。 |
docs | rust_docs | enabled | キャッシュ、ローカルソース、または docs.rs から、正確なバージョンのドキュメントを解決します。 |
context | rust_context | enabled | アイテムごとの理由を付けて、リビジョンに紐付いたセマンティックコンテキストカプセルを準備、展開、または差分化します。 |
api | rust_api | enabled | 上限付きのアナライザー証拠から API シグネチャを解決するか、ワークスペース設定の分離コピー内で候補スニペットを型チェックします。 |
explain | rust_explain | enabled | マクロ展開の来歴、トレイト要件、または cfg の有効化について説明します。 |
verify | rust_verify | enabled | 上限付きで機能、ターゲット、ツールチェーン、ステージのマトリックスを計画または実行します。 |
symbol | rust_symbol | enabled | 1 つのシンボルについて Rust Analyzer のホバーデータを読み取ります。 |
references | rust_references | enabled | 上限付きで参照を検索します。 |
definition | rust_definition | enabled | 選択した定義を検索します。 |
symbols | rust_symbols | enabled | 1 つの Rust ファイル内のシンボルを一覧表示します。 |
implementations | rust_implementations | enabled | 実装を検索します。 |
hierarchy | rust_hierarchy | enabled | 上限付きで呼び出し階層を追跡します。 |
rename | rust_rename | enabled | 適用はせず、検証済みの名前変更編集パッケージを生成します。 |
refactor | rust_refactor | enabled | 適用はせず、検証済みのリファクタリング編集パッケージを生成します。 |
change | rust_change | enabled | ワークスペースに書き込まずに、サーバー管理のスクラッチ領域でリビジョンに紐付いた変更セットを作成、ステージング、移行、検証します。 |
repair | rust_repair | enabled | ワークスペースに書き込まずに、失敗した変更リビジョンに対するコンパイラー主導の修正候補を分析、試行、比較、最小化します。 |
work | rust_work | enabled | 明示的なゲートと予算を設定し、型付きの意図を change/validate の各段階に進めます。正直なゲート証拠、または上限付きの単回使用ハンドオフを返します。 |
すべてのツールは、決定論的な構造化データと、それに相当する上限付きのテキストフォールバックを返します。外部データは untrustedData 内に保持されます。コンパイル失敗、クレートの欠落、ドキュメントの利用不可といった想定内のドメイン上の結果は型付き結果です。無効な入力、認可の失敗、リソースの枯渇、セマンティックインフラの利用不可はプロトコルエラーです。
設定
優先順位は、CLI、AGZ_RUST_MCP_* 環境変数、明示的に指定した --config TOML ファイル、デフォルトの順です。環境変数のキーでは、セクション間に __ を使用します。例:AGZ_RUST_MCP_GATE__HARD_TIMEOUT_MS=600000。
| キー | デフォルト | 意味 |
|---|---|---|
server.allow_roots | 正規化された CWD | ワークスペースの読み取り/コマンドの境界です。 |
server.allow_dependency_roots | 空 | 明示的に指定する外部パス依存関係のルートです。 |
gate.hard_timeout_ms | 600000 | Cargo 操作の期限です。 |
gate.scope | shadow | 検証対象:workspace、shadow、または affected です。 |
gate.cache | auto | キャッシュポリシー:auto、project、または isolated です。 |
rust_analyzer.workspace_code | deny | ワークスペースコードが無効になっていない場合、RA の起動を拒否します。 |
docs.fallback | auto | ドキュメントの取得元ポリシーです。 |
profile.max_report_bytes | 4194304 | 1 つの Cargo タイミング成果物の読み取り/保存サイズの上限です。 |
profile.max_runs | 4 | 1 回の profile 呼び出しで利用できる新規 Cargo 実行の回数です。 |
profile.compare_samples | 3 | 速度に関する主張を行う前に、各側で必要となるサンプル数です。 |
limits.tool_output_bytes | 49152 | シリアライズされたツール結果の最大サイズです。 |
change.max_bytes | 268435456 | 変更セットごとに取得できる候補データの最大サイズです。 |
repair.max_candidates | 4 | 1 回の repair アクションで試行できる候補数です。 |
repair.max_compiles | 4 | 1 回の repair アクションで実行できる Cargo 検証の回数です。 |
repair.wall_time_ms | 120000 | 1 回の repair アクションに割り当てられる実時間の上限です。 |
repair.minimize_max_candidates | 32 | repair(action=minimize) が試行できる、コンパイルによる評価を伴う削減の試行回数です。 |
repair.minimize_max_compiles | 16 | 再現とエクスポート検証を含め、repair(action=minimize) が実行できる Cargo の実行回数です。 |
work.max_candidates | 4 | 1 つの作業項目でホストがステージングできる候補リビジョン数です。 |
work.max_compiles | 12 | 1 つの作業項目で実行できるゲート検証の回数です。 |
work.wall_time_ms | 600000 | 1 つの作業項目に割り当てられる実時間の上限です。 |
telemetry.enabled | true | プロンプトやソースを含まない、制限付きのローカルアクティビティ記録です。 |
profile のエビデンスには上限があります。最新の 64 件はメモリに保持され、サーバー管理下の profile-evidence ディレクトリに保存されたタイミング成果物は、24 時間経過後、またはファイル数が 64 を超えた場合に削除されます。profile の結果にはこの保持ポリシーが示されるため、期限切れのエビデンスは黙って再利用されず、確認できます。
CLI の全フィールドを確認するには、agz-rust-mcp --help を実行してください。動作の詳細とデフォルトの一覧は、docs/tools.md にあります。
セキュリティ
サーバーはワークスペースのソースを変更しませんが、オペレーティングシステムのサンドボックスではありません。Cargo のビルドスクリプト、テスト、手続き型マクロ、ローカルの rustdoc、およびオプトインされた Rust Analyzer のワークスペースコードは、サーバーユーザーの権限で実行されます。この境界が必要な場合は、コンテナーまたは OS サンドボックスを使用してください。ワークスペース、依存関係、キャッシュ、リース、ジャーナル、ドキュメント、テレメトリの各パスは正規化され、範囲が制限されます。また、フェイルクローズで処理され、標準出力は MCP のフレーミング専用です。脆弱性は SECURITY.md の説明に従って、非公開で報告してください。
リンク
- リポジトリ:https://github.com/agzyazilim/rust-mcp
- クレート:https://crates.io/crates/agz-rust-mcp
- SDK ドキュメント:https://docs.rs/rmcp/3.1.4/rmcp/
- MCP
2025-11-25:https://modelcontextprotocol.io/specification/2025-11-25 - MCP
2026-07-28:https://modelcontextprotocol.io/specification/2026-07-28
ライセンス
MIT、Copyright (c) 2026 Ugur Murat Altintas.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。