Rust MCP Server について
Rust 開発者、IDE、AI アシスタント向けの MCP サーバーです。標準化されたインターフェースで検査、Lint、フォーマット、テスト、ビルドを実行し、ワークスペース操作にも対応します。
主な機能
- 01構文と型の検査
- 02Clippy による Lint と修正
- 03Rust コードのフォーマット
- 04パターン指定でのテスト実行
- 05デバッグまたはリリースビルド
活用シーン
- 01Rust プロジェクトのコンパイルエラー確認
- 02一般的なコード問題の検出と修正
- 03ファイルまたはワークスペースの整形
- 04選択したテストや全体テストの実行
MCP 対応
stdin/stdout 上の JSON-RPC を介して Rust 開発ツールを MCP クライアントに提供します。cargo_check、cargo_clippy、rustfmt、cargo_test、cargo_build を呼び出せます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Rust MCP サーバー
AI アシスタントと IDE に不可欠な Rust 開発ツールを提供する Model Context Protocol(MCP)サーバーです。このサーバーでは、標準化された MCP インターフェースを通じて、Rust プロジェクトの構文チェック、リンティング、フォーマット、テスト、ビルドをリアルタイムで実行できます。
機能
利用可能なツール
-
cargo_check - 構文と型の検証
- Rust コードの構文と型を検証します
- ワークスペース全体のチェックに対応しています
- 詳細なエラーメッセージと提案を提供します
-
cargo_clippy - コードのリンティング
- よくあるミスを検出し、改善案を提案します
- 可能な場合は自動修正に対応しています
- リントレベルとルールを設定できます
-
rustfmt - コードのフォーマット
- スタイルガイドラインに従って Rust コードをフォーマットします
- 変更を適用せずにフォーマットをチェックできます
- 個別のファイルまたはプロジェクト全体のフォーマットに対応しています
-
cargo_test - テストの実行
- 詳細な出力を表示して Rust のテストを実行します
- 特定のテストパターンやパッケージに対応しています
- デバッグ用に出力のキャプチャを設定できます
-
cargo_build - プロジェクトのビルド
- Rust プロジェクトをデバッグモードまたはリリースモードでビルドします
- ワークスペースのビルドに対応しています
- ビルドのステータスとエラーの詳細を提供します
インストール
前提条件
- Rust ツールチェーン(rustc、cargo、clippy、rustfmt)
- Tokio 非同期ランタイムのサポート
ソースからビルド
git clone https://github.com/lh/rust-mcp-server
cd rust-mcp-server
cargo build --release
Claude Code との統合
クイックインストール
# Clone and build the server
git clone https://github.com/lh/rust-mcp-server
cd rust-mcp-server
cargo build --release
# Add to Claude Code (adjust the project path as needed)
claude mcp add rust-tools -s user -- $(pwd)/target/release/rust-mcp-server --project-path ~/Code
# Verify installation
claude mcp list | grep rust-tools
その他のインストール方法
絶対パスを使用する場合:
claude mcp add rust-tools -s user -- /path/to/rust-mcp-server/target/release/rust-mcp-server --project-path /path/to/your/rust/projects
プロジェクト固有のインストール:
# Navigate to your Rust project
cd /path/to/your/rust/project
# Add the server with current directory as project path
claude mcp add rust-tools -s project -- /path/to/rust-mcp-server/target/release/rust-mcp-server --project-path .
接続の確認
インストール後、Claude Code を再起動し、サーバーのステータスを確認してください:
/mcp
リストに rust-tools: connected と表示されます。
使い方
コマンドライン
# Run in current directory
./target/release/rust-mcp-server
# Specify project path
./target/release/rust-mcp-server --project-path /path/to/rust/project
Claude Code での使用
インストール後、自然言語で Rust ツールを呼び出せます:
- 「この Rust コードにエラーがないか確認して」→
cargo checkを実行します - 「Rust プロジェクトをリントして」→
cargo clippyを実行します - 「この Rust ファイルをフォーマットして」→
rustfmtを実行します - 「テストを実行して」→
cargo testを実行します - 「プロジェクトをリリースモードでビルドして」→
cargo build --releaseを実行します
MCP 統合
サーバーは MCP プロトコルに従い、標準入力/標準出力を介した JSON-RPC で通信します:
初期化
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {}
}
利用可能なツールの一覧表示
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}
ツールの実行
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "cargo_check",
"arguments": {
"workspace": true
}
}
}
ツールのパラメーター
cargo_check
{
"target": "", // Optional specific target
"workspace": false // Check all workspace packages
}
cargo_clippy
{
"fix": false, // Auto-apply fixes
"workspace": false, // Run on all packages
"deny": [] // Lint levels to deny
}
rustfmt
{
"file": "", // Specific file to format
"check": false // Check without applying
}
cargo_test
{
"test_name": "", // Specific test pattern
"package": "", // Specific package
"workspace": false, // Test all packages
"nocapture": false // Don't capture output
}
cargo_build
{
"release": false, // Build in release mode
"workspace": false // Build all packages
}
出力形式
すべてのツールは、標準化された JSON レスポンスを返します:
{
"success": true,
"exit_code": 0,
"stdout": "compilation output...",
"stderr": "warnings and errors...",
"command": "cargo check"
}
統合例
Claude Code との統合
このサーバーは Claude Code のような AI アシスタントとシームレスに連携し、コード開発中にリアルタイムのフィードバックを提供するよう設計されています:
- 構文検証:記述中のコードを自動的にチェックします
- リントの提案:改善案を受け取り、修正を適用します
- コードのフォーマット:コードスタイルの一貫性を確保します
- テストの実行:変更によって既存の機能が壊れていないか検証します
- ビルドの検証:プロジェクトが正常にコンパイルされることを確認します
VS Code 拡張機能
MCP を介して VS Code と統合し、既存の言語サーバーと連携して Rust 開発を強化できます。
エラー処理
サーバーは以下の詳細なエラー情報を提供します:
- 無効なツール名
- 必須パラメーターの不足
- コンパイルエラー
- プロセス実行の失敗
- ファイルシステムのエラー
トラブルシューティング
サーバーに接続できない
Claude Code で接続エラーが表示される場合:
-
バイナリがビルドされていることを確認します:
cd /path/to/rust-mcp-server cargo build --release ls -la target/release/rust-mcp-server # Should exist and be executable -
-- 区切り文字を確認します:
# ✅ Correct claude mcp add rust-tools -- /path/to/rust-mcp-server/target/release/rust-mcp-server # ❌ Incorrect (missing --) claude mcp add rust-tools /path/to/rust-mcp-server/target/release/rust-mcp-server -
サーバーを手動でテストします:
cd /path/to/rust-mcp-server python3 test_server.py -
ログを確認します:
claude --mcp-debugの実行時にエラーメッセージがないか確認してください
よくある問題
- 「cargo: command not found」:Rust がインストールされ、PATH に含まれていることを確認してください
- 「failed to find cargo.toml」:
--project-pathが Rust プロジェクトを指していることを確認してください - サーバーがすぐに切断される:バイナリのパスが相対パスではなく、絶対パスであることを確認してください
- サーバーに接続できるが、利用可能なツールがない:v0.1.0 では、サーバーが成功したレスポンスに
"error": nullを含めてしまい、JSON-RPC 2.0 の仕様に違反するバグがありました。v0.1.1 で修正されました。
貢献
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を実装します
- 該当する場合はテストを追加します
- プルリクエストを送信します
ライセンス
MIT ライセンス
変更履歴
v0.1.1 (fix/json-rpc-error-field)
- 成功したレスポンスに
error: nullが誤って含まれていた、JSON-RPC 2.0 の準拠に関する問題を修正しました - この修正により、サーバーには接続できてもツールを利用できなかった Claude Code の接続問題が解消されます
- McpResponse の error フィールドに
#[serde(skip_serializing_if = "Option::is_none")]を追加しました
v0.1.0
- 初回リリース
- MCP サーバーのコア実装
- cargo check、clippy、rustfmt、test、build に対応
- stdin/stdout 経由の JSON-RPC 通信
- プロジェクトパスを設定可能
- 包括的なエラー処理
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。