Labsco
seemethere logo

Cargo MCP

โ˜… 2

from seemethere

Interact with Rust projects using Cargo commands like build, test, and run.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedFreeAdvanced setup

Cargo MCP Server

A Model Context Protocol (MCP) server that provides tools for running Cargo commands. This server allows AI agents to interact with Rust projects through Cargo, enabling automated builds, tests, documentation generation, and more.

Features

The server provides the following Cargo tools:

  • cargo_build - Build a Rust project with Cargo
  • cargo_test - Run tests for a Rust project
  • cargo_run - Run a Rust binary
  • cargo_check - Check a project for errors without building
  • cargo_clippy - Run Clippy linter
  • cargo_fmt - Format Rust code using rustfmt
  • cargo_doc - Generate documentation
  • cargo_clean - Clean build artifacts
  • cargo_tree - Display dependency tree
  • cargo_update - Update dependencies in Cargo.lock
  • cargo_bench - Run benchmarks

Tool Documentation

cargo_build

Build a Rust project with Cargo.

Parameters:

  • release (boolean, optional): Build in release mode with optimizations
  • features (array, optional): List of features to activate
  • target (string, optional): Build for the given target triple
  • workspace_path (string, optional): Path to the workspace root (auto-detected if not provided)

cargo_test

Run tests for a Rust project.

Parameters:

  • test_name (string, optional): Name of specific test to run
  • release (boolean, optional): Run tests in release mode
  • features (array, optional): List of features to activate
  • workspace_path (string, optional): Path to the workspace root

cargo_run

Run a Rust binary.

Parameters:

  • bin_name (string, optional): Name of the binary to run (for multi-binary projects)
  • args (array, optional): Arguments to pass to the binary
  • release (boolean, optional): Run in release mode
  • features (array, optional): List of features to activate
  • workspace_path (string, optional): Path to the workspace root

cargo_check

Check a Rust project for errors without building it.

Parameters:

  • features (array, optional): List of features to activate
  • workspace_path (string, optional): Path to the workspace root

cargo_clippy

Run Clippy linter on a Rust project.

Parameters:

  • fix (boolean, optional): Automatically apply suggested fixes
  • features (array, optional): List of features to activate
  • workspace_path (string, optional): Path to the workspace root

cargo_fmt

Format Rust code using rustfmt.

Parameters:

  • check (boolean, optional): Check if files are formatted without modifying them
  • workspace_path (string, optional): Path to the workspace root

cargo_doc

Generate documentation for a Rust project.

Parameters:

  • open (boolean, optional): Open documentation in browser after generation
  • no_deps (boolean, optional): Don't build documentation for dependencies
  • workspace_path (string, optional): Path to the workspace root

cargo_clean

Clean build artifacts.

Parameters:

  • workspace_path (string, optional): Path to the workspace root

cargo_tree

Display dependency tree.

Parameters:

  • package (string, optional): Package to display tree for
  • features (array, optional): List of features to activate
  • workspace_path (string, optional): Path to the workspace root

cargo_update

Update dependencies in Cargo.lock.

Parameters:

  • package (string, optional): Specific package to update
  • workspace_path (string, optional): Path to the workspace root

cargo_bench

Run benchmarks.

Parameters:

  • bench_name (string, optional): Name of specific benchmark to run
  • features (array, optional): List of features to activate
  • workspace_path (string, optional): Path to the workspace root

Project Structure Detection

The server automatically detects Rust projects by searching for Cargo.toml files. It walks up the directory tree from the current working directory to find the nearest Cargo.toml file and uses that directory as the workspace root.

You can override this behavior by providing the workspace_path parameter to any tool.

Error Handling

The server provides detailed error messages and logs for troubleshooting:

  • Checks if Cargo is installed and available in PATH
  • Validates that Cargo.toml exists in the target directory
  • Captures both stdout and stderr from Cargo commands
  • Provides detailed command execution information

Development

Setup

  1. Clone the repository
  2. Install development dependencies:
pip install -e ".[dev]"

Testing

Run tests using pytest:

pytest

Code Formatting

Format code using black:

black src/

Lint code using ruff:

ruff check src/

Support

For issues and questions: