mcpField
R
Rust MCP Server

Rust MCP Server

ローカル
github.com/lh開発ツール174 週間前に更新

Rust MCP Server について

Rust 開発者、IDE、AI アシスタント向けの MCP サーバーです。標準化されたインターフェースで検査、Lint、フォーマット、テスト、ビルドを実行し、ワークスペース操作にも対応します。

主な機能

  1. 01構文と型の検査
  2. 02Clippy による Lint と修正
  3. 03Rust コードのフォーマット
  4. 04パターン指定でのテスト実行
  5. 05デバッグまたはリリースビルド

活用シーン

  1. 01Rust プロジェクトのコンパイルエラー確認
  2. 02一般的なコード問題の検出と修正
  3. 03ファイルまたはワークスペースの整形
  4. 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 プロジェクトの構文チェック、リンティング、フォーマット、テスト、ビルドをリアルタイムで実行できます。

機能

利用可能なツール
  1. cargo_check - 構文と型の検証

    • Rust コードの構文と型を検証します
    • ワークスペース全体のチェックに対応しています
    • 詳細なエラーメッセージと提案を提供します
  2. cargo_clippy - コードのリンティング

    • よくあるミスを検出し、改善案を提案します
    • 可能な場合は自動修正に対応しています
    • リントレベルとルールを設定できます
  3. rustfmt - コードのフォーマット

    • スタイルガイドラインに従って Rust コードをフォーマットします
    • 変更を適用せずにフォーマットをチェックできます
    • 個別のファイルまたはプロジェクト全体のフォーマットに対応しています
  4. cargo_test - テストの実行

    • 詳細な出力を表示して Rust のテストを実行します
    • 特定のテストパターンやパッケージに対応しています
    • デバッグ用に出力のキャプチャを設定できます
  5. 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 アシスタントとシームレスに連携し、コード開発中にリアルタイムのフィードバックを提供するよう設計されています:

  1. 構文検証:記述中のコードを自動的にチェックします
  2. リントの提案:改善案を受け取り、修正を適用します
  3. コードのフォーマット:コードスタイルの一貫性を確保します
  4. テストの実行:変更によって既存の機能が壊れていないか検証します
  5. ビルドの検証:プロジェクトが正常にコンパイルされることを確認します
VS Code 拡張機能

MCP を介して VS Code と統合し、既存の言語サーバーと連携して Rust 開発を強化できます。

エラー処理

サーバーは以下の詳細なエラー情報を提供します:

  • 無効なツール名
  • 必須パラメーターの不足
  • コンパイルエラー
  • プロセス実行の失敗
  • ファイルシステムのエラー

トラブルシューティング

サーバーに接続できない

Claude Code で接続エラーが表示される場合:

  1. バイナリがビルドされていることを確認します:

    cd /path/to/rust-mcp-server
    cargo build --release
    ls -la target/release/rust-mcp-server  # Should exist and be executable
    
  2. -- 区切り文字を確認します:

    # ✅ 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
    
  3. サーバーを手動でテストします:

    cd /path/to/rust-mcp-server
    python3 test_server.py
    
  4. ログを確認します: 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 で修正されました。

貢献

  1. リポジトリをフォークします
  2. 機能ブランチを作成します
  3. 変更を実装します
  4. 該当する場合はテストを追加します
  5. プルリクエストを送信します

ライセンス

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 通信
  • プロジェクトパスを設定可能
  • 包括的なエラー処理

コメント

MCP は初めてですか?

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

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