Cargo Metadata MCP Server logo

Cargo Metadata MCP Server

by frozenlib

This project implements a server using the Model Context Protocol (MCP) to provide metadata information for Cargo projects. It allows MCP clients to access various details about a Rust project's configuration and dependencies.

View on GitHub

Last updated: N/A

Cargo Metadata MCP Server

このプロジェクトは、Model Context Protocol (MCP)を使用して、Cargo プロジェクトのメタデータ情報を提供するサーバーを実装しています。

機能

この MCP サーバーは以下の機能を提供します:

  • プロジェクトのメタデータ情報の取得
  • パッケージ情報の取得
  • 依存関係リストの取得
  • ビルドターゲットの取得
  • ワークスペース情報の取得
  • フィーチャー情報の取得

使い方

ビルド

cargo build --release

実行

cargo run

または、ビルド済みのバイナリを直接実行することもできます:

./target/release/mcp-attr-example-cargo-metadata

MCP クライアントとの連携

このサーバーを MCP クライアント(例:Claude Desktop)と連携するには、クライアントの設定ファイルに以下のように追加します:

{
  "mcpServers": {
    "cargo-metadata": {
      "command": "path/to/mcp-attr-example-cargo-metadata"
    }
  }
}

提供されるツール

このサーバーは以下のツールを提供します:

  1. get_metadata - プロジェクトのメタデータを取得します
  2. get_package_info - プロジェクトのパッケージ情報を取得します
  3. get_dependencies - プロジェクトの依存関係リストを取得します
  4. get_targets - プロジェクトのビルドターゲットを取得します
  5. get_workspace_info - プロジェクトのワークスペース情報を取得します
  6. get_features - プロジェクトのフィーチャー情報を取得します

各ツールは、オプションで manifest_path パラメータを受け取ります。指定しない場合は、カレントディレクトリの Cargo.toml ファイルが使用されます。

技術的な詳細

このプロジェクトは以下の技術を使用しています:

  • mcp-attr - MCP サーバーを宣言的に記述するための Rust クレート
  • cargo_metadata - Cargo プロジェクトのメタデータを取得するための Rust クレート
  • tokio - 非同期ランタイム
  • serde - シリアライズ/デシリアライズフレームワーク

ライセンス

MIT または Apache-2.0