Cargo MCP Server

Cargo MCP Server

Provides a suite of tools for running Cargo commands and interacting with Rust projects through AI agents. It enables automated builds, testing, linting, and documentation generation directly from any MCP-compatible client.

Category
Visit Server

README

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

Installation

Prerequisites

  • Python 3.8 or higher
  • Rust and Cargo installed on your system
  • Access to install Python packages

Install from source

  1. Clone this repository:
git clone <repository-url>
cd cargo-mcp
  1. Install the package:
pip install -e .

Usage

With Claude Desktop

Add the server to your claude_desktop_config.json:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "cargo-mcp": {
      "command": "cargo-mcp"
    }
  }
}

With other MCP clients

The server can be used with any MCP-compatible client. Start the server using:

cargo-mcp

Testing with MCP Inspector

You can test the server using the MCP Inspector:

npx @modelcontextprotocol/inspector cargo-mcp

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/

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

For issues and questions:

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured